75 điểm bởi baeba 2025-12-24 | 5 bình luận | Chia sẻ qua WhatsApp

Điểm chính:

  • Khác biệt mang tính quyết định giữa kỹ sư senior và kỹ sư mid-level là khả năng cụ thể hóa những vấn đề không chắc chắn và mơ hồ.
  • Giá trị của một kỹ sư senior không nằm ở kỹ năng code tự thân, mà ở việc loại bỏ rủi ro của dự án và chuyển nó thành một kế hoạch có thể thực thi.
  • Các thực hành tuyển dụng hiện nay (như kiểm tra thuật toán) đang thất bại trong việc đánh giá năng lực này.
  • Sự trưởng thành thực sự bắt đầu từ việc luyện tập xác định rõ vấn đề ở giai đoạn trước khi viết code.

Mở đầu: Xem lại định nghĩa về kỹ sư senior

  • Thông thường, kỹ sư senior được định nghĩa bằng một danh sách kỹ năng đa dạng như thiết kế kiến trúc, giao tiếp, lãnh đạo, v.v.
  • Tuy nhiên, nếu bỏ qua chức danh, mức lương và số năm kinh nghiệm, thì chỉ có một kỹ năng cốt lõi duy nhất để phân biệt kỹ sư senior trở lên: "khả năng giảm bớt sự mơ hồ".
  • Mọi năng lực khác (như thực thi kỹ thuật) đều là kết quả phát sinh từ kỹ năng cốt lõi này.

Nội dung chính

1. Khác biệt trong cách giải quyết vấn đề: rõ ràng so với mơ hồ
  • Kỹ sư mid-level: tạo ra kết quả xuất sắc khi có sẵn spec và các ràng buộc rõ ràng. Họ giỏi giải quyết những bài toán đã được định nghĩa tốt.
  • Kỹ sư senior: tạo ra khác biệt khi nhận các yêu cầu mơ hồ và trừu tượng như "cần cải thiện hiệu năng", "mức độ bất mãn của người dùng tăng lên", hoặc "cần tính đến khả năng mở rộng".
  • Kỹ sư senior không chỉ đơn thuần thực hiện một bài toán mơ hồ, mà còn phân tích, tách nhỏ và chuyển nó thành các nhiệm vụ cụ thể.
2. Vai trò cốt lõi của senior là loại bỏ rủi ro của dự án
  • Trước một vấn đề lớn và trừu tượng, kỹ sư senior giải tỏa sự không chắc chắn bằng các cách tiếp cận như sau:

  • Đặt ra những câu hỏi mang tính bản chất mà người khác không đặt ra.

  • Tách tín hiệu quan trọng khỏi nhiễu (Noise).

  • Xác định ưu tiên giữa việc cần làm ngay và việc có thể để sau.

  • Quá trình này làm giảm rủi ro của dự án (De-risking), đồng thời sắp xếp trạng thái "không biết đó là gì" thành "những dự án nhỏ có thể thực hiện và các yếu tố cần loại bỏ".

  • Khi kỹ sư senior làm tốt điều này, dự án sẽ diễn ra trơn tru và nhìn bề ngoài có vẻ dễ dàng, nhưng thực tế đó là kết quả của một lượng lớn "công việc vô hình" đã được thực hiện từ trước.

3. Cách tiếp cận cụ thể để giải quyết sự mơ hồ
  • Trước khi viết code, kỹ sư senior đặt ra những câu hỏi sau để làm rõ vấn đề:
  • Bản chất của vấn đề: Điều chúng ta thật sự đang cố giải quyết là gì, thay vì giải pháp mà chúng ta nghĩ mình muốn?
  • Xác định người dùng: Cụ thể là đang cố giải quyết nỗi đau nào của ai? (tránh dùng từ bao quát như "người dùng")
  • Kiểm chứng giả định: Những giả định sai lầm nào đang ẩn trong kế hoạch hiện tại?
  • Đánh giá rủi ro: Tình huống xấu nhất sẽ là gì nếu nhận định của chúng ta sai?
4. Giới hạn của hệ thống tuyển dụng và việc chọn senior sai cách
  • Phần lớn công ty tuyển dụng bằng cách tập trung vào danh sách tech stack hoặc khả năng giải bài toán thuật toán (LeetCode).
  • Cách làm này không thể kiểm chứng năng lực chuyển các yêu cầu sản phẩm mơ hồ thành kế hoạch có thể thực thi.
  • Kết quả là xuất hiện hàng loạt kỹ sư "chỉ có danh senior" — code rất giỏi nhưng lại không làm được gì khi đối diện với một spec chưa hoàn chỉnh.

Kết luận: Gợi ý để phát triển

  • Năng lực kiến trúc hay giao tiếp đều quan trọng, nhưng chúng chỉ phát huy giá trị sau khi "cần xây cái gì" đã được xác định rõ.
  • Sự xuất sắc về kỹ thuật trong trạng thái chưa giải quyết được sự mơ hồ rốt cuộc chỉ là "giải một bài toán sai theo cách thanh lịch".
  • Tiêu chí để tự đánh giá mình đã ở cấp senior hay chưa nằm ở việc khi nhận một nhiệm vụ trừu tượng, bạn có chờ người khác làm rõ giúp hay tự mình cụ thể hóa nó để cả team có thể thực thi.
  • Đây không phải tài năng bẩm sinh mà là thứ có thể rèn luyện, vì vậy khi nhận một ticket mơ hồ, hãy bắt đầu luyện tập cụ thể hóa vấn đề thay vì lao vào viết code ngay lập tức.

5 bình luận

 
mhj5730 2025-12-30

Tôi cũng cho rằng việc đánh giá lập trình viên senior bằng “bài kiểm tra code thuật toán” là một giới hạn của hệ thống tuyển dụng. Tôi nghĩ một senior developer xứng đáng với mức lương là người đã tiến gần đến bản chất của vấn đề, hoặc có khả năng tiến gần đến nó.

 
elbanic 2025-12-25

Qua bài này, tôi nhận ra rằng tùy theo góc nhìn mà mỗi người sẽ có cách hiểu khác nhau. Theo tiêu chí của tôi, chuẩn để phân biệt giữa kỹ sư senior và kỹ sư cấp trung chỉ đơn giản là phạm vi phụ trách. Việc cụ thể hóa Ambiguity là năng lực nền tảng của một kỹ sư, và tôi nghĩ từ mức kỹ sư cấp trung trở lên thì phải làm được điều này thì danh xưng kỹ sư mới thật sự phù hợp. Vì vậy, với tôi, bài viết này cũng có thể trở thành tiêu chí để phân biệt giữa kỹ sư cấp trung và kỹ sư mới vào nghề (associate).

 
mbh023 2025-12-24

Trong trạng thái chưa thể định nghĩa rõ ràng vấn đề,

sự xuất sắc về kỹ thuật rốt cuộc cũng chỉ là “giải quyết một vấn đề sai theo cách tinh tế”.

Một câu thật sự nổi da gà

 
bichi 2025-12-24

Với bài kiểm tra dành cho lập trình viên senior thì đến phần test lập trình còn có thể chấp nhận được
nhưng nếu đưa ra bài toán thuật toán thì thật sự quá khó hiểu (vì bối rối quá nên cũng không nhớ nổi)

 
baeba 2025-12-24
1. Kỹ năng đặt câu hỏi và vốn xã hội (Social Capital)
  • Sự không biết mang tính chiến lược: Câu hỏi của senior không xuất phát từ việc thiếu hiểu biết, mà là hành động có chủ đích nhằm loại bỏ sự bất định. Việc không ngại đặt những câu hỏi nền tảng ("Từ viết tắt này là gì?") là một năng lực cốt lõi.
  • Tận dụng vốn xã hội: Khác với junior, senior đã xây dựng được 'vốn xã hội (niềm tin)', nên dù đặt ra "những câu hỏi ngớ ngẩn" cũng không bị đánh giá là kém năng lực. Vai trò của senior là tận dụng điều này để gỡ bỏ sự mơ hồ trong các cuộc họp.
  • Cân nhắc bối cảnh chính trị: Với những quản lý né tránh sự rõ ràng, câu hỏi quá trực diện có thể bị xem là đe dọa. Vì vậy cần có kỹ năng ứng xử tinh tế để chọn ra những câu hỏi vừa an toàn về mặt chính trị vừa giúp dự án tiến triển.
