Chuyện phỏng vấn: "Em đang ở level nào?"

Chuyện phỏng vấn: "Em đang ở level nào?"

Tin ngắn hàng ngày dành cho bạn
  • Hơn 1 tuần nay mình không đăng bài, không phải không có gì để viết mà đang tìm cách để phân phối nội dung có giá trị hơn trong thời đại AI đang bùng nổ mạnh mẽ như thế này.

    Như từ hồi đầu năm đã chia sẻ, số lượng người truy cập vào trang blog của mình đang dần ít đi. Khi xem thống kê, lượng người dùng trong 6 tháng đầu năm 2025 đã giảm 30% so với cùng kì năm ngoái, 15% so với 6 tháng cuối năm 2024. Như vậy một sự thật là người dùng đang rời bỏ dần đi. Nguyên nhân do đâu?

    Mình nghĩ lý do lớn nhất là thói quen của người dùng đã thay đổi. Họ tìm thấy blog chủ yếu qua các công cụ tìm kiếm, trong đó lớn nhất là Google. Gần 1/2 số lượng người dùng quay trở lại blog mà không cần thông qua bước tìm kiếm. Đó là một tín hiệu đáng mừng nhưng vẫn không đủ để tăng lượng người dùng mới. Chưa kể giờ đây, Google đã ra mắt tính năng AI Search Labs - tức là AI hiển thị luôn nội dung tổng hợp khi người dùng tìm kiếm, điều đó càng khiến cho khả năng người dùng truy cập vào trang web thấp hơn. Một điều thú vị là khi Search Labs được giới thiệu, thì các bài viết bằng tiếng Anh đã soán ngôi trong bảng xếp hạng truy cập nhiều nhất.

    Một bài viết của mình thường rất dài, có khi lên đến cả 2000 chữ. Mà để viết ra được một bài như thế tốn nhiều thời gian. Nhiều bài viết ra chẳng có ai đọc là điều bình thường. Mình biết và chấp nhận vì không phải ai cũng gặp phải vấn đề đang nói đến. Viết đối với mình như một cách để rèn luyện sự kiên nhẫn và cả tư duy. Viết ra mà giúp được cả ai đó là một điều tuyệt vời.

    Vậy nên mình đang nghĩ sẽ tập trung vào nội dung ngắn và trung bình để viết được nhiều hơn. Nội dung dài chỉ khi muốn viết chi tiết hoặc đi sâu về một chủ đề nào đó. Nên là đang tìm cách thiết kế lại trang blog. Mọi người cùng chờ nha 😄

    » Xem thêm
  • CloudFlare đã giới thiệu tính năng pay per crawl để tính phí cho mỗi lần AI "cào" dữ liệu trên trang web của bạn. Là sao ta 🤔?

    Mục đích của SEO là giúp các công cụ tìm kiếm nhìn thấy trang web. Khi người dùng tìm kiếm nội dung mà có liên quan thì nó hiển thị trang web của bạn ra kết quả tìm kiếm. Điều này gần như là đôi bên cùng có lợi khi Google giúp nhiều người biết đến trang web hơn, còn Google thì được nhiều người dùng hơn.

    Bây giờ cuộc chơi với các AI Agents thì lại khác. AI Agents phải chủ động đi tìm kiếm nguồn thông tin và tiện thể "cào" luôn dữ liệu của bạn về, rồi xào nấu hay làm gì đó mà chúng ta cũng chẳng thể biết được. Vậy đây gần như là cuộc chơi chỉ mang lại lợi ích cho 1 bên 🤔!?

    Nước đi của CloudFlare là bắt AI Agents phải trả tiền cho mỗi lần lấy dữ liệu từ trang web của bạn. Nếu không trả tiền thì tôi không cho ông đọc dữ liệu của tôi. Kiểu vậy. Hãy chờ thêm một thời gian nữa xem sao 🤓.

    » Xem thêm
  • Lúc khái niệm "Vibe Code" bùng nổ mình cũng tò và tìm hiểu xem nó là gì. Hoá ra là chỉ cách lập trình mới: Lập trình viên ra lệnh và để cho LLM tự viết mã. Sau đó là hàng loạt các bài viết nói về cách họ đã xây dựng ứng dụng mà không cần phải viết một dòng mã nào, hoặc 100% là do AI viết...

    Mình không có ý kiến gì vì mỗi người một sở thích. Nhưng nếu tiếp xúc với nhiều thông tin như vậy thì ít nhiều thế hệ lập trình viên mới sẽ "ám ảnh". Khi làm việc với ngôn ngữ lập trình, chúng ta đang tiếp xúc ở bề nổi rồi. Đằng sau đó còn nhiều lớp khác che giấu sự phức tạp. Ví dụ biết viết JavaScript nhưng có biết nó chạy như thế nào không 🤔? Trên thực tế bạn chẳng cần phải biết nó chạy như thế nào mà chỉ cần biết cú pháp là viết được chương trình chạy ngon ơ.

    LLMs giờ đây lại thêm một lớp ảo hoá cho việc viết mã. Tức là nơi chúng ta không cần trực tiếp viết mà là ra lệnh. Làm việc sẽ nhanh hơn nhưng khi gặp vấn đề thì nhiều khả năng phải vận dụng kiến thức của tầng thấp hơn để giải quyết.

    Mình dùng Cursor, nhưng tính năng thích nhất và dùng nhiều nhất là Autocomplete & Suggestions. Thi thoảng cũng dùng Agents để bảo nó viết tiếp đoạn mã đang dở, thường thì nó làm rất tốt. Hoặc khi gặp lỗi thì hỏi, có lúc giải quyết được, lúc thì không. Nhìn chung nó đang làm thay nhiệm vụ của Google & Stack Overflow, giúp tiết kiệm thời gian 😆

    LLMs như một cuốn bách khoa toàn thư rất khủng khiếp. Hỏi gì cũng biết, cũng trả lời được nhưng có một sự thật là nó chỉ là mô hình đoán chữ (đoán tokens). Thế nên nếu vấn đề phổ biến thì nó sẽ làm rất tốt, nhưng vấn đề ít phổ biến hơn thì nó lại rất tệ, hoặc thậm chí là đưa ra thông tin sai lệch, nhiễu... Tóm lại, cần phải biết cách khai thác thông tin, mà để biết thì buộc người dùng phải có một lượng kiến thức nhất định, tránh rơi vào cái bẫy thiên kiến uy quyền (tin tưởng tuyệt đối vào ai đó) hoặc thiên kiến xác nhận (xác nhận niềm tin sẵn có bằng cách chỉ tìm bằng chứng xác nhận niềm tin đó).

    Tại thấy bài viết này nên lại nổi hứng viết vài dòng 🤓 Why I'm Dialing Back My LLM Usage

    » Xem thêm

