Bạn có biết, Brian Acton, người sáng lập WhatsApp, đã từng vác đơn đi tìm việc làm vào năm 2009. Mặc dù đã có kinh nghiệm làm việc tại Yahoo và Apple, nhưng không ai muốn tuyển anh cả. Mặc dù đấy là thời điểm sau cuộc khủng hoảng tài chính năm 2008 và các công ty đang rất khát nhân lực. Trong danh sách các công ty từ chối Brian có Twitter và Facebook.
Phần còn lại là lịch sử. Brian đã hợp tác với Jan Kuom để tạo ra ứng dụng nhắn tin thế hệ tiếp theo và cuối cùng đã được Facebook mua lại với số tiền mà bạn khó có thể tưởng tượng được: 19 tỷ đô la.
Nhưng tại sao các công ty phần mềm kể trên lại bỏ qua Brian? Có phải vì anh ấy không đủ tốt hay vì lý do gì khác? Và bạn, một lập trình viên giỏi và nhiều kinh nghiệm liệu có bị bỏ qua khi ứng tuyển vào một công ty phần mềm nào đó giống như Brian?
Trong bài viết này chúng ta sẽ xem lý do tại sao dù có thể là một lập trình viên giỏi và có kinh nghiệm bạn vẫn có thể vuột mất cơ hội các công ty phần mềm khi tham gia phỏng vấn.
Lý do 1: Bạn không tìm hiểu về công ty bạn đang ứng tuyển
Nếu bạn có nghĩ rằng bạn có thể dễ dàng thành công trong việc ứng tuyển bằng một lá thư xin việc chung chung, sử dụng chung cho nhiều công ty thì hãy nghĩ lại. Điều trước tiên bạn để thành công trong một buổi phỏng vấn về lập trình phần mềm là tìm hiểu thông tin công ty mà bạn ứng tuyển.
Sự thật là, thật dễ dàng nhận ra khi một ứng viên không bận tâm đến việc tìm hiểu thông tin và không quan tâm đến sứ mệnh hoặc đặc điểm của nhà tuyển dụng . Bạn sẽ gây ấn tượng hơn với người phỏng nếu thể hiện sự quan tâm đến công ty và vì vậy, đừng bỏ qua bước này. Sau đây là một sồ điều bạn nên làm:
- Dành thời gian để đọc qua trang web, blog và hồ sơ công ty. Điều này sẽ giúp bạn hiểu về công việc và văn hóa của doanh nghiệp.
- Ghi lại bất kỳ dự án hiện tại hoặc đang thực hiện nào mà công ty đã đăng tải công khai. Đặt câu hỏi về những điều này sẽ thể hiện sự quan tâm của bạn đối với công ty và cho thấy rằng bạn đã thực hiện việc tìm hiểu của mình.
- Đưa ra một số câu hỏi cụ thể của công ty để hỏi trong cuộc phỏng vấn.
- Nếu bạn biết bất kỳ ai đã làm việc tại công ty, hãy hỏi họ về ngôn ngữ lập trình mà công ty sử dụng thường xuyên nhất.
- Tìm hiểu thêm những đánh giá nhận xét về công ty trên những website review công ty như Glassdoor, Haymora.com
Lý do 2: Bạn không có sự chuẩn bị cho các câu hỏi phổ biến
Trong phỏng vấn về lập trình, đây là lý do có thể khiến bạn hối hận nhiều nhất: Không dành thời gian để tìm hiểu các câu hỏi phỏng vấn lập trình phần mềm phổ biến. Một sự chuẩn bị tốt ở nhà sẽ giúp bạn sẵn sàng hơn trong việc giải quyết những thách thức trong cuộc phỏng vấn thực tế.
Theo dữ liệu do freeCodeCamp khảo sát, những người được phỏng vấn đã chuẩn bị sẵn các câu hỏi cụ thể trước cuộc phỏng vấn có khả năng được tuyển dụng cao hơn 16,6% so với không chuẩn bị. Nếu bạn dành thời gian để xem trước các câu hỏi chuyên môn trước khi phỏng vấn, bạn có thể thấy mọi việc dễ dàng hơn, giúp bạnbớt căng thẳng hơn
Một số mẹo giúp bạn chuẩn bị tốt cho buổi phỏng vấn lập trình:
- Làm các bài kiểm tra phỏng vấn thực hành để làm quen với các thử thách lập trình.
- Hãy động não những câu hỏi mà bạn có thể tưởng tượng rằng người phỏng vấn sẽ hỏi bạn về trình độ và kỹ năng của bạn và tìm các câu trả lời.
- Nhờ ai đó thực hiện một cuộc phỏng vấn giả để giúp bạn thực hành.
Lý do 3: Bạn quên những kiến thức cơ bản
Những người phỏng vấn luôn muốn biết rằng bạn đã nắm chắc các nguyên tắc cơ bản. Sẽ là lợi thế lơn nếu ứng viên có thể lập trình bằng một ngôn ngữ mới hào nhoáng; nhưng nhìn chung, nhà tuyển dụng chỉ muốn biết rằng những người họ tuyển có thể giải quyết vấn đề và viết code tốt. Thay vì cố gắng nhồi nhét một vài kỹ năng mới ấn tượng vào ngày trước cuộc phỏng vấn, hãy dành một chút thời gian để củng cố nền tảng của bạn và vượt qua các vấn đề thực hành.
Một số kỹ năng cần thiết cần tập trung vào bao gồm:
- Cấu trúc dữ liệu
- Mảng
- Hash tables
- Heaps
- Thuật toán tìm kiếm
- Lập trình động
- Tree
Một số mẹo giúp bạn chuẩn bị tốt:
- Trước khi bạn bắt đầu nộp đơn xin việc, hãy dành hai đến ba giờ mỗi tuần để xem lại các kỹ năng cơ bản.
- Tìm và giải quyết các vấn đề thực tế
- Xem qua các ghi chú cũ mà bạn có thể có từ các bài học trước.
Lý do 4: Bạn không chọn đúng ngôn ngữ lập trình cho phỏng vấn
Bạn cần trả lời câu hỏi: nên sử dụng ngôn ngữ lập trình nào trong quá trình phỏng vấn lập trình phần mềm của mình?
Đây là một câu hỏi phức tạp hơn so với những gì bạn có thể tưởng tượng lúc đầu. Sự lựa chọn rõ ràng nhất sẽ là chọn ngôn ngữ mà bạn cảm thấy thoải mái nhất hoặc một ngôn ngữ lập trình mà công ty đang tuyển sử dụng thường xuyên. Nhưng trong nhiều trường hợp, những người được phỏng vấn chọn lại sai lầm trong việc chọn lựa ngôn ngữ. Điều này đặc biệt gây khó khăn cho chính người được phỏng vấn khi họ chọn một ngôn ngữ nghe có vẻ lạ mắt để gây ấn tượng với nhà tuyển dụng.
Vậy bạn nên làm gì? Chọn một ngôn ngữ lập trình mà bạn cảm thấy thoải mái nhất. Nếu bạn đang ứng tuyển vào một công ty chuyên về một ngôn ngữ cụ thể, chẳng hạn như Ruby hoặc Python, bạn nên thực hiện cuộc phỏng vấn bằng ngôn ngữ đó để chứng minh năng lực của mình. Tuy nhiên, cũng cần nhớ rằng người phỏng vấn của bạn có thể làm bạn mướt mồ hôi hơn vì họ nắm vững ngôn ngữ mà công ty họ đang sử dụng.
Điều bạn nên làm:
- Tìm hiểu những ngôn ngữ được sử dụng thường xuyên tại công ty bạn đang ứng tuyển.
- Đánh giá kỹ năng của bạn – bạn thành thạo ngôn ngữ nào nhất?
- Chạy một vài bài kiểm tra lập trình bằng ngôn ngữ bạn đã chọn để không bở ngỡ.
Lý do 5: Bạn quá lo lắng khi thực hiện các bài kiểm tra
Các bài phỏng vấn trên bảng trắng (whiteboard interview) và các bài kiểm tra viết code thực tế rất căng thẳng. Không phải ai cũng làm việc tốt dưới áp lực và một số tình huống còn khiến bạn lo lắng hơn khi yêu cầu bạn giải thích quy trình trong lúc giải quyết thử thách lập trình.
Trong một nghiên cứu gần đây, người ta cho một nửa số lập trình viên tham gia phỏng vấn kỹ thuật dưới sự theo dõi của những người phỏng vấn. Nửa còn lại giải quyết vấn đề của họ trên bảng trắng trong phòng riêng và không bắt buộc phải giải thích suy nghĩ của họ thành lời. Sau đó, các nhà nghiên cứu đánh giá độ chính xác và hiệu quả của tất cả các giải pháp được cung cấp. Cuối cùng, họ phát hiện ra rằng những người trả lời phỏng vấn có sự giám sát thực hiện tốt hơn so với những người trong phòng riêng.
Nghiên cứu đã cho thấy các công ty có thể bỏ lỡ những lập trình viên thực sự giỏi vì những lập trình viên đó không giỏi viết trên bảng và giải thích công việc của họ trong khi lập trình. Nhưng việc phỏng vấn có giám sát và giải thích trực tiếp như vậy sẽ khiến các ứng viên cảm thấy căng thằng hơn là im lặng làm bài test rồi nộp bài. Trong trường hợp các công ty lựa chọn hình thức giám sát, bạn cần chuẩn bị tinh thần và cần luyện tập để làm việc dưới áp lực.
Để vượt qua những căng thẳng trong buổi phỏng vấn lập trình, bạn nên:
- Tự thực hiện thử thách trên bảng trắng thử giải thích các quy trình của bạn với một người bạn (hoặc thậm chí là nói một mình).
- Đừng hoảng loạn nếu bạn gặp khó khăn. Thay vào đó, hãy thể hiện suy nghĩ của bạn và hướng tới giải pháp. Nhà tuyển dụng sẽ ghi nhận bạn vì đã thành thật trong quá trình thử thách.
- Hãy khiêm tốn và đừng cố gắng vượt qua mọi vấn đề theo cách của bạn.
- Thực tập viết code bằng tay tại nhà, trên bảng hoặc dán các mảnh giấy trắng lên tường.
- Thực tập trên một số công cụ thử thách lập trình như Leetcode
Lý do 6: Bạn không biết “bán hàng”
Suy cho cùng, một cuộc phỏng vấn là để bán các kỹ năng của bạn cho nhà tuyển dụng. Bạn cần một lời giới thiệu rõ ràng, ngắn gọn và dễ nhớ để người phỏng vấn biết bạn là ai và tại sao một công ty nên tuyển dụng bạn. Bạn nên lưu ý một số điểm nổi bật để cho thấy bạn thực sự khác biệt so với các ứng viên khác. Không nhất thiết mọi thứ phải liên quan đến lập trình mà là có thể là lịch sử làm việc trước đây, kỹ năng mềm, mục tiêu nghề nghiệp, các dự án bạn đã tham gia.
Một số mẹo bạn nên nhớ để chuẩn bị cho phỏng vấn lập trình:
- Hãy dành một chút thời gian để suy nghĩ về những điểm mạnh của bạn trước khi phỏng vấn. Có thể viết ra để không quên
- Cố gắng ghi nhớ những gì bạn đã liệt kê, tránh lóng ngóng hoặc bỏ sót thông tin quan trọng trong cuộc phỏng vấn.
- Có thể nói chuyện với một vài người bạn để đảm bảo bạn có thể nhìn ra tất cả các điểm mạnh cùa mình.
Lý do 7: Bạn không chuẩn bị cho những tình huống xấu
Nếu bạn là một lập trình viên may mắn, bạn có thể vượt qua cuộc phỏng vấn đầu tiên của mình và nhận được một công việc ngay lập tức. Nhưng đối với hầu hết mọi người, quá trình này mất nhiều thời gian hơn thậm chí là nhiều thời gian.
Theo nghiên cứu của công ty tuyển dụng Hired’s, các ứng viên có từ 4 đến 6 năm kinh nghiệm nhận được trung bình 7,7 yêu cầu phỏng vấn trước khi nhận được một công việc. Đối với một số người, nó có thể mất nhiều thời gian hơn nữa. Bạn thử Google và có thể thấy vô số câu chuyện về các lập trình viên bị ám ảnh vì đã tham gia phỏng vấn với 30 hoặc thậm chí 40 công ty trước khi nhận được việc làm.
Việc bị từ chối có thể khiến bạn cảm thấy mất tinh thần. Tuy nhiên, bạn nên cố gắng giữ thái độ tích cực nhất có thể vì mọi cuộc phỏng vấn đều mang đến một kinh nghiệm học hỏi. Không thiếu những công ty tốt và cánh cửa này đóng lại sẽ có cánh cửa khác mở ra. Vì vậy, đừng mất hy vọng. Một khi bạn đã có được công việc mơ ước thì những lần bị từ chối đó sẽ nhanh chóng bị xóa nhòa trong ký ức.
Một số điều bạn nên nhớ:
- Hãy dành thời gian để suy ngẫm về những cuộc phỏng vấn mà bạn đã trải qua. Bạn đã làm tốt những gì? Điều gì bạn có thể làm tốt hơn?
- Nếu một công ty từ chối bạn, hãy cho bản thân thời gian để thẩm thấu nổi buồn nhưng hãy đừng đắm chìm vào đó.
Lý do 8:Bạn không dọn dẹp thông tin của bạn trên mạng xã hội
Ngày nay có hơn 70% nhà tuyển dụng sử dụng mạng xã hội để sàng lọc các ứng viên tiềm năng, và trong số đó, 57% đã tìm thấy nội dung khiến họ không tuyển ứng viên mà họ đã chọn. Bạn đừng coi thường các bình luận vô vị hoặc một bức ảnh không chuyên nghiệp có thể làm mất cơ hội có được công việc mơ ước của bạn. Vì vậy nếu bạn muốn tạo ấn tượng đối với người phỏng vấn, bạn nên dành thời gian để dọn dẹp sự hiện diện của mình trên mạng
Điều bạn nên làm:
- Tìm kiếm tên của bạn trên Google để xem những thông tin có thể dễ dàng hiển thị khi tìm kiếm.
- Kiểm tra hồ sơ xã hội của bạn và xóa các hình ảnh, bài đăng hoặc cuộc trò chuyện nào có thể trở thành là vấn đề đối với nhà tuyển dụng.
- Tạo thói quen tạo và đăng nội dung liên quan đến ngành của bạn hơn là nội dung vô bổ.
Lý do 9: Bạn không xem trọng hoặc không có những trao đổi bên lề
Trọng tâm của một cuộc phỏng vấn lập trình tất nhiên là sự hiểu biết về lập trình của ứng viên. Tuy vậy các cuộc trò chuyện bên lề sẽ mang lại ấn tượng khá lớn cho người phỏng vấn. Lý do rất đơn giản: người phỏng vấn cũng là con người như chúng ta. Họ có tình cảm và vì vậy họ đánh giá cao những người họ có cảm tình. Khi ở trong cuộc phỏng vấn, bạn nên cố gắng gạt bớt căng thẳng và tạo mối liên hệ với người ngồi đối diện với bạn. Một cuộc phỏng vấn không chỉ là trả lời các câu hỏi một cách cứng nhắc mà còn là một cuộc trò chuyện. Hãy đặt những câu hỏi ngược lại với người phỏng vấn bạn một cách vui vẻ. Cười và pha trò ở những khoảnh khắc thích hợp. Vào cuối buổi phỏng vấn, ngay cả khi bạn có một chút vấn đề với những câu hỏi về kỹ thuật nhưng nếu cảm giác chung mà người phỏng vấn dành cho bạn sẽ là tích cực thì cơ hội của bạn vẫn còn nguyên.
Điều bạn nên làm:
- Hãy đưa ra một vài câu hỏi để hỏi người phỏng vấn về kinh nghiệm của họ với công ty.
- Một chút pha trò với những người phòng vấn khi thích hợp.
Và cuối cùng
Bạn có thể bị từ chối trong lần phỏng vấn đầu tiên, hoặc thậm chí nhiều lần sau đó. Nhưng đừng vội nản chí, với sự chuẩn bị và kiên trì, bạn hoàn toàn có thể tìm được công việc mơ ước. Hy vọng rằng sau khi đọc bài viết này, bạn đã hiểu rõ hơn về chuẩn bị tốt hơn cho buổi phỏng vấn về lập trình.