Kỹ sư phần mềm

Thông tin căn bản

  • Tuổi: 29
  • Số năm kinh nghiệm ở ngành nghề này: 7 năm
  • Trình độ học vấn & chuyên ngành: Kỹ sư ngành Kỹ thuật Máy tính – ĐH Bách Khoa TP. HCM
  • Số giờ làm hằng tuần: 40 giờ
  • Loại hình & quy mô công ty (tổng số nhân viên):  Tôi làm việc tại một công ty tư nhân có quy mô <50 nhân viên.

Trách nhiệm chính của anh/chị ở công việc hiện tại là gì?

Tôi là một kỹ sư phần mềm, đang tham gia phát triển phần mềm cho xe ô tô. 

Các trách nhiệm chính của tôi bao gồm:

  • Thiết kế cấu trúc phần mềm để nó có thể hoạt động hiệu quả trên xe;
  • Lập trình các mô đun đã được chia nhỏ của phần mềm lớn;
  • Chạy thử phiên bản thử nghiệm và tìm các lỗi phát sinh;
  • Sửa lỗi và đảm bảo phần mềm không bị lỗi khi chạy trên môi trường thực tế;
  • Họp bàn với khách hàng cũng như đội nhóm để đảm bảo phần mềm đúng yêu cầu và tiến độ đặt ra.

Công việc này đem lại giá trị gì cho công ty, cho các bên liên quan?

Chúng ta hãy nói về mối quan hệ giữa Kỹ sư phần mềm (KSPM) và các bên liên quan:

  • Đối với công ty chủ quản: Công ty cần KSPM để làm ra sản phẩm, đổi lại là mức lương tương xứng. 
  • Đối với khách hàng: Sản phẩm xuất phát từ những ý tưởng và yêu cầu của khách hàng, người KSPM cần trao đổi và làm rõ các khía cạnh của phần mềm với khách hàng để đảm bảo sản phẩm làm ra là khả thi, đúng yêu cầu và đúng tiến độ.
  • Đối với các bộ phận khác như Thiết kế, Kiểm thử (Test): Vì đặc thù lĩnh vực nên thường nảy sinh mâu thuẫn giữa các bộ phận này với bộ phận phát triển của KSPM. Ví như như đội Thiết kế vẽ ra sản phẩm không thể thực thi được với công nghệ hiện tại, hay đội kiểm thử báo có lỗi nhưng đội phát triển không gặp. Điều quan trọng là các bên phải trao đổi cởi mở với nhau và thỏa thuận để tìm ra giải pháp.
  • Đối với đồng nghiệp: Đối với các KSPM, không tồn tại sự cạnh tranh với nhau, vì bản chất của công việc là hợp tác với nhau cùng tạo ra sản phẩm cuối cùng – một phần mềm chất lượng. Bất cứ ai làm tốt và tiến bộ sẽ được tưởng thưởng xứng đáng.

Anh/chị bắt đầu vào nghề như thế nào? Vì sao anh/chị chọn con đường này?

Khi tôi chọn trường đại học, tôi không biết thông tin về ngành nghề này. Lúc đó, tôi chỉ chọn theo cảm tính, nghĩ rằng mình thích máy tính, thích công nghệ và các môn học lập trình Pascal, cũng như tin học văn phòng mình làm giỏi lắm, thì chắc sẽ hợp. Lúc đó, một yếu tố cũng tác động đến tôi là trào lưu xã hội, ngành Công nghệ Thông tin khá “hot”.

May mắn thứ nhất của tôi là không bị gia đình ép buộc hay tác động vào quá trình chọn nghề của mình. Và may mắn thứ hai là đã lựa chọn đúng. Hiện tại tôi rất hài lòng với con đường nghề nghiệp của bản thân và vẫn tiếp tục ấp ủ những dự định để phát triển nó.

Sau khi tốt nghiệp, tôi tham gia vào một công ty khởi nghiệp về lĩnh vực game và ứng dụng. Do công ty quy mô nhỏ, thay vì được đào tạo bài bản, tôi học được cách tự học và tự tìm tòi các công nghệ phù hợp cho các sản phẩm của công ty. Thời gian làm việc tại đây đã định hình cho con đường sự nghiệp của tôi: trở thành một “full-stack engineer” – Kỹ sư phần mềm đa năng có thể làm việc với nhiều vai trò trong phát triển phần mềm, từ máy chủ, cơ sở dữ liệu cho đến giao diện và ứng dụng di động. Con đường này có được và mất, như sau:

ĐƯỢC

  • Có thể linh động làm nhiều vị trí, vai trò khác nhau
  • Tiếp xúc với nhiều công nghệ mới
  • Phù hợp với các dự án mới và các công ty khởi nghiệp

