Năm 2021 quả là một năm đặc biệt. Covid lên đỉnh, chứng khoán lên đỉnh, việc làm (bên mấy công ty công nghệ) cũng lên đỉnh nốt!
Với cá nhân tôi, năm 2021 cũng là một năm đặc biệt khi nó đánh dấu nhiều sự thay đổi trong cuộc sống. Một trong những sự thay đổi đáng nhớ nhất, đó là sự thay đổi về công việc.
Trong bài viết tuần này, nhân dịp biết được một số người bạn cũng đang trong giai đoạn của tôi 3 năm trước, tôi xin được trích lại một vài ghi chú mà tôi đã viết trong cuốn “Tìm việc diary” của tôi.
(Vì lý do cá nhân, tôi đã giấu tên thật của công ty, mong bạn đọc thông cảm)
(Do là ghi chú cá nhân nên văn phong sẽ hơi bỗ bã, và cũng có nhiều lỗi sai chính tả, cũng mong bạn đọc thông cảm cho tôi)
28 tháng 8, năm 2021
Sau hơn một tuần chuẩn bị thì cuối cùng, sáng nay, tôi đã take the online test của công ty X. Cảm giác khi chuẩn bị bấm vào nút Start the assignment là rất hồi hộp. Đó đơn giản là cảm giác khi mà một người chuẩn bị rất kỹ càng và cũng rất kỳ vọng vào sự kiện đó.
Bài test diễn ra không suôn sẻ vì các câu hỏi khá là hóc búa với tôi. Mặc dù đã chuẩn bị tới gần 1 tuần nhưng vẫn có những kiến thức mà tôi thậm chí còn chưa nghe đến bao giờ, hoặc đã từng nghe nhưng không biết nó là gì. Chẳng hạn như Red Black tree. Đây là lần đầu tiên tôi nghe thấy khái niệm này. Mặc dù trong quyển cracking the coding interviews cũng có nhắc đến, nhưng nó là phần tôi chưa ôn (tree & graph) và lại còn nằm ở mục advances.
Sau một số câu hỏi về computer science nói chung, thì tôi làm 2 bài test coding. Bài đầu tiên tôi làm nhanh vì tôi đã ôn trong khoảng 1 tuần vừa rồi. Đó là merge 2 sorted array. Bài số 2 khoai hơn, là một bài medium level trên leetcode. Tôi chưa làm bài đó bao giờ, nên cũng phải mất một lúc mới nghĩ ra được cách làm. Nhưng cách implement của tôi lại quá rối rắm, nên thành ra không xử lý được một case nào đó. Nên không pass được toàn bộ test cases.
Nhìn chung là tôi hơi thất vọng với bài test này, có lẽ chủ yếu là do tôi đã không nghĩ rằng bài test có thể khó như thế. Từ đây tôi mới rút ra được một số bài học cho bản thân
1/ Hãy ôn tập kiến thức cơ bản về computer science thường xuyên
Mặc dù khi đi làm, hầu như chúng ta không có động chạm mấy đến các kiến thức này, nhưng việc thường xuyên dành ra thời gian hằng tuần để ôn tập là một điều cực kỳ hữu ích. Có rất nhiều kiến thức tôi đã có thể đào sâu hơn nếu như thời gian chuẩn bị của tôi không phải là 1 tuần, mà là 3 đến 6 tháng.
2/ Leetcode! Hãy làm leetcode!
Cả hai bài coding tôi làm trong bài phỏng vấn online đều được lấy từ LeetCode. Tôi đã có thể làm được 5 * 4 * 6 = 120 bài LeetCode nếu trong 6 tháng vừa rồi, tôi có chuẩn bị cho phỏng vấn.
(tôi không nhớ vì sao tôi đã viết ra công thức 5 * 4 * 6. Nhưng đoán là 6 tháng, mỗi tháng 4 tuần, mỗi tuần làm 5 bài 😂)
3/ Hãy đi phỏng vấn mỗi 6 tháng
Như tôi đã nhắc tới 2 lần ở trên, là giá như thời gian tôi chuẩn bị là từ 3-6 tháng thì mọi thứ đã có thể tốt hơn rất nhiều. Và để có động lực làm điều đó, thì không gì tốt hơn ngoài việc bạn đi phỏng vấn 6 tháng một lần. Có nhiều lợi ích từ việc đi phỏng vấn thường xuyên.
Giúp tôi không bị tập chung vào những thứ không có lợi cho career path
Nắm được bản thân còn đang thiếu thứ gì cho the next big move
Tạo động lực để tự ôn tập computer science foundation và coding quiz
Có cơ hội nhận được offer cao hơn
4/ Đừng để đến khi muốn nghỉ việc thì mới chuẩn bị đi tìm việc
Hiện tại bản thân tôi đang rơi vào trạng thái này. Tôi đang gặp áp lực rất lớn. Vì muốn nghỉ việc thật nhanh nên tôi đã phải apply vào nhiều công ty để mong có được một công việc mới. Điều này vừa làm cho tôi dễ bị áp lực vừa gây ra những rủi ro lớn trong trường hợp tôi không tìm được công việc mơ ước. Thay vì thế, ngay từ khi lúc còn rất “enjoy” những thứ đang diễn ra ở công ty hiện tại, thì tôi đã nên sẵn sàng chuẩn bị ngay cho the next big move tiếp theo. Vì suy cho cùng, cái mục đích cuối cùng của cuộc đời là tôi có thể làm những gì mà tôi thích mà không phải phụ thuộc vào bất cứ thứ gì. Vậy nên, hãy chủ động, cuộc đời của chúng ta, chúng ta phải quản lý nó.
5/ Mua lấy một cái bàn đứng
Trong khi đợi hết giãn cách để có thể mua được bàn, tôi đã tự chế ra cái đứng. Mặc dù nó trong hơi bô nhếch, nhưng đã giải quyết được vấn đề ngồi lâu của tôi. Ngoài ra việc đầu tư vào workspace sao cho có nhiều tiện ích giúp giảm thiểu các vấn đề về sức khỏe là một khoản đầu tư rất đáng để xem xét. Vì SE thì tránh sao được việc làm việc với máy tính suốt ngày.

10 tháng 9, năm 2021
(đến thời điểm này tôi đã qua được 2 vòng phỏng vấn, vòng online testing, và vòng technical interview 1, đoạn dưới đây là note về vòng technical interview 2)
Tôi vừa mới hoàn thành xong vòng phấn technical thứ 2 với công ty X. Tôi bị bạn phỏng vấn vã cho tơi tả. Hầu hết những câu hỏi follow up tôi đều bị ú ớ. Do hiểu chưa sâu.
Hic buồn quá. Sau vòng này cảm giác của tôi giống hệt như vòng làm bài test online, đó là cảm giác nắm chắc bị đánh trượt trong tay. Phew! Nếu trượt thật thì dù gì tôi cũng học được quá nhiều bài học trong hôm nay. Dưới đây là một số bài học.
1/ Phải học sâu
Phần lớn các câu hỏi mà bạn interviewer hỏi tôi đều có thể trả lời mức nào đó. Nhưng khi bạn ấy hỏi sâu hơn thì tôi thực sự không biết nó thực sự hoạt động như thế nào. Dưới đây là một số ví dụ:
Anh có thể so sánh Memcache và Redis, chúng khác nhau như nào?
Khi gửi gõ google.com rồi enter thì có mấy HTTP requests được gửi đi?
Cơ chế hoạt động của context switch
Làm sao để DB biết được mà commit hay rollback?
Cơ chế bắn event sau khi commit là gì?
Có thể gửi nhiều ảnh trong 1 request HTTP được không?
Database Shading là gì?
Process session?
Có những loại deadlock nào?
Phân biệt concurent vs paralel
Gabage collector trong Python hoạt động như thế nào?
2/ Đề bài coding sẽ likely rơi vào những câu đã được hỏi
Tôi có một danh sách các câu hỏi coding được collect từ Glassdoor. Đúng cái câu “select top k largest elements in an array” mà tôi chưa xem đến, thì các bạn lại hỏi vào. Thế là tôi mất một lúc lâu mới tìm ra được phương án. Mặc dù tôi có đưa ra phương án dùng heap mà các bạn không nghĩ ra, nhưng việc mãi mới đưa ra được cách optimize sau gợi ý của các bạn cũng là một điểm trừ lớn.
Thế thôi. Giờ thì tôi đang ngồi đợi email của các bạn HR. Lành ít dữ nhiều. Thôi thì tiếp tục cố gắng vậy.
UPDATE Sep 11: Sau phỏng vấn tôi không nhận được hồi âm gì. Tôi cũng đã nhắn tin trực tiếp hỏi HR và chị ý bảo để chị check. Nhưng rồi cũng không nhận được hồi âm. Giờ thì là cuối tuần rồi, nên tôi nghĩ chắc sang đầu tuần sẽ có một chiếc mail gì đó.
14 tháng 9, năm 2021
(đến lúc này không biết vì lý do gì, tôi chuyển qua dùng tiếng Anh. Chắc là do bị từ chối nên buồn quá hoá loạn ngôn 🤣)
It’s sad, but I am not surprised!
There’s no overnight success. I have wasted my time for years. Now I realized what I need, what I should focus on. Maybe 6 months later I will apply again. My foundation at that time must be on another level!
Good luck to me!
Kết bài
Đó là 3 trong số rất nhiều ghi chú mà tôi đã ghi lại trong hành trình phỏng vấn năm 2021. Mặc dù bị công ty X từ chối, nhưng những kinh nghiệm đó đã giúp tôi tiến bộ rất nhanh và không lâu sau đó, tôi đã có được một vài offer ưng ý.
Tôi sẽ share bài viết này cho một vài người bạn của tôi. Ít nhất là tôi nghĩ ra được 4 người. Hi vọng bài viết sẽ cổ vũ chút ít tinh thần cho các bạn.
P/S: Sau khi bài viết được public, có một vài người bạn đã hỏi tôi rằng những gì tôi viết vào năm 2021 có còn đúng với tôi ở thời điểm hiện tại hay không. Câu trả lời là về cơ bản mọi thứ vẫn đúng như ý của tôi. Tuy nhiên một vài quan điểm có phần hơi “cực đoan” như “phỏng vấn ít nhất 6 tháng 1 lần”, hay “hãy tìm việc khi còn đang enjoy” thì có phần thay đổi theo hướng nhẹ nhàng hơn và còn tuỳ thuộc nhiều vào tình hình công việc và cuộc sống hiện tại của tôi nữa. Dẫu vậy, điều cốt lõi và không thay đổi đó là sự chủ động trong việc bồi dưỡng và nâng cao năng lực của bản thân, nhất là trong thị trường lao động càng ngày càng có tính cạnh tranh cao như hiện nay.
Bải viết thật sự hay, em cảm ơn anh nhiều