Sự khác biệt giữa nhà phát triển junior, mid-level và senior là gì?
Như tất cả các sự nghiệp khác, có một hệ thống cấp bậc trong kỹ thuật phần mềm. Như chúng ta biết, nó dựa trên kinh nghiệm, kiến thức kỹ thuật và kỹ năng lãnh đạo. Bây giờ nếu bạn đang đọc điều này, có lẽ bạn không rõ lắm về nơi những đường này tồn tại. Ví dụ, nhà phát triển junior so với senior hoặc nhà phát triển entry-level so với junior. Đó là một chút mơ hồ, đặc biệt khi các công ty có bộ tiêu chí riêng để đánh giá những loại nhà phát triển này.
Khi bạn tiến triển trong sự nghiệp, bạn sẽ đến một điểm mà bạn muốn chuyển sang giai đoạn tiếp theo. Mỗi giai đoạn đều đi kèm với những mong đợi, yêu cầu kỹ năng và mức lương riêng biệt. Tôi sẽ cố gắng hết sức mình để phân tích từng cấp độ; entry, junior, senior và tech lead dựa trên tiêu chí tôi vừa nêu. Bây giờ, điều này không phải là chân lý tuyệt đối, nhưng hy vọng nó sẽ hướng dẫn bạn đúng hướng và theo con đường phát triển đúng đắn. Vì vậy, hãy bắt đầu!
1. Làm thế nào để trở thành một kỹ sư entry-level/junior
Tôi sẽ nói thẳng ra rằng, có lẽ đây sẽ là giai đoạn khó khăn nhất trong sự nghiệp của bạn! Đặt chân vào cánh cửa không phải là một nhiệm vụ dễ dàng cho mọi người (tôi cũng vậy). Chúng ta đến từ các nền giáo dục khác nhau và thậm chí là các quốc gia khác nhau, điều này ảnh hưởng đến cơ hội việc làm của chúng ta. Ví dụ, ra khỏi một Bootcamp sẽ không giống như có một bằng đại học đầy đủ với một kỳ thực tập.
Ban đầu có thể làm bạn sợ hãi, nhưng đừng lo, chúng ta đều từng trải qua và với một chút kiên trì và kiên nhẫn, bạn sẽ đạt được công việc đầu tiên đó! Nếu bạn đang ở giai đoạn này và gặp khó khăn, hãy giảm một chút kỳ vọng và thử nghiệm với một thực tập hoặc startup - hãy áp dụng kỹ năng ngay khi bạn có thể và bắt đầu xây dựng hồ sơ của bạn.
Những gì bạn có thể mong đợi
Phần lớn thời gian, bạn sẽ phụ thuộc nhiều vào đội ngũ và người hướng dẫn để hướng dẫn bạn và giúp bạn phát triển. Có thể sẽ có một chút hội chứng giả mạo nhưng hãy cố gắng để bỏ qua, công ty và đội của bạn không mong đợi bạn biết mọi thứ. Chắc hẳn họ biết rằng nhiều thời gian của bạn sẽ được dành cho việc học và đặt câu hỏi.
Nhiều trách nhiệm của các kỹ sư entry-level xoay quanh việc học môi trường kỹ thuật mà họ sẽ làm việc và hiểu quy trình của một đội ngũ kỹ sư. Khi bạn hiểu rõ, bạn sẽ được mong đợi tham gia vào một codebase và thêm (nhỏ) vào đó mà không gặp quá nhiều vấn đề.
Hãy mong đợi học những phức tạp của dự án bạn tham gia, trong khi sử dụng các kiến thức cơ bản bạn đã học để có được vai trò này. Bạn sẽ dành thời gian của mình, đọc yêu cầu, hiểu mã nguồn bạn đang làm việc, và tạo ra những thay đổi này trong một khoảng thời gian cụ thể.
Qua các phiên bản tính năng và sửa lỗi mà bạn hoàn thành, bạn sẽ hiểu cách vòng đời phát triển phần mềm hoạt động và cách dự án của bạn hoạt động. Vòng đời phát triển phần mềm thường khá tương tự giữa các công ty. Hầu hết các công ty thường theo một cấu trúc yêu cầu —> thiết kế —> phù hợp với doanh nghiệp —> và cấu trúc triển khai cho dự án của họ.
Bạn có thể sẽ ở giữa các kỹ sư khác, một số người có kinh nghiệm và đã làm việc lâu hơn bạn. Các kỹ sư này, thường là những người giàu kinh nghiệm hơn, sẽ chịu trách nhiệm giúp bạn học hỏi và là thành viên tích cực của đội ngũ. Hãy xem đây như là một cơ hội để học những kỹ năng từ họ và giúp bạn tiến bộ trong sự nghiệp của mình.
Hãy thở sâu... nhớ rằng, những kỹ sư entry-level sẽ không được mong đợi phải "nhanh chân như chớp", một đội ngũ sẽ mong đợi hướng dẫn bạn và giúp bạn phát triển. Bạn có lẽ đã nghe điều này một triệu lần nhưng nghiêm túc, đừng ngần ngại đặt câu hỏi. Điều này không thể được nhấn mạnh đủ, mọi người giàu kinh nghiệm đều từng là người mới, và để bản thân bạn mải mê đấu tranh với vấn đề sẽ không giúp bạn phát triển. Đặt thời gian giải quyết vấn đề và khi bạn cảm thấy bế tắc, tìm sự giúp đỡ.
Giáo dục và kỹ năng
Là một kỹ sư entry-level, bạn có thể sẽ mới tốt nghiệp đại học hoặc tốt nghiệp từ một boot camp. Trong thời đại này khi bằng cấp thường không phải lúc nào cũng là một đánh giá chính xác về khả năng của ai đó, làm một kỹ sư entry-level thực sự phụ thuộc vào bộ kỹ năng của bạn và lượng kinh nghiệm THỰC TẾ bạn có.
Những kỹ sư entry-level nên hiểu rõ cơ bản về công nghệ mà họ đang làm việc, cùng với môi trường mà họ đang ở. Một hiểu biết ở mức cao là một phần quan trọng ở đây, bạn nên biết một chút về nhiều phần khác nhau của bộ chồng phần mềm bạn đang tham gia, đủ để có ý kiến về nơi bạn cần học thêm, những điều đã biết và chưa biết.
Hơn nữa, bạn nên hiểu cách git hoạt động như một hệ thống kiểm soát phiên bản, và điểm cộng nếu bạn hiểu về chiến lược nhánh. Cuối cùng, nếu bạn có kinh nghiệm tạo pull requests/merge requests thì tuyệt vời, vì bạn sẽ tạo ra rất nhiều trong vai trò là một thành viên của một đội.
Lương của Kỹ sư Junior
Bạn có lẽ đã tìm kiếm trên Glassdoor hoặc LinkedIn, nơi sẽ cung cấp cho bạn một khoảng giá khá chính xác dựa trên địa điểm của bạn. Từ kinh nghiệm của tôi, bạn sẽ nhìn vào mức từ $65-75k, nhưng lại, mức lương khởi điểm sẽ phụ thuộc vào giáo dục, kinh nghiệm và kỹ năng. Hãy nhớ rằng mức lương cao hơn ở Hoa Kỳ so với Châu Âu hoặc nơi khác. Điều này cũng có thể thay đổi lớn tùy thuộc vào công nghệ bạn đang làm việc, vì vậy hãy chắc chắn thực hiện nghiên cứu cụ thể hơn cho khu vực, công ty và công nghệ của bạn.
2. Làm thế nào để trở thành một kỹ sư mid-level
Kỹ sư mid-level đứng giữa các vị trí nhà phát triển junior và senior. Là một kỹ sư mid-level, bạn bắt đầu nắm bắt được mọi thứ. Bạn sẽ không cần nhiều sự hỗ trợ hoặc hướng dẫn nhiều, và bạn sẽ có kinh nghiệm trên nhiều dự án trong một môi trường chuyên nghiệp.
Khó để đặt một con số vào đó, nhưng một nhà phát triển mid-level có khả năng đã có vài năm kinh nghiệm và hàng giờ lập trình dưới dây anh ta. Bạn có thể đã thay đổi công ty và làm việc trên một codebase khác nhau.
Những gì bạn có thể mong đợi
Kỹ sư mid-level là những kỹ sư đã làm việc trong vài năm hoặc có thể đã tham gia vào vai trò kỹ sư thứ hai của họ. Một công ty sẽ mong đợi bạn có hiểu biết tốt về vòng đời phát triển phần mềm và có khả năng tiếp nhận công việc mà không cần nhiều hướng dẫn trong phần lớn thời gian. Hoàn toàn chấp nhận khi đặt câu hỏi về ngữ cảnh xung quanh công việc của bạn và làm rõ công việc, tuy nhiên, một kỹ sư mid-level sẽ ít gặp khó khăn trong việc triển khai kỹ thuật của một tính năng.
Phạm vi kiến thức của một kỹ sư mid-level sẽ được tập trung chủ yếu vào các ứng dụng mà họ hỗ trợ và toàn bộ quy trình trong các ứng dụng của họ. Những kỹ sư cấp độ này nên có khả năng nhận một tính năng có độ phức tạp cao và hoàn thành nó trong khoảng thời gian hợp lý.
Một kỹ sư mid-level cũng nên có khả năng triển khai hoàn toàn các tính năng mới từ đầu và làm việc qua quá trình tích hợp của những tính năng này với phần còn lại của mã nguồn. Ngoài ra, họ sẽ có kinh nghiệm trong phát triển để biết khi nào các tính năng cụ thể nên được chia thành các phần tiêu thụ được hơn, cũng như một ý tưởng cơ bản về cách tiếp cận một vấn đề kỹ thuật.
Một cách tuyệt vời để chuyển từ kỹ sư junior lên kỹ sư mid-level là đơn giản là dành một khoảng thời gian đáng kể trên cùng một dự án, học cách nó hoạt động và có kinh nghiệm trong nhiều khía cạnh khác nhau của mã nguồn. Tiếp xúc với các phần khác nhau của mã nguồn và nhiều thời gian tập trung trong mã sẽ giúp bạn đẩy nhanh sự phát triển sự nghiệp của mình. Mã nguồn mã nguồn mã nguồn.
Giáo dục và Kỹ năng
Hãy tiếp tục như cùng một loại giáo dục như một kỹ sư entry-level, nhưng thêm kiến thức sâu rộng hơn về các công nghệ bạn đang làm việc. Ví dụ, nếu bạn làm việc trong React, bạn có thể giờ đây hiểu rõ hơn về các khái niệm tiên tiến đằng sau React và bắt đầu hiểu cách phân rã một yếu tố UI thành nhiều phần khác nhau để tạo ra, điểm cộng nếu bạn có thể làm cho chúng có thể tái sử dụng cho kỹ sư khác trên ứng dụng của bạn.
Ngoài ra, bạn nên bắt đầu cập nhật xu hướng ngành và công nghệ mới nổi ở đây. Ngành công nghiệp công nghệ đang liên tục phát triển và cải thiện và có nhiều giải pháp hơn cho những vấn đề của ngày hôm qua.
Lương của Kỹ sư Mid-level
Một lần nữa, tôi đang lặp đi lặp lại, nhưng phạm vi lương sẽ thay đổi từ công ty này sang công ty khác và từ địa điểm này sang địa điểm khác. Hãy nói rằng một kỹ sư mid-level có ít nhất 2-3 năm kinh nghiệm, bạn có thể mục tiêu mức lương từ khoảng $80-90k. Nhớ rằng, kỳ vọng về lương tại Facebook sẽ khác nhiều so với một startup. Nhưng bạn có thể tìm được một sự thỏa hiệp thông qua cổ phần hoặc các phúc lợi bổ sung.
3. Làm thế nào để trở thành một Kỹ sư Senior
Đây là bước quan trọng tiếp theo, trở thành một kỹ sư senior! Điều này chắc chắn là một danh hiệu rất thú vị để bước vào và một lợi ích lớn về tự chủ và giá trị thị trường (mỗi công ty đều muốn có một lập trình viên senior có kỹ năng nổi bật nên chuẩn bị cho một loạt các tin nhắn trên LinkedIn).
Danh hiệu senior thể hiện sự chuyên môn, một lịch sử thành công trên nhiều dự án và kỹ năng lãnh đạo để hướng dẫn các nhà phát triển junior và mid-level. Trong vai trò này, bạn sẽ cần là người lắp ráp mọi lĩnh vực và một chuyên gia mới bắt đầu. Vì vậy, hãy chuẩn bị để linh hoạt và linh hoạt trong công việc hàng ngày của bạn. Bạn sẽ đứng đầu và hướng dẫn, được giao nhiệm vụ giải quyết các vấn đề phần mềm phức tạp và đóng vai trò là nguồn kiến thức (không có áp lực).
Những gì bạn có thể mong đợi
Là một kỹ sư senior, bạn sẽ bắt đầu làm việc với leads/managers để thiết kế hệ thống mới và ước lượng công việc cần thiết trong dự án tổng thể. Kỹ sư senior cũng nên có khả năng trình bày nhiều giải pháp, hiểu rõ lợi ích và nhược điểm của mỗi giải pháp và cuối cùng, có khả năng diễn đạt rõ ràng giải pháp nào là tốt nhất cho đội. Kỹ sư senior cũng có thể dành ít thời gian thực sự lập trình hơn và nhiều thời gian hơn để hướng dẫn, thiết kế và lãnh đạo.
Một kỹ sư senior thường là một cây cầu giữa quản lý dự án, kỹ sư và quản lý. Bằng cách biết ứng dụng, kiến trúc mà nó tồn tại và độ phức tạp xấp xỉ của công việc sắp tới, kỹ sư senior có thể giúp duy trì dự án và cung cấp hỗ trợ khi cần thiết.
Điều này đôi khi dẫn đến việc kỹ sư senior trở thành một vai trò hỗ trợ hơn cho cả đội, có khả năng điền đầy những khoảng trống cần thiết và giải quyết các rắc rối cho các kỹ sư khác. Ngoài ra, kỹ sư senior sẽ có kinh nghiệm và tầm nhìn để nhận thức những chỗ mà các thành viên nhóm có thể gặp khó khăn và tích cực loại bỏ chúng. Sự tin tưởng của đội đối với một kỹ sư senior quan trọng, vì các thành viên khác sẽ nhìn đến họ để giải quyết những vấn đề mà họ không chắc cách giải quyết và dạy đội hiệu quả trong quá trình đó.
Bên ngoài đội, một kỹ sư senior cũng sẽ tìm kiếm cơ hội cải tiến trong tổ chức hoặc doanh nghiệp. Họ có thể bắt đầu hỗ trợ thư viện mã chung cho các đội khác sử dụng và hỗ trợ những mã nguồn này. Họ tìm kiếm cơ hội để loại bỏ công việc lặp lại, loại bỏ công việc nhàm chán và tăng cường hiệu suất của đội. Những cơ hội này đôi khi có thể mơ hồ với yêu cầu ở mức cao, nhưng kỹ sư senior nên có khả năng chọn lọc chúng thành các giải pháp mà không cần hướng dẫn.
Giáo dục và kỹ năng
Do tính hỗ trợ của vai trò này, kỹ năng mềm trở nên rất quan trọng. Biết cách giao tiếp với đồng đội một cách tôn trọng, thảo luận một cách tôn trọng về những chủ đề thách thức và can thiệp để ngăn chặn xung đột. Bằng cách xây dựng mối quan hệ và kỹ năng mềm trong đội, một kỹ sư senior có thể sử dụng những kỹ năng này để giúp những kỹ sư có thể đang gặp khó khăn với một vấn đề.
Về mặt kỹ thuật, một kỹ sư senior sẽ rất thành thạo về các công nghệ được sử dụng trong một dự án cũng như kiến trúc tổng thể cho dự án. Các mô hình thiết kế, kiến trúc và chiến thuật tăng cường hiệu suất cho ứng dụng sẽ bắt đầu trở thành thứ tự thứ hai. Khó mà có thể cụ thể hơn mà không biết chuyên môn của bạn, nhưng tôi nghĩ bạn đã hiểu ý tưởng!
Lương Kỹ sư Senior
Do đó, ở đỉnh của thang máy phát triển, bạn sẽ có nhiều cơ hội nhất và có thể đảm bảo một mức lương thoải mái. Ở Hoa Kỳ, mức lương cho một kỹ sư senior nên bắt đầu từ khoảng $100-110k, nhưng một lần nữa, điều này sẽ phụ thuộc vào thành phố và công ty của bạn.
4. Làm thế nào để trở thành một Tech Lead
Bước tiếp theo hợp lý sau khi trở thành một kỹ sư senior là vào quản lý. Rõ ràng quản lý không phải dành cho mọi người, nhưng nếu đây là nơi bạn đang ở, hãy tìm hiểu xem bạn có thể mong đợi gì.
Bạn sẽ chuyển từ một người đóng góp cá nhân sang phía người và dự án của doanh nghiệp. Số lượng mã lập trình cho loại vai trò này thường nhỏ hơn nhiều vì làm quản lý, bạn sẽ phụ thuộc vào đội của mình để xây dựng những gì dự án yêu cầu.
Những gì bạn có thể mong đợi
Rời khỏi phía người đóng góp cá nhân (IC) của doanh nghiệp không phải dành cho tất cả mọi người. Một số kỹ sư senior không bao giờ chuyển sang quản lý vì sự thay đổi về tốc độ và phong cách làm việc. Người quản lý và leads sẽ bắt đầu phụ thuộc nhiều hơn vào các kết nối tương tác, mối quan hệ, kỹ năng kinh doanh và kinh nghiệm trước đó để giúp họ dẫn dắt một đội vào thành công trên các dự án khác nhau.
Bạn sẽ cần dẫn dắt đội của mình và không kém phần quan trọng, bảo vệ cho đội của bạn. Nhiệm vụ của bạn là giữ cho đội của bạn trên đúng hướng đối với việc giao hàng cụ thể. Điều này có thể có nghĩa là cung cấp cho đội của bạn các nguồn lực cần thiết để tạo ra các tính năng mới hoặc loại bỏ những chướng ngại mà họ gặp phải trong quá trình hoàn thành nhiệm vụ của họ.
Loại môi trường này có nghĩa là với vai trò quản lý, bạn cũng cần có kiến thức tốt về mô hình kinh doanh của công ty để biết nói chuyện với ai khi xảy ra các vấn đề cụ thể. Một người quản lý mạnh mẽ nên có khả năng biết ai để liên hệ và phụ thuộc vào để giải quyết các vấn đề cụ thể cho một đội.
Ngoài phía dự án, một người quản lý cũng là một vai trò nơi bạn chịu trách nhiệm giúp đội của bạn cảm thấy hài lòng với vai trò của họ và tạo cơ hội cho họ phát triển. Bạn sẽ giúp họ đạt được những mục tiêu mà họ muốn, hướng dẫn họ qua những tình huống khó khăn trong đội của họ, và có thể thậm chí xử lý các xung đột giữa các thành viên trong đội. Điều này cũng có nghĩa là bạn sẽ cần xử lý tình huống với các thành viên đội không hoạt động hiệu quả và giúp họ quay lại đúng đường. Hãy mong đợi sử dụng kỹ năng mềm mại một cách nặng nề trong vai trò quản lý.
Giáo dục và kỹ năng
Tùy thuộc vào tổ chức, quản lý có thể yêu cầu bằng cấp về quản lý hoặc kinh nghiệm trong quản lý để đạt được một vai trò như vậy. Thường thì, kỹ sư senior có thể chuyển sang vai trò quản lý do sự hiểu biết về công ty và họ có lịch sử thành công. Bất kể yêu cầu của một công ty đối với vai trò quản lý, kỹ năng mềm là rất quan trọng.
Hiểu biết về con người, xây dựng mối quan hệ với người khác, thái độ bình tĩnh và sự điều tĩnh trong khi xảy ra xung đột trong đội và trong các cuộc trò chuyện khó khăn thì thường là điều bình thường ở đây. Việc tiếp tục học về xu hướng ngành công nghiệp và thực hành liên tục các kỹ năng mềm có thể giúp một người quản lý đạt được thành công.
Lương Tech Lead
Giống như mọi khoảng lương khác... nó thay đổi :) Có xu hướng có sự chồng lấn ở đây giữa Kỹ sư Senior và Quản lý, tuy nhiên, được dự kiến mức lương khởi điểm là khoảng $110k và $120k.
…
Trở thành một nhà phát triển phần mềm có nhiều giai đoạn khác nhau. Nó bắt đầu trong một môi trường rất tập trung, phát triển kỹ năng debug và phát triển cá nhân bằng cách học từ người khác. Điều này dẫn đến một vai trò đóng góp cá nhân hơn trong một đội, nơi họ có thể được tin tưởng để phát triển một tính năng, với độ phức tạp khác nhau, trong khung thời gian dự án.
Lịch sử thực hiện chứng minh cho một nhà phát triển trở thành người hướng dẫn cho người khác, tìm kiếm các lĩnh vực hiệu quả và dẫn dắt đội ngũ đến thành công. Trong các đội tuyệt vời, những nhà phát triển phần mềm giúp đỡ lẫn nhau học hỏi và phát triển, thách thức lẫn nhau một cách hỗ trợ. Các đội ngũ hỗ trợ lẫn nhau để phát triển, thực hiện sản phẩm xuất sắc và tiếp tục đổi mới trong thế giới phát triển phần mềm nhanh chóng và luôn thay đổi.