Low-tech hay high-tech?
Ở những nước có nền Công nghệ Thông tin phát triển thì nghề lập trình viên tương đương với kỹ sư, công việc của người lập trình được gọi là software engineering. Để làm ra một phần mềm, trước hết người ta phải tạo ra một “bản thiết kế” (framework), mỗi lập trình viên đảm nhiệm một phần việc, sau đó các phần được kết nối lại tạo thành một sản phẩm hoàn chỉnh. Lập trình viên được ví là những thợ “coding” (người ngồi gõ những dòng lệnh (code) trên máy tính), làm ra các phần mềm hoặc chỉnh sửa, phát triển nó dựa trên các công cụ lập trình. Nói một cách nào đó, lập trình viên có vẻ giống một anh công nhân lao động “cơ bắp”, ngày ngày đến công sở gõ những dòng code theo chỉ dẫn. Do vậy, lập trình là một công việc khá buồn tẻ, thuần túy kỹ thuật, không đòi hỏi sự sáng tạo và đúng nghĩa là low-tech.
Nhưng nếu xuất phát từ thực tế ngành lập trình tại Việt Nam thì nghề lập trình cũng mang nhiều tính high-tech. Bởi đây là ngành cập nhật nhanh nhất những công nghệ hiện đại. Có thể nhiều người chưa biết C, C#, Java (các ngôn ngữ lập trình)… là gì nhưng những lập trình viên đã sử dụng thành thạo như ngôn ngữ thứ hai. Lập trình viên phải huy động sự sáng tạo cũng như phát huy các kỹ năng đánh giá, phân tích yêu cầu của dự án, đưa ra các giải pháp thiết kế hoặc cách tiếp cận công nghệ mới khi gặp những framework thiết kế chưa kỹ hoặc công nghệ thay đổi. Nhận định nghề low-tech hay high-tech còn tùy thuộc vào thực tế công việc.
Sống chung cùng áp lực
Dự định theo nghề lập trình viên thì bạn phải rèn luyện cho mình khả năng sống chung với các áp lực deadline và khối lượng công việc. Đa số các dự án phần mềm hiện nay vẫn bị mắc tỉ lệ 80-20. Có nghĩa là trong 80% thời gian đầu của dự án thường chỉ làm được 20% khối lượng công việc, và 20% thời gian còn lại thì phải giải quyết nốt 80% khối lượng công việc. Trao đổi về vấn đề này, ông Vincent Quyền, Giám đốc Cty phần mềm Contour (Nhật) cho biết: Việc thức đêm để chạy theo tiến độ dự án là không tránh khỏi. Nhưng vấn đề này đặc biệt nghiêm trọng đối với các lập trình viên Việt Nam, bởi họ chưa đánh giá hết tầm quan trọng của việc lập kế hoạch chi tiết và triển khai dự án ngay từ ngày đầu tiên. Ngay từ khi học, bạn sẽ đối mặt ngay với vấn đề này. Trung Hiếu – học viên lớp lập trình tại Aprotrain-Aptech vừa vượt qua vòng bảo vệ project kể lại: “Mấy ngày trước khi bảo vệ nhóm em liên tục ngồi bên máy tính, thức đêm, ăn mì tôm để hoàn thành. Thời gian đầu mọi việc chạy đều, nhưng lúc gần hoàn thiện thì bắt đầu phát sinh đủ thứ, nào là chức năng chạy chưa ổn, lỗi…càng về cuối càng thấy khối lượng công việc khủng khiếp. Trước kia nghe mấy anh lập trình truyền kinh nghiệm chuyện “lụt dự án”, giờ mới nếm mùi, mà đây mới chỉ là dự án trong trường, nếu là dự án của khách hàng thật thì chưa biết còn đến thế nào…”. Hình ảnh lập trình viên “ôm” máy tính ngoài giờ làm việc, “mắc kẹt” giữa những dòng code, thiếu ngủ… thường thấy trong các dự án phần mềm ở giai đoạn cuối. Ngoài ra, bạn phải làm quen với cảm giác bất lực và bực bội khi phải nhìn chăm chăm vào màn hình vi tính, sục sạo hàng trăm dòng code cả tuần và kết quả tìm ra lỗi nằm ở việc thiếu một kí tự như dấu chấm, dấu phẩy.
Ngược lại với những áp lực trên, nghề lập trình cũng có những khoảng tự do. Trong các dự án, trưởng nhóm chỉ định phần công việc và thời gian cần hoàn thành, còn lại lập trình viên chủ động tìm giải pháp hoàn thành công việc, nghĩa là có thể đến công sở vài lần trong một tuần miễn là hoàn thành công việc được giao. Việc tạo nên một phần mềm, sản phẩm trí tuệ, hữu ích cho nhiều người hoặc tự mày mò viết ra những phần mềm mình yêu thích, khám phá chiếc máy tính là niềm vui không phải nghề nào cũng có. Nếu biết cân bằng lập trình viên sẽ “chung sống hòa bình”, thậm chí bỏ qua được áp lực trên.
Những cơ hội
Nếu bạn cho rằng làm lập trình viên thì chỉ quanh quẩn với chiếc máy tính ở văn phòng thì bạn đã nhầm. Từ công việc lập trình, họ hoàn toàn có cơ hội thử sức ở những vị trí khác hấp dẫn hơn. Đinh Trung Việt, lập trình viên tại công ty phần mềm Tinh Vân cho biết: nếu tham gia nhều dự án lớn, thu thập được kỹ năng và kinh nghiệm chuyên môn và có kiến thức quản lý thì một lập trình viên có thể thăng tiến lên vị trí trưởng nhóm, giám đốc dự án hoặc mở công ty riêng. Riêng Việt thì hi vọng với kiến thức và kinh nghiệm làm việc ở nhiều dự án, nhiều môi trường công nghệ khác nhau anh sẽ trở thành chuyên gia tư vấn về giải pháp công nghệ và hệ thống trong tương lai.
Lập trình viên cũng có điều kiện làm việc ở nhiều nước như Mỹ, Nhật… trong những dự án của công ty gia công phần mềm cho nước ngoài. Hoặc họ có thể ngồi ở Việt Nam nhưng lại làm việc trong một nhóm nhiều chuyên gia trên thế giới. Vì thế, mức thu nhập của lập trình viên khá cao. Hiện tại, thu nhập của một lập trình viên mới vào nghề khoảng 200 USD/tháng, nhiều năm kinh nghiệm làm việc và ở vị trí quản lý khoảng 700 – 1000 USD/tháng. Nếu làm việc tại các nước khác thì mức thu nhập sẽ cao hơn nhiều, tại Hàn Quốc hoặc Nhật từ 2000 – 3000 USD/tháng, tại Mỹ từ 3500 – 6000 USD/tháng …
Muốn trở thành lập trình viên, bạn nên biết: – Kiến thức chuyên môn: Hiện tại có nhiều dòng lập trình: lập trình ứng dụng, lập trình web, lập trình database… sử dụng nhiều ngôn ngữ lập trình Java, C #, VB.Net… và các công cụ khác nhau. Lập trình viên phải nắm ít nhất một trong các công nghệ lập trình trên. – Bên cạnh kiến thức chuyên môn, lập trình viên phải hoàn thiện khả năng ngoại ngữ (đọc, hiểu tài liệu chuyên ngành IT, có thể bằng tiếng Anh hoặc ngoại ngữ khác tùy theo dự án); tư duy logic tốt; có kỹ năng “mềm” (softskill) như làm việc nhóm (teamwork), giao tiếp, thuyết trình… (Ông Chu Tuấn Anh – Giám đốc đào tạo |
Thanh Thanh