Con đường sự nghiệp của một lập trình viên

hoc lap trinh android o dau Khóa học Lập trình android tại Vnskills Academy giúp cho học viên xây dựng được các ứng dụng trên hệ điều hành Android. Bên cạnh đó học viên cũng được cung cấp những kiến thức về ngôn ngữ lập trình Object C được sử dụng trong Android. 
sở hữu 1 sự thực đắng lòng mà phổ quát lập trình viên ko muốn phải đối mặt Đó là sự nghiệp lập trình của họ sẽ tiến đến 1 đỉnh cao và sau chậm triển khai là một sự suy tàn không thể hạn chế khỏi. rốt cục sẽ rất cạnh tranh để bạn sở hữu thể mua thấy và giữ được một công tác với tư cách là một lập trình viên. Đối với phổ biến người, họ phát hiện ra sự thật này mà ko chuẩn bị trước và thường bị sốc. bữa nay, chúng tôi sẽ cung cấp cho bạn 1 số thông báo nghề nghiệp quan yếu mà bạn cần phải suy nghĩ, trong khoảng ngừng thi côngĐây bạn mang thể chuẩn bị trước mai sau cho bản thân mình.
Trang web TechCrunch đã cho đăng bài viết "Mặt tối của Thung lũng Silicon: vấn đề tuổi tác của các lập trình viên", trong Đó nói đến một nghiên cứu cho thấy khoảng thời gian sự nghiệp khiến việc hiệu quả của một lập trình viên là mang ngừng. Nhưng thắc mắc đặt ra là liệu điều Đó là có thật và nó với hiểm nguy.
  • tương lai của 1 lập trình viên sẽ ra sao?
  • tuyến phố sự nghiệp của 1 lập trình viên trông sẽ như thế nào?
  • những tuyển lựa trong sự nghiệp và các hy vọng về những tuyển lựa ngừng thi côngĐây là gì?
gần như mọi người đều biết rằng chung cục các lập trình viên có thể phát triển thành người quản lý (manager) hoặc lãnh đạo (leader). Nhưng rộng rãi lập trình viên không hiểu được kỳ vọng và bắt buộc công việc của 1 nhà quản lý. chắc chắn, toàn bộ chúng ta đều có những người quản lý, việc phát triển thành một người quản lý với ý nghĩa gì? sở hữu những hy vọng gì? Và sự dị biệt giữa một nhà quản lý cấp trung (mid-level manager) và 1 lãnh đạo cấp cao (senior leader) là gì?
Trong bài viết này, tôi muốn kéo bức màn bí ẩn lên và chỉ cho bạn một các con phố sự nghiệp tiềm năng từ sự bắt đầu trong ngành nghề khoa học như 1 Junior Programmer cho đến đỉnh cao nhất là trở nên một CTO (Giám đốc công nghệ).
Lưu ý: đa dạng sự nghiệp to ngừng lại ở những điểm khác nhau của nấc thang nghề nghiệp và ở lại chậm triển khai cho tới tuổi nghỉ hưu. một số sự nghiệp thậm chí đã bỏ qua một vài nấc thang. Nhưng những vai trò điều hành và lãnh đạo chẳng phải là sẽ thích hợp cho phần lớn mọi người, và bạn mang thể sẽ thấy mối quan tâm của mình trong quản lý đổi thay theo năm tháng. lúc bạn đang ở độ tuổi 20, bạn có thể ghét ý tưởng về việc phát triển thành 1 nhà quản lý, nhưng khi ở tuổi 40 thì bạn với thể lại ghét công tác ngồi viết code. Rất khó để dự báo. bên cạnh đó, việc biết và hiểu rõ những tuyển lựa của mình và kết quả mà chúng đem đến là điều rất cần phải có.
Dưới đây là một hình minh họa về các cơ hội nghề nghiệp dành cho 1 lập trình viên có mức lương nhàng nhàng. Lưu ý rằng có 1 số người kiếm được gấp đôi hoặc gấp ba số tiền ở hình trên, ngừng thi côngĐây là các lập trình viên thuộc một ngành nghề dọc nào chậm triển khai như nhà băng, chứng khoán, v.v..., do đó những Báo cáo ở trên chỉ đại diện cho 1 khuôn khổ trung bình, chẳng hề là đại diện cho rất nhiều.
Các chức vụ và mức lương của lập trình viên

Junior Developer

  • 0-3 năm kinh nghiệm (thường là người vừa bước chân ra khỏi giảng đường đại học)
  • mang thể viết những script đơn giản
  • Hiểu biết sơ bộ về đông đảo một vòng đời vận dụng
  • Hiểu biết sơ bộ về cơ sở dữ liệu và các nhà sản xuất áp dụng (queues, caching, v.v...)
  • ko cảm thấy thả sức trong bất cứ phần nào của một áp dụng phức tạp
khi bạn khởi đầu bước chân vào sự nghiệp lập trình, nó có thể đầy khó khăn và nản chí. có lúc bạn cảm thấy chiều sâu kiến thức của mình chưa đủ để phục vụ cho công việc, không kiên cố về việc làm cho thế nào mà người ta có thể viết ra các vận dụng lớn và phức tạp đến tương tự. Và đôi khi, bạn lại tự hỏi tại sao mình vẫn chưa được thăng chức lên thành Senior Developer. Bạn Nhìn vào những lập trình viên senior khác và nghĩ rằng về căn bản thì bạn cũng đang làm cho công tác giống như họ.
Nhưng một dấu hiệu của lập trình viên junior chính là sự thiếu kinh nghiệm. Ngay cả những lập trình viên junior sáng tạo và học hỏi nhanh nhất cũng ko được xúc tiếp sở hữu nhiều code hoặc những trường hợp gai góc mà cần có sự khôn ngoan của một lập trình viên senior. Trong thuật ngữ lập trình, một hình thức của sự khôn ngoan được gọi là các software design pattern. mặc dù bạn với thể đọc sách về các pattern, nhưng bạn cần phải viết đủ code tồi trong sự nghiệp của mình mang tan vỡ ra được các kiến thức Đó và mới hiểu sâu được giá trị của software pattern.
  • Cuốn sách "Design Patterns" của tác kém chất lượng Gamma
  • 1 lập trình viên "junior" thực sự có nghĩa là gì?
  • trở nên 1 lập trình viên junior

Senior Developer

  • 4-10+ năm kinh nghiệm
  • với thể viết các áp dụng phức tạp
  • Hiểu biết sâu sắc về phần nhiều vòng đời của áp dụng
  • Hiểu biết sâu sắc về hạ tầng dữ liệu và những nhà cung cấp ứng dụng (queues, caching, v.v...)
  • làm việc tha hồ trên bất kỳ phần nào của 1 áp dụng
1 lập trình viên senior là 1 vai trò điển hình cho những người thực sự chuyên nghiệp trong việc xây dựng toàn bộ những ứng dụng ở quy mô to. phần đông sự nghiệp của 1 lập trình viên với thể với nhân cách là một lập trình viên senior. Trong thực tiễn, ví như bạn ghét khiến cho điều hành và bạn chỉ ham mê việc viết code, thì bạn mang thể là 1 lập trình viên senior trong suốt sự nghiệp của mình. Tôi đã từng thuê rộng rãi lập trình viên senior ở phổ biến độ tuổi khác nhau, nhưng đây cũng là vai trò ngày càng khó để cạnh tranh một khi bạn trở thành to tuổi.
Vai trò này cũng với thể là một bí quyết để dancing đến 1 vị trí khác trong nấc thang sự nghiệp. 1 lúc bạn hiểu kỹ thuật đủ để trở thành 1 lập trình viên senior, thì bạn có thể đã với những cách kỹ thuật để phát triển thành một technical founder hoặc CTO (Giám đốc công nghệ) của một startup. Việc phát triển thành 1 founder hoặc CTO tại một startup can hệ rất ít đến công tác lập trình nhưng lại phải sở hữu đa dạng kỹ năng về con người. ngoài ra kiến ​​thức khoa học sở hữu chiều sâu sau 1 chặng đường dài là rất nhu yếu để làm tốt công tác ở các vai trò này.

Lead Developer hoặc Architect

  • 7-10+ năm kinh nghiệm
  • với những kỹ năng cơ bản giống như một lập trình viên senior
  • Lead Developer: là vai trò chuyển tiếp vào một chức phận điều hành cấp trung (Mid-Level Manager)
  • Architect: là một vai trò khoa học thuần túy
Sau hơn 7+ năm lập trình, giả dụ bạn thấy mình không phù hợp có công tác quản lý, thì phát triển thành 1 architect là 1 cấp bậc cao nhất còn lại trên những nấc thang sự nghiệp công nghệ. các architect đôi khi viết code, nhưng họ thường thiết kế những hệ thống phức tạp mà sẽ được thực hiện bởi các hàng ngũ lập trình viên senior và junior. công việc của 1 architect là sử dụng các kiến thức công nghệ của mình thu được sau nhiều năm kinh nghiệm (nghiêng về lập trình patterns và anti-patterns) để phục vụ cấu trúc cho một Công trình phần mềm thành công. khi mang một đề nghị mới, một software architect cần phải biết những cách hợp lý để xây dựng và mở mang rất nhiều những cái vận dụng khác nhau.
một lead developer là 1 lập trình viên senior mà các lập trình viên junior và senior khác mua tới để được hướng dẫn và chỉ đạo. mặc dù các lead developer thường ko đảm đang công tác tuyển dụng và sa thải các lập trình viên, nhưng họ làm phần nhiều công việc như vậy như những nhà điều hành. Họ kết hợp những công tác cần phải được thực hiện và là người ra quyết định về những vấn đề thực được thưc thi khi mà viết code.

Mid-Level Manager (Quản lý cấp trung)

  • Chức danh này thường bao gồm những trong khoảng như Manager hoặc Director (Developer Manager, * Product Manager hoặc Project Manager)
  • Là sếp (có thể thuê/sa thải) của các lập trình viên
  • Thống kê công tác tới 1 Senior Leader
điều hành thường là nấc thang tiếp theo trong sự nghiệp dành cho những kỹ sư. mang những trọng tâm khác nhau trong việc điều hành. giả dụ bạn là người mê say theo dõi luồng công tác và mang mối khiếp sợ về những chi tiết, thì việc trở nên 1 project manager là lựa chọn đúng đắn. nếu như bạn bị sợ hãi về các tính năng và cải tiến sản phẩm, thì phát triển thành 1 product manager là rất thích hợp.
tuy nhiên phần nhiều các vị trí quản lý mà một lập trình viên trở nên thường là developer manager. Vai trò tiêu biểu của developer manager là để dàn xếp các nhu cầu của product manager và project manager với những thành viên của đội ngũ lớn mạnh. Vai trò này đòi hỏi kỹ năng mềm rất lớn, thiên tài để dàn xếp những xung đột. công tác của developer manager không chỉ là để tuyển dụng, mà với thể là sa thải các lập trình viên lúc cần thiết. Điều này có tức là rất khó để với thể kết thân với họ. Việc phát triển thành bạn bè đặt bạn vào vị trí khó xử. giả dụ bạn từng biết một ai chậm triển khai đã trở nên developer manager của một team mà anh ta đã từng là một thành viên, thì bạn sẽ thấy rằng họ chừng như thay đổi hẳn tính phương pháp chỉ sau 1 đêm. Đây là lý do vì sao. Đó là một công việc cạnh tranh, và thường bị mang tiếng là một kẻ vong ân bạc tình.
Nhưng nó cũng với những phần thưởng xứng đáng lúc bạn dẫn một team tới thắng lợi. giả dụ bạn muốn nâng cao kỹ năng lãnh đạo của mình để chuẩn bị cho vai trò điều hành, thì hãy đọc cuốn sách của tác giả Phil Jackson dưới đây:
  • "Eleven Rings: The Soul of Success" by Phil Jackson Senior Leader

Senior Leader (Quản lý cấp cao)

  • VP, CTO hoặc CEO
  • Là sếp (có thể thuê/sa thải) những quản lý cấp trung
  • Thống kê công việc tới một Senior Leader khác hoặc tới Ban giám đốc
Sự khác biệt rõ ràng giữa 1 nhà quản lý cấp trung (mid-level manager) và một lãnh đạo cấp cao (senior leader) ngừng thi côngĐây là những senior leader đảm trách những mid-level manager. tuy nhiên, các manager thường không cần phải điều hành. Họ cần phải được dẫn dắt. những mid-level manager cần biết định hướng cấp cao mà họ cần phải đi theo, chứ ko phải là chỉ hướng đi chi tiết.
công tác của một senior leader là đưa ra những quyết định cấp cao và truyền cảm hứng cho lực lượng lao động của họ đồng hành mang những quyết định ngừng thi côngĐây, và tin vào sứ mệnh chậm tiến độ.
Bạn càng leo lên các nấc thang sự nghiệp cao hơn, thì bạn càng ít tiếp xúc với công tác lập trình. Ở phía trên, hồ hết công tác là về con người. những nhà quản lý cấp trung (mid-level manager) vẫn mang thể với thời gian để vọc vậy sở hữu kỹ thuật, nhưng các Senior Leader phải dành đông đảo thời kì của họ để tập kết vào vấn đề con người: truyền cảm hứng, tạo động lực, lãnh đạo, và ra chiến lược. ví như bạn viết code, thì ngừng thi côngĐây thường chỉ là những Dự án cá nhân (trừ khi bạn là Bill Gates, nhưng hầu như không ai là Bill Gates cả, ông ta là 1 người xuất chúng). Ở cấp độ này bạn cần phải đọc cuốn sách của Phil Jackson, đọc đích thực chứ không chỉ là mua nó cho với.
công tác của một senior leader là đảm bảo cho rất nhiều mọi người trong đầy đủ đơn vị cùng tiến theo 1 hướng, đảm bảo hướng đi chậm triển khai dẫn đến miền đất hứa, và đảm bảo rằng mọi người đều biết lý do tại sao họ lại đang đi theo hướng ngừng thi côngĐây. chậm tiến độ là 1 công việc rất cạnh tranh. công việc này đầy nghiêm trọng, đau khổ và cạm bẫy. nếu như bạn đang được đề bạt lên vị trí này, thì hãy đọc cuốn sách "The Hard Thing About Hard Things" by Ben Horowitz.
các senior leader không phải được sinh ra một bí quyết bỗng nhiên. Họ phải tôi rèn mà thành. Phải thực hiện thật phổ quát và thật tốt công tác Đó. Bạn hãy đọc blog của Ben Horowitz về Making Yourself a CEO để thấy một số thí dụ về điều này.

Kết luận

cơ hội cho những lập trình viên ngày nay là rất phong phú và dồi dào. Và lập trình viên ngày nay đang có nhu cầu cao hơn so với bất kỳ công đoạn nào trong lịch sử. Đây là 1 thời điểm xuất sắc để trở nên 1 lập trình viên. Nhưng nó sẽ chẳng bao giờ là quá sớm để lên kế hoạch cho sự nghiệp của mình. Tôi hy vọng bài viết này đã cho bạn một số hướng dẫn và các tài liệu để bạn mang thể chuẩn bị cho mai sau phía trước.

0 nhận xét: