Chia sẻ về ngôn ngữ lập trình, quy trình xử lý khi gặp sự cố là những câu hỏi thường gặp trong buổi phỏng vấn lập trình viên bằng Tiếng Anh.
[ipsc id="56334" title="Cách trả lời câu hỏi phỏng vấn: “Bạn mong đợi những điều gì..."]
Phỏng vấn lập trình bằng Tiếng Anh có những câu hỏi nào?
1. Bạn biết những ngôn ngữ lập trình nào?
Cố gắng đưa ra nhiều trải nghiệm của bạn với các ngôn ngữ khác và đồng thời cung cấp danh sách những ngôn ngữ lập trình mà bạn đã sử dụng. Bạn cũng có thể giải thích các ngôn ngữ hiện đang phổ biến trong ngành nếu bạn cảm thấy nó sẽ khiến bạn khác biệt với các ứng viên khác.
Ví dụ 1: “I am very familiar with HTML, CSS and JavaScript, and in my most recent programming position at Global Company, we used Python to write software applications. I learned Python throughout the projects I completed there, and feel comfortable learning other languages for specific projects.
Ví dụ 2: ”When I was at Local Bakery, I was working as a developer using a CMS editor to update the company’s website. I used CSS code to customize and code the site for greater efficiency and additional features.”
2. Bạn thích ngôn ngữ lập trình nào?
Trong câu trả lời của mình, bạn có thể thảo luận về ngôn ngữ lập trình mà bạn yêu thích khi trả lời các câu hỏi kỹ thuật. Chọn một trong những ngôn ngữ lập trình mà bạn có thể giải thích cho những người có thể không biết rõ nó như bạn. Nếu bạn đã quen với nhiều ngôn ngữ, hãy chọn một ngôn ngữ năng động và phổ biến hơn các ngôn ngữ cũ.
Ví dụ: “Although different languages work best with certain projects, I like Python for solving algorithmic problems. I find that it’s simple to use and offers attractive features. After my experience with it at Global Company, I wanted to develop my Python understanding further, so I designed and developed a software application for a mobile game to practice speaking elements while learning a new language. I feel that I have a strong understanding of Python based on my professional and personal experience.”
3. Quy trình của bạn khi xử lý một chương trình gặp sự cố là gì?
Để trả lời hiệu quả cho câu hỏi này, bạn cần sử dụng cả kỹ năng cứng và kỹ năng mềm. Giải thích cẩn thận quy trình của bạn với người phỏng vấn theo cách trò chuyện và hợp lý để cho bạn thấy bạn hiểu cặn kẽ về quy trình. Mô tả cách bạn tìm kiếm lỗi và các bước hướng tới giải pháp.
Ví dụ: “I worked at a startup called Innotech after grad school. I enjoyed the projects I worked on there, but we frequently had problems with crashing programs. After I run a debugger, I look for patterns. For example, maybe the program crashes while running certain commands or in specific conditions. If the program only crashes every fifth time the page loads, I would look into that further. Once I have identified patterns, I would then consider ideas for problem areas that might include elements of those patterns and use a code to search those possible elements. I am usually successful with this method.”
4. Làm thế nào để bạn cập nhật các kiến thức trong ngành?
Lĩnh vực lập trình không ngừng phát triển và bạn có thể nhấn mạnh rằng bạn thích học các yếu tố và ngôn ngữ mới để phát triển.
Ví dụ: “I enjoy keeping my programming knowledge current and the challenge of learning new languages. I regularly listen to programming podcasts and participate in online communities with other programmers. I also find that online courses are helpful to learn new skills. While I was learning Python, I used podcasts and online courses to study the language while working on a project. I feel these methods work well for me.”
5. Bạn sẽ xử lý thế nào khi làm việc trong một nhóm có những thành viên đến từ các bộ phận khác?
Trong một cuộc phỏng vấn lập trình, bạn sẽ thực hiện các bài kiểm tra kỹ thuật hoặc hoàn thành các cuộc phỏng vấn kỹ thuật. Bạn cũng có thể sử dụng những cơ hội này để thể hiện các kỹ năng mềm của mình, chẳng hạn như cung cấp các ví dụ về kỹ năng giao tiếp và giao tiếp giữa các cá nhân với nhau.
Ví dụ: “I work well on teams, including ones with non-tech members. I find that these groups can produce products and solutions that a team of like-minded people may not consider. I also enjoy meeting new people and considering other angles to the projects we work on together. I have worked on teams with only programmers and mixed teams in the past, and feel the mixed groups were often more innovative. I would welcome an opportunity to work on this type of team.”
6. Điều gì sẽ xảy ra khi bạn nhập một URL vào trình duyệt?
Câu hỏi này cho thấy bạn hiểu rõ quy trình như thế nào.
Ví dụ: “The first step is to type your URL into the browser. The browser will then check the DNS record and cache to find the corresponding IP address. Then, the browser may have to check the operating system cache, the router cache and the ISP cache. The ISP’s DNS server then initiates a DNS query to find the IP address of the server that hosts the site and the browser initiates a TCP connection with the server. Last, the browser sends an HTTP request to the web server, the server sends a response and the browser displays the HTML content.”
7. Cách để bạn tính được độ dài tối đa của chuỗi?
Bạn có thể thấy rằng việc chuẩn bị cho phần kỹ năng cứng của cuộc phỏng vấn lập trình khá đơn giản. Bạn có thể tìm thấy các bài kiểm tra thực hành trong sách và trực tuyến để bạn có cơ hội mô phỏng các yếu tố kỹ thuật của cuộc phỏng vấn lập trình của mình. Bạn có thể tập trung nghiên cứu để hiểu và có thể giải thích các quy trình mà bạn có thể sử dụng.
Hãy cẩn thận trong câu trả lời của bạn và sử dụng thuật ngữ chính xác cho các yếu tố và hệ thống mà bạn tham chiếu. Sau khi bạn giải thích phương pháp của mình, hãy viết code cho giải pháp của bạn.
Ví dụ: “I would use a sorting mechanism to sort within the given parameters for the pair. Then, I would use a LIS process to compare the elements. There are other methods, but I would try this one first. Would you like me to write the code out?”
8. Bạn có thể nói về một dự án mà bạn đang thực hiện không?
Với câu hỏi này, bạn có thể chứng minh một dự án bạn đã làm việc đã thu hút được sự chú ý của thị trường hoặc một dự án mà công ty của bạn đã triển khai. Tập trung vào kết quả và thể hiện sự thành công của bạn để tạo ra các chương trình mà mọi người có thể sử dụng.
Ví dụ: “The language learning app I created, SpeakR, became fairly successful. Within three months on the market, more than 20,000 users downloaded the app. Because I initially planned the project for extra practice with Python, it was exciting to see the app gain attention.”
9. Bạn thường hay làm gì khi bắt đầu một dự án mới?
Khi bạn trả lời câu hỏi này, hãy nhấn mạnh quá trình lập kế hoạch của bạn và thể hiện rằng bạn có kỹ năng tổ chức ngoài khả năng kỹ thuật của mình.
Ví dụ: “When I begin a project, I like to choose the technical aspects first like the language and library I’ll use. Then I plan the features and use visuals to fully develop these plans. After that, I will consider how to best implement them. Last, I like to plan a timeline and schedule for completing the project. I have used this system at work to stay ahead of schedule.
One project I planned from start to finish was the addition of a user wiki. I first decided to implement the Scrum method and chose Python to code the wiki. Python is a fast language that would be highly accessible for my team. I considered the team members needed to implement and did requirements gathering. Finally, I planned and completed a sprint. Using this practical method of thinking through projects allowed my team to complete the wiki quickly and efficiently.”
10. Bạn quản lý các deadlines như thế nào?
Là một lập trình viên, bạn sẽ thường xuyên làm việc theo đúng thời hạn của dự án. Bạn có thể sử dụng câu trả lời của mình cho câu hỏi này để nhấn mạnh rằng bạn làm việc tốt với thời hạn và thảo luận về các phương pháp lập kế hoạch mà bạn sử dụng để quản lý thời gian và dự án của mình.
Ví dụ: “I enjoy project deadlines and find that I like to plan my own smaller goals for tasks I need to complete to reach my work deadlines. I use my desktop calendar to assign regular goals throughout my work weeks. I developed this method to stay organized. In past roles, I created department calendars that enabled my department to stay on schedule.”
Theo Indeed