Vấn đề

Lần gần đây nhất tôi đi phỏng vấn tìm việc là khoảng 4-5 tháng trước. Như bao người khác, đi nhiều nơi, mỗi nơi là một trải nghiệm thú vị và nhận thấy một điều là không ai hỏi giống ai. Tôi chuẩn bị cho mình một tâm lý thoải mái và đặt ra những tiêu chí về môi trường làm việc mới, không quá quan trọng lý thuyết mà sẽ trả lời dựa trên kinh nghiệm làm việc thực tế của mình.

Một ngày nọ, có một anh CTO hỏi tôi một câu "Em tự nhận thấy mình đang ở level nào?". Tôi không chần chừ mà trả lời luôn: "Thực ra em chưa để ý nhiều đến level của mình, mục tiêu trước mắt là không ngừng học hỏi...". - "Em chưa xác định được level của mình thì cũng cần phải xem xét lại nhé!"

Dễ nhận thấy là người phỏng vấn đang muốn tôi lựa chọn giữa 3 mức Junior, Mid-Level và Senior. Với một người có hơn 5 năm kinh nghiệm, có thể tôi sẽ lựa chọn mình ở mức Senior, bởi vì đây là một điều có thể chấp nhận được khi thị trường tuyển dụng trong nước thường hay cho rằng người có từ 5 năm kinh nghiệm trở lên có thể coi là Senior. Nhưng tôi nghĩ, hiện tại mình vẫn chưa đạt được cấp độ này, có thể mình chỉ đang ở mức Mid-Level. Nhưng vì quan niệm và thị trường đang có mâu thuẫn về sự phân biệt các cấp độ, hay nói cách khác 3 cấp độ này còn phụ thuộc vào suy nghĩ của mỗi người, cho nên tôi phân vân và không đưa ra được câu trả lời chính xác cho mình.