2. Tính tự chủ và quản trị rủi ro (Autonomy & Risk)
  • Giải quyết vấn đề không có lưới an toàn: Khả năng tự mình vượt qua (Plough through) và hoàn thành vấn đề ngay cả khi không có hỗ trợ bên ngoài hay chỉ dẫn rõ ràng là tiêu chuẩn của senior.
  • Kiểm soát hỗn loạn (Chaos): Thay vì theo đuổi sự rõ ràng một cách tuyệt đối, senior quyết định khi nào nên 'dừng lại' và khi nào nên 'tiến lên' tùy theo tình huống. Họ giảm bớt hỗn loạn bằng cách đưa ra các giả định hợp lý và triển khai (Ship), thay vì chờ đợi một spec hoàn hảo.
  • Chấp nhận rủi ro có tính toán: Họ đưa ra những quyết định kỹ thuật táo bạo mà junior không thể làm, như sửa code không compile ngay tại runtime hoặc thực hiện refactor quy mô lớn, đồng thời chịu trách nhiệm cho kết quả của chúng.
3. Lạm phát chức danh và mâu thuẫn cấu trúc trong tuyển dụng
  • Lạm phát chức danh (Title Inflation): Thực trạng phổ biến là thăng chức junior chưa sẵn sàng lên senior để đạt KPI. Điều này tạo ra khoảng cách giữa chức danh và năng lực thực tế.
  • Giới hạn của cách tuyển dụng: Doanh nghiệp chỉ tập trung tuyển người giải được bài toán thuật toán (LeetCode), thay vì đánh giá khả năng biến các yêu cầu mơ hồ thành thứ cụ thể. Kết quả là tạo ra hàng loạt 'senior mà không có spec thì không làm được gì'.
  • Làm thay vai trò của PM: Senior engineer phải tốn thời gian cụ thể hóa những bản kế hoạch còn nửa vời (Half-baked spec) mà PM lười biếng đưa ra. Đây vừa là một phần năng lực của kỹ sư, vừa là bằng chứng cho sự kém hiệu quả ở cấp độ tổ chức.
4. Thâm niên (Tenure) đơn thuần so với rèn luyện có chủ đích
  • Khác biệt về chất lượng kinh nghiệm: "10 năm trưởng thành" và "lặp lại 1 năm kinh nghiệm 10 lần" là hai điều cần được phân biệt rõ ràng. Một senior thực thụ được hình thành qua việc luyện tập có chủ đích và liên tục đón nhận thử thách ngoài vùng quen thuộc.
  • If vs What-if: Junior tập trung xử lý các điều kiện đã cho (If), còn senior luôn giả định và chuẩn bị cho trường hợp điều kiện thay đổi (What-if).
  • Định nghĩa các giai đoạn phát triển: Chuẩn phân loại phổ biến trong ngành là 'giai đoạn cần được hướng dẫn (Junior)' → 'giai đoạn tự làm độc lập (Regular)' → 'giai đoạn dẫn dắt người khác (Senior)'.
5. Góc nhìn hoài nghi về danh xưng senior
  • Chỉ là bậc lương (Pay Grade): Có quan điểm hoài nghi cho rằng danh xưng senior không phải thước đo năng lực, mà chỉ là cách phân loại hành chính do HR tạo ra để định mức lương.
  • Khoảng cách giữa các công ty: Chênh lệch về năng lực và đãi ngộ giữa senior ở các công ty Big Tech (xử lý phạm vi công việc lớn và mức độ mơ hồ cao) và senior ở các công ty thông thường (chỉ đơn thuần là người làm lâu năm) là rất lớn.