MẶT TỐI CỦA NGÀNH CÔNG NGHIỆP IT

9/16/2020 3:29 PM | Lập trình

Ngành lập trình kể ra cũng có khá nhiều cái sướng: Dễ xin việc, công việc thú vị, tiếp xúc nhiều cái mới, mức lương khá. Tuy vậy, nó có không ít mặt tối mà chỉ những người có thâm niên, tiếp xúc lâu với nghề mới trải nghiệm và nhận ra được. Bài viết này lấy cảm hứng từ course cùng tên trên pluralsight: Technology Career Dark Side, nhằm giúp bạn đọc có cái nhìn khách quan hơn về ngành IT, cũng như tự rút ra cách “sống sót” cho bản thân mình.

1. Công nghệ liên tục thay đổi – Ai là người có lỗi

Trong ngành lập trình, công nghệ là thứ liên tục thay đổi. Những công nghệ mới liên tục ra đời thay thế công nghệ cũ, làm kiến thức rất dễ lỗi thời vì. Do đó, người lập trình viên phải liên tục học hỏi, nếu không họ sẽ trở nên lạc hậu.

Nguyên nhân sâu xa đằng sau chuyện này chính là Tiền. Tại sao mỗi năm FIFA và PES đều ra bản mới? Để bán lấy tiền. Tại sao mỗi năm Iphone lại ra phiên bản mới? Để hút máu người dùng, đế kiếm tiền. Đó cũng là lý do các hãng công nghệ liên tục đưa ra các sản phẩm/công nghệ mới để bán lấy tiền: C# thay đổi từ 2.0 tới 5.0, Windows mỗi 2-3 năm lại ra bản mới, Visual Studio và SQL Server cũng tương tự.

Nhìn chung, sự thay đổi này có mặt tích cực của nó: Các framework/library mới có nhiều tính năng hơn, giúp việc code nhanh và dễ dàng hơn. Tuy nhiên, điều đó cũng đi kèm không ích phiền toái: Mỗi version lại có chút ít cập nhật và thay đổi, làm việc nâng cấp/tích hợp rất mệt mỏi và mất thời gian. Một ví dụ điển hình là ngôn ngữ Python: Python có 2 phiên bản 2 và 3. Phiên bản 3 tích hợp quá nhiều thay đổi, nhiều thư viện của python 2 không chạy được trên bản 3, … do đó cộng đồng Python vẫn tranh cãi về việc dùng phiên bản nào. Phiền toán lớn nhất chính là: Tốn công sức, thời gian mà lập trình viên đã bỏ ra để học ngôn ngữ đó.

Đôi khi một framework/library chết, không được hỗ trợ nữa (VB6, Silverlight). Thử tượng tượng bây giờ MS SQL không được phát triển tiếp xem, một đống dự án sử dụng MS SQL sẽ lao đao.  Đó là lý do các ngôn ngữ/công nghệ như Java, C#, PHP, MySQL vẫn được ưa chuộng so với NodeJS, MongoDB, … vì chúng có tuổi đời lâu hơn, đáng tin tưởng hơn.

Vòng đời của một công nghệ: Một công nghệ mới ra đời, được nhiều công ty sử dụng, nhu cầu tuyển dụng cao nên nhiều người theo học. Qua năm tháng, công nghệ chết dần, không ai tuyển nữa nên ít người học. Tuy nhiên, ứng dụng của các công ty được xây dựng bằng các công nghệ cũ, họ vẫn cần developer để bảo trì/nâng cấp ứng dụng. Đó là lý do các developer Cobol, VB6, Fortran vẫn rất được giá (Bọn Nhật có nhiều hệ thống lớn và siêu lớn xây dựng bằng các công nghệ này, toàn outsource cho dân VN bảo trì).

2. Hackathon và Stackoverflow không “tốt đẹp” như bạn nghĩ

Hackathon là một cuộc thi code nho nhỏ, thường tổ chức vào hai ngày cuối tuần. Các lập trình viên sẽ lập thành một team khoảng 3-5 người để xây dựng một sản phẩm. Giải thưởng (khá hấp dẫn) sẽ được trao cho các đội xuất sắc nhất.

Mặt tốt của hackathon rất nhiều và dễ thấy. Các sự kiện này thường rất vui và có ích cho lập trình viên: Họ được vui chơi, được code, được tặng quà, còn được xây dựng quan hệ, kết nối với cộng đồng. Tuy nhiên, mặt xấu thì ít người để ý. Hackathon được tổ chức với lý do là “phát triển cộng đồng, giới thiệu công nghệ”. Thật ra, đây là một cách rẻ mạt để chôm thời gian và công sức của lập trình viên. Luật bản quyền cũng ít khi được coi trọng (ứng dụng tham gia hackathon, mặc định bản quyền thuộc về hackathon) nên bạn có thể dễ dàng bị chôm/đạo ý tưởng mà không làm được gì.

Stackoverflow là một mạng hỏi-đáp dành cho lập trình viên. Tham gia stackoverflow sẽ giúp bạn nâng cao trình độ và kiến thức. Tuy nhiên, tham gia stackoverflow, bạn đã vô tình tham gia vào đội ngũ “chuyên gia” miễn phí, cho stackoverflow thu tiền quảng cáo. Nó còn áp dụng Gamification (Điểm, huy hiệu) để dụ dỗ bạn đóng góp thời gian, công sức. Một câu trả lời trên stackoverflow tiết kiệm cho bạn 1 tiếng fix lỗi, bạn bỏ ra 15 phút ngồi đóng góp lại cũng ko sao, nhưng đừng bỏ 3, 4 tiếng vào đó nhé.

Dù vậy, mình vẫn khuyên các bạn tham dự các hackathon và stackoverflow, chúng rất hữu ích với mọi lập trình viên. Nhưng nhớ biết nhận thức và dè chừng những mặt xấu của nó nhé.

3. Vấn đề outsource và bóc lột

Ở Việt Nam có khá nhiều công ty outsource (FPT, Harvey Nash, …). Các công ty này cung cấp phần lớn công ăn việc làm cho lập trình viên, đóng góp vào GDP nước nhà. Outsource cũng không phải hoàn toàn xấu, nhưng quá lệ thuộc vào outsource, chỉ cắm đầu vào gia công phần mềm, thì ngành IT nước nhà sẽ rất khó phát triển.

Vì sao các công ty nước ngoài lại outsource, chung quy cũng (lại) là vì tiền. Giá nhân sự của Việt Nam, Ấn Độ rẻ hơn lập trình viên nước ngoài nhiều. Các công ty outsource Việt Nam ăn phần lớn, trả một phần nhỏ cho lập trình viên. Đó là lý do các bác PM, quản lý, cấp cao lương thưởng cao chót vót, còn developer quèn thì lương nhỏ giọt. Mình khuyên các bạn nên học giỏi tiếng Anh rồi tự tìm cách bán thân – qua nước ngoài làm. Mình quen vài ông anh làm cho công ty nước ngoài, 1 ông qua Singapore làm, lương cao mà không lo bị bóc lột như outsource.

Nhắc tới chuyện bóc lột, hình thức bóc lột “dã man” nhất là làm thêm giờ, còn gọi là OT (Overtime). Nếu bạn xui xẻo rơi vào dự án “cháy”, OT là chuyện như cơm bữa. Bạn sẽ phải đi làm tới 8-9 giờ tối, cả thứ 7 chủ Nhật. Điều này ảnh hưởng không nhỏ đến sức khỏe, quan hệ xã hội và gia đình. Mình từng nghe “truyền thuyết” về 1 team cũ ở BU26 FPT, do OT ăn mì tôm riết mà cả nhóm bị mỡ trong máu. Về chuyện tiền nong, có nhiều công ty trả tiền OT rất sòng phẳng, cũng có nhiều nơi quy ra ngày phép, hoặc xù luôn. Làm với Nhật thì không cái khái niệm OT, đi làm 9-10h tối mới về là “văn hóa làm việc” bên đó.

4. Giỏi technical không chưa đủ

Nhắc lại một câu nói từ bài cũ:

Một điều khá may mắn trong ngành IT là: Vì đây là một ngành nặng về kĩ thuật. do đó bạn chỉ cần giỏi tập trung trau dồi technical cho giỏi. Chỉ cần technical giỏi, bạn sẽ được đồng nghiệp coi trọng, cấp trên tin tưởng giao phó trách nhiệm. Chỉ cần technical giỏi, con đường sự nghiệp của bạn sẽ rộng thênh thang, bạn sẽ nhanh chóng leo lên vị trí senior, team leader, technical lead, … Chỉ cần technical giỏi, lương bạn sẽ tăng vù vù, từ 500$, 1000$, 2000$, các quảng cáo tuyển dụng toàn cần người giỏi technical còn gì?

 

Nhiều bạn ngáo ngơ mới ra trường vẫn tưởng điều này là đúng, thấy mình hơi giỏi nên tỏ thái độ khi phỏng vấn. Môi trường làm việc đòi hỏi nhiều thứ hơn cả khả năng code, đó là: khả năng giao tiếp, khả năng trình bày/thuyết trình, kĩ năng thương thảo, khả năng làm việc nhóm, … Tới những cấp cao hơn như team lead, quản lý, bạn còn phải biết cách quản lý, chia việc, cách thuyết phục, nói cho người khác nghe. Khả năng code là bắt buộc, nhưng chỉ code không là chưa đủ nếu bạn muốn sống sót và thăng tiến trong ngành này.

5. Cấp trên thường “đéo biết gì cả”

Đôi khi nói cấp trên “đéo biết gì” cũng không sai. Một sự thật buồn cười của ngành mình là: Nếu giỏi technical, developer sẽ được đẩy lên làm quản lý. Ở cấp quản lý, họ ít có thời gian code, mà phải lo chia việc, quản lý nhân sự, quản lý dự án,… toàn những việc trước giờ họ chẳng bao giờ làm. Ở cương vị mới, họ cũng phải học dần dần về quản lý, giống như chúng ta mới bắt đầu học code vậy thôi.

Các bạn lập trình viên thường có suy nghĩ rằng “Ông team leader/PM có code bao giờ đâu, công nghệ mới cũng *éo biết”. Điều này đúng, vì họ còn phải lo nhiều việc khác: nhân sự, tài nguyên, phỏng vấn ứng viên, hoặc đấu đá nội bộ công ty ,… không có đủ thời gian để trau dồi technical. Đôi khi tranh cãi về một vấn đề, bạn chỉ thấy vấn đề technical, họ còn phải chú ý đển nhiều khía cạnh khác như: sắp xếp team, tiến độ dự án, trình độ thành viên, …

Do vậy, đừng giữ thái độ thù hằn, cay cú hay xem thường cấp trên. Hãy cứ cố gắng thấu hiểu và học hỏi họ đi, biết đâu sẽ có lúc bạn “bị” đẩy lên làm quản lý như họ thôi. Gợi ý nhỏ: Nếu cấp trên thật sự “ngu” và bạn không chiụ nổi, cứ thoải mái chuyển công ty/chuyển phòng ban khác thôi, ngành mình cũng dễ xin việc lắm.

6. Lập trình viên dần đang mất giá

Hôm trước, mình nhận được mail giới thiệu việc làm thêm của vlance – Một trang web cho freelancer Việt Nam. Nhìn giá cả các dịch vụ IT ở Việt Nam mà thấy thương: Một ứng dụng chỉ có giá 2 triệu, một website chỉ khoảng 1 triệu. Một phần do các công ty IT ở Việt Nam phá giá, làm mọi thứ từ web tới app với giá rẻ mạt. Một phần do các bạn developer Việt Nam đang bán rẻ chất xám, bán rẻ sức lao động của chính mình.

Ở đầu bài, mình từng nói rằng ngành lập trình viên có mức lương kha khá. Với các vị trí như senior, team leader, PM thì lương 1000-3000$/tháng là chuyện bình thường. Tuy nhiên, mức lương ở các vị trí thấp hơn lại … khá là thấp. Một phần là do nhiều bạn trẻ đổ xô đi học công nghệ thông tin, học lập trình, khi ra trường lại không đủ trình độ, đành ngậm ngùi làm những công việc nhàm chán, mức lương thấp.

Công nghệ hiện đại làm mọi người dễ tiếp cận việc lập trình hơn, nên người dùng có thể làm web, làm ứng dụng dễ dàng. Lập trình viên thì ngày càng “lười” hơn, “nhàn” hơn nhờ các framework. Trong tương lai, có thể ngành lập trình sẽ không còn hot như bây giờ, lập trình viên sẽ rớt giá “thê thảm”.

Kết. Thế giờ em phải sống nàm thao?

Nghe mình “hù” nãy giờ, chắc bạn cũng hơi nghi ngại rồi phải không? Đừng lo, hãy áp dụng một số lời khuyên dưới đây của mình.

  • Nắm vững kiến thức nền tảng, học nhiều ngôn ngữ chứ đừng ôm khư khư 1 ngôn ngữ. C++, C#, Java, … có hay đến đâu cũng chỉ là công cụ. Quan trọng là bạn làm được gì với ngôn ngữ mình biết.
  • Ngành mình có rất nhiều developer, nhưng có rất ít developer giỏi. Hãy tự trao dồi kiến thức và kĩ năng để tự nâng giá bản thân nhé, đã giỏi thì không lo thất nghiệp hay lương thấp.
  • Xác định con đường mình muốn đi: Manager hay Technical, hoặc mở công ty riêng. Học thêm mấy thứ ngoài luồng như: quản trị, kinh tế, khởi nghiệp,… sau này sẽ có ích lắm đấy.
  • Sống khôn hơn và đừng ngáo ngơ nữa. Chịu khó đi xã giao, tạo dựng danh tiếng, quan hệ. Hãy đọc blog của một số developer nổi tiếng để học cách suy nghĩ, cách làm việc của họ.

Bài viết liên quan: NỖI KHỔ CỦA DÂN IT - NHỮNG ĐIỀU CHƯA NÓI

Tác giả: Phạm Huy Hoàng

Tin tức khác

  • Tạo chatbot với CHAT GPT sử dụng C#

    Tạo chatbot với CHAT GPT sử dụng C#

    Trong hướng dẫn này, chúng ta sẽ đi sâu vào quá trình xây dựng chatbot bằng ChatGPT và C#. Chúng tôi sẽ đề cập đến mọi thứ, từ thiết lập quyền truy cập API ChatGPT đến triển khai chatbot của bạn. Bắt đầu nào!

  • Remote SQL Server. Cách mở port 1433 để kết nối với sqlserver từ xa.

    Remote SQL Server. Cách mở port 1433 để kết nối với sqlserver từ xa.

    Hiện nay nhiều người có xây dựng cơ sở dữ liệu trên server và kết nối tới để làm việc cho tiện. Nên mình chia sẻ bài viết này cho người mới nhé.

  • Sự khác nhau giữa Application, Virtual Direction và Site. Cách tạo 1 Virtual Direction.

    Sự khác nhau giữa Application, Virtual Direction và Site. Cách tạo 1 Virtual Direction.

    Trong IIS, bạn có thể tạo các trang web, ứng dụng và thư mục ảo để chia sẻ thông tin với người dùng qua Internet, mạng nội bộ hoặc mạng phụ. Mặc dù các khái niệm này đã tồn tại trong các phiên bản trước của IIS, một số thay đổi trong IIS 7 trở lên ảnh hưởng đến định nghĩa và chức năng của các khái niệm này. Quan trọng nhất, các trang web, ứng dụng và thư mục ảo giờ đây hoạt động cùng nhau theo mối quan hệ phân cấp như những khối xây dựng cơ bản để lưu trữ nội dung trực tuyến và cung cấp dịch vụ trực tuyến.

  • Design pattern là gì? Tại sao nên sử dụng Design pattern?

    Design pattern là gì? Tại sao nên sử dụng Design pattern?

    Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Đây là tập các giải pháp đã được suy nghĩ, đã giải quyết trong tình huống cụ thể.

  • CDN là gì? Khi nào thì cần xài CDN cho website

    CDN là gì? Khi nào thì cần xài CDN cho website

    Thuật ngữ CDN có thể bạn sẽ bắt gặp khá nhiều bài viết trên thachpham.com, hoặc khi bạn cần một người có kinh nghiệm tư vấn giải pháp tiết kiệm băng thông máy chủ và tăng tốc độ website đều sẽ được nghe tư vấn là sử dụng CDN. Vậy CDN chính xác là cái gì, có bao nhiêu loại CDN, và website của bạn có thích hợp để sử dụng CDN không thì bài này sẽ cung cấp cho bạn các thông tin cần thiết đó.

  • Giao thức HTTP và HTTPS là gì? Tại sao nên sử dụng HTTPS?

    Giao thức HTTP và HTTPS là gì? Tại sao nên sử dụng HTTPS?

    Môi trường internet phát triển, kéo theo tội phạm mạng tăng cao, vì thế cần có những chuẩn bảo mật web cao hơn. Đó là lí do giao thức HTTPS dần thay thế hoàn toàn HTTP. Vậy, giao thức HTTPS là gì? HTTP và HTTPS khác nhau như thế nào? Và tại sao các website nên dùng HTTPS thay vì HTTP? Bài viết này sẽ giúp bạn giải đáp tất cả những thắc mắc đó.

  • Tích hợp zalo vào website.

    Tích hợp zalo vào website.

    Nếu bạn là một người có website bán hàng thì việc liên hệ thuận lợi nhanh cho khách hàng luôn là ưu tiên hàng đầu. Cũng chính vì lí dó này mình đã tìm hiểu sau khi chèn cho website của mình. Thấy hay nên chia sẻ cho mọi người có nhu cầu.