Gần đây, trong khi lang thang trên mạng tôi đã đọc được khá nhiều tâm sự của các bạn trẻ trong việc đi phỏng vấn xin việc vào các công ty phần mềm. Có những bạn thành tích học tập khá tốt nhưng đôi khi các bạn lại không được tuyển dụng chỉ vì một số điểm trừ trong số những điều sau đây. Tôi xin phép chia sẻ bài viết này tới các bạn quan tâm đến phỏng vấn xin việc. Đây là bài tôi dịch từ một nguồn có trên mạng (tôi có trích dẫn ở cuối bài) .
Các nhà lãnh đạo doanh nghiệp thường gặp phải thách thức lớn trong việc tìm lập trình viên tài năng, có kinh nghiệm, đặc biệt là mức lương phải phù hợp với ngân sách có thể đáp ứng của công ty. Vì thế mà các nhà tuyển dụng lớn thường rất kĩ càng trong việc tuyển dụng lập trình viên. Ngoài việc biết các ngôn ngữ lập trình cần thiết để thực hiện công việc, còn có một số yêu cầu nhất định cần thiết để các nhà tuyển dụng quyết định thuê một lập trình viên.
Dưới đây là 15 đặc điểm mà các nhà tuyển dụng thường mong muốn có được từ những lập trình viên.Bài viết này đứng dưới góc nhìn của những nhà tuyển dụng vì vậy trong khi đi phỏng vấn các bạn hãy cố gắng thể hiện những điều đó. Và cũng đỡ bất ngờ trước những câu hỏi của nhà tuyển dụng.(Các cụ bảo là biết người biết ta, trăm trận trăm thắng).Tôi xin giữ nguyên mạch văn và góc nhìn của tác giả:
1. Tư duy áp dụng kỹ thuật.
Một sai lầm mà nhiều nhà quản lý tuyển dụng đưa ra là tuyển dụng những ứng viên chỉ từ danh sách các yêu cầu. Thay vì yêu cầu ba năm kinh nghiệm C + + và một năm Java,thì hãy nhìn một cách tổng quát hơn. Một lập trình viên đã làm việc lâu năm với một ngôn ngữ nào đó nhưng gần đây họ đã làm việc thêm với một ngôn ngữ mới hoàn hảo hơn, thì những năm kinh nghiệm của anh ta với ngôn ngữ cũ đã cho anh ta một nền tảng tuyệt vời trong các ngôn ngữ lập trình mới. Ví dụ người lập trình C nhiều kinh nghiệm sẽ lập trình tốt PHP...
Câu hỏi phỏng vấn mẫu: Mô tả kinh nghiệm của bạn với các ngôn ngữ lập trình khác nhau.
2. Sẵn sàng học cái mới.
Công nghệ luôn phát triển không ngừng và những kỹ năng và khả năng mà một lập trình viên ngày nay có thể sẽ lỗi thời trong một vài năm thậm chí là một vài tháng. Điều quan trọng là tìm một lập trình viên có hứng thú theo dõi các xu hướng mới nhất và luôn sẵn sàng tham gia vào bất kỳ cơ hội học thêm cái mới, nâng cao khả năng kĩ thuật nào.
Câu hỏi phỏng vấn mẫu: Bạn làm gì để giữ kỹ năng lập trình hiện tại?
3. Kỹ năng gỡ lỗi.
Viết code mới chỉ là một phần của công việc của một lập trình. Khi phần mềm không hoạt động như mong đợi, một lập trình viên sẽ phải tìm ra gốc rễ của vấn đề một cách nhanh chóng và hiệu quả. Thay vì phải mất hàng giờ để thực hiện những thay đổi, hãy tìm kiếm một lập trình viên muốn nghiên cứu cẩn thận mã code của mình và nghiên cứu các vấn đề có thể cho tới khi có câu trả lời. Đây là một kỹ năng rất quan trọng của bất kì một lập trình viên ưu tú nào.
Câu hỏi phỏng vấn mẫu: Làm thế nào để bạn xử lý lỗi trong mã của bạn? (Tiếp theo, nhà tuyển dụng có thể cho bạn thử gỡ lỗi một đoạn chương trình của họ)
4. Phù hợp với môi trường làm việc.
Một số lập trình viên đòi hỏi sự im lặng hoàn toàn để tập trung, trong khi những người khác phát triển trong hỗn loạn, có thể suy nghĩ tập trung ở những nơi ồn ào. Sở thích cá nhân của nhân viên là một phần quan trọng trong năng suất làm việc của anh ta, vì vậy tốt nhất nên nói rõ ràng về môi trường làm việc ở văn phòng của bạn lên trước để tránh những vấn đề sau khi người đó được tuyển dụng. Ở đây, một lập trình viên giỏi sẽ có khả năng thích ứng được với nhiều môi trường làm việc khác nhau, kể cả trong những nơi ồn ào.
Câu hỏi phỏng vấn mẫu: Mô tả môi trường làm việc lý tưởng của bạn.
5. Kỹ năng giải quyết vấn đề.
Đối với những người chưa bao giờ cố gắng tạo ra một ứng dụng mang tính đột phá và sáng tạo,thì lập trình cũng giống như việc giải một phương trình toán học vô cùng khó khăn. Một lập trình viên giỏi phải luôn luôn cố gắng tìm cách để làm cho một cái gì đó hoạt động mặc dù tỉ lệ thành công là rất thấp.Nếu không dám thử thì bạn có thể sẽ chỉ nghe thấy cụm từ “Không thể làm được”, mỗi khi bạn đề xuất một dự án sáng tạo mới.
Câu hỏi phỏng vấn mẫu: Làm thế nào bạn sẽ tạo ra (một công việc gần như không thể làm được ở tổ chức của bạn)?
6. Đam mê công việc.
Trong khi một số nhân viên lập trình chỉ đơn giản có thể làm cho hết giờ thì nhiều nhà quản lý tuyển dụng quan tâm đến việc tìm một ai đó luôn vui lòng làm việc hàng giờ mà không đòi hỏi bất cứ điều gì cho tới khi hoàn thành công việc một cách hoàn hảo vì họ yêu thích công việc đó.Thường thì các nhân viên kiểu này có thể được tìm thấy trong quá trình phỏng vấn với các câu hỏi liên quan đến sở thích bên ngoài của họ. Các lập trình viên thực sự là “lập trình viên năng động”, dành thời gian để chơi game, xây dựng máy chủ, hoặc tạo ra các ứng dụng cho bạn bè. Mặc dù niềm đam mê này không phải là điều cần thiết, nhưng thường là một cách để tìm ứng viên hàng đầu.
Câu hỏi phỏng vấn mẫu: Sở thích của bạn là gì?
7. Khả năng chịu áp lực.
Không giống như người ngoài suy nghĩ về vẻ hào nhoáng của nghề lập trình, có thể nói lập trình là một nghề rất căng thẳng. Khi thời hạn công việc được căn ke chặt chẽ và những yêu cầu phức tạp được đưa ra sẽ rất dễ khiến cho các lập trình viên bị áp lực cao. Các ứng cử viên lập trình lý tưởng sẽ có thể xử lý ngay cả những tình huống căng thẳng nhất một cách bình tĩnh và quan trọng nhất là luôn giữ được tinh thần có thể tiếp tục làm việc.
Câu hỏi phỏng vấn mẫu: Mô tả thời gian bạn bị áp lực và ứng dụng của bạn không hoạt động. Bạn đã làm gì?
8. Kỹ năng trình bày.
Các lập trình viên nói chung không phải là những người có tài năng trong việc dịch vụ khách hàng. Có vẻ như ngay từ đầu chúng ta đã biết hầu hết họ sẽ ngồi trước máy tính cả ngày. Tuy nhiên, các lập trình viên cũng thường xuyên phải tương tác, nói chuyện với các nhà quản lý, đồng nghiệp, và khách hàng, do đó khả năng làm việc tốt với người khác là cần thiết. Điều này đặc biệt cần thiết nếu lập trình viên của bạn thỉnh thoảng được yêu cầu tham gia các cuộc họp của khách hàng và giải thích hệ thống hoạt động như thế nào.
Câu hỏi phỏng vấn mẫu: Giải thích ứng dụng yêu thích của bạn hoạt động như thế nào
9. Sự lười biếng.
Larry Wall, tác giả ban đầu, Ngôn ngữ Lập trình Perl, mô tả ba phẩm chất tốt trong một lập trình viên tốt là: sự lười biếng, thiếu kiên nhẫn và ngạo mạn. Sự lười biếng có vẻ như là một điểm bất lợi cho bất kỳ nhân viên nào, nhưng các nhà quản lý CNTT nói rằng nếu bạn muốn tìm cách tốt nhất để làm điều gì đó, hãy hỏi một người lười biếng. Rất có thể, người đó sẽ tìm ra cách làm nhanh nhất, hiệu quả nhất để giải quyết công việc của họ. Một lập trình viên có sự lười biếng thường có thể tìm thấy một cách để tự động hoá quy trình, tiết kiệm thời gian và tiền bạc.
Câu hỏi phỏng vấn mẫu: Cho chúng tôi biết về thời gian bạn tiết kiệm được bằng cách tự động hóa quy trình.
10. Quan điểm kinh doanh.
Bạn sẽ bị chệch hướng nếu cứ cố gắng tập trung vào việc tạo ra một phần mềm hoạt động tốt mà quên đi các yếu tố về chi phí hay độ phức tạp vượt ra ngoài tầm kiểm soát. Một lập trình viên có quan điểm kinh doanh tốt sẽ có khả năng đề xuất cho bạn các ý tưởng tốt để cải thiện hiệu quả kinh doanh cũng như tiết kiệm được chi phí. Sẵn sàng thay đổi những gì đã lỗi thời.
Câu hỏi phỏng vấn mẫu: Bạn đã bao giờ đưa ra đề xuất cải tiến quy trình của doanh nghiệp?
11. Khả năng lập kế hoạch.
Thay vì nhảy ngay vào một nhiệm vụ mới, một sự bổ sung tốt cho về nhân sự cho dự án của bạn là một lập trình viên trước tiên sẽ học càng nhiều càng tốt về sản phẩm cuối cùng mong muốn và đặc tả yêu cầu của dự án. Sau khi hoàn thành phân tích phân tích yêu cầu và các đặc tả của dự án, người lập trình trước tiên sẽ thiết kế cấu trúc chương trình trước khi gõ dòng mã code đầu tiên.
Câu hỏi phỏng vấn mẫu: Giải thích cách tiếp cận của bạn với một dự án mới. Bạn làm gì trước?
12. Có khả năng nắm bắt các trường hợp lỗi.
Các lập trình viên thường hiếm khi có được mọi thứ chính xác ngay trong lần thử đầu tiên. Trên thực tế, lần đầu thất bại gần như là điều chắc chắn. Điều quan trọng là tìm lập trình viên thấy lỗi là một thách thức chứ không phải là dấu hiệu thất bại. Tính bền bỉ, kiên trì là rất quan trọng, cũng như khả năng bắt đầu lại từ đầu nếu cần thiết. Thường thì các trường hợp gây lỗi xuất hiện nhiều hơn các trường hợp đúng. Ngay cả khi đã bỏ ra rất nhiều công sức và mất rất nhiều giờ làm việc viết ra các dòng mã lỗi thì vẫn không bỏ cuộc.
Câu hỏi phỏng vấn mẫu: Đã bao giờ bạn bỏ ra hàng giờ để viết mã, chỉ để thấy nó là cách tiếp cận sai? Bạn đã làm gì?
13. Tinh thần làm việc theo nhóm.
Một lập trình viên hiếm khi làm việc một mình, ngay cả khi anh ta là nhà phát triển duy nhất trong một công ty. Khả năng làm việc với các lập trình viên khác, người sử dụng kinh doanh, tiếp thị và nhân viên bán hàng là điều cần thiết. Vì vậy một người luôn sẵn sàng hợp tác và có tinh thần xây dựng nhóm là một đức tính cần có trong mỗi lập trình viên.
Câu hỏi phỏng vấn mẫu: Chia sẻ trải nghiệm khi nhóm làm việc cùng bạn từng được khen thưởng.
14. Sẵn sàng nghiên cứu.
Việc sử dụng thành thạo ngôn ngữ lập trình chỉ là một phần của công việc lập trình. Một nhà phát triển tốt phải luôn luôn tìm hiểu về các ngành cụ thể để thiết kế các chương trình của họ sao cho đáp ứng được yêu cầu thực tế. Nó có thể là những yêu cầu của khách hàng hoặc yêu cầu từ thực tiễn cuộc sống đòi hỏi. Vì thế việc sẵn sàng nghiên cứu những yêu cầu mới , những tính năng mới là một điều cần thiết cho những lập trình viên.
Câu hỏi phỏng vấn mẫu: Cho chúng tôi biết về thời gian bạn phải học về nghiệp vụ doanh nghiệp trong một dự án cụ thể? Bạn đã làm thế nào để hoàn thành nghiên cứu của bạn?
15. Tôn trọng thời hạn.
Hầu hết các lập trình viên làm việc trên các dự án có thời hạn. Nó là mốc thời thời gian cuối cùng để xác định một công việc nào đó phải hoàn thành. Mặc dù các nhà quản lý hiểu được thời gian quay vòng hợp lý để viết mã cho một ứng dụng mới hoặc sửa chữa một ứng dụng hiện có, nhưng các lập trình viên cũng nên tôn trọng thời hạn khi nhận việc. Điều quan trọng là xác định rằng lập trình viên sẽ làm mọi thứ có thể để đáp ứng thời hạn được giao.
Câu hỏi phỏng vấn mẫu: Mô tả khoảng thời gian mà bạn phải đáp ứng một thời hạn chặt chẽ.
Việc tuyển dụng được một lập trình viên giỏi không phải là một điều dễ dàng, đặc biệt là nếu kiến thức của bạn về lập trình bị giới hạn. Một cách để nâng cao kinh nghiệm tuyển dụng của bạn là mời một lập trình viên có nhiều kinh nghiệm của bạn tham gia vào các cuộc phỏng vấn. Họ sẽ giúp bạn đặt những câu hỏi mà bạn sẽ không biết làm thế nào để hỏi.
Lời kết và tài liệu tham khảo
Rất mong bài viết này sẽ hữu ích cho những bạn sắp đi phỏng vấn và hơn thế nữa là giúp được các bạn trong việc vạch ra các việc cần phải làm để trở thành một lập trình viên giỏi.
P/S: Không có ai sinh ra đã là thiên tài.
Techtalk Via Viblo