Ai cũng biết thị trường phát triển phần mềm là một trong những thị trường nóng nhất: lời hứa về lương cao, việc làm ổn định và cơ hội thăng tiến là chuyện thường thấy trong ngành của chúng ta.
Đây không phải chuyện mới, và câu chuyện này đã lan tới cả công chúng. Đây là trang bìa của một tạp chí kinh doanh ở Brazil hồi tháng 3 năm 2020:
“Họ mới hai mươi mấy tuổi, tự chọn nơi mình sẽ làm và với mức lương nào. Để tuyển được họ, các công ty sẵn sàng mua nguyên cả startup. Các trường đào tạo mọc lên khắp cả nước và đã có sẵn danh sách chờ. Chào mừng đến với thế giới kỳ diệu của các lập trình viên phần mềm.”
Lời hứa về mức lương cao mà không cần biết nhiều khiến rất nhiều người đột nhiên quan tâm đến ngành này. Tất nhiên đó là một khẳng định phóng đại, sinh ra từ những trường hợp cá biệt hoặc từ những công ty có túi tiền vô tận để đốt và chẳng ngại nuôi một thị trường không thể tự duy trì về lâu dài.
Không khó để bạn gặp những người chưa bao giờ quan tâm tới lập trình mà nay bỗng dưng hứng thú, gần như luôn gắn với một lời hứa tài chính phi thực tế hoặc vô trách nhiệm nào đó.
Ai rao giảng rằng lập trình dễ thì luôn quên nói thêm rằng kết quả tỉ lệ thuận với công sức: nếu bạn học một khóa cấp tốc chỉ gồm việc ngồi trước máy tính và lặp lại y hệt những gì giảng viên làm (như phần lớn các khóa học vẫn vậy), thứ duy nhất bạn thật sự trở thành là một thợ gõ code giỏi, không phải một lập trình viên. Và càng không phải một lập trình viên giỏi. Có thể bạn còn ở mức kiến thức trung bình so với những người bạn sẽ làm cùng, nhưng đừng nhầm, trung bình và xoàng xĩnh là anh em sinh đôi.
Ấy là còn chưa nói tới làm việc từ xa, thứ được đón nhận ồ ạt vì đại dịch nhưng giờ đây có vẻ đã thành mặc định của phần lớn các công ty công nghệ. Đương nhiên, đừng nghĩ rằng nó sẽ mãi như vậy. Đã có thể thấy một làn sóng ngược diễn ra ở vài Big Tech.
Tôi nhắc tới làm việc từ xa vì với tôi, việc các công ty mở vị trí remote cho junior hay thậm chí thực tập sinh là một sự vô trách nhiệm ghê gớm. Với một người đang ở đầu sự nghiệp, tước đi cơ hội tương tác thường xuyên hơn và sâu hơn với những người dày dạn, tước đi cơ hội gây dựng gắn kết với những người mà nếu không thì sẽ chẳng nằm trong vòng quan hệ của họ, cũng chẳng khác gì tước đi cơ hội trưởng thành nhanh và vững về cả con người lẫn nghề nghiệp.
Những người ở đầu sự nghiệp cần tương tác thường xuyên, cần những tấm gương để noi theo và cần tiếp cận nhanh, thực tế với những người nhiều kinh nghiệm hơn. Làm việc từ xa sẽ lấy hết những thứ đó của bạn để đổi lấy một sự dễ chịu rẻ tiền. Nếu bạn là người mới và có một điều để rút ra từ bài này, thì đây: đừng chấp nhận sự dễ chịu đó trong đời mình. Remote là con đường dễ, và những con đường dễ thường không có kết cục đẹp. Dù bây giờ bạn chưa thấy rõ, cái giá về nghề nghiệp phải trả là quá cao.
Xét tất cả những điều đó, cả cái biển lời hứa lẫn những thứ khiến mọi chuyện có vẻ dễ dàng này, thì thấy rõ vì sao nhiều người mắc bẫy và chọn theo nghề lập trình viên dù không hề thích nghề.
Và trên thị trường lao động, hệ quả của chuyện đó cũng khá dễ thấy: những người ngày càng ít năng lực lại đòi ngày càng nhiều.
Nếu, với tất cả những điều đó trong đầu, bạn vẫn chọn công nghệ, thì hãy dốc hết mình. Đừng cam chịu làm thêm một kẻ nữa trong đám đông lập trình viên chỉ biết chép đoạn code từ chỗ này sang chỗ khác. Hãy tận tâm! Học cách học. Ngày qua ngày hãy tạo và phát triển những dự án cá nhân, đừng giới hạn mình trong giờ làm, hãy tự tay giải những bài toán thực tế. Kể cả những bài đã có người giải, cứ thử tự làm. Đừng làm một lập trình viên chuyên về một framework hay một ngôn ngữ nào đó, thị trường đã đầy những người như vậy rồi. Hãy tận tâm học cái lõi của nghề chúng ta. Cái gì vững chắc và không đổi qua từng thập kỷ. Đừng quẩn quanh ở những lớp ngoài cùng và chỉ chăm chăm vào công nghệ này hay công nghệ kia, thứ đó thay đổi mỗi ngày. Mỗi ngày lại có một framework mới, một công nghệ mang tính cách mạng mới, và bạn càng sớm nhận ra đó không phải là thứ quan trọng thì càng tốt. Hãy học thuật toán, cấu trúc dữ liệu, các mẫu thiết kế. Và, trên hết, hãy luyện tập. Mỗi ngày. Luyện tập, luyện tập rồi lại luyện tập. Đừng hài lòng cho tới khi va phải một bài toán bạn không giải nổi, và hãy ăn mừng khi gặp được một bài như thế; chính trong những khoảnh khắc bực bội đó việc học thật sự mới diễn ra.
Cũng đừng bỏ qua việc đọc sách hay và theo dõi những người giỏi. Lại một lần nữa, đừng chăm chú vào sách về ngôn ngữ A hay B. Hay sách về framework X hay Y. Kệ mấy thứ đó! Hãy đọc những bậc thầy của ngành, học từ họ. Đọc Clean Code, The Pragmatic Programmer, hay Coders at Work. Tìm trên YouTube nội dung của các tác giả này, như những bài nói chuyện xuất sắc của Robert Martin, một kho báu miễn phí cho tất cả mọi người.
Nhân tiện, bài học đầu tiên trong cuốn The Pragmatic Programmer là “Care About Your Craft”. Và nó viết: why spend your life developing software unless you care about doing it well?
Nói cách khác, hãy quyết định trở thành lập trình viên chỉ khi đó là để trở thành một lập trình viên giỏi. Bằng không, chọn nghề khác. Và đừng tin mấy câu chuyện cổ tích; làm một lập trình viên thực thụ không dễ, không nhanh, và sẽ khó hơn nhiều nếu bạn chọn làm điều đó một mình (làm từ xa). Như trong mọi nghề, không có đường tắt. Hoặc bạn dốc hết mình, hoặc bạn là mức trung bình.