Lựa chọn cho mình một công việc để gắn bó quả là không hề đơn giản. Khi mà bạn chả biết gì về cái công việc đó thì chỉ có thể đoán và ... lầm tưởng. Tôi cũng vậy. Trước khi dấn thân vào con đường lập trình viên, tôi cũng có kha khá những sự lầm tưởng về nghề này và tôi sẽ kể cho bạn nghe về chúng.

Ít phải giao tiếp với con người

https://unsplash.com/photos/zBfBXHCaLmk
https://unsplash.com/photos/zBfBXHCaLmk
Bạn không nghe nhầm đâu. Lúc đầu, tôi cứ nghĩ nó là một công việc mà tôi chỉ cần cặm cụi với cái máy tính cả ngày còn việc giao tiếp với con người như là báo cáo công việc với sếp chỉ là phụ thôi. Trong lúc học đại học và lúc đi làm thì tôi gặp khá nhiều người có tư tưởng này.
Đọc tới đây có thể bạn sẽ nghĩ tôi là một người giao tiếp xã hội kém và ... đúng vậy. Tôi giao tiếp xã hội rất kém luôn là đằng khác. Nhưng trớ trêu thay khi mà công việc hiện tại tôi đang làm đòi hỏi không chỉ việc giao tiếp với máy tính mà cả con người nữa. Thậm chí tôi phải giao tiếp với con người nhiều hơn cả máy tính luôn ấy. Đa số lập trình viên sẽ không làm việc một mình mà sẽ làm việc theo nhóm, nơi mà bạn phải giao tiếp với các thành viên còn lại để có thể phối hợp giải quyết vấn đề. Có những lúc bạn phải trình bày ý tưởng của mình để cả nhóm nắm bắt hoặc đóng góp, nhận xét về ý tưởng đó, về độ khả thi, chi phí và những rủi ro. Hoặc đôi khi bạn sẽ là người lắng nghe những đồng đội của mình trình bày ý tưởng của họ rồi đưa ra ý kiến cá nhân v.v...
Rồi phải giao tiếp với khách hàng để hiểu được ý họ muốn là gì, đồng thời đưa ra những đề xuất khi họ không thể diễn tả thứ họ mong muốn thành lời. Đôi khi phải phản biện rằng cái họ muốn không thực sự mang lại giá trị cho sản phẩm. Rồi thì phải trình bày sản phẩm để họ nhận xét về độ hoàn thiện cũng như góp ý hoặc đưa ra những cải tiến mới.
Còn những điều vụn vặt khác nhưng nhiêu đó cũng đủ thấy rằng cái tư tưởng ở trên đã hoàn toàn trở thành lầm tưởng.

Lương cao

https://unsplash.com/photos/-8a5eJ1-mmQ
https://unsplash.com/photos/-8a5eJ1-mmQ
Sự lầm tưởng này bắt đầu từ lúc tôi biết về mức lương của bà chị trong xóm, người cũng làm lập trình viên và cũng là người giới thiệu cho ba mẹ tôi về cái nghề này.
Và không chỉ có mình tôi, những người tôi gặp ngoài xã hội đều kiểu "lương chắc cao lắm nhể" khi biết tôi là lập trình viên. Cũng như bao ngành nghề khác, mức lương phụ thuộc vào nhiều yếu tố như năng lực bản thân, những đóng góp cho công ty, thời gian gắn bó với công ty v.v... chứ không phải cứ lập trình viên là lương cao. Còn về bà chị trong xóm thì công ty bả đang làm là một công ty mới thành lập, số lượng nhân viên còn ít, vốn đầu tư thì nhiều v.v... nên là lương của bà ấy cao thật.
Cũng chính vì lầm tưởng này mà tôi đã có những pha phỏng vấn đi vào lòng đất. Tôi thường đưa ra con số hơi cao hơn so với thị trường trong giai đoạn thoả thuận lương và rồi tôi trượt. Trượt rất nhiều lần nữa là đằng khác. Sau này tôi bỏ chút thời gian để nghiên cứu thêm về thị trường và quyết định đưa ra con số ngang bằng với những gì tôi tìm hiểu được và thật bất ngờ khi tôi nhận được hai email thông báo trúng tuyển của hai công ty tôi áp dụng con số trên trong cùng một ngày.

Biết tuốt

https://unsplash.com/photos/gySMaocSdqs
https://unsplash.com/photos/gySMaocSdqs
Khoảng năm hai đại học, tôi bắt đầu mường tượng được nghề này có gì. Đại khái là nó có nhiều mảng như: Lập trình Trò chơi điện tử, Lập trình Ứng dụng máy tính, Lập trình Web (Front-end, Back-end), Lập trình Ứng dụng điện thoại di động, Lập trình Nhúng, phân tích dữ liệu, thiết kế cơ sở dữ liệu, v.v... Lúc đó tôi đã nghĩ rằng, để tăng cơ hội việc làm thì người lập trình viên phải biết càng nhiều mảng càng tốt, để khi ra trường không sợ bị thiếu đất dụng võ. Thế là tôi bắt đầu sự nghiệp cày cuốc của mình. Tôi cố gắng nhúng chân vào nhiều mảng nhất có thể, lịch học trở lên dày đặc, thậm chí tôi còn đi học ké nữa (học những lớp mà mình không đăng ký ấy). Kết quả là khi ra trường tôi có trong tay nền tảng của bốn mảng lớn trong ngành. Cơ mà khi đi phỏng vấn rồi đi làm thì tôi mới nhận ra, mình đã nhầm.
Thị trường việc làm cho thấy điều hoàn toàn ngược lại khi mà bạn có thể truy cập những trang tìm kiếm việc làm như vietnamworks, itviec và thử tìm kiếm công việc dành cho lập trình viên đa nhiệm (Full-stack Developer) sau đó thử lại với một mảng cụ thể như lập trình web (Front-end Developer) thì lượng kết quả trả về cho một mảng cụ thể thường sẽ nhiều hơn vài lần so với kết quả cho công việc đa nhiệm. Việc nhà tuyển dụng tìm kiếm những ứng viên thuộc một mảng cụ thể chủ yếu để nâng cao cơ hội tìm được người có chuyên môn sâu trong mảng đó thay vì người có kiến thức ở nhiều mảng nhưng lại không chuyên sâu vào một mảng nào. Còn theo bà chị trong xóm tôi giải thích thì chia ra theo chuyên môn sẽ giúp rút ngắn thời gian phát triển. Cụ thể ví dụ như lập trình web, nếu bạn làm một mình thì thời gian phát triển sẽ bằng tổng thời gian làm back-end và thời gian làm front-end, nhưng nếu bạn tập trung làm back-end và một người khác làm front-end và hai người làm việc song hành với nhau thì thời gian sẽ được rút ngắn đi nhiều. Còn về tôi, hiện tại chỉ dùng tới kiến thực thuộc hai trong số bốn mảng mà tôi học được. Nghe có vẻ hơi phí nhể.

Thợ sửa máy tính

Giai đoạn trước đại học, tôi đã chuẩn bị cho bản thân nhiều kỹ năng để sẵn sàng bước chân vào trường. Nào là cài Window này, nào là diệt vi-rút này, nào là tinh chỉnh hệ thống này, và còn nhiều kỹ năng mà tôi cho là sẽ cần cho công việc tương lai. Mấy kỹ năng mà ngày đó tôi học được giờ đã quên hết rồi. Và đương nhiên là công việc của tôi cũng chẳng liên quan gì tới những thứ đó. Người thân, họ hàng, bạn bè cũng thường hay nhờ vả tôi sửa chữa giúp họ những thứ linh tinh liên quan tới máy tính. Cơ mà không phải lúc nào tôi cũng giúp được, vì cái gì tôi tìm trên mạng không ra thì tôi chịu. Nhiều khi họ kiểu "lập trình viên mà có chút xíu cũng không sửa được". Tôi cũng chỉ biết cười cười cho qua chuyện thôi chứ giải thích thì chắc gì họ sẽ hiểu.
Mong rằng bài viết này sẽ giúp ích cho một số bạn đọc còn đang băn khoăn về nghề lập trình viên.