Sự khác biệt giữa một lập trình viên tập sự, trung cấp, và cao cấp

Và những điều bạn có thể làm để lên được cấp tiếp theo

Tác giả: Daan

—————–

Trở thành một lập trình viên tập sự, trung cấp và cao cấp không hoàn toàn phụ thuộc vào số năm kinh nghiệm của bạn. Một lập trình viên tập sự có thể già hơn một lập trình viên cấp cao. Nó phụ thuộc vào kỹ năng. Điều này không có nghĩa lập trình viên cấp cao phải là chuyên gia về mọi thứ, nhưng có thể nói rằng họ có nhiều kỹ năng hơn lập trình viên tập sự và trung cấp.

Nhưng sự khác biệt về kỹ năng lập trình không phải điều duy nhất tách biệt một lập trình viên cấp cao với lập trình viên trung cấp và tập sự. Vậy sự khác biệt thực sự là gì?

Kiến thức

Lập trình viên cấp cao chắc chắn có nhiều kiến thức hơn cấp trung và tập sự. Học hỏi về thiết kế, kiến trúc, kiểm thử tự động, bảo mật,… là một hướng tốt để cấp trung có thể thu hẹp khoảng cách về kiến thức với cấp cao.

Điều quan trọng là bạn biết điều gì cần phải làm trong quy trình phát triển phần mềm. Nhưng biết những điều này vẫn chưa làm bạn thành lập trình viên cấp cao. Kiến thức không phải là khác biệt duy nhất giữa những lập trình viên.

———-

Lập trình

Không như nhiều người nghĩ, việc lập trình không phải là giao tiếp với máy tính. Lập trình là giao tiếp với con người và ra lệnh cho máy tính. Dần dần, mã nguồn được tổng hợp và chuyển thành những con số 0 và 1.

Mã nguồn cần phải hợp lý để những lập trình viên khác có thể làm việc với nó trong tương lai. Một nhóm mới chưa từng được xem mã nguồn trước đây cần phải mở được code và có thể phát triển thêm tính năng mới hoặc sửa lỗi. Đây là một sự khác biệt lớn giữa lập trình cấp cao và tập sự.

Tôi không nói đến cấp trung trong so sánh này vì họ nằm trong vùng xám khi nói về kỹ năng lập trình. Ở khoảng giữa của tập sự và cấp cao. Với thiên hướng tiến lên cấp cao. Phụ thuộc phần lớn vào kinh nghiệm, do cấp trung có lẽ đã ít nhất đi hết toàn bộ quy trình phát triển ít nhất một lần. Họ đã phạm phải nhiều sai lầm căn bản và học hỏi từ đó.

Cách nhận biết lập trình viên tập sự?

Lập trình viên tập sự thiếu kinh nghiệm. Một số vừa mới tốt nghiệp và mới đang khởi đầu sự nghiệp. Họ chỉ nghĩ cách để làm cho code chạy được. Một phần mềm chạy được và một phần mềm tốt là giống nhau.

Viết code một cách rõ ràng rất khó. Và đó là điều mà lập trình viên tập sự thường không làm. Họ thường viết code rất khoe mẽ. Bạn có thể nhận ra một lập trình viên tập qua những dòng code khó hiểu và phức tạp quá mức. Đây là cách để họ thể hiện và cho những lập trình viên khác thấy trình độ của họ. Điều đó sai.

Lập trình viên tập sự tập trung quá nhiều vào yếu tố máy móc khi code mà bỏ qua con người.

Còn lập trình viên cấp cao thì sao?

Khi nhìn vào code của lập trình viên cấp cao, bạn có nghĩ: nếu như tất cả ở đây? Thì phần code còn lại ở đâu? Một lập trình viên cấp cao viết code một cách đơn giản, dễ hiểu, thậm chí ngu ngốc. Đây là một tiều chuẩn quan trọng mà một lập trình viên cần có khi nói về lập trình. Một lập trình viên cấp cao tuân theo nguyên tắc KISS: Keep it simple, stupid (Giữ mọi thứ đơn giản thôi, thằng ngu)

Một lập trình viên cấp cao tư duy về code của mình theo một hướng khác so với tập sự. Code của lập trình viên cấp cao được viết ra với khả năng duy trì và mở rộng được ghi trong đầu. Đây là tư duy khác biệt so với lập trình viên tập sự – cấp cao nghĩ về những người khác phải làm việc với code của mình, còn tập sự thì chỉ nghĩ về cách để làm cho code chạy được trên máy.

——-

Hơn cả kỹ năng lập trình

Bên cạnh kỹ năng lập trình, còn một vài yếu tố khác cho thấy sự khác biệt giữa những lập trình viên.

Lập trình viên tập sự, nhìn chung, thường làm những công việc đơn giản hoặc không mang lại nhiều ảnh hưởng. Họ không liên quan đến thiết kế hệ thống. Cấp trung cũng không liên quan nhiều, họ thường chỉ làm những việc quen thuộc. Điều tách biệt họ với tập sự là họ không cần nhiều sự giám sát khi làm nếu như những công việc đó không thay đổi nhiều. Lập trình viên cấp cao thì có thể tự mình phát triển một ứng dụng hoàn chỉnh.

Điều này không có nghĩa là lập trình viên cao cấp không có thắc mắc khi làm việc. Mọi lập trình viên đều có hàng loạt câu hỏi mỗi ngày và điều đó sẽ không thay đổi. Đối với cấp cao cũng vậy.

Chỉ khác là lập trình viên cấp cao biết cách hỏi và cách mà chúng được giải quyết. Cấp trung có thể biết cách hỏi khi làm những thứ quen thuộc, nhưng cần giúp đỡ khi phải giải quyết những thứ phức tạp hơn.

Một lập trình viên cấp cao không bị lạc lối và biết những thứ cần làm sau khi đặt câu hỏi. Điều này không có nghĩa là cấp cao không cần trợ giúp từ người khác. Đôi lúc cách tốt nhất là đi hỏi những người có kinh nghiệm hơn.

Lập trình viên cấp trung có thể biết cách hỏi, chỉ cần không phải là những vấn đề phức tạp quá mức và yêu cầu kiến thức chuyên môn sâu rộng.

Lập trình viên tập sự thường không biết cách hỏi. Bởi vì thiếu kinh nghiệm, nên họ sẽ cần sự hướng dẫn từ những người có kinh nghiệm hơn. Họ cần có đủ tài nguyên hoặc được chỉ cho cách đi đúng hướng.

———

Tiến lên cấp tiếp theo

Khi là một lập trình viên, chúng ta đều muốn cải thiện và trở nên tốt hơn. Nhưng phải làm thế nào để lên được cấp tiếp theo?

Tập sự lên cấp trung

Do tập sự thiếu kinh nghiệm, nên điều quan trọng là họ cần đi hết một vòng quy trình phát triển vài lần. Bằng cách này, họ sẽ mắc nhiều sai lầm và học được cách tránh để chúng xảy ra lần sau.

Khi nói về lập trình, họ cần học cách viết code đơn giản. Nghĩ về những người phải làm việc cùng với dòng code đó. Họ cũng cần học cách phân tích lỗi, việc này sẽ giúp họ hiểu rõ hơn về quy trình.

Tiếp theo, họ cần làm quen với những phương pháp và tìm hiểu về kiến trúc, hiệu năng, bảo mật… Thu hẹp khoảng cách kiến thức cần thiết để đi lên cấp trung.

Cấp trung lên cấp cao

Từ cấp trung để lên được cấp cao thường không đơn giản. Một vài lập trình viên chỉ dừng ở cấp trung trong toàn bộ sự nghiệp.

Lập trình viên cấp cao biết đường nào có thể đi tắt và đường nào không bao giờ được đi tắt. Đây là những bài học đắt giá đến từ những sai lầm trong quá khứ.

Nếu như bạn muốn tiến lên cấp cao, bạn cần chuẩn bị để nhận làm những việc không ai biết làm. Bạn cần phải biết nhiều hơn là việc chỉ làm cho code chạy.

Khi là một lập trình viên cấp cao, việc của bạn sẽ bao gồm cả hỗ trợ những người ít kinh nghiệm hơn. Bạn là chỗ dựa cho những người khác khi họ không biết phải làm một việc gì đó.

Và một điều không mấy ngạc nhiên là lập trình viên cấp cao cần phải làm chủ được công cụ làm việc. Không chỉ là về kỹ năng lập trình. Mà còn là hiểu biết về công cụ và ứng dụng mà công ty bạn đang sử dụng.

————-

Kết luận

Sự khác biệt giữa lập trình viên cấp cao, cấp trung và tập sự không chỉ đến từ số năm kinh nghiệm. Mặc dù đúng là lập trình viên cấp cao thì thường có nhiều kỹ năng hơn 2 cấp còn lại. Nhưng kiến thức không phải là yếu tố quan trọng nhất.

Lập trình viên cấp cao viết code đơn giản và có cách tư duy khác so với tập sự. Nhưng hơn cả kỹ năng lập trình. Biết cách hỏi và cần làm gì với nó cũng rất quan trọng. Và đó là thứ mà chỉ những lập trình viên cấp cao, với bề dày kinh nghiệm của bản thân, biết cách xử lý trong mọi tình huống.

Để đi lên từ cấp tập sự bạn cách học cách viết code dễ hiểu và trải qua nhiều vòng quy trình phát triển. Để đi lên từ cấp trung bạn cần học hỏi nhiều hơn ngoài việc làm những thứ quen thuộc. Bạn cần sẵn sàng để làm những việc khó nhằn nhất và làm chủ các công cụ. Một trách nghiệm của lập trình viên cấp cao là làm chỗ dựa cho những lập trình viên ít kinh nghiệm hơn.

Tôi sẽ kết thúc với một phát biểu của Martin Fowler: “Bất cứ tên ngốc nào cũng có thể viết được code cho máy tính hiểu. Một lập trình viên giỏi là người viết được code cho người khác hiểu.”

Leave a Reply

Your email address will not be published. Required fields are marked *