Kỹ sư phần mềm (Software Engineer) là ngành nghề được rất nhiều bạn trẻ theo đuổi, tuy nhiên để phát triển được trong ngành nghề này không phải là điều dễ dàng. Vậy nên trong bài viết này, NTQ muốn giúp bạn vạch ra một lộ trình phát triển của một Software Engineer bằng cách đưa ra những mốc thời gian, kỹ năng và con đường đi tới vị trí đó. Mong rằng sau khi đọc bài viết này, bạn có thể xác định được vị trí hiện tại của bản thân, cũng như biết cách chuẩn bị cho tương lai của mình.
1. Intern/Trainee Software Engineer
Intern (thực tập sinh) thường là vị trí cho các bạn sinh viên từ năm 2, năm 3 trở lên có thể vừa học vừa làm (part-time) hoặc đi làm toàn thời gian (full-time). Thời gian cho vị trí thực tập sinh thường kéo dài từ 3 tháng đến 1 năm tuỳ từng công ty và từng vị trí.
Với vị trí này, nhà tuyển dụng thường quan tâm đến 2 kiến thức:
> Kiến thức nền tảng là các kiến thức chuyên ngành mà bạn đã được học ở trường. Nhà tuyển dụng sẽ đưa ra các câu hỏi và tình huống để kiểm tra xem liệu bạn có thể đáp ứng yêu cầu của vị trí ứng tuyển hay không.
> Tiềm năng cũng là một yếu tố quan trọng không kém, thường được đánh giá dựa trên suy nghĩ logic, khả năng giải quyết vấn đề, tư duy lập trình, cũng như thái độ và mục tiêu trong công việc của bạn.
Nhiệm vụ của Intern thường là code các module đơn giản, fix bugs, tìm hiểu về các sản phẩm, dự án của công ty dưới sự hướng dẫn của các anh/chị trong team.
2. Fresher/Junior Software Engineer
Junior Software Engineer là vị trí của những sinh viên mới bắt đầu công việc, chưa có nhiều kinh nghiệm. Một Junior cần phải nắm chắc kiến thức chuyên môn và biết cách vận dụng vào thực tế. Trước khi đi phỏng vấn ở bất cứ đâu, bạn cần chắc bản thân đã chuẩn bị những kiến thức về:
Computer Science background: Data Structure & Algorithms, Object Oriented Programming, Design Patterns, Databases, Networking, Operating Systems
Programming languages: JavaScript, Python, C, C++…
Databases: MySQL/NoSQL (Redis, MongoDB)/SQL Server
Operating System: Ubuntu/CentOS/Linux
Khác với Intern, bạn sẽ được giao nhiều “trọng trách” hơn, ví dụ như bạn sẽ được đảm đương hẳn một dự án với tư cách là một nhân viên chính thức - người phụ trách chính của dự án.
3. Software Engineer
Software Engineer thường dùng để chỉ các bạn Engineer đã đi làm khoảng 3 năm trở lên với nhiều kỹ năng và kiến thức liên quan đến công việc thực tế. Bên cạnh kiến thức chuyên môn, nhà tuyển dụng sẽ mong muốn ở bạn những kinh nghiệm thực tế, với kỹ năng điều phối và giải quyết công việc, khả năng tự học và phát triển bản thân, cũng như các kỹ năng mềm khác như: giao tiếp, thuyết trình và teamwork.
Một Software Engineer sẽ đảm đương nhiều công việc với độ phức tạp cao hơn, ít sự giám sát và hướng dẫn của Senior hơn so với Junior Software Engineer. Cụ thể, bạn sẽ tham gia vào những module phức tạp hơn, được đóng góp nhiều hơn vào việc phát triển sản phẩm, và thậm chí là làm mentor cho các bạn Intern hoặc Junior.