Sự khác biệt giữa Junior, Mid-Level và Senior Developer
Bài đăng này đã không được cập nhật trong 5 năm
Là một junior, mid-level hoặc senior developer, không nhất thiết phải dựa vào số năm kinh nghiệm mà bạn có. Một junior developer thậm chí có thể già hơn một senior developer. Tất cả là ở kỹ năng. Điều này không có nghĩa là một senior developer phải là chuyên gia về mọi thứ, nhưng ổn khi nói rằng các senior developers có nhiều kỹ năng hơn các junior và mid-level developers.
Nhưng không chỉ dựa vào kỹ năng coding để phân biệt các senior developers với các junior và mid-level developers. Vậy chính xác sự khác biệt là gì?
Knowledge
Rõ ràng các senior developers có nhiều kiến thức hơn nhiều so với các mid-level và junior developers. Biết về design patterns, architecture, automating testing, performance, security, ... là cách tốt để các junior developers thu hẹp khoảng cách kiến thức với các mid-level và senior developers.
Điều quan trọng là phải biết mọi thứ trong software development nên thực hiện như thế nào. Nhưng chỉ biết tất cả những thứ này không làm bạn trở thành một senior developer. KIến thức không phải là sự khác biệt lớn nhất giữa các developers - Nó chỉ là một trong những yếu tố.
Coding
Mặc dù hầu hết mọi người nghĩ, coding không phải là vấn đề về việc giao tiếp với máy tính. Coding là việc giao tiếp với con người và hướng dẫn máy tính. Cuối cùng, code được biên dịch và dịch sang số 0 và 1.
Code phải có ý nghĩa đối với các developers khác làm việc với nó trong tương lai. Một team mới chưa bao giờ đọc code trước đó sẽ có thể open và start làm việc với các tính năng mới hoặc fix bugs. Đây là nơi có sự khác biệt lớn giữa các junior developers và senior developers.
Tôi sẽ loại bỏ mid-level developer trong so sánh này vì mid-level developer là một khuvực xám khi nói đến kỹ năng coding. Rõ ràng, nó ở đâu đó giữa junior và senior. Điều này chủ yếu liên quan đến kinh nghiệm, vì các mid-level developers có lẽ đã trải qua toàn bộ ít nhất một lần. Họ đã phạm nhiều sai lầm từ đơn giản nhất và học hỏi từ chúng.
How to sniff out the junior developer?
Các junior developers thiếu kinh nghiệm. Một số vừa tốt nghiệp và đang bắt đầu công việc full time đầu tiên của họ. Suy nghĩ của một junior developer thường chỉ là làm cho code hoạt động. Phần mềm làm việc và phần mềm tốt được coi là như nhau.
Việc lập trình straightforward code là khó. Và nó là một cái gì đó mà các junior developer không thể làm. Junior developer cơ bản thích viết các đoạn code theo ý thích của mình. Bạn có thể nhận ra các junior developer bằng cách sử dụng một quirky one-liners và overly complex abstractions. Đây là cách thể hiện của một junior developer và cho các nhà phát triển khác biết họ có thể viết code tốt như thế nào. Và nó sai.
Các junior developers tập trung vào phía computer side của code với chi phí của human side.
And what about the senior developer?
Khi nhìn vào code của một senior developer, bạn có thể nghĩ: đây có phải là tất cả không? Nơi mà phần còn lại của code? Một senior developer viết mã đơn giản, dễ hiểu và thậm chí có thể ngu ngốc. Đây là một trong những phẩm chất lớn nhất mà một developer có thể có khi nói đến lập trình. Một senior developer tuân theo nguyên tắc KISS: Giữ cho nó đơn giản, ngu ngốc.
Một senior developer nghĩ về code của họ theo một cách khác so với junior developer. Code được viết bởi một senior developer sẽ được thực hiện với khả năng duy trì và khả năng mở rộng. Đây là một suy nghĩ hoàn toàn khác so với junior developer đã có -- senior đang nghĩ về những người phải làm việc với code, trong khi junior chỉ nghĩ về việc làm cho nó hoạt động.
More Than Just Coding Skills
Bên cạnh kỹ năng coding, có một số yếu tố khác có thể cho bạn biết đó là developer ở giai đoạn nào.
Các junior developers, nói chung, thực hiện các tasks hoặc task đơn giản nhất với độ ảnh hưởng thấp. Họ không làm theo bất cứ thiết kế kiến trúc nào. Các mid-level developer cũng không thiết kế giải pháp, họ chỉ thực hiện các tasks. Sự khác biệt với junior developers là họ thực hiện các tasks đó với ít sự giám sát hơn miễn là chúng được giao cho các tasks tương đối thường xuyên. Các senior developers có thể tự mình phát triển một ứng dụng của riêng họ.
Nó không có nghĩa là senior developer không có bất kỳ câu hỏi nào trong quá trình làm. Mỗi developer có rất nhiều câu hỏi mỗi ngày và điều đó đã giành được sự thay đổi. Điều đó không khác gì các senior developers.
Sự khác biệt là các senior developers biết cách đặt câu hỏi đúng và cách xử lý những câu hỏi này. Các mid-level developers có thể đặt câu hỏi đúng khi nói đến các tasks tương đối thường xuyên của họ, nhưng cần trợ giúp cho các tasks phức tạp hơn.
Senior developer không bao giờ bị mất (never lost) và biết cách theo dõi câu hỏi với hành động đúng. Điều này không có nghĩa là một senior developer có thể yêu cầu sự giúp đỡ từ các developer khác. Đôi khi cách tốt nhất là chỉ cần yêu cầu các developers khác có kinh nghiệm trong lĩnh vực đó giúp đỡ.
Mid-level developer cũng có thể hỏi đúng câu hỏi, miễn là anh ta không được giao những tasks rất phức tạp đòi hỏi kiến thức chuyên sâu.
Bạn không nên mong đợi một junior developer sẽ hỏi ngay câu hỏi. Vì các junior developer thiếu kinh nghiệm, họ cần hướng dẫn từ một developer có kinh nghiệm hơn. Junior developer cần được cung cấp các nguồn lực cần thiết hoặc một gợi ý để theo đúng hướng.
Getting to the Next Level
Tất cả chúng ta đều muốn cải thiện bản thân và trở nên tốt hơn với tư cách là một developer. Nhưng các bước mà bạn có thể thực hiện để đạt đến cấp độ tiếp theo là gì?
Junior to mid-level
Vì các junior developers thiếu kinh nghiệm, điều quan trọng là phải trải qua toàn bộ chu trình phát triển ít nhất một vài lần. Bằng cách này, bạn mắc nhiều sai lầm và học cách tránh chúng vào lần tiếp theo.
Khi nói đến coding, bạn nên học cách viết code đơn giản. Hãy nghĩ về người tiếp theo sẽ làm việc với code đó. Bạn cũng nên tìm hiểu cách debug, vì điều này sẽ giúp bạn hiểu rõ hơn về những gì xảy ra trong quá trình.
Hơn nữa, bạn nên làm quen với các thực tiễn tốt nhất và tìm hiểu về architecture, performance, security,... Thu hẹp khoảng cách kiến thức cần có để đạt đến mid-level.
Mid-level to senior
Bắt đầu từ mid-level đến senior có thể khá khó khăn. Một số developers sẽ ở mức mid-level trong toàn bộ sự nghiệp của họ.
Các senior developers biết những góc nào có thể được cắt và những góc nào không bao giờ nên cắt. Đây là những bài học khó học bằng cách phạm sai lầm trong quá khứ.
Nếu bạn muốn lên senior level, bạn phải sẵn sàng nhận những tasks mà không ai biết cách khắc phục. Bạn nên biết nhiều hơn là làm thế nào để hoàn thành công việc.
Là một senior developer, công việc của bạn cũng là giúp đỡ các developer ít kinh nghiệm hơn. Bạn là người support cho các developer khác khi họ không biết cách làm gì đó.
Và nó có thể không làm bạn ngạc nhiên khi các senior developers làm chủ được công nghệ của họ. Có nhiều hơn là kỹ năng coding. Nhận biết tất cả các tools và ứng dụng đang được sử dụng trong công ty mà bạn làm việc.
Conclusion
Sự khác biệt giữa một junior developer, mid-level và senior developer không phải tất cả là số năm kinh nghiệm. Chắc chắn, nó rất ổn khi nói rằng các senior developer có nhiều kỹ năng hơn các mid-level developer và junior developer. Nhưng kiến thức không phải là yếu tố quan trọng nhất.
Các senior developers viết code dễ dàng hơn và có tư duy khác với các junior developers. Nhưng nó không chỉ là kỹ năng coding. Biết những câu hỏi để hỏi và làm thế nào để theo dõi những câu hỏi đó là điều cần thiết. Và đó là điều mà chỉ có senior developer, với kinh nghiệm phong phú của họ, biết cách làm trong mọi tình huống.
Để phát triển như junior developer, bạn nên tập trung vào viết code đơn giản và trải qua nhiều chu kỳ phát triển. Để có thể phát triển từ một mid-level developer đến senior developer, bạn nên tập trung vào việc học nhiều hơn là chỉ làm các tasks thường ngày. Bạn nên sẵn sàng nhận những tasks khó khăn nhất và trở nên master về tech của bạn. Một trách nhiệm khác của một senior developer là trở thành support cho các developers ít kinh nghiệm hơn.
Tham khảo
All rights reserved