Lời của anh CTO nói là đúng, việc không xác định được Level của mình thì quả là nguy cấp, nhưng do không nói ra suy nghĩ cho nên bị hiểu nhầm là không xác định được mình ở đâu. Vì thế, bài viết ngày hôm nay chúng ta hãy thử bàn luận về 3 cấp độ Junior, Mid-Level và Senior để xem thực chất phải làm thế nào thì mới có thể coi là một Senior "xịn" nhé!

Junior, Mid-Level và Senior

Hãy thử tìm kiếm Google với từ khóa "Junior, Mid-Level và Senior developer" sẽ có rất nhiều kết quả được tìm thấy, chứng tỏ đây là một chủ đề được rất nhiều người quan tâm. Đa phần chúng ta vào đọc để xem mình đang ở đâu và cần phải làm thêm gì thì mới có thể đạt được cấp độ tiếp theo.

Trong số đó, nhiều bài liệt kê ra số năm kinh nghiệm để đánh giá được một người đang ở cấp độ nào. Ví dụ, mới ra trường sẽ là Junior, 3-5 năm sẽ là Mid-Level, từ 5 năm trở đi thì thành Senior...!? Quả thật mà nói trước kia tôi cũng từng tin sái cổ vào những con số này. Cho rằng càng làm lâu thì "bậc" của mình cũng sẽ tự tăng.

Hoặc cũng có bài viết chỉ ra rằng số năm không hoàn toàn quyết định level của một người, mà dựa vào khả năng giải quyết vấn đề của người đó. "Họ biết cách tổ chức mã, quan tâm đến khả năng bảo trì sau này, cách đặt câu hỏi và cách giải quyết..." Nghe thì hợp lý, nhưng có lẽ vẫn chưa đủ. Đối với tôi, một lập trình viên không chỉ biết mỗi code. Do đó để đạt được cấp cao nhất trong lập trình thì phải vượt qua cả việc code và làm được nhiều điều hơn nữa.

Tình cờ tôi tìm thấy một bài viết nói rất chi tiết về những thứ có thể đạt được ở cả 3 cấp độ. Hơn nữa nó còn rất đầy đủ và chi tiết cũng như đưa ra lời khuyên làm sao để tăng được level. Bạn đọc có thể xem tại Levels of Seniority.

Để tóm tắt, bài viết tập trung nhất vào cấp độ Junior, nêu ra khái niệm, biểu hiện và những điều cần làm để tiến bộ hơn. Một vài ý nổi bật như là:

  • Câu thần chú chính của họ là "làm cho nó hoạt động" mà không chú ý nhiều đến giải pháp. Đối với họ, một phần mềm hoạt động được và một phần mềm tốt là tương đương nhau.
  • Họ không biết về khía cạnh kinh doanh của công ty, tức là không quan tâm hoặc không biết mình làm việc này cho công ty để làm gì.
  • Đổ lỗi cho người khác (Somebody else's problem) khi cho rằng ai đó phải chịu trách nhiệm cho vấn đề của bạn.
  • Họ không tham gia thảo luận nhóm.
  • ...

Sau đó, tác giải đưa ra những lời khuyên cho Junior như sau:

  • Đọc nhiều mã, không chỉ mã trong các dự án mà bạn đang làm việc, mà cả mã nguồn của các thư viện, Framework, mã nguồn mở...
  • Tự làm các dự án cá nhân.
  • Ngừng đổ lỗi.
  • Đừng để bản thân bị giới hạn bởi chức danh mà bạn có. Làm nhiều việc và chủ động hơn.
  • Tránh nói "nó hoạt động trên máy của tôi", ý chỉ hãy đi tìm hiểu nguyên nhân tại sao ứng dụng không hoạt động ở đâu đó, vì chắc chắn người khác đang gặp phải vấn đề chứ không phải là bạn. Câu nói trên chẳng khác nào phủ nhận trách nhiệm vậy.
  • Tiếp xúc với các nhà phát triển cấp cao hơn, xem họ làm việc, nếu có thể thì tìm một người hướng dẫn mình. Không ai thích một người biết tất cả mọi thứ, nhưng hãy kiềm chế cái tôi của mình và khiêm tốn để tiếp thu những bài học từ những người có kinh nghiệm.
  • ...

Một Mid-level bao gồm tất cả những yếu tố của Junior, kèm theo đó là khả năng tự giải quyết vấn đề. Họ có nhiều hiểu biết hơn Junior tuy nhiên còn lúng túng trong việc áp dụng chúng. Tác giải nhấn mạnh rằng Mid-level là rất phổ biến và đôi khi họ bị nhầm với "Senior". Tuy nhiên, họ cần được cố vấn thêm để trở thành một Sernior "chính hiệu".

Senior là cấp độ tiếp theo sau Mid-Level developer. Họ là những người có thể tự mình hoàn thành công việc mà không cần bất kỳ sự giám sát nào và không tạo ra bất kỳ vấn đề nào trong quá trình thực hiện. Một số điều mà một Senior làm được như:

  • Họ thực dụng trong công việc, không bị ảnh hưởng bởi một công cụ tốt nhất.
  • Họ có một bức tranh toàn cảnh về lĩnh vực này, biết đâu là công cụ tốt nhất cho công việc trong hầu hết các trường hợp.
  • Họ biết họ đang ở trong một đội. Họ coi đó là một phần trách nhiệm của họ trong việc hướng dẫn người khác.
  • Họ có hiểu biết sâu sắc về lĩnh vực đang làm.
  • Họ nghĩ nhiều hơn là chỉ viết mã.
  • Họ biết cách đưa ra phản hồi mà không làm tổn thương bất cứ ai...
  • ...

Hay nói tóm lại, ngoài việc viết mã, một Senior có thể hướng dẫn, làm cố vấn cho người khác, hiểu biết sâu sắc về doanh nghiệp, lĩnh vực kinh doanh và cả yếu tố con người.

Tổng kết

Junior, Mid-Level và Senior là ba cấp độ của một lập trình viên, cấp độ Junior là thấp nhất cho đến Senior là người có hiểu biết sâu rộng. Việc xác định được mình đang ở cấp độ nào cũng như cần làm gì để đạt được Level tiếp theo là một điều hết sức quan trọng trong con đường sự nghiệp của mỗi người.

Cao cấp
Hello

Bí mật ngăn xếp của Blog

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (2)

Nội dung bình luận...
Avatar
Anh (Daniel) Le1 năm trước

Senior theo mình thì, đơn giản thôi, bộ phận khác đưa ra 1 idea, họ có thể validate, process, và turn nó thành 1 sản phẩm có thể dùng được.

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Vâng, họ có thể làm được nhiều thứ và biết cách tìm ai để hoàn thành nó 🤝

Avatar
Triết Trương1 năm trước

Đồng tình vì nếu ai hỏi mình ở level nào thì mình cũng trả lời ở Mid Level hơn là Senior, vì không có thang đo phổ quát cho cấp bậc này mà mỗi công ty đang tự định nghĩa.

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Vâng, nhiều khi cũng rất khó trả lời hoặc giải thích cho họ hiểu được nỗi lòng mình.