Trải nghiệm và suy ngẫm về phỏng vấn của một lập trình viên lớn tuổi
Lời giới thiệu: Tác giả bài viết năm nay 36 tuổi, đã có 8 năm kinh nghiệm phát triển JAVA. Tác giả từng làm việc tại Alibaba Cloud ba năm rưỡi và Youzan bốn năm rưỡi, đã là một lập trình viên lớn tuổi đúng nghĩa. Trong bài viết này, tác giả đưa ra một số gợi ý nhỏ rất thực tế về phỏng vấn và nâng cao năng lực cá nhân!
Tổng quan nội dung:
- Giới thiệu bản thân là một cơ hội để nhận thức bản thân rõ ràng, sâu sắc và toàn diện hơn.
- CV là phần tinh túy cô đọng để thể hiện đầy đủ bản thân, đồng thời là cơ hội nhìn nhận lại bản thân và những trải nghiệm trước đây. Không chỉ giới thiệu ngắn gọn kỹ năng và kinh nghiệm, mà còn phải làm nổi bật tối đa lĩnh vực thế mạnh của mình (sự khác biệt).
- Cá nhân tôi không ủng hộ việc rải CV hàng loạt, mà nghiêng về việc ứng tuyển có định hướng. Xác định đúng hướng rồi ứng tuyển, tuy mục tiêu ít hơn nhưng hiệu quả hơn.
- Khi khám phá kỹ thuật, nhất định phải hiểu nguyên lý trước. Không hiểu nguyên lý thì sẽ chỉ dừng ở bề mặt, không thể thực sự nắm vững nó. Tìm hiểu nguyên lý kỹ thuật cần đi sâu đến mức nào? Thiết kế data structure và algorithm, các yếu tố cân nhắc, cơ chế kỹ thuật, tư duy tối ưu. Cần mô phỏng lại trong đầu cho đến khi mọi chi tiết đều rõ ràng. Nếu có thể trình bày rõ ràng, mạch lạc thì càng tốt. Tìm hiểu nguyên lý kỹ thuật nhất định phải đọc source code. Đọc source code và không đọc source code là khác nhau. Không đọc source code thì dù có thể nói ra, vẫn như cách một lớp giấy; đọc source code mới chọc thủng lớp giấy đó, có cách hiểu của riêng mình, từ đó nói cũng tự tin hơn. Tất nhiên, cũng có thể là tôi thiếu khả năng diễn xuất.
- Phải biết học hỏi từ thất bại. Chính nhờ bốn tháng liên tục học tập, suy nghĩ, tích lũy và chắt lọc trong thời gian trống ở Hàng Châu, cùng với việc suy ngẫm về thất bại trong phỏng vấn, liên tục điều chỉnh đối sách, hoàn thiện việc chuẩn bị, cải thiện những điểm yếu trước đây và áp dụng cách thức hợp lý hơn, tôi mới nhận được một offer khá hài lòng chỉ trong hai tuần ngắn ngủi sau khi trở về Vũ Hán.
- Phỏng vấn là quá trình hai bên tìm hiểu nhau thông qua giao tiếp. Câu hỏi trong phỏng vấn biến hóa muôn hình vạn trạng, nhưng có một số câu hỏi cần được chuẩn bị trước.
Địa chỉ bài gốc: https://www.cnblogs.com/lovesqcc/p/14354921.html
Học hỏi từ mỗi trải nghiệm, rèn luyện bản thân trong mỗi việc. Biết học hỏi từ nghịch cảnh.
Mở đầu
Năm nay tôi 36 tuổi, đã có 8 năm kinh nghiệm phát triển JAVA. Tôi từng làm việc tại Alibaba Cloud ba năm rưỡi và Youzan bốn năm rưỡi, đã là một lập trình viên lớn tuổi đúng nghĩa.
Qua nhiều năm đọc sách, học tập và suy nghĩ, hệ giá trị, nhân sinh quan và thế giới quan của tôi cũng dần hình thành. Tôi nhận ra sở thích và chí hướng của mình nằm ở lĩnh vực giáo dục và văn hóa, nên trong một phút bốc đồng, vào cuối tháng 8, tôi nghỉ việc không báo trước để tìm việc mới. Lý tính hữu hạn khó ngăn được tính cách bốc đồng. Không khuyến khích nghỉ việc không báo trước; làm việc gì cũng nên có kế hoạch, khoa học và hợp lý.
Dù ban đầu cho rằng mình “có lý tưởng, có mục tiêu, có nguyện vọng, có năng lực”, tìm một công việc phát triển trong lĩnh vực giáo dục hẳn không khó, nhưng thực tế tôi vẫn quá lạc quan. Hiện thực nhanh chóng dội hết gáo nước lạnh này đến gáo nước lạnh khác lên tôi. Tôi liên tiếp thất bại, rồi lại liên tiếp chiến đấu sau thất bại. Tôi ngạc nhiên khi phát hiện mình vẫn có sự bền bỉ như vậy. Phỏng vấn là một quá trình rèn luyện; nếu không bị thất bại đánh gục, bạn sẽ trưởng thành thêm sự bền bỉ từ đó, và sự bền bỉ ấy giúp bạn đi xa hơn. Ai mà chưa từng trải qua rèn luyện từ thất bại? Thất bại là người thầy vĩ đại nhất, nếu bạn sẵn lòng học hỏi từ nó.
Trong quá trình phỏng vấn, tôi nhanh chóng nhận ra những điểm yếu của mình:
- Dồn sức làm business nên độ sâu kỹ thuật chưa đủ, hiểu biết về nguyên lý chỉ dừng ở tầng khá nông;
- Tầm nhìn chưa đủ rộng, bị giới hạn trong business line đơn hàng mình phụ trách, hiểu biết về các business line liên quan khác (như sản phẩm, marketing, thanh toán...) chưa đủ;
- Tư duy chưa đủ rộng, phần lớn thời gian dành cho phát triển và testing, ít suy nghĩ về vận hành, sản phẩm, business và khía cạnh thương mại;
- Thiếu kinh nghiệm quản lý, tuổi lại khá cao; tôi từng đánh giá thấp hai điểm bất lợi này, nhưng chúng dần lộ rõ, thậm chí có lúc khiến tôi mất tự tin, nhưng cuối cùng tôi vẫn vượt qua được.
Nhưng tôi cũng có thế mạnh riêng. Quy luật cơ bản của cạnh tranh nghề nghiệp là tính khan hiếm và sự khác biệt. Có thể giải quyết thiết kế architecture của dự án lớn, chinh phục vấn đề kỹ thuật khó và thành thạo một lĩnh vực kỹ thuật cao cấp là biểu hiện của tính khan hiếm; làm việc chặt chẽ, chu toàn, tinh tế, có kinh nghiệm phát triển hệ thống high concurrency và high traffic là biểu hiện của sự khác biệt. Tính khan hiếm là thượng sách, sự khác biệt là trung sách, còn hạ thấp yêu cầu để cầu việc là hạ sách.
Tôi thiếu lợi thế về tính khan hiếm, nhưng vẫn có một chút lợi thế khác biệt:
- Với mỗi công việc đều rất nghiêm túc, thời gian làm việc đều trong khoảng 3 - 5 năm, có một chút hào quang từ các công ty lớn, nên có thể nhận được nhiều cơ hội phỏng vấn hơn (dù chưa chắc đã phỏng vấn đậu);
- Kiên trì viết blog, không ngừng theo đuổi “đạo” của phát triển software, thường xuyên suy nghĩ và ghi lại những vấn đề gặp phải trong quá trình phát triển cùng giải pháp;
- Làm việc nghiêm túc, cẩn trọng, có thể phân tích và suy nghĩ vấn đề từ tổng thể, đồng thời rất chú trọng nâng cao nền tảng;
- Có kinh nghiệm thực tiễn về chất lượng engineering, tối ưu performance, xây dựng tính ổn định và thiết kế cấu hình hóa business;
- Có kinh nghiệm phát triển và bảo trì hệ thống microservice high traffic trong thời gian dài.
Số công ty tôi gửi CV không nhiều. Qua một số ít cuộc phỏng vấn, tôi dần nhận ra những lời như “giành được offer từ hàng chục công ty lớn” trên mạng không đáng tin. Lý do như sau:
- Nếu thật sự có thể giành được rất nhiều offer từ các công ty lớn, cấp bậc phỏng vấn rất có khả năng là engineer cấp junior. Nên biết rằng phỏng vấn engineer có hơn 4 năm kinh nghiệm có độ sâu và độ rộng đáng sợ, từ algorithm cơ bản, nguyên lý và cơ chế của đủ loại middleware đến architecture vận hành thực tế, không gì không bao quát, đúng là đắm mình trong “đại dương kỹ thuật”, trừ khi nền tảng và năng lực của một người vô cùng mạnh, bình thường cũng đã tích lũy rất sâu và rộng;
- Một người có nền tảng và năng lực vô cùng mạnh sẽ không hứng thú bỏ ra nhiều công sức như vậy để phỏng vấn đủ loại công ty chỉ nhằm khoe mình tài giỏi đến đâu; người càng giỏi càng có logic lựa chọn riêng, CV gửi đi sẽ càng có định hướng và chính xác. Nói cách khác, tại sao họ không dành thêm công sức cho những doanh nghiệp xuất sắc có thể mang lại lợi ích tối đa cho mình?
- Quảng cáo của các tổ chức đào tạo. Vì họ hiểu rõ nhất người mới cần sự tự tin, dù đó là sự tự tin được ngụy trang.
Được rồi, không nói chuyện phiếm nữa. Tôi sẽ kể về những trải nghiệm và suy ngẫm của mình trong các cuộc phỏng vấn.
Công tác chuẩn bị
Cuộc đời có lẽ rất dài, nhưng thời gian phỏng vấn rất ngắn, dài nhất cũng chỉ một giờ hoặc một tiếng rưỡi. Làm sao người khác có thể hiểu bạn, một người đã sống hơn ba mươi năm, rõ ràng hơn trong một giờ ngắn ngủi? Điều này đòi hỏi bạn phải thực hiện rất nhiều công tác chuẩn bị tỉ mỉ. Ở một mức độ nào đó, phỏng vấn và khiêu vũ có điểm tương đồng: năm phút trên sân khấu, mười năm khổ luyện dưới sân khấu.
Công tác chuẩn bị chủ yếu gồm chuẩn bị CV, giới thiệu bản thân, tìm hiểu công ty, khám phá kỹ thuật, năng lực trình bày, câu hỏi thường gặp, vị trí cấp trung và cấp cao, cùng tâm lý tốt. Công tác chuẩn bị là một lần nhận thức lại toàn diện và sâu sắc về bản thân cũng như thế giới bên ngoài.
Ban đầu, tôi nghĩ mình đã chuẩn bị rất đầy đủ, chỉ cần sửa qua CV là xong. Sau nhiều lần gặp trở ngại, tôi mới nhận ra mình chuẩn bị chưa đủ. Theo tôi hiện nay, chuẩn bị chiếm bảy phần, ứng biến chiếm ba phần. Chuẩn bị là biết mình biết người, biết đối phương sẽ hỏi những vấn đề nào (thường là độ sâu và độ rộng của system/project/technical), mình nên trả lời ra sao; ứng biến là khi gặp vấn đề không biết, không hiểu hoặc chưa từng biết, phải thể hiện hướng giải quyết hợp lý của mình như thế nào, đồng thời dựa vào những câu hỏi không trả lời được trong phỏng vấn để bổ sung thiếu sót và củng cố nền tảng.
Thực tế quá trình này cũng là quá trình học tập: liên tục phản tỉnh và chắt lọc, học nội dung mới, nhận thức lại bản thân và những trải nghiệm trước đây.
Chuẩn bị CV
Ban đầu tôi làm khá đơn giản. Tôi lấy CV cũ ra, thêm kinh nghiệm công việc mới, sửa sơ qua, nhưng về tổng thể template hầu như không thay đổi.
Về mặt nền tảng, tôi làm khá kỹ: thành thật viết những kỹ năng, kinh nghiệm và trải nghiệm mình giỏi và quen thuộc, đồng thời cố gắng trình bày gọn gàng, đẹp mắt (tôi từng học một chút về UI design). Không khoa trương cũng không cố tỏ ra khiêm tốn.
Về mặt mở rộng, tôi vẫn chưa làm đủ. Một ngày nọ, một headhunter gọi điện hỏi tôi: “Thế mạnh lớn nhất của bạn là gì?”. Tôi lập tức không biết trả lời. Khi đó tôi cũng chưa suy nghĩ nhiều. Sau nhiều lần phỏng vấn thất bại, có lúc mất tự tin, tôi bắt đầu suy nghĩ kỹ về thế mạnh của mình. Sau đó, tôi viết “có suy nghĩ và kinh nghiệm thực tiễn sâu sắc về chất lượng engineering, tối ưu performance, xây dựng tính ổn định và thiết kế cấu hình hóa business” ở dòng đầu tiên của mục “Năng lực kỹ năng”, vì đây thực sự là điều tôi từng làm, thiết thực, vững vàng và có tính khái quát nhất.
Đôi khi thứ tự sắp xếp nội dung CV cũng rất quan trọng. Trước đây, tôi viết các ngôn ngữ và kỹ thuật mình nắm được ở phía trước, còn những nội dung như “năng lực quản lý project và sức ảnh hưởng trong team” ở phía sau. Nhưng sau khi ứng tuyển vào Nian-gao Mama mà không được phỏng vấn, trực tiếp bị chuyển sang vị trí không phù hợp, tôi bị kích thích và nhận ra có lẽ đối phương cho rằng kinh nghiệm quản lý của tôi chưa đủ. Vì vậy, tôi cố ý đưa “năng lực quản lý project và sức ảnh hưởng trong team” lên trước, thể hiện rằng mình coi trọng khía cạnh quản lý. Tuy nhiên, sau khi gửi CV mới, không có phản hồi. Tôi nhận ra thứ tự này có thể khiến người khác hiểu lầm rằng tôi thiên về năng lực quản lý (thực tế có một HR hỏi tôi có còn viết code không), trong khi năng lực quản lý của tôi thực sự còn thiếu. Cuối cùng, tôi đưa thứ tự về như cũ để làm nổi bật “bản chất engineer” của mình. Sau đó, tôi lại sửa thêm một số cách sắp xếp câu chữ.
Khi phỏng vấn tiến triển, đôi khi tôi cũng nhận ra CV của mình viết chưa đủ hoặc trước đây mình làm chưa đủ. Ví dụ, trong trải nghiệm export đơn hàng, tôi chỉ viết là đã cải thiện đáng kể performance và tính ổn định, trông khá định tính, nên bổ sung một số con số định lượng (2w blocking => 3m+,10k/1min) để chứng minh; ví dụ, tôi nghỉ việc vào tháng 8, đến tháng 12 phỏng vấn thì có một khoảng trống, một số doanh nghiệp sẽ hỏi về chuyện này. Vì vậy, tôi thêm một câu giải thích thời gian đó mình đã làm gì; ví dụ, với các system và project tiêu biểu, cần nắm rõ giá trị và ý nghĩa của từng system và project (không nhất thiết phải viết lên CV, nhưng phải biết trong lòng). Phải bỏ đủ công sức.
Ví dụ khác, tôi viết rất chi tiết về kinh nghiệm và trải nghiệm làm việc tại Youzan, nhưng hầu như không sửa phần làm việc tại Alibaba Cloud. Một số doanh nghiệp lại quan tâm hơn đến giai đoạn này, trong khi tôi cảm thấy không có nhiều điều để nói; trong trí nhớ chỉ còn một ít điều ấn tượng sâu sắc và một số ghi chép trong bài blog, quá mỏng so với trải nghiệm làm việc này. Về bản chất, đây không phải vấn đề của CV, mà là vấn đề nhìn lại trải nghiệm trước đây. Khuyến nghị sau khi kết thúc mỗi project, hãy viết một bản tự tổng kết. Tránh để thời gian làm phai nhạt những trải nghiệm quý giá đó.
Thực ra mỗi người đều có rất nhiều điều để nói, nhưng có bao nhiêu điều được ghi lại? Có bao nhiêu điều đáng để kể? Trước đây không nỗ lực, đến phỏng vấn chỉ còn tiếc nuối.
Kinh nghiệm cập nhật CV:
- CV là phần tinh túy cô đọng để thể hiện đầy đủ bản thân, đồng thời là cơ hội nhìn nhận lại bản thân và những trải nghiệm trước đây;
- Không chỉ giới thiệu ngắn gọn kỹ năng và kinh nghiệm, mà còn phải làm nổi bật tối đa lĩnh vực thế mạnh của mình (sự khác biệt);
- Cải thiện cách trình bày kinh nghiệm làm việc, làm nổi bật đóng góp để giành được sự công nhận của người khác;
- Tổng kết và ghi lại thu hoạch trong từng project, tạo nền tảng tốt cho việc chuyển việc và phỏng vấn.
Giới thiệu bản thân
Trước phỏng vấn, thông thường bạn sẽ được yêu cầu giới thiệu ngắn gọn về bản thân. Giới thiệu bản thân thường là khúc dạo đầu và giai đoạn đệm để bước vào phỏng vấn, giúp giảm bớt không khí căng thẳng.
Phần giới thiệu bản thân ban đầu của tôi gồm tính cách, cuộc sống ngoài giờ, kinh nghiệm làm việc, sở thích..., dường như không biết nên nói gì. Thực tế, giới thiệu bản thân là một trang chủ để thể hiện đầy đủ bản thân. Trang chủ phải khiến thế mạnh cốt lõi nhất của mình rõ ràng ngay trước mắt (cần đào sâu trải nghiệm của bản thân và chắt lọc kỹ). Hiện nay phần giới thiệu bản thân của tôi thường gồm: tính cách (ví dụ khá trầm), phong cách làm việc (nghiêm túc, cẩn trọng, coi trọng chất lượng, giỏi suy nghĩ tổng thể), thế mạnh lớn nhất (owner consciousness, execution, năng lực kiểm soát engineering), tóm tắt kinh nghiệm làm việc (tại mỗi công ty phụ trách gì, đóng góp gì, đạt được gì). Giới thiệu bản thân cần ngắn gọn, súc tích, không cần dài dòng.
Giới thiệu bản thân là một cơ hội để nhận thức bản thân rõ ràng, sâu sắc và toàn diện hơn.
Tìm hiểu công ty
Nhiều người có thể giống tôi, hiểu rất ít về business của công ty nhưng đã gửi CV ngay. Điều này thực ra không hợp lý. Trước hết, cá nhân tôi không ủng hộ việc rải CV hàng loạt, mà nghiêng về việc ứng tuyển có định hướng. Xác định đúng hướng rồi ứng tuyển, tuy mục tiêu ít hơn nhưng hiệu quả hơn. Điều này giống như thuê nhà, tôi thường thuê nhà trên Douban; tuy nguồn mục tiêu ít nhưng bắt được một căn là may mắn.
Ứng tuyển một công ty là vì công ty đó phù hợp với nguyện vọng và đáng để cố gắng, chứ không phải vì đó là một công ty. Giống như tìm người yêu, không phải để tìm một người phụ nữ. Để xác định công ty có phù hợp với nguyện vọng hay không, nên tìm hiểu nhiều hơn về công ty: business chính, định hướng và quy hoạch phát triển tương lai, ngành và vị trí trong ngành, tình hình tài chính, đánh giá trong ngành và trên mạng...
Trong phỏng vấn, chủ động nói phù hợp về business và suy nghĩ của công ty là một điểm cộng. Điều này cũng có thể dùng khi hỏi “Bạn có điều gì muốn hỏi không?”.
Khám phá kỹ thuật
Năng lực kỹ thuật là tố chất cơ bản của người làm kỹ thuật. Vì vậy, tôi cho rằng bất kể sau này làm công việc gì, năng lực kỹ thuật vững vàng luôn là điều thiết yếu nhất không thể xem nhẹ.
Nguyên lý và tư tưởng thiết kế là phần tinh túy nhất của kỹ thuật software. Nhìn chung, kỹ thuật software có thể chia thành hai phương diện:
- Nguyên lý: quy luật và quy trình cơ bản về cách sự vật vận hành;
- Architecture: nghệ thuật tổ chức logic quy mô lớn.
Khi khám phá kỹ thuật, nhất định phải hiểu nguyên lý trước. Không hiểu nguyên lý thì sẽ chỉ dừng ở bề mặt, không thể thực sự nắm vững nó. Tìm hiểu nguyên lý kỹ thuật cần đi sâu đến mức nào? Thiết kế data structure và algorithm, các yếu tố cân nhắc, cơ chế kỹ thuật, tư duy tối ưu. Cần mô phỏng lại trong đầu cho đến khi mọi chi tiết đều rõ ràng. Nếu có thể trình bày rõ ràng, mạch lạc thì càng tốt.
Tìm hiểu nguyên lý kỹ thuật nhất định phải đọc source code. Đọc source code và không đọc source code là khác nhau. Không đọc source code thì dù có thể nói ra, vẫn như cách một lớp giấy; đọc source code mới chọc thủng lớp giấy đó, có cách hiểu của riêng mình, từ đó nói cũng tự tin hơn. Tất nhiên, cũng có thể là tôi thiếu khả năng diễn xuất.
Cá nhân tôi không quá ủng hộ kiểu phỏng vấn học thuộc câu hỏi. Dù việc luyện câu hỏi quả thực là đường tắt để vào công ty lớn, nó cũng có nhược điểm:
- Nó vẫn là knowledge system của người khác, chứ không phải knowledge system do chính mình tổng kết;
- Khám phá kỹ thuật là để chuẩn bị cho công việc tương lai, chứ không phải để đối phó nhu cầu nhất thời; nếu không, dù đã vào được công ty vẫn sẽ ở trạng thái tê liệt.
Sau khi hệ thống hóa, tôi dần hình thành cấu trúc knowledge system kỹ thuật phù hợp với mình: “Đề cương tư tưởng và cơ chế kỹ thuật thường dùng ở server của ứng dụng Internet”. Trên nền tảng này, tiếp tục học hỏi điểm mạnh của nhiều người, xem các câu hỏi phỏng vấn để tự kiểm tra và bổ sung thiếu sót là cách phù hợp hơn. Tôi sẽ tiếp tục đào sâu và hoàn thiện trên knowledge system này.
Năng lực trình bày
Hiện nay, hình thức phỏng vấn chính của phần lớn doanh nghiệp là giao tiếp bằng lời nói; một số ít doanh nghiệp có thể tổ chức thi viết hoặc coding test. Hình thức giao tiếp bằng lời nói có những giới hạn nhất định. Nó đòi hỏi khá cao về năng lực trình bày, nhưng không làm nổi bật rõ năng lực chuyên môn. Độ sâu và độ rộng về chuyên môn và kinh nghiệm một người nắm được rất khó thể hiện qua vài phút trình bày. Thường thì độ sâu và độ rộng càng lớn lại càng khó trình bày. Người làm kỹ thuật thường lại ít chú trọng diễn đạt.
Bình thường tôi viết nhiều, nói ít, nên nói không lưu loát. Đôi khi chưa nói rõ bối cảnh đã trực tiếp triển khai, cộng thêm dài dòng, nhảy ý và vòng vo (cách này có thể phù hợp hơn với viết tiểu thuyết), khiến interviewer đôi khi không hiểu nổi. Tính mạch lạc và rõ ràng khi trình bày cũng rất quan trọng. Bạn có thể tự kiểm tra: Architecture design của Dubbo như thế nào? Cơ chế persistence của Redis như thế nào? Sau đó thử tự trả lời.
Nguyên tắc cơ bản của năng lực trình bày:
- Nói tổng quát trước, nói chi tiết sau; nói tổng thể trước, nói cục bộ sau;
- Nói tư duy cơ bản trước, sau đó nói về tối ưu;
- Thể hiện sự tương tác. Tóm tắt trước, sau đó hỏi interviewer muốn nghe khía cạnh nào rồi mới trình bày chi tiết. Tránh trút hết mọi thứ cùng lúc khiến interviewer trở tay không kịp; với câu hỏi tình huống về system design, hãy hỏi thêm một số yêu cầu, chẳng hạn yêu cầu về thời gian, yêu cầu về space, cần hỗ trợ bao nhiêu data hoặc concurrency, có cần cân nhắc tình huống nào đó hay không...
Câu hỏi thường gặp
Phỏng vấn là quá trình hai bên tìm hiểu nhau thông qua giao tiếp. Câu hỏi trong phỏng vấn biến hóa muôn hình vạn trạng, nhưng có một số câu hỏi cần được chuẩn bị trước.
Ví dụ như “5 câu hỏi linh hồn”:
- Vì sao bạn nghỉ việc ở XXX?
- Mức lương kỳ vọng của bạn là bao nhiêu?
- Bạn có một khoảng trống trong CV, có thể giải thích chuyện gì đã xảy ra không?
- Định hướng nghề nghiệp của bạn như thế nào?
Câu hỏi kỹ thuật thường gặp:
- Nền tảng: data structure và algorithm, network;
- Microservice: technical system, component, infrastructure...;
- Dubbo: architecture tổng thể của Dubbo, cơ chế mở rộng, expose service, reference, invocation, graceful shutdown...;
- MySQL: nguyên lý thực hiện index và transaction, tối ưu SQL, sharding;
- Redis: data structure, cache, distributed lock, cơ chế persistence, cơ chế replication;
- Distributed: distributed transaction, vấn đề consistency;
- Message middleware: nguyên lý, so sánh;
- Architecture: phương pháp thiết kế architecture, kinh nghiệm architecture, design pattern;
- Tối ưu performance: JVM, GC, tối ưu performance ở application layer;
- Nền tảng concurrency: ConcurrentHashMap, AQS, CAS, thread pool...;
- High concurrency: I/O multiplexing; vấn đề cache và giải pháp;
- Tính ổn định: tư tưởng và kinh nghiệm về tính ổn định;
- Vấn đề production: công cụ và phương pháp điều tra.
Vị trí cấp trung và cấp cao
Nói thật, có lẽ tôi là người hơi thiếu tự tin. Tôi gửi CV với suy nghĩ “vững vàng làm một engineer”.
Với lập trình viên lớn tuổi, doanh nghiệp kỳ vọng cao hơn. Mỗi lần tôi ứng tuyển vị trí “Senior Engineer”, vị trí đó tự động bị chuyển thành “Technical Expert” hoặc “Architect”. Không thể phản bác, áp lực tăng lên rất nhiều. Phỏng vấn vị trí cấp trung và cấp cao cần chuẩn bị nhiều hơn:
- Bạn từng có kinh nghiệm dẫn dắt team chưa?
- Trong X năm kinh nghiệm làm việc, bạn đã dành bao nhiêu thời gian cho thiết kế architecture?
- Quy trình architecture như thế nào? Bạn có những tư tưởng hoặc phương pháp luận thiết kế architecture nào?
Nếu không chuẩn bị, bạn sẽ lập tức bị hỏi đến ngơ ngác, mất bình tĩnh. Thực tế có lẽ tôi vẫn mang tâm lý may rủi, coi vị trí “Technical Expert” và “Architect” như vị trí “Senior Engineer” để phỏng vấn, nên lần nào cũng thất bại. Rõ ràng tôi đã đảo ngược thứ tự: phải phỏng vấn Senior Engineer theo tiêu chuẩn của “Technical Expert” và “Architect”.
Được rồi, vậy thì đối mặt với khó khăn mà tiến lên! Tôi không phải người sợ thử thách.
Ngoài ra, vị trí “Technical Expert” và “Architect” nên dành ít nhất một ngày để chuẩn bị. Technical Expert và Architect đã có nhiều kinh nghiệm có thể bỏ qua.
Tâm lý tốt
Giữ tâm lý tốt cũng vô cùng quan trọng. Tôi đã trải qua quá trình thay đổi tâm lý từ “lạc quan - mất tự tin - lấy lại sự tự tin”.
Trong một thời gian dài, vì “nóng lòng muốn thành công”, sợ trả lời không được một vấn đề kỹ thuật nào đó rồi làm hỏng mọi chuyện, nên tôi thận trọng, hơi căng thẳng; kết quả là những điều đã hệ thống hóa trước đó thường không nói rõ được hoặc nói chưa đủ mạch lạc. Phỏng vấn với tâm lý “phải lấy được offer” thực sự rất khó chịu, sẽ cảm thấy mỗi cuộc phỏng vấn đều bị động và buồn bã như vậy, thậm chí có chút muốn “hạ thấp yêu cầu để cầu việc”.
Đôi khi tôi tự hỏi: Tại sao mình lại rơi vào tình cảnh này? Theo lý mà nói, lúc này tôi phải có năng lực theo đuổi sự nghiệp mình yêu thích chứ! Có lẽ bình thường tôi hơi lơ là, tầm nhìn hạn hẹp, tích lũy chưa đủ, dẫn đến hoàn cảnh bất lợi hôm nay.
Tôi là người đúng giờ và cũng mong đối phương cố gắng đúng giờ. Interviewer ở Hàng Châu về cơ bản đều đúng giờ; kể cả có đến muộn thì vẫn trong phạm vi tôi có thể chấp nhận về mặt tâm lý. Sau khi về Vũ Hán phỏng vấn, nhịp độ lại bị một số ít doanh nghiệp làm chệch hướng. Có một hai lần, tôi thậm chí không biết khi nào interviewer sẽ vào cuộc họp. Tôi nghĩ, chẳng lẽ đây là “sự tiếp đãi” mà nhân tài nên nhận được sao? Tôi cảm thấy hơi bị xúc phạm. Tuy nhiên, tôi vẫn “rất có giáo dưỡng” tỏ ý không sao. Nhưng tôi luôn cho rằng: interviewer đến muộn là thiếu tôn trọng nhân tài. Vào một công ty không tôn trọng nhân tài, tôi có nghi ngại. Chim tốt chọn cây mà đậu, tôi tốt chọn chủ mà phụng sự. Chẳng lẽ vì hoàn cảnh bất lợi lúc này mà tôi từ bỏ một số nguyên tắc và giới hạn cơ bản, khuất phục trước một offer từ công ty không tôn trọng nhân tài sao?
Tôi nhận ra rằng một người nên dùng thực lực của mình để giành được sự tôn trọng và đánh giá cao của đối phương, khi đó hợp tác sau này mới thuận lợi hơn. Nếu không được, dù tiếc vì không có duyên cũng không nên cố giữ. Bất kể người khác nghi ngờ thế nào, cứ chuyên tâm rèn giũa năng lực, đào sâu tài năng và thế mạnh của bản thân, rồi cuối cùng sẽ tỏa sáng theo cách riêng. Vì vậy, tâm lý của tôi lập tức thay đổi: nên tập trung giao tiếp, tìm hiểu đầy đủ về nhau với đối phương, giành được sự công nhận tâm phục khẩu phục của họ, chứ không phải chỉ lấy một tấm vé vào cửa để trở thành công cụ làm việc.
Có một câu chuyện nhỏ về “đá và ngọc”: coi mình là nhân tài và nỗ lực nâng cao bản thân thì mới nhận được “sự tiếp đãi dành cho nhân tài”; coi mình là đá rồi bán rẻ bản thân, buông lỏng nỗ lực, thì chỉ có thể nhận được “sự tiếp đãi dành cho đá”. Dù một người chưa chắc lập tức có năng lực của nhân tài, trong lòng vẫn nên quan sát doanh nghiệp mình sắp gia nhập từ góc nhìn của nhân tài, chứ không chỉ nhằm tìm một công việc “kiếm được nhiều tiền hơn”.
Ngoài ra, lo âu cũng không cần thiết. Bản chất của lo âu là khoảng cách giữa hiện thực và mục tiêu. Một người luôn có thể đánh giá tính hợp lý của mục tiêu và cách đạt được mục tiêu. Nếu mục tiêu quá cao, hãy điều chỉnh cấp độ mục tiêu cho phù hợp; nếu mục tiêu khả thi, hãy đưa ra quyết định hợp lý và đạt được mục tiêu thông qua nỗ lực bền bỉ cùng những lần chủ động đúng lúc. Năng lực ra quyết định, nỗ lực và chủ động hành động đều có thể liên tục rèn luyện.
Rèn luyện qua phỏng vấn
Phỏng vấn người làm kỹ thuật vẫn thiên về kỹ thuật hơn, vì vậy vẫn phải chuẩn bị tốt về độ sâu và độ rộng kỹ thuật. Hoàn cảnh của interviewer và ứng viên không giống nhau: một interviewer chỉ hỏi một số điểm nhỏ, nhưng nhiều interviewer cộng lại sẽ thành một mặt phẳng. Hiểu điều này, nếu bạn là interviewer thì đừng tự mãn, cho rằng mình giỏi hơn ứng viên.
Số doanh nghiệp tôi phỏng vấn không nhiều, vì tôi đã dự định theo đuổi sự nghiệp giáo dục; tiêu chí “sở thích và động lực” đã trực tiếp lọc bỏ rất nhiều lời mời phỏng vấn. Những cuộc phỏng vấn ở Hàng Châu cơ bản là với các doanh nghiệp giáo dục; ngay cả cành ô liu do Alibaba và Huawei đưa ra tôi cũng lịch sự từ chối (dù chưa chắc tôi đã phỏng vấn đậu). Cách làm này hơi “thẳng như đàn ông”, nhưng tập trung phần lớn công sức vào ngành và sự nghiệp mình mong muốn theo đuổi mới là điều đáng làm.
Sự nghiệp giáo dục mà tôi hình dung không chỉ giới hạn ở online education hoặc K12 education thường được nhắc đến hiện nay, mà là một hệ thống giáo dục, bao gồm và không giới hạn ở giảng dạy, đọc sách, âm nhạc, design... bất kỳ sự nghiệp nào có thể tạo ra hiệu quả giáo dục tốt hơn.
Jieli Technology - Senior Engineer
Đây là công ty đầu tiên tôi phỏng vấn. Sau một hồi trao đổi, không còn tin tức gì. Nhưng tôi cũng không quá để tâm. Interviewer hỏi khá nhiều về business giao dịch, nội dung tương đối sâu là làm thế nào bảo đảm consistency của data trong application.
Lúc này, tôi giống như đã ném một viên đá nhỏ trên đường để dò đường, vẫn chưa ý thức được hoàn cảnh của mình.
NetEase Cloud Music - Senior Engineer
Tiếp theo là NetEase Cloud Music. Công ty lớn đúng là công ty lớn. Vòng đầu toàn hỏi về cache, distributed lock, Dubbo, ZK và các cơ chế liên quan đến MQ middleware. Đáng tiếc, vì bình thường tôi tích lũy quá ít về nguyên lý kỹ thuật, cơ bản là “hỏi hai câu không biết cả hai”, thất bại rất ngoạn mục.
Lúc này, tôi bước đầu nhận ra nền tảng kỹ thuật của mình vẫn rất yếu, nên bắt đầu học tập kỹ thuật trên diện rộng và củng cố nền tảng, hệ thống hóa nguyên lý và logic từ dưới lên, tiến hành tổng hợp một cách có hệ thống, cuối cùng bước đầu hình thành cấu trúc knowledge system kỹ thuật server Internet của riêng mình.
Mingshitang - Technical Expert
Tôi phỏng vấn vị trí Architect. Câu hỏi nhiều hơn tương đối, như DB, Redis... Feedback là kỹ thuật ổn nhưng thiếu kinh nghiệm quản lý. Đây là lần đầu tôi nhận ra sự bất lợi của việc lập trình viên lớn tuổi thiếu kinh nghiệm quản lý. Trong tuyển dụng vị trí Technical Expert ở doanh nghiệp vừa và nhỏ, thường có thêm yêu cầu về kinh nghiệm quản lý. Khi ứng tuyển cần chú ý.
Thiếu kinh nghiệm quản lý thì phải làm sao? Sau một thời gian suy nghĩ, tôi có ý tưởng như sau:
- Thay đổi điều có thể thay đổi, còn điều không thể thay đổi thì học nó. Ví dụ, việc học nguyên lý kỹ thuật là điều tôi có thể thay đổi, nhưng kinh nghiệm quản lý khó có thể thay đổi trong thời gian ngắn, vậy thì tìm hiểu thêm về lý thuyết quản lý cơ bản.
- Đào sâu kinh nghiệm liên quan từ trải nghiệm của mình. Dù tôi chưa từng chính thức dẫn dắt team, nhưng đã có kinh nghiệm quản lý cơ bản về dẫn dắt project, engineer và kiểm soát một business line. Hãy đào sâu trải nghiệm của bản thân.
Byte Education - Senior Engineer
Trong buổi phỏng vấn Byte Education, tôi tự đào không ít hố rồi nhảy vào.
Ví dụ interviewer hỏi hãy kể một trải nghiệm project khiến bạn cảm thấy thành tựu nhất. Tôi chọn project mua theo chu kỳ từ gần 4 năm trước. Dù đây là project tiêu biểu đầu tiên khi tôi gia nhập Youzan, nhưng thời gian quá lâu, lại không ghi chép chi tiết, nên nhiều chi tiết kỹ thuật đã không còn rõ ràng. Tôi nói đến tư tưởng thiết kế “tích hợp” gây ấn tượng sâu sắc lúc đó, nhưng lại quên vì sao khi ấy mình có tư tưởng đó (do không ghi chép kỹ).
Lại ví dụ, trong một câu hỏi tình huống về lớp học, tôi hỏi dùng architecture CS hay BS? Interviewer nói dùng architecture CS. Đây chẳng phải tự đào hố sao? Rõ ràng mình không quen architecture CS, cần gì hỏi lựa chọn này, chi bằng trực tiếp giải thích theo architecture BS. Haiz!
Feedback Byte Education dành cho tôi là: business Sense khá tốt, năng lực system design cần nâng cao. Tôi thấy feedback này khá đúng trọng tâm. Vì vậy, tôi cũng bắt đầu chú trọng đọc bài viết và rèn luyện tư duy về thực chiến system design.
Kinh nghiệm là:
- Khi làm project, phải ghi chép chi tiết tech stack, quyết định kỹ thuật và nguyên nhân, chi tiết kỹ thuật của từng project, tạo nền tảng cho phỏng vấn;
- Chuẩn bị trước system và project tiêu biểu, gây ấn tượng sâu sắc nhất, tránh chọn project đã quá lâu và thiếu ghi chép chi tiết;
- Chọn project và architecture quen thuộc, ít nhất phải có ấn tượng ban đầu tốt, nếu không interviewer sẽ có ấn tượng rằng bạn chẳng biết gì.
Migu Digital Media - Architect
Tốt lắm, một lúc có 3 interviewer phỏng vấn nhóm. Có lẽ trước đây trải nghiệm của tôi quá ít. Có vẻ doanh nghiệp nhà nước khi phỏng vấn vị trí cấp cao thích dùng hình thức này. Nghe nhiều phía thì sáng suốt, nghe một phía thì u tối. Câu hỏi cũng rất rộng, từ nguyên lý cơ bản của ES đến migration data giữa các phòng máy. Một số cơ chế kỹ thuật dù đã học nhưng chưa vững, chưa rõ ràng nên trả lời cũng không tốt. Ví dụ về tối ưu nguyên lý search của ES, sau khi nói về inverted index, tôi không giải thích rõ được Term Index và Trie tree. Điều này cho thấy biết không có nghĩa là thực sự hiểu. Chỉ khi có thể trình bày rõ ràng, mạch lạc cả tư duy và chi tiết thì mới được xem là thực sự hiểu.
Điều khiến tôi ấn tượng sâu sắc là một câu hỏi: Bạn có những tư tưởng architecture nào? Đây là lần đầu tôi được hỏi về thiết kế architecture, lập tức hơi hoảng. Dù bình thường tôi thường suy nghĩ và cũng từng viết bài, nhưng chưa hình thành được phương pháp luận có hệ thống và cô đọng, kết quả là câu trả lời khá lộn xộn.
Tuya Smart - Senior Engineer
Tôi ứng tuyển Tuya Smart vì cho rằng đây là một doanh nghiệp tốt. Doanh nghiệp xuất sắc ít nhất cũng nên trao đổi nhiều hơn, biết đâu sau này có cơ hội hợp tác! Cách suy nghĩ về vấn đề nên rộng mở hơn, không thể chỉ cố thủ trong một chuyện duy nhất mình nghĩ đến.
Ấn tượng tổng thể mà Tuya Smart để lại cho tôi khá tốt. Interviewer cũng rất lịch sự và kiên nhẫn, hỏi nhiều về architecture tổng thể, kỹ thuật và project; có những phần tôi quen thuộc nên trả lời cũng khá ổn. Có lẽ kinh nghiệm của tôi vừa đúng với nhu cầu của họ.
Nếu lúc đó không quá chấp niệm với việc làm giáo dục, khả năng rất cao tôi đã gia nhập Tuya Smart. Theo tôi, Internet of Things hẳn là một lĩnh vực rất thú vị.
GSX - Technical Expert
Về cơ bản tôi trả lời được các câu hỏi của “GSX”. Tuy nhiên feedback là: năng lực nắm bắt trọng tâm câu hỏi còn thiếu, việc quy nạp và hệ thống hóa kỹ thuật cũng chưa đủ. Khi đó tôi vẫn hơi không phục, cho rằng mình đã viết nhiều bài như vậy, cũng có không ít suy nghĩ, sao có thể nói là tổng kết chưa đủ? Cùng lắm là còn điểm mù kỹ thuật. Kỹ thuật như đại dương, ai có thể không có điểm mù?
Nhưng nhìn lại hiện nay, quả thực tôi vẫn chưa đạt đến mức nên có. Việc tổng kết cơ chế nguyên lý kỹ thuật và điều tra vấn đề production chưa đủ, chưa đủ rõ ràng và chi tiết; việc tổng kết kinh nghiệm thực tiễn design cũng chưa đủ, chưa đủ hệ thống và vững chắc. Việc này vẫn cần tiếp tục đào sâu.
Ngoài ra, phỏng vấn càng nhiều càng nhận ra năng lực trình bày của mình quả thực còn thiếu. Dài dòng, dễ sa vào một điểm rồi nói mãi, nói giải pháp trực tiếp không có bối cảnh, nhảy ý, vòng vo, sau đó interviewer rất có thể mất kiên nhẫn. Khi trả lời, nên tuân thủ một số logic cơ bản như “tổng quát trước, chi tiết sau”, “tư duy cơ bản - thực hiện - tối ưu” sẽ tốt hơn. Năng lực trình bày thực sự rất quan trọng, không thể chỉ chăm chăm gõ code. Ngoài ra, mỗi lần phỏng vấn doanh nghiệp giáo dục tôi đều không tránh khỏi căng thẳng, sợ bỏ lỡ cơ hội này.
Đây là doanh nghiệp thứ hai nói thẳng với tôi rằng tuổi tác và kinh nghiệm không phù hợp, khiến tôi càng lo lắng về tuổi của mình, đến mức bắt đầu hơi mất tự tin.
Vậy tôi đã lấy lại sự tự tin như thế nào? Có một câu nói xưa: “Còn núi xanh thì không lo thiếu củi đốt”. Dù tuổi tôi khá cao, nếu tôi rèn giũa năng lực kỹ thuật đủ vững, tôi không tin mình không tìm được một doanh nghiệp có thể công nhận mình. Cùng lắm thì tôi làm open source project. Có năng lực kỹ thuật tốt không nhất thiết chỉ được phát huy trong phạm vi doanh nghiệp, cũng không cần giới hạn trong nhận thức của những người bị định kiến tuổi tác che mờ. Sự công nhận từ bên ngoài tuy quan trọng, nhưng giá trị bên trong vẫn vượt xa bên ngoài.
Yitong Culture and Education - Architect
Buổi phỏng vấn cũng có 3 người cùng tham gia. Chủ yếu hỏi về trải nghiệm project, phần kỹ thuật không đi quá sâu. Cá nhân tôi thấy mình trả lời khá ổn. Interviewer cũng hỏi các vấn đề liên quan đến thiết kế architecture, tôi trả lời ở mức bình thường. Lúc này tôi vẫn chưa nhận ra mình đang dùng tiêu chuẩn phỏng vấn “Senior Engineer” để phỏng vấn vị trí “Architect”.
Interviewer khá ôn hòa, HR cũng chủ động liên hệ và trao đổi, cảm giác khá tốt. Chỉ là tôi không chủ động hỏi feedback, nên sau đó không còn thông tin gì.
New Oriental - Senior Engineer
Tôi phỏng vấn New Oriental chủ yếu vì công ty phù hợp với nguyện vọng làm giáo dục của mình, dù nhu cầu vị trí là làm information management system, vẫn cách business lý tưởng của tôi một khoảng. Sau khi trao đổi và tìm hiểu, họ cần hơn một engineer quen thuộc với vận hành, nhưng tôi vừa không quen vận hành, bình thường cũng ít chú ý, nên không phù hợp với yêu cầu tuyển dụng thực tế của họ. Interviewer cũng là người rất ôn hòa, quê ở Nghi Xương, nơi tôi từng học đại học, nên trải nghiệm phỏng vấn khá tốt.
Sau này cần dành thời gian học một số nội dung liên quan đến vận hành. Là một engineer xuất sắc và một architect đạt chuẩn, cần học rộng và quen thuộc với các component, middleware, vận hành deployment... mà system sử dụng. Phải có năng lực nhìn tổng thể, nhưng có lẽ tôi đã thức tỉnh hơi muộn. Better later than never.
ZOOM - Senior Engineer
Một interviewer của ZOOM có lẽ là người tệ nhất trong tất cả interviewer tôi từng gặp. Có hai interviewer, một người khá kiên nhẫn, người còn lại thì bụng phệ, vừa ngáp vừa tỏ vẻ không mấy quan tâm đến buổi phỏng vấn và ứng viên. Tôi nghĩ, nếu không muốn phỏng vấn thì tại sao còn đến? Bạn cho rằng ứng viên thấp hơn bạn một bậc sao? Đổi vị trí thì tôi có thể đánh cho một trận. Nhưng tôi vẫn rất lịch sự, coi như không có chuyện gì xảy ra. Công ty đang chọn người, ứng viên cũng đang chọn công ty.
Nghĩ lại, ZOOM vẫn là phần mềm hội nghị giao tiếp từ xa mà công ty chúng tôi từng dùng trong thời kỳ đại dịch. Ấn tượng vốn khá tốt, nhưng lại có engineer và interviewer như vậy ẩn bên trong, tôi cũng chịu. Chẳng lẽ anh ta là đại thần trong truyền thuyết? Theo tôi biết, cơ sở kỹ thuật software Internet ở nước ngoài về cơ bản áp đảo trong nước; framework, middleware, infrastructure mà phần lớn doanh nghiệp trong nước sử dụng cơ bản đều lấy của nước ngoài để dùng hoặc custom, người thật sự tự nghiên cứu rất ít, có gì mà tự mãn?
Ayou Culture - Senior Engineer
Ayou Culture có bốn vòng technical interview. Vòng technical interview đầu tiên để lại cho tôi ấn tượng khá sâu. Nhìn bề ngoài, interviewer đặc biệt giỏi và quen thuộc với nguyên lý, cơ chế của operating system. Tôi không trả lời được nhiều câu hỏi. Ban đầu nghĩ mình trượt, nhưng lại được trao cơ hội lật ngược tình thế. Vòng phỏng vấn thứ hai hỏi về trải nghiệm project và vấn đề kỹ thuật mà tôi rất quen thuộc. Interviewer thứ ba hỏi khá rộng, có câu trả lời được, có câu không. Nhưng interviewer rất kiên nhẫn. Vòng thứ tư là Technical Director, cũng hỏi rất rộng và chi tiết.
Nhìn chung, không khí phỏng vấn khá thoải mái. Tuy nhiên, nhu cầu tuyển dụng của Ayou lúc đó không quá mạnh, có lẽ họ hy vọng sau này có cơ hội sẽ liên hệ lại. Đáng tiếc khi ấy tôi đã chuẩn bị về Vũ Hán. Chủ yếu là vì cha mẹ đã lớn tuổi, tôi muốn có thêm thời gian ở bên cha mẹ.
Nghĩ lại, cách tôi suy nghĩ vấn đề và đưa ra quyết định vẫn quá đơn giản, không biết thực hiện tính toán và cân nhắc phức tạp.
Xiaomi - Expert/Architect
Tôi ứng tuyển Xiaomi chủ yếu vì vị trí này tương tự vị trí trước đây tại Youzan, đều làm về transaction middle platform. Sau khi xem website chính thức của Xiaomi, tôi thấy những gì họ làm rất tuyệt, nhưng không quá phù hợp với nguyện vọng ban đầu là làm sự nghiệp giáo dục và văn hóa.
Mong muốn gia nhập Xiaomi không quá mạnh, nên phỏng vấn cũng mất phần lớn động lực. Tính cách này của tôi vẫn cần thay đổi.
Visual China - Senior Engineer
Câu hỏi xoay quanh kỹ thuật, project và trải nghiệm. Nhìn chung, độ sâu kỹ thuật không quá khó, phần project cũng được đề cập. Tiền bối bên nhân sự rất ôn hòa; tôi tưởng sẽ bị “oanh tạc” về trải nghiệm của mình, kết quả lại là tôi giới thiệu cho tiền bối về sản phẩm, service và business model của Youzan, rồi nói sơ qua một số trải nghiệm của mình.
iFlytek - Architect
Vòng một và vòng hai, tôi cảm thấy interviewer không mấy hứng thú với buổi phỏng vấn được sắp xếp. Architect ít nhất là vị trí có yêu cầu rất cao về năng lực kỹ thuật và design. Vòng một hỏi một số câu về kỹ thuật và architecture, vòng hai cứ xoay quanh background và những thứ không liên quan đến kỹ thuật của tôi, dường như chú ý hơn đến vẻ ngoài của tôi mà không quan tâm đến năng lực kỹ thuật và design của bản thân tôi. Trao đổi khá nông.
Năng lực tất nhiên có cao thấp, nhưng phép lịch sự cơ bản về tôn trọng nhân tài thì không thay đổi. Tôn trọng nhân tài là tập trung vào năng lực và tài học của nhân tài, chứ không phải những thứ không mấy liên quan đến tài học.
Qingteng Cloud - Senior Engineer
Phong cách technical interview của Qingteng Cloud khá ôn hòa. Tôi cảm nhận được sự thẳng thắn trong trao đổi và cảm giác được công nhận. Tôi cảm nhận được tâm trạng khao khát nhân tài của HR. Điều này phù hợp với suy nghĩ trước đây của tôi rằng “phải dùng thực lực để giành được sự tôn trọng và đánh giá cao của đối phương”.
Tencent Meeting - Senior Engineer
Tôi dùng phần mềm Tencent Meeting để phỏng vấn vị trí Tencent Meeting với interviewer của Tencent. Ha ha. Vì network không ổn định lắm, quá trình phỏng vấn đầy trục trặc, nói chưa hết câu đã không nghe rõ. Có thể tưởng tượng tình hình ra sao. Nhưng tất cả chúng tôi đều rất kiên nhẫn, cuối cùng cùng hoàn thành vòng đầu. Phỏng vấn là sự so tài về trí tuệ và sức lực của hai bên, hơn nữa còn là việc hai bên cùng hoàn thành một việc và phát hiện sự hợp tác với nhau. Nghĩ như vậy, quan niệm phỏng vấn truyền thống kiểu “một bên kiểm tra và sàng lọc” cần được đổi mới.
Vì tôi đã nhận được offer, hơn nữa công việc tại Tencent Meeting không quá phù hợp với nguyện vọng ban đầu của mình, nên tôi trao đổi với phía Tencent và dừng vòng hai.
Lựa chọn cuối cùng
Khi nhận được nhiều offer thì chọn thế nào? Cá nhân tôi chủ yếu coi trọng:
- Sở thích và động lực;
- Lương thưởng;
- Triển vọng phát triển của công ty và không gian phát triển cá nhân;
- Không khí làm việc;
- Doanh nghiệp nhỏ nhưng có sức chiến đấu.
Chọn thế nào giữa Visual China và Qingteng Cloud? Hãy so sánh:
- Lương thưởng: lương thưởng của hai bên tương đương nhau, và cả hai đều công nhận tôi; Visual China đưa ra vị trí Leader, còn Qingteng Cloud đưa ra cam kết về business cốt lõi;
- Không khí làm việc: Qingteng Cloud có lẽ thiên về văn hóa engineer hơn, còn Visual China thiên về business hơn;
- Tính thử thách: Qingteng Cloud có thử thách kỹ thuật mạnh hơn, còn Visual China có thử thách business mạnh hơn;
- Sở thích và động lực: Visual China phù hợp hơn với mong muốn làm về văn hóa của tôi, còn Qingteng Cloud Security không phù hợp với nguyện vọng ban đầu là làm sự nghiệp giáo dục và văn hóa, đồng thời khá thiên về kỹ thuật và tầng dưới (tôi muốn làm một số việc mang tính nhân văn hơn). Nhưng Qingteng Cloud làm về security, và security là một việc rất có giá trị, ý nghĩa. Hơn nữa, sau này security cũng có thể phục vụ ngành giáo dục. Có chút cảm giác “đi đường vòng để cứu nước”. Đặc biệt, lý tưởng của nhà sáng lập Zhang Fu là “để ánh sáng security chiếu sáng mọi ngóc ngách của Internet”, cùng việc ông thực sự hành động theo lý tưởng đó, khiến người ta càng xúc động. Cuối cùng, tôi cho rằng làm về security nhỉnh hơn làm bảo vệ bản quyền hình ảnh một chút.
Ngoài ra, tôi thấy công việc phù hợp hơn với mình trong giáo dục là giáo dục programming hoặc giáo dục engineer. Tôi còn muốn trở thành một system designer. Tôi cần tích lũy thêm kinh nghiệm thực tiễn production. Có thể tiếp xúc nhiều hơn với engineer cấp junior và mid-level, làm training và hướng dẫn nội bộ trong doanh nghiệp. Hoặc ngoài giờ làm việc quay video, tải lên Bilibili để phục vụ đông đảo người xem. Sau này, có lẽ tôi còn viết một cuốn sách về thiết kế programming, tập hợp những gì đã học cả đời.
Vì vậy, sau một ngày cân nhắc thận trọng, tôi quyết định gia nhập Qingteng Cloud Security. Tất nhiên, đồng thời với việc đưa ra lựa chọn này, tôi cũng chọn một thử thách lớn hơn: về security, cơ bản tôi hoàn toàn trắng tay, cần học rất nhiều kiến thức và kinh nghiệm, đây là thử thách không nhỏ với một lập trình viên lớn tuổi như tôi.
Tóm tắt
Nhiều việc đều có cách giải quyết, ngay cả việc một lập trình viên lớn tuổi “đau đầu” tìm việc cũng không ngoại lệ. Xác lập mục tiêu rõ ràng, đưa ra quyết định khoa học và hợp lý, nỗ lực bền bỉ, nắm vững nền tảng, chủ động đúng lúc, cuối cùng sẽ giành được quả ngọt chiến thắng. Nhưng cần nhấn mạnh: công phu nằm ở ngày thường. Nếu bình thường không tích lũy tốt, đến lúc phỏng vấn sẽ phải dành thêm thời gian học, gặp trở ngại, trục trặc và cũng không mấy dễ chịu. Tốt hơn là phân bổ vào thời gian thường ngày. Ngoài ra, bình thường cũng phải giữ tầm nhìn rộng, tuyệt đối không đợi đến lúc phỏng vấn mới “bừng tỉnh”.
Một kinh nghiệm quan trọng là phải biết học hỏi từ thất bại. Chính nhờ bốn tháng liên tục học tập, suy nghĩ, tích lũy và chắt lọc trong thời gian trống ở Hàng Châu, cùng với việc suy ngẫm về thất bại trong phỏng vấn, liên tục điều chỉnh đối sách, hoàn thiện việc chuẩn bị, cải thiện những điểm yếu trước đây và áp dụng cách thức hợp lý hơn, tôi mới nhận được một offer khá hài lòng chỉ trong hai tuần ngắn ngủi sau khi trở về Vũ Hán.
Ngoài ra, cũng đáng nhắc đến việc với nhân viên kỹ thuật, viết blog là một việc rất có giá trị. Phỏng vấn tìm hiểu đối phương thông qua giao tiếp có những giới hạn nhất định. Việc phỏng vấn không sàng lọc được nhân tài phù hợp thực ra có xác suất khá lớn:
- Thời gian phỏng vấn rất ngắn, ngay cả interviewer giàu kinh nghiệm cũng có thể nhìn sai người (giới hạn tất yếu);
- Interviewer hỏi đúng vấn đề mình không biết (vấn đề may rủi);
- Tâm trạng interviewer không tốt, không có hứng thú (vấn đề may rủi);
- Trình độ của chính interviewer.
Vì vậy, có tài thực sự nhưng bị PASS không đáng phải buồn. Ý nghĩa của việc viết blog là có thêm nhiều chiều để thể hiện suy nghĩ và công việc thường ngày của mình.
Doanh nghiệp tôn trọng nhân tài nhất định muốn tìm hiểu ứng viên từ nhiều phương diện (lựa chọn và xác nhận giữa ưu điểm và khuyết điểm để xem có phù hợp kỳ vọng hay không), bao gồm cả blog; doanh nghiệp không tôn trọng nhân tài sẽ thiên về phương pháp lười biếng, không quan tâm đến năng lực thực sự của ứng viên, dùng một số tiêu chuẩn bên ngoài để lọc nhanh. Cách này tuy hiệu quả, nhưng cuối cùng năng lực nhận diện nhân tài sẽ không tiến bộ nhiều.
Sau quá trình rèn luyện qua các cuộc phỏng vấn này, tôi thấy hiện nay mình đã tiến bộ khá nhiều so với lúc nghỉ việc. Không dám nói là lột xác hoàn toàn, nhưng ít nhất cũng đã thay một lớp da. Vẫn còn khoảng cách, vẫn còn khoảng cách. Ít nhất tôi vẫn còn kém khi phỏng vấn vị trí Technical Expert và Architect ở các công ty lớn nổi tiếng. Điều này liên quan đến tính thử thách trong công việc thường ngày, giới hạn của tầm nhìn nhận thức và việc tổng kết chưa đủ. Lần tới, tôi hy vọng tích lũy đủ thực lực để làm tốt hơn, tiến gần hơn một chút đến những việc có giá trị và ý nghĩa mà mình yêu thích.
Phỏng vấn thực ra cũng là một phần của trải nghiệm làm việc.
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