MẤT

  • Vì phạm vi công việc rộng nên các kỹ năng và kiến thức sẽ không được chuyên sâu, so với các kỹ sư khác chỉ tập trung một mảng nào đó
  • Cần một thời gian dài hơn để tập hợp đủ kỹ năng “full-stack”
  • Ít vị trí tuyển dụng hơn và khó thương lượng mức lương cao

Một ngày làm việc tiêu biểu của anh/chị như thế nào?

9:00 – 9:30 Đến công ty, kiểm tra email và họp với đội nhóm của mình về các công việc cần làm, thảo luận các vấn đề kỹ thuật (nếu có).
Xuyên suốt ngày làm việc Lập trình một mô đun nào đó của dự án.
Nghiên cứu tính khả thi của một công nghệ mới để áp dụng vào dự án.
Họp với khách hàng qua Internet để trình bày kết quả phần mềm của nhóm và làm rõ các yêu cầu của khách hàng.
Chạy và kiểm thử phần mềm để tìm các lỗi.
Nghiên cứu vì sao phần mềm bị lỗi và tìm phương án sửa lỗi tốt nhất.
Họp với đội nhóm về các chủ đề kỹ thuật, chia sẻ kiến thức công nghệ, xem xét và đánh giá mã nguồn của các thành viên.
Ghi chú Tôi làm việc 8 giờ mỗi ngày, 5 ngày trong tuần. Đôi khi sẽ cần làm thêm giờ hoặc cuối tuấn nếu dự án yêu cầu.


Anh/chị thích nhất những điều gì ở công việc của mình? Vì sao?

  • Tính thử thách và mới mẻ: Công nghệ thay đổi mỗi ngày và người kỹ sư luôn cần học hỏi các công nghệ mới này để áp dụng vào sản phẩm. 
  • Sự tự do: Miễn hoàn thành công việc và phần mềm chạy ổn định, tôi được quyền lựa chọn công nghệ nào phù hợp, lựa chọn thiết kế mà tôi cho là hiệu quả nhất.
  • Có thể làm việc tập trung, ít bị làm phiền: Tôi thích làm việc một mình, vì khi đó tôi có thể tập trung và làm việc hiệu quả nhất. Trong môi trường công ty phát triển phần mềm, chắc chắn sẽ có họp bàn và thảo luận, nhưng thời gian còn lại các kỹ sư sẽ tập trung làm việc của mình mà không bị khách hàng hay bất cứ bên nào làm phiền.
  • Môi trường làm việc phù hợp với tính cách: Tôi chọn từ “hiền” để diễn tả môi trường của các công ty phần mềm này. Không nhiều người nói nhiều hay quấy phá gì. Đi ăn cũng nhẹ nhàng với nước ngọt, nước suối, chẳng ai ép uống bia rượu gì. Đa phần tính cách của kỹ sư cũng hiền hòa nên bạn sẽ ít gặp chuyện chính trị hay phân chia bè phái trong công ty.

Anh/chị không thích nhất những điều gì? Vì sao?

  • Vì môi trường quá “hiền”, đôi khi tôi cũng cảm thấy buồn chán.
  • Các công ty sẽ có những định hướng riêng của họ, có thể sẽ không phù hợp với định hướng nghề nghiệp lâu dài của bản thân.
  • Tùy dự án cụ thể mà đôi khi công việc sẽ bị lặp đi lặp lại và trở nên nhàm chán.

Những điều kiện cần có để hoàn thành tốt công việc này (kiến thức, kỹ năng, thái độ, v.v…)? Nếu em muốn thăng tiến trong công việc thì em nên trau dồi những gì ạ?

Kiến thức:

  • Có hiểu biết căn bản về máy tính, cơ sở dữ liệu, cấu trúc phần mềm, các thuật toán cơ bản. 
  • Tùy theo lĩnh vực bạn theo đuổi thì sẽ cần các kiến thức liên quan. Ví dụ, bạn muốn làm lĩnh vực ứng dụng di động thì cần các kiến thức về giao diện (UX – User Experience, UI – User Interface).

Thái độ:

  • Cầu tiến và học hỏi: Công nghệ vẫn thay đổi liên tục, những gì chúng ta đang giỏi hoàn toàn có thể trở nên lỗi thời trong nay mai. Hãy khiêm tốn, thật thà với những gì mình không biết và dũng cảm học hỏi những điều mới.
  • Chuyên nghiệp và chỉn chu trong công việc.

