"Công nghệ liên tục thay đổi, lập trình viên phải liên tục học công nghệ mới để bắt kịp thời đại" là quan điểm bạn sẽ bắt gặp trong rất nhiều bài báo nói về nghề code. Sự thật thì không hẳn là như vậy.
Nếu chọn ra một lĩnh vực dễ khiến con người ta chóng mặt nhất thì đó chắc chắn phải là công nghệ. Những tên tuổi từng được coi là đại diện của cả một thị trường như Nokia và BlackBerry vẫn có thể tan biến vào hư vô. Chỉ bằng một, hai cuộc chuyển biến trong công nghệ (như smartphone hay Internet) mà cuộc sống của con người thay đổi hoàn toàn chỉ trong vòng vài năm. Thậm chí, chưa cần kể tên tới những cuộc cách mạng lớn lao đó, những ý tưởng công nghệ mới vẫn liên tục xuất hiện, hứa hẹn thay đổi thế giới một cách không ngừng nghỉ.
Ở "ga cuối" trong hành trình từ từng bit bán dẫn đến người dùng, phần mềm cũng liên tục thay đổi. Hãy nhìn mà xem, trước iPhone, lập trình di động không hẳn là một cần câu cơm hữu dụng khi thị trường bị chia năm sẻ bảy cho hàng loạt các phiên bản Symbian không tương thích cả về kỹ thuật lẫn phương thức giao tiếp với người dùng. Thế rồi, từ iPhone đến Android, lập trình di động bỗng trở thành một trong những điểm đến hấp dẫn nhất của coder.
Chúng ta phải sống chung, phải chấp nhận sự thật rằng công nghệ đã và sẽ luôn thay đổi.
Vô số những thay đổi đã và đang xảy đến với "cần câu cơm" của coder. JavaScript từ một ngôn ngữ cho giao diện trở thành một lựa chọn tuyệt vời cho server. Apple, Google, Microsoft... liên tục ra mắt các ngôn ngữ lập trình mới. Big Data, cloud computing, AI và chatbot lần lượt trở thành cơn sốt, buộc coder phải quen với những tư tưởng lập trình truyền thống.
Vậy coder có cần hoang mang?
Cái cũ - Một phần quan trọng trong nghề lập trình
Công nghệ thì luôn luôn thay đổi, nhưng nếu chỉ quen với các công nghệ cũ thì bạn chưa chắc đã mất việc. CEO của Infosys, tập đoàn outsource nổi tiếng nhất Ấn Độ, đã từng đưa ra số liệu rằng 80% kinh phí IT thường niên của Nhật Bản được dành cho các hoạt động bảo trì trong khi với thị trường Mỹ con số này là dưới 60%.
Một tài liệu của tác giả nổi tiếng Ian Sommerville khẳng định: "Rất nhiều hệ thống lớn sẽ được sử dụng trong khoảng thời gian trên 10 năm. Nhiều tổ chức lớn vẫn dùng các hệ thống hơn 20 năm tuổi đời. Rất nhiều trong số này nắm giữ vai trò sống còn với hoạt động kinh doanh".
COBOL, một công nghệ có khi còn nhiều tuổi hơn... cha mẹ chúng ta.
Thực tế thì bất cứ ai làm phần mềm (đặc biệt là outsource) cũng đều biết điều này. Các hệ thống phần mềm là công cụ để thực hiện các công việc thuộc ngành nghề chính của các tập đoàn - rất nhiều trong số này đề cao tính ổn định hơn là các lợi ích do các ngôn ngữ, framework, các tư duy lập trình mới mang lại. Mà bởi hệ thống phần mềm sinh ra là để phục vụ cho hoạt động kinh doanh nên kinh phí dành cho phần mềm cũng không phải là vô hạn. Nhiều hệ thống dù cũ và bất tiện nhưng vẫn được giữ lại hoạt động là bởi các công ty phải dành vốn đầu tư để giải quyết các vấn đề cấp bách hơn.
Bởi vậy nên chính cả những ngôn ngữ lão làng như COBOL (từ... 1958) vẫn có người sử dụng, thậm chí còn từng được "nâng cấp" từ procedural lên thành OOP. Những ngôn ngữ mới hơn như Java vừa là trái tim của Android, vừa có thể được bắt gặp trên những hệ thống dùng JSP 1.x (tức là từ đầu thế kỷ 21).
Nói cách khác, công nghệ luôn thay đổi nhưng bạn vẫn sẽ sống tốt ngay cả khi gắn bó với những công nghệ đã lỗi thời.
Vẫn phải có kỹ năng
Đừng lo: học công nghệ code mới không hề khó như bạn nghĩ.
Nói như vậy không có nghĩa rằng coder có thể ngồi yên và tự phụ với những gì mình đang có. Trong một số trường hợp cá biệt, công nghệ mà bạn đang rất thành thục có thể biến mất rất nhanh chóng. Ví dụ điển hình là trường hợp của Objective-C: từ khi Apple ra mắt ngôn ngữ mới mang tên Swift, ai cũng hiểu rằng Objective-C không còn là chìa khóa để tiếp tục kiếm ăn bằng app iOS.
Nhưng coder Objective-C cũng sẽ không "trắng tay" khi Apple thay đổi ngôn ngữ trọng tâm. Kỹ năng quan trọng nhất không nằm ở một ngôn ngữ lập trình, một middleware phổ biến hay bất cứ một yếu tố ngoại cảnh nào khác. Trái lại, đó là các kỹ năng không phân biệt công nghệ mà bạn học được: khả năng debug, khả năng thử nghiệm, khả năng học hỏi và đặc biệt là tư duy lập trình. Dù rằng bài toán có thể thay đổi, công nghệ có thể thay đổi, một coder giỏi sẽ nhanh chóng tích lũy được những tư duy giải quyết vấn đề có thể giúp họ trường tồn cùng nghề nghiệp.
Đến các tập đoàn lớn, bạn có thể gặp những developer đã có vài... chục năm kinh nghiệm. Họ đã trở thành người làm phần mềm trước khi ý tưởng "Agile" định hình, từ trước khi con người có Internet và thậm chí là trước cả khi bất kỳ ai được cầm trong tay một chiếc điện thoại di động. Cái họ giữ lại được từ những thời xa xưa ấy là hiểu biết sâu sắc về ngành dọc, kỹ năng kiến trúc hệ thống và đặc biệt là một "kho" kiến thức về những sai lầm có thể mắc phải. Cho dù chuyển từ Java sang .NET, từ Microsoft sang Amazon hay đi qua bất cứ một cuộc cách mạng công nghệ nào, những kiến thức này vẫn sẽ luôn luôn có ích với coder.
Công nghệ đi qua, kỹ năng và kiến thức vẫn ở lại.
Nói chung, chạy theo các công nghệ mới (đặc biệt là các công nghệ đang thiếu người trầm trọng như AI hoặc ngôn ngữ tự nhiên) cũng sẽ là một hướng tốt để phát triển nghề nghiệp và thu nhập. Song, đã làm code, đặc biệt là làm outsource, thì bạn hoàn toàn có thể tự tin rằng các cơn lốc công nghệ sẽ không khiến bạn tụt hậu lại phía sau.
Không có một cơn lốc công nghệ nào đủ mạnh để cuốn trôi hết tất cả các "legacy" trong thế giới doanh nghiệp cả!