Cách đây không lâu tôi có dịp phỏng vấn Matt Langan và Christian Macolino, hai Senior Tech Recruiters tại Atlassian. Mục đích là để có được cái nhìn chân thực nhất về quy trình tuyển dụng lập trình viên, từ góc độ của những chuyên gia tìm kiếm tài năng của một công ty phần mềm 3.3 tỉ USD.
I. CV và portfolio trực tuyến
Hãy bắt đầu với CV/resume (sơ yếu lí lịch) và portfolio (bộ sưu tập dự án cá nhân). Thông qua những tài liệu này, chúng ta có thể giới thiệu tất cả điểm nổi bật của bản thân cho bất kì ai tham gia vào quy trình tuyển dụng.
Thực tế, developer thường đầu tư nhiều thời gian cho phần này hơn việc tìm kiếm công việc để ứng tuyển.
Digital hay truyền thống?
Không phải lúc nào portfolio dưới dạng digital (VD: website cá nhân, CV trực tuyến) cũng được đánh giá cao hơn một hồ sơ soạn theo cách truyền thống. Thực tế, đối với những vị trí không liên quan đến công việc thiết kế, nhà tuyển dụng chỉ quan tâm làm sao lấy được đúng thông tin họ cần.
Tuy nhiên, ngày nay, cách dễ dàng nhất để lấy các thông tin trên là dựa vào một resume hay portfolio dưới dạng digital.
Nhắc đến digital resume, Christian cho biết:
Bí quyết để tạo một hồ sơ digital ấn tượng là đảm bảo bạn đã liệt kê đầy đủ và cập nhật thường xuyên những thông tin phù hợp về bản thân, để những gì bạn từng làm luôn có thể tìm kiếm được và nổi bật hẳn so với các ứng viên khác.
Chia sẻ này không chỉ áp dụng cho các doanh nghiệp lớn như Atlassian, mà còn cả với các công ty nhỏ, hay những công ty không hoạt động trong lĩnh vực công nghệ.
Đối với những công ty nhỏ như vậy, portfolio trực tuyến đôi khi còn đóng vai trò quan trọng hơn. Do không có nhiều chuyên môn hay khả năng để đánh giá năng lực thực sự của bạn, các công ty này thường lựa chọn giải pháp phân tích những thành tích bạn đạt được trong quá khứ, và làm việc này thậm chí còn kỹ hơn các công ty công nghệ lớn.
II. Lựa chọn con đường cho chính mình
Về việc developer nên học và bắt đầu sự nghiệp của mình như thế nào, Matt có lời khuyên sau:
Hãy thực hiện những side project, những sở thích của bạn, hãy bắt đầu 1 blog, thảo luận trên các diễn đàn, gia nhập vào cộng đồng Stack Overflow hay Github, đặt câu hỏi, đưa ra câu trả lời, thử sức với các cuộc thi lập trình, đến dự những buổi tech meetup.
Trong công việc hiện tại, hãy thành thạo những gì bạn đang làm, yêu cầu được giao thêm việc, và giúp đỡ những người khác phát triển – đặc biệt là những người ít kinh nghiệm hơn bạn.
Việc không ngừng học hỏi cũng rất quan trọng. Christian chia sẻ:
Năm năm đầu tiên trong sự nghiệp của bạn thực sự mang tính quyết định. Ở một vị trí mới hay tham gia vào một mảng mới, bạn phải giống như một miếng mút vậy, luôn sẵn sàng tiếp thu, tò mò, đặt câu hỏi.
Nhưng sau khi đạt mốc 4 hay 5 năm rồi, bạn đã biết nhiều hơn, mọi người sẽ tìm đến bạn để xin chỉ dẫn, cơ hội để bạn học hỏi sẽ ít dần đi. Do đó, nếu bạn học phải những thói quen hay phương pháp không tốt trong giai đoạn đầu của sự nghiệp, chúng sẽ theo bạn rất lâu sau này.
Tự đánh giá bản thân
Với những ai đã vượt qua khỏi mốc đó, có lẽ bây giờ là lúc để tự đánh giá lại bản thân mình.
Hãy dành một ít thời gian cân nhắc xem bạn đang ở đâu trên con đường sự nghiệp của mình. Bạn có còn đang học hỏi từ những đồng nghiệp, người dùng, từ những dự án của mình không? Bạn có đang tự cải thiện và phát triển bản thân thông qua những side project cá nhân không? Bạn có còn đam mê với công việc của mình không?
Tìm kiếm đam mê
Đối với rất nhiều công ty, đam mê lập trình là một yếu tố cực kì quan trọng. Đặc biệt với những vị trí ít kinh nghiệm (junior), yếu tố ấy nhiều lúc còn đóng vai trò lớn hơn một bằng cấp hay kiến thức cụ thể nào đó.
Tuy nhiên, rất nhiều trong số chúng ta mải chú ý vào việc giữ lấy công việc cho bản thân mà quên mất thuở ban đầu, điều gì đã khiến mình hứng thú với lập trình. Chúng ta không nhận ra rằng, đôi khi chính niềm đam mê và động lực đưa ta đến vị trí hiện tại mới là thứ mà nhà tuyển dụng đang tìm kiếm.
Thay đổi
Nếu hiện tại bạn đang làm một lập trình viên, mà bạn không còn học hỏi và không còn đam mê với sự nghiệp của mình nữa, đã đến lúc ban nên cân nhắc xem mình cần phải làm gì để giải cứu bản thân khỏi tình thế đó và thay đổi mọi thứ.
Có thể chỉ đơn giản là thay đổi thái độ của bạn đối với công việc, hay là thử sức với những task mới ở công ty. Hoặc đó cũng có thể là những thay đổi lớn như đổi vị trí việc làm, đổi công ty, thậm chí là đổi nghề. Đừng bằng lòng với thực tại chỉ vì làm vậy dễ hơn là thay đổi.
III. Full-stack hay chuyên môn hóa
Rất nhiều developer gặp khó khăn với lựa chọn này, dù là mới vào nghề hay đã có kinh nghiệm lâu năm. Trở thành chuyên gia của 1 ngôn ngữ, hay trở thành 1 lập trình viên full-stack, bên nào tốt hơn?
Thành thạo một mảng nào đó
Mục tiêu cho những người mới bắt đầu là tiếp xúc với càng nhiều thứ càng tốt, sau đó bắt đầu đi sâu vào một mảng và trở thành chuyên gia trong mảng đó.
Dù vậy, trong thời gian rảnh của mình, hãy tiếp tục nghiên cứu những vấn đề khác. Sau khi cảm thấy đã vững về mảng hiện tại rồi, bạn có thể bắt đầu nghĩ đến chuyện mở rộng kĩ năng nghề nghiệp của mình.
Tuy nhiên, cũng cần phải đa năng
Những nhà tuyển dụng tìm kiếm lập trình viên có kinh nghiệm (senior) xác nhận rằng việc có một nền tảng kiến thức rộng cũng rất cần thiết.
Hãy thử sức với các dự án, ngôn ngữ và vai trò khác nhau, cả ở công ty lẫn những side projects của bạn, để giúp bản thân bạn trở nên đa năng hơn, và làm phong phú thêm kĩ năng của mình.
Matt cho biết:
Chúng tôi muốn tuyển những người có thể hiểu được công nghệ từ khâu ý tưởng cho đến lúc thực thi.
Christian cũng nhận xét tương tự về lợi ích của full-stack:
Ngôn ngữ hay nền tảng chỉ đơn giản là những công cụ để giải quyết vấn đề của doanh nghiệp. Công nghệ đang phát triển nhanh đến mức những gì được xem là hiện đại và phù hợp trong hôm nay có thể trở nên thừa thãi vào ngày mai. Chúng tôi cần những người luôn muốn học hỏi và phát triển không ngừng để kịp với tốc độ thay đổi của công nghệ.
Christian bổ sung thêm rằng, thay vì chỉ tập trung vào một lĩnh vực, một kĩ sư phần mềm còn cần thêm nhiều tố chất khác như:
- Khả năng lập trình căn bản
- Hiểu biết vững vàng về kiến trúc hệ thống
- Kiến thức sâu và rộng về lập trình phần mềm
- Khả năng cân bằng giữa những mâu thuẫn và thích ứng để giải quyết công việc
- Đam mê
- Kĩ năng giao tiếp
- Khả năng hoàn thành đúng và kịp yêu cầu.
Lời khuyên cho các developer là hãy nghĩ về việc xây dựng kĩ năng của mình như hình một chữ T. Có nghĩa là, lựa chọn 1 lĩnh vực để đào sâu vào, nhưng đừng giới hạn bản thân trong mỗi lĩnh vực đó. Hãy tiếp tục học hỏi và mở rộng kiến thức của mình, vì có thể kiến thức đó sẽ trở thành chuyên môn của bạn trong công việc tiếp theo.
IV. Tìm kiếm một sự nghiệp, không phải một vị trí
Atlassian, cũng như nhiều công ty khác, tuyển một người có tài đơn giản chỉ vì muốn sở hữu tài năng của anh ta, chứ không phải để tìm người lấp vào một vị trí còn trống trong team.
Do đó, đôi khi quan trọng nhất là đặt được chân vào công ty, còn việc để bạn tập trung vào một vị trí hay lĩnh vực nào sẽ do công ty tiến hành sau khi tuyển dụng kết thúc.
Điều này khiến việc cân nhắc kĩ mục tiêu của bạn lúc lựa chọn công ty trở nên quan trọng hơn bao giờ hết. Đừng chỉ nộp đơn vì công việc. Hãy nghiên cứu công ty mà bạn chọn. Tìm hiểu về nhân viên nhân sự và tuyển dụng của họ, tìm cách để người ta biết tới mình.
Hãy tìm cho mình một môi trường cho phép bạn làm việc chung với các developer tài năng. Từ đó, bạn sẽ dễ dàng học hỏi từ những đàn anh, đồng nghiệp cùng trang lứa, và thậm chí là cả những đàn em sau này.
V. Hãy khiến bản thân đáng chú ý
Khi tôi hỏi Matt và Christian rằng trong suốt thời gian tìm kiếm developer cho Atlassian, họ có câu chuyện thú vị nào về những ứng viên hoặc là ứng tuyển thành công ngay lập tức, hoặc là bị từ chối ngay lập tức không, cả hai đều không nghĩ ra được gì.
Nguyên nhân chính là vì Atlassian, cũng như nhiều công ty công nghệ lớn khác, thường theo đuổi những tài năng trong tầm ngắm sẵn của họ, hơn là tự chờ những ứng viên tìm đến với mình.
Do đó, bài học ở đây là: Hãy khiến bản thân đáng chú ý.
Các cách để gây chú ý
Viết blog. Đóng góp vào các mã nguồn mở. Sử dụng mạng xã hội. Hãy tạo cho mình một sự hiện diện trên internet. Tương tác với các bạn bè của mình trong cộng đồng developer như GitHub, các diễn đàn của SitePoint, Stack Overflow, và nhiều cộng đồng khác.
Cung cấp đầy đủ thông tin trên hồ sơ trực tuyến của mình
Khi một người giới hạn lại những thông tin mà anh ta cung cấp, những nhà tuyển dụng như Matt và Christian cũng sẽ chẳng thể nào tiếp cận anh ta được nữa. Nhà tuyển dụng chỉ có thể ra quyết định liên lạc với ai dựa trên những thông tin mà họ có thể tìm được.
VI. Phỏng vấn lập trình viên
Dưới đây là 6 điểm cần lưu ý mà Matt và Christian chia sẻ từ những buổi phỏng vấn thực tế của họ:
1. Nghiên cứu công ty
Hãy đọc qua website và blog của công ty. Xem các video, cảm nhận văn hóa của họ, và tìm hiểu tin tức về công ty cũng như các dự án mà họ đang tiến hành.
Nắm vững thông tin cho thấy bạn thực sự có hứng thú, đồng thời giúp bạn chuẩn bị tốt hơn để có thể thảo luận về công ty một cách thông minh và đặt những câu hỏi phù hợp.
2. Kiểm tra thông tin người phỏng vấn
Hãy xem qua LinkedIn và những nguồn thông tin khác để hiểu hơn về những người sẽ gặp và phỏng vấn bạn.
3. Chuẩn bị những kĩ năng cần thiết
Bạn cần phải biết mình có thể sẽ được test những kĩ năng nào. Nếu bạn không biết, hãy tìm cách để điều tra ra. Sau đó hãy chuẩn bị thật vững những kĩ năng này, cho dù bạn có tự tin đến mức nào đi chăng nữa. Đừng để một câu hỏi đơn giản về code phá hỏng mất cơ hội của bạn trong lúc hồi hộp.
4. Luyện tập
Luyện tập pair programming online với bạn bè hay thông qua dịch vụ.
Nhiều vị trí developer trong các công ty phần mềm, hoặc các tổ chức lớn, yêu cầu bạn phải vượt qua một bài test về pair programming, hoặc chí ít là quan sát xem cách bạn code như thế nào.
Nếu không, có thể họ sẽ áp dụng pair programming cho các developers của mình trong trường hợp bạn được tuyển.
Dù sao đi nữa, nếu bạn không quen với pair programming, hãy tập làm quen với nó, dù chỉ là một ít.
5. Hiểu rõ bản thân mình
Hãy nhớ lại những tình huống ứng xử, những câu chuyện, thất bại và thành công mà bạn đã từng trải qua trong học tập cũng như làm việc. Hãy hiểu rõ con đường mà bạn đã đi qua, điểm mạnh và điểm yếu của bạn với tư cách là một developer hay là một thành viên trong team.
6. Bạn cũng có quyền đặt câu hỏi
Nên nhớ rằng buổi phỏng vấn không chỉ dành cho nhà tuyển dụng để quyết định xem họ có cần bạn hay không. Đó cũng là cơ hội để bạn quyết định xem liệu bạn có cần họ.
Khi một người phỏng vấn hỏi bạn có câu hỏi gì không, bạn nên đặt câu hỏi. Hãy hỏi về định hướng phát triển của những dự án mà có thể bạn sẽ tham gia, hoặc hỏi về mục tiêu của công ty, hoặc hỏi về vai trò của bạn trong sự phát triển của công ty như thế nào.
Nếu bạn có bất kì ý tưởng nào cho những dự án hay muốn bổ sung thêm điều gì vào dịch vụ của họ, hãy cho họ biết.
Hãy là một người thú vị, và đồng thời thể hiện mình có hứng thú với công ty. Đây vừa là cơ hội cho bạn tìm hiểu về họ, cũng như là cơ hội cho họ hiểu rõ hơn về bạn.
VII. Giờ là lúc bạn ứng tuyển thành công
Điều quan trọng là phải nhớ rằng, phần lớn những lời khuyên trong bài viết này phụ thuộc hoàn toàn vào bạn.
Nếu bạn muốn một vị trí, bạn phải đấu tranh vì nó. Bạn có thể sẽ phải mất nhiều thời gian và công sức để chuẩn bị đầy đủ những hành trang liệt kê ở trên. Nhưng đến cuối cùng, tất cả nỗ lực bạn bỏ ra đều xứng đáng cả.