Kỹ năng:

  • Sử dụng thành thạo một số loại ngôn ngữ lập trình. Ví dụ, trong lĩnh vực ứng dụng di động, bạn cần dùng thành thạo Java (hay Kotlin) cho Android, và Objective C (hay Swift) cho iOS.
  • Kỹ năng tìm lỗi và sửa lỗi: Lập trình viên chúng tôi hay đùa là “dành một nửa thanh xuân để ‘code’ (lập trình) và một nửa còn lại để sửa lỗi”. Phần mềm không phải lúc nào cũng chạy đúng như ý chúng ta, nên khả năng tìm lỗi, sửa lỗi một cách nhanh chóng và hiệu quả cực kỳ hữu dụng.
  • Khả năng tự học: Thực tế là rất ít công ty có thể đào tạo chúng ta từ A đến Z rồi bắt tay vào việc, mà hầu như 80% kỹ năng về công nghệ cần chúng tự học, tự nghiên cứu và tích lũy.
  • Và tiếng Anh nhé. Hầu như tất cả tài nguyên về ngành này đều là tiếng Anh, đặc biệt là những công nghệ mới mẻ.

Những điều mà mọi người hay hiểu lầm về công việc này là gì? Tại sao họ lại hiểu sai như vậy?

  • Thường khi nghĩ về mấy bạn làm “công nghệ thông tin”, người ta sẽ nảy ra trong đầu “Hay nhờ nó sửa máy tính hư ở nhà nhỉ?!”
  • Hoặc họ thường đánh đồng kỹ sư phần mềm sẽ rành thiết kế, đồ họa, Photoshop, hay bất cứ phần mềm gì nghe có vẻ nguy hiểm và lạ lạ.
  • “Ý, bạn học IT hả, bạn hack nick facebook bồ cũ mình với?”.

Ngày nay, công nghệ thông tin thực ra rất rộng và đa dạng các lĩnh vực, mỗi kỹ sư sẽ chuyên về một mảng nào đó, ví dụ như mạng, bảo mật, ứng dụng di động, web, cơ sở dữ liệu, phần cứng, Trí tuệ nhân tạo (AI),… Chuyên môn chúng tôi là XÂY DỰNG một sản phẩm phần mềm nào đó, không phải SỬ DỤNG các loại phần mềm.

Công việc này có giúp em tự nuôi mình khi mới ra trường không?

Chắc chắn là công việc sẽ giúp em tự nuôi mình hay nuôi thêm con mèo nữa cũng dư dả.

Mức lương khởi điểm cho sinh viên mới ra trường thường khoảng 8-12 triệu/tháng và tăng dần theo kinh nghiệm tích lũy. Sau 3 năm đi làm thì mức lương phổ biến khoảng 20-25 triệu/tháng.

Nghề này được trả lương theo kết quả công việc, nếu được đánh giá càng cao thì lương càng cao. Có nhiều yếu tố khiến một người được trả lương cao hơn. Chẳng hạn:

  • Kinh nghiệm là một yếu tố rất quan trọng, các bạn nên tập trung tích lũy.
  • Kỹ năng vững vàng và nhanh chóng giải quyết xong việc.
  • Làm ra phần mềm có kiến trúc tốt, hạn chế lỗi và dễ phát triển cho đội nhóm.
  • Nắm vững các công nghệ “hot” hoặc khó. Ví dụ: hiện tại các kỹ sư về Trí tuệ nhân tạo (AI), dữ liệu lớn (Big data) được trả lương rất cao.

Nhìn lại con đường phát triển sự nghiệp cũng như quá trình tìm việc của mình, anh/chị có lời khuyên nào cho em nếu em muốn theo nghề này?

Tôi không dám khuyên các bạn vì còn đường sự nghiệp mỗi người rất khác nhau và bài học cũng khác nhau. Tôi nêu ở đây những điều tôi ước có thể khuyên chính mình lúc mới bước vào nghề, hy vọng bạn sẽ rút ra được đôi điều cho chính bản thân bạn.

  • Học tập nghiêm túc hơn: các kiến thức căn bản về máy tính và phần mềm vẫn rất quan trọng khi chúng ta làm việc thực tế tại các doanh nghiệp.
  • Dành ra thời gian rảnh để thử nghiệm các công nghệ mới: Có rất nhiều thứ mới mẻ và thú vị đang chờ chúng ta khám phá. Khi bạn làm chủ nó rồi, nó sẽ trở lại giúp chính bạn trong công việc và thăng tiến.
  • Học giao tiếp Tiếng Anh tốt hơn.
  • Chọn một môn thể thao để tập luyện. Công việc của một kỹ sư phần mềm chủ yếu ngồi một chỗ và dùng cái đầu liên tục, thật không “healthy”. Bạn sẽ cần một hoạt động khác để cân bằng lại, để cái đầu nghỉ ngơi và chân tay hoạt động. Như vậy, bạn mới luôn khỏe mạnh để làm việc tốt.

“Progress is more important than perfection.” Simon Sinek

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *