Nội dung chính
Con đường sự nghiệp muôn lối, chọn lối đi nào sẽ giúp bạn nhanh chóng thành công? Đó là câu hỏi lớn cho tất cả mọi người, dù là cậu sinh viên IT sắp ra trường hay anh dev kì cựu.
ITviec tổng hợp 21+ con đường sự nghiệp (career path) trong ngành IT, giúp bạn:
- Chọn định hướng nghề nghiệp phù hợp để phát huy tối đa khả năng.
- Biết cách để rèn luyện những kĩ năng, tố chất cần thiết cho từng vị trí công việc.
- Học hỏi từ kinh nghiệm xương máu của chính những “người trong cuộc”.
Xem việc làm Developer chất tại ITviec
CON ĐƯỜNG SỰ NGHIỆP CỦA DEVELOPER – NHỮNG NHÁNH NGHỀ CHÍNH
Từ góc nhìn khái quát, con đường sự nghiệp của software developer có thể chia làm 3 hướng chính: Fulltime developer, Freelancer, và Entrepreneur.
Mỗi hướng đi này lại chia làm nhiều ngã rẽ nhỏ tùy theo kĩ năng chuyên sâu, hoặc tính chất/phạm vi công việc.
Có thể định nghĩa ngắn gọn:
- Fulltime Developer: làm việc toàn thời gian cho một công ty/tổ chức và nhận lương từ đơn vị này. Hầu hết họ đều muốn chọn công ty phù hợp để gắn bó lâu dài và được thăng tiến. Đôi khi, họ có thể nhảy việc, đổi công ty để được tăng lương, thăng chức. Và một ngày nào đó, họ sẽ nghỉ hưu.
Đây là con đường sự nghiệp phổ biến nhất và gần như là mặc định cho mọi developer.
- Freelance Developer: “lính đánh thuê”, làm việc tự do, không thuộc quyền quản lý của một công ty/tổ chức nào.
Một số trang web giúp Freelancer tìm và kết nối với khách hàng: Freelancer, Upwork.
- Developer Entrepreneur: phát triển sản phẩm cho chính mình, trực tiếp kinh doanh/phân phối sản phẩm đó đến người dùng.
Ví dụ: tự phát triển app rồi bán trên Google Store, viết blog, làm tutorial.v.v…
I. Con đường sự nghiệp của Fulltime Developer
Khởi điểm chung
Level 1: Fresher/Junior Developer
- 0-1 năm kinh nghiệm (thường là sinh viên đang đi thực tập/vừa mới ra trường).
- Có kiến thức cơ bản về lập trình phần mềm. Hiểu sơ bộ về cơ sở dữ liệu, vòng đời ứng dụng, các dịch vụ ứng dụng.v.v…
- Có thể viết các script cơ bản.
Ở giai đoạn này, bạn chỉ đang là “thợ học việc”. Bạn thiếu hầu như mọi thứ để có thể làm việc độc lập, từ kinh nghiệm lập trình, khả năng xử lý vấn đề, đến quy trình làm việc, kĩ năng làm việc nhóm.v.v…
Nhưng chính giai đoạn khởi đầu đầy bỡ ngỡ này lại thường có ý nghĩa quan trọng đối với con đường sự nghiệp của bạn sau này. Bạn nên:
- Tranh thủ tích lũy những kĩ năng cần thiết (như nêu ở trên).
- Chọn môi trường và leader tốt để đi theo học hỏi.
Level 2: Developer
- 1-3 năm kinh nghiệm.
- Đã tham gia một số dự án, biết được một/vài công nghệ
- Đã code được một số module phức tạp hơn.
Ở giai đoạn này, bạn không còn là “thợ học việc” cần cầm tay chỉ việc nữa. Bạn đã có những kĩ năng cơ bản để làm việc độc lập và làm việc nhóm (meeting, review code.v.v…).
Nhưng đây cũng chính là giai đoạn nguy hiểm khiến bạn dễ lạc lối, rơi vào tình trạng “cái gì cũng biết, mà cái gì cũng không biết rõ”. Để tránh điều đó, bạn nên:
- Tích lũy kiến thức/kinh nghiệm làm việc, trau dồi các kĩ năng mềm để tạo đà cho bước phát triển tiếp theo.
- Tìm hiểu về các nhánh nghề nghiệp, cũng như sự khác biệt giữa công ty product và outsourcing để lựa chọn môi trường phù hợp.
- Xây dựng network và thương hiệu cá nhân (bằng cách viết blog, tham gia các tech group, tech event.v.v…)
- Xây dựng “thế giới quan developer” của riêng mình.
Ngã rẽ nghề nghiệp: chọn theo hướng Management (quản lý) hay Technical (kĩ thuật)?
Xin chúc mừng!
Đi đến giai đoạn này, nghĩa là bạn đã xây dựng được một nền tảng tương đối vững chắc về cả kiến thức, kĩ năng, kinh nghiệm.v.v… Giờ là lúc bạn chọn ngã rẽ tiếp theo để sự nghiệp vút bay. Có hai lưu ý:
- Không có con đường sự nghiệp “đóng”. Nếu chọn lối rẽ không phù hợp, bạn luôn có thể dừng lại để chuyển sang một hướng mới.
- Nhưng, chọn đúng hướng đi ngay từ đầu sẽ giúp bạn tiết kiệm nhiều thời gian, công sức, và có thể nhanh chóng gặt hái nhiều thành tựu hơn.
2 hướng đi chuyên sâu phổ biến cho developer là quản lý (management) và kĩ thuật (technical). Sau đây là những điều bạn cần làm trước khi đưa ra lựa chọn:
- Tìm hiểu kĩ triển vọng cũng như yêu cầu của mỗi hướng đi.
Sự khác nhau giữa coding và managing
Manager không phải là con đường thăng tiến duy nhất của Developer
- Nhìn nhận lại bản thân thật khách quan, trung thực.
Bạn thích làm việc với con người hay máy móc hơn? Tính cách, kĩ năng của bạn như thế nào? Những điểm mạnh/điểm yếu? Điều gì sẽ giúp bạn hạnh phúc hơn?
Hướng Management
Level 3: Team Leader
Team Leader có thể coi là là một vị trí trung gian giúp bạn “tập dượt” trước khi theo con đường quản lý chuyên nghiệp. Đôi khi, vị trí này cũng nhập nhằng với Technical Lead.
Bạn sẽ dẫn dắt một team nhỏ (3-6 thành viên). Ngoài công việc kĩ thuật, bạn sẽ cần quản lý và đào tạo các thành viên khác trong team.
Một số kĩ năng bạn có thể rèn luyện: kĩ năng lãnh đạo, kĩ năng quản lý (công việc, con người).
Xem việc làm Team Leader tại ITviec
Level 4: Project Manager
Project Manager (quản lý dự án) là người chịu trách nhiệm giám sát nội bộ, nhằm đảm bảo việc thực thi dự án từ lúc bắt đầu cho đến khi hoàn tất được suôn sẻ, đúng tiến độ, đúng yêu cầu đề ra ban đầu.
Cụ thể, họ chịu trách nhiệm về: 1) ngân sách 2) thực hiện 3) nguồn lực 3) giải quyết vấn đề.
Developer muốn chuyển con đường sự nghiệp sang hướng Project Manager cần rèn luyện kĩ năng quản lý thời gian, quản lý dự án, quản lý con người, và đặc biệt là kĩ năng giao tiếp.
Tìm hiểu thêm:
Giao tiếp tồi phá hủy sự nghiệp Project Manager
Cách đào tạo và quản lý con người để đem lại thành công cho dự án
Xem việc làm Project Manager tại ITviec
Level 5: Manager/Director
Tùy theo cấu trúc từng công ty, Manager/Director có thể là vị trí quản lý cấp trung hoặc cấp cao.
Nhưng dù thuộc cấp bậc nào, thì các vị trí này luôn đòi hỏi cao về khả năng làm việc với con người (tuyển dụng, quản lý, đào tạo, sa thải, dẫn dắt và truyền cảm hứng). Họ cần nhạy cảm về các vấn đề chính trị doanh nghiệp, có khả năng đàm phán, hóa giải xung đột, và ra quyết định.
Đặc biệt, ở vị trí quản lý cấp cao, các Director cần có tầm nhìn chiến lược, khả năng lãnh đạo để dẫn dắt toàn công ty cùng tiến về một hướng.
Tìm hiểu thêm 4 tố chất cần có của một Manager
Xem việc làm Manager tại ITviec
Hướng Technical
Level 3: Senior Developer
- 3 – 5+ năm kinh nghiệm (có thể hơn hoặc kém, vì số năm kinh nghiệm không đóng vai trò quyết định bạn có phải là senior developer hay không).
- Có khả năng xây dựng những ứng dụng phức tạp ở quy mô lớn.
- Hiểu biết sâu sắc về toàn bộ vòng đời của ứng dụng, cơ sở dữ liệu, các dịch vụ ứng dụng.v.v…
- Nắm vững, hiểu sâu nhiều công nghệ và quy trình.
Senior developer có thể coi là hình ảnh điển hình của lập trình viên nói chung. Trên thực tế, có những người lựa chọn làm một senior developer trong suốt con đường sự nghiệp lập trình của mình.
Tìm hiểu thêm Junior và Senior Developer khác nhau ra sao và công việc của Senior Developer cần những kĩ năng gì
Xem việc làm Senior Developer tại ITviec
Level 4: Technical Lead
- Có hiểu biết sâu rộng về công nghệ và rất mạnh về lập trình, thiết kế hệ thống.
- Là người quyết định chọn sử dụng công nghệ nào, thiết kế hệ thống ra sao.v.v…
- Chịu trách nhiệm về khía cạnh kĩ thuật cho cả team.
Dù không đảm nhiệm việc quản lý con người (ví dụ: tuyển dụng, sa thải nhân viên), song Technical Lead vẫn cần có kĩ năng mềm tốt, đặc biệt là khả năng hướng dẫn, giải thích, thuyết trình.v.v… để dẫn dắt các thành viên khác.
Tìm hiểu thêm cách để trở thành một Technical Lead
Xem việc làm Technical Lead tại ITviec
Level 5: Software Architect
- Ít nhất 10–20 năm kinh nghiệm.
- Nhiệm vụ chính: đưa ra giải pháp, thiết kế các hệ thống phức tạp (nghiêng về lập trình patterns và anti-patterns) mà từ đó, nhóm lập trình junior, senior developer sẽ hiện thực hóa.
Đây có thể coi là nấc thang cao nhất của con đường sự nghiệp phát triển theo hướng kĩ thuật dành cho developer.
Tìm hiểu thêm cách để trở thành Software Architect
Xem việc làm Software Architect tại ITviec
Level 6: CTO
CTO (Chief Technical Officer – Giám đốc Kĩ thuật) trước tiên chịu trách nhiệm chính về toàn bộ các vấn đề kĩ thuật của công ty, bao gồm:
- Quyết định về phương hướng kĩ thuật của công ty (sử dụng nền tảng, kĩ thuật, quy trình làm việc như thế nào).
- Tìm hiểu các xu hướng công nghệ mới, các công cụ mới để áp dụng vào công việc, giúp tăng hiệu quả.
Tuy nhiên, họ cũng đảm nhiệm công việc:
- Đào tạo kĩ thuật/quy trình/công nghệ mới cho đội ngũ kĩ thuật của công ty.
- Tuyển dụng nhân tài.
Cho nên, vị trí quản lý cấp cao này có thể coi là sự dung hòa của cả hai hướng đi nói trên: quản lý – kĩ thuật.
Xem việc làm CTO tại ITviec
II. Con đường sự nghiệp của Freelance Developer
Không phải ngồi văn phòng vò võ 8-10 tiếng/ngày, được tự do lựa chọn “sếp” (cũng chính là khách hàng), tự do về thời gian và địa điểm làm việc.v.v… Đó là ước mơ của không ít Developer.
Tuy nhiên, tự do không dành cho tất cả mọi người.
Không phải ai cũng phù hợp để làm “freelancer toàn thời gian”. Để theo đuổi con đường “lính đánh thuê chuyên nghiệp” này, bạn cần phải thật vững về chuyên môn, đồng thời có khả năng giao tiếp, thương lượng, và quản lý công việc tốt.
Đồng thời, bạn cũng cần rất nghiêm khắc với bản thân nữa, để có thể “tự quản lý” chính mình.
Tìm hiểu thêm: con đường sự nghiệp cho IT Freelancer và cách tăng 300% thu nhập khi làm Freelance Developer
Xem việc làm Remote Developer tại ITviec
III. Con đường sự nghiệp của Developer Entrepreneur
Tự phát triển sản phẩm cho chính mình. Tự kinh doanh sản phẩm do mình làm ra. Cả một bầu trời tự do! (Thậm chí còn tự do hơn cả Freelance Developer – những người thực ra vẫn chịu sự quản lý/giám sát của khách hàng!)
Tuy nhiên, đây không phải con đường bằng phẳng dễ dàng chút nào. Để thành công, bạn sẽ cần thêm rất nhiều kiến thức về thị trường, phát triển sản phẩm, marketing, sự nhạy bén, quyết liệt và cả sự may mắn nữa!
Và ôm đồm cùng lúc từ A đến Z tất cả mọi việc là rất khó, nên khả năng cao là bạn nên thuê người để hỗ trợ, hoặc thành lập doanh nghiệp.
Tìm hiểu thêm:
CON ĐƯỜNG SỰ NGHIỆP CỦA DEVELOPER – PHÁT TRIỂN THEO KĨ NĂNG
1. Web Developer
Có lẽ đây là nhánh nghề phổ biến nhất hiện nay của các lập trình viên.
Là Web Developer, dĩ nhiên nhiệm vụ chính của bạn sẽ là làm các ứng dụng web. Đồng thời, bạn có thể chọn đi chuyên sâu về front-end, back-end, hoặc làm full-stack để kiêm nhiệm cả hai.
Có rất nhiều công nghệ lập trình web để bạn lựa chọn. Bạn có thể tham khảo 10 tài liệu lập trình ASP.NET và 30+ tài liệu lập trình web do ITviec tổng hợp.
Tìm hiểu thêm Full-stack Developer là gì
Xem việc làm Web Developer tại ITviec
2. Mobile Developer
“Go mobile” đã, đang, và sẽ tiếp tục là một xu thế mạnh mẽ trong ngành lập trình. Cùng với đó, cơ hội nghề nghiệp cho Mobile Developer cũng nở rộ.
Nhiệm vụ chính của họ là phát triển các ứng dụng cho điện thoại, máy tính bảng, hoặc thậm chí cả các ứng dụng có thể dùng cho tivi hoặc wearable devices.
Tham khảo thêm: Công việc của Android Developer
Xem việc làm Mobile Developer tại ITviec
3. Game Developer
Trong ngành lập trình, nếu có nhánh nghề nào mộng mơ, “nghệ sĩ” nhất, thì có lẽ là Game Developer.
Bằng những hiểu biết về kĩ thuật của mình, Game Developer hiện thực hóa ý tưởng/thiết kế của designer thành một sản phẩm cụ thể, hoàn chỉnh. Và rất nhiều khi, đó là một fantasy world sống động với đầy đủ mọi tốt xấu, vui buồn như chính cuộc đời thực.
Developer muốn theo nghề làm game thì ngoài khả năng lập trình sẽ cần:
- Kĩ năng phân tích, giải quyết vấn đề một cách logic. Kĩ năng tự học và hợp tác với mọi người.
- Sự cởi mở, open-mind, chấp nhập sự khác biệt.
- Và dĩ nhiên, niềm đam mê với game.
Tìm hiểu thêm lập trình game là làm gì
Xem việc làm Game Developer tại ITviec
4. Automation Developer/Tester
Nhiệm vụ chính của Automation Developer/Tester dĩ nhiên là phát triển… automated tool.
Tùy từng dự án và công ty mà họ có thể chuyên sâu về phát triển tool, framework, library hoặc viết script dựa trên một công cụ automated test nào đó.
Developer muốn theo hướng này cần:
- Hiểu nguyên lý nhận dạng test object, nguyên lý lập trình, cũng như phải thành thạo ít nhất một ngôn ngữ lập trình.
- Ngoài ra, nên tìm hiểu sâu về software design pattern, và chịu khó liên tục cập nhật kiến thức chuyên môn mới.
Tìm hiểu thêm Làm Automation là làm gì
Xem việc làm Automation tại ITviec
5. Embedded Developer
Hmm… Embeded Engineer nghe có vẻ không được “thời thượng” lắm nhỉ?
Nhưng thực ra, đây lại là một nhánh nghề rất “cool ngầu”!
Hiện nay, hầu hết mọi máy móc đều có microchip và thiết bị cảm biến, tương tác với thế giới thật trong thời gian thật.
Embedded Engineer chính là người viết nên những “bộ não” thông minh để điều khiển từ lò vi ba, máy giặt cho đến robot hút bụi, ô tô, tàu lửa, máy bay.v.v…
Developer muốn theo hướng Embedded thì cần hiểu cách công nghệ và ngoại cảnh tương tác với phần mềm. Đồng thời, họ phải có tinh thần của một hardware engineer cộng với kĩ năng của software engineer.
Tìm hiểu thêm 5 lí do tại sao bạn nên chọn trở thành Embedded Engineer
Xem việc làm Embedded Developer tại ITviec
CON ĐƯỜNG SỰ NGHIỆP CỦA DEVELOPER – NHỮNG NHÁNH NGHỀ “LÂN CẬN”
6. Business Analyst
Business Analyst làm nhiệm vụ “cầu nối”, lấy yêu cầu của khách hàng chuyển về cho team nội bộ thực hiện.
Họ cũng là người tư vấn, đề xuất giải pháp cho khách hàng. Và, không phải vấn đề nào cũng được giải quyết bằng giải pháp phần mềm.
Developer muốn chọn Business Analyst làm con đường sự nghiệp thì cần có kĩ năng giao tiếp tốt, tiếng Anh khá, đầu óc cởi mở, suy nghĩ logic. Ngoài ra, bạn cần học:
- Một số công cụ hỗ trợ cho BA: Office, Visual, Jira, Confluence.
- Các khóa học nghiệp vụ BA: CCBA, CBAP.
Tìm hiểu thêm: Business Analyst là gì, 20+ tài liệu Business Analyst
Xem việc làm Business Analyst tại ITviec
7. Data Analyst
Data Analyst là người đại diện cho tiếng nói của dữ liệu. Họ thực hiện các phân tích sâu (deep dive analytics) để cung cấp insights cho những quyết định cũng như kế hoạch của ban lãnh đạo doanh nghiệp.
Developer muốn chuyển hướng trở thành Data Analyst cần có:
- Kĩ năng code cơ bản và sử dụng các công cụ phân tích dữ liệu.
- Kĩ năng sử dụng các công cụ visualize để chuyển hóa dữ liệu thành graphics.
- Kĩ năng chuyển hóa dữ liệu thành actionable insight.
- Am hiểu business, cũng như cấu trúc dữ liệu và hệ thống dữ liệu của công ty.
Tìm hiểu thêm Data Analyst là gì.
Xem việc làm Data Analyst tại ITviec
8. Data Scientist
Data Scientist chia làm 2 nhóm chính: A-Thinker (gần với Data Analyst) và B-Builder (mạnh hơn về software engineering). Nhiệm vụ của nhánh B thường là xây dựng các sản phẩm data/mô hình dữ liệu.
Developer muốn trở thành Data Scientist nhánh B cần kiên nhẫn, giao tiếp tốt, thích tìm hiểu và thử cái mới. Đồng thời, cần nắm vững:
- Machine learning, Database, Visualization.
- Kĩ năng lập trình.
Tìm hiểu thêm Data Scientist là gì.
Xem việc làm Data Scientist tại ITviec
9. Bridge System Engineer
Bridge System Engineer (kỹ sư cầu nối – BrSE) là người làm nhiệm vụ kết nối “team nhà” với khách hàng, đảm bảo hai bên hiểu nhau và việc hợp tác được suôn sẻ, thuận lợi. Họ cần tinh nhuệ để vừa độc lập tác chiến, vừa phối hợp tốt với đồng đội.
Bridge System Engineer (BrSE) = Developer + Business Analyst + Tester + Project Manager (PM)
Developer muốn chọn con đường sự nghiệp Bridge System Engineer thì cần điềm tĩnh, có tính trách nhiệm cao, chịu khó học hỏi, nhẫn nại. Đồng thời, bạn cần code “cứng”, giao tiếp tốt, và ngoại ngữ giỏi.
Tìm hiểu thêm Kỹ sư cầu nối là gì
Xem việc làm Bridge System Engineer tại ITviec
10. DevOps Engineer
DevOps Engineer là một vị trí nảy sinh từ thực tế công việc, có thể tạm coi là Sysadmin “kiểu mới”. Nhiệm vụ của họ thường là phát triển các công cụ tự động để automated deploy sản phẩm.
Developer muốn chuyển hướng sang DevOps Engineer thì cần phải hiểu rõ văn hóa/mindset DevOps, đồng thời phải:
- Có kinh nghiệm với system và IT operations, quản lý dữ liệu.
- Nắm vững các tiến trình (CI/CD) và công cụ tự động hóa.
- Có khả năng sử dụng nhiều công nghệ và mã nguồn mở, coding/scripting.
Tìm hiểu thêm công việc của DevOps Engineer
Xem việc làm DevOps Engineer tại ITviec
11. QA/QC
Cả QA và QC đều thuộc lĩnh vực Quản lý chất lượng, nhưng tính chất và mô tả công việc có những điểm khác biệt.
QA (viết tắt của Quality Assurance) là người chịu trách nhiệm đảm bảo chất lượng sản phẩm thông qua việc đưa ra quy trình làm việc giữa các bên liên quan.
Nhiệm vụ chính:
- Đưa ra quy trình phát triển, tài liệu/biểu mẫu/hướng dẫn.
- Kiểm tra, giám sát việc thực thi quy trình.
- Điều chỉnh, thay đổi quy trình cho phù hợp.
QC (viết tắt của chữ Quality Control) là người chịu trách nhiệm thực hiện công việc kiểm tra chất lượng phần mềm. Có 2 vị trí QC thông thường là manual QC (không đòi hỏi kỹ năng lập trình) và automation QC (đòi hỏi kỹ năng lập trình).
Nhiệm vụ chính:
- Tìm hiểu hệ thống, phân tích tài liệu mô tả về hệ thống, thiết kế test cases, thực hiện việc test phần mềm.
- Phối hợp với nhóm lập trình trong việc fix bug.
Tìm hiểu sự chi tiết sự khác biệt giữa QA và QC
Developer nếu ham thích tìm tòi để phát hiện ra lỗi, đề xuất những cải tiến để có sản phẩm tốt hơn cho người dùng – thì có thể cân nhắc hướng QA QC.
Tìm hiểu thêm Tester là gì? Những định kiến về nghề Tester ở Việt Nam?
Xem việc làm QA/QC tại ITviec
12. Product Manager/Owner
Product Manager được coi là mini-CEO, chịu trách nhiệm về sự thành công xuyên suốt vòng đời của sản phẩm. Nhiệm vụ chính:
- Quyết định hướng đi của sản phẩm, cũng như những tính năng nào nên/không nên làm.
- Dẫn dắt đội ngũ thiết kế, kĩ thuật .v.v…, nhằm đảm bảo sản phẩm được phát triển với chất lượng tốt nhất, làm hài lòng người sử dụng sản phẩm và đạt mục tiêu kinh doanh.
Developer muốn trở thành Product Manager cần:
- Am hiểu về người dùng và thị trường, UI/UX.
- Có khả năng lãnh đạo, xây dựng team, ra quyết định, khả năng giao tiếp và truyền cảm hứng.
Tìm hiểu thêm Product Manager là gì? Product Owner là gì?
Xem việc làm Product Manager tại ITviec
Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp, đừng quên nhấn nút Share bên dưới nhé!
Và đừng quên tham khảo việc làm Developer chất tại ITviec!