Tập trung xuất sắc cho 1 kỹ năng
- Trong khoảng thời gian 2 năm, chỉ nên tập trung học, rèn luyện xuất sắc 1 công nghệ: hoặc lập trình web, hoặc lập trình di động. Đối với lập trình web tập trung dùng thành thạo 1 framework, lập trình ra ứng dụng cụ thể. Đối với di động chỉ cần xuất sắc 1 nền tảng: iOS hoặc Android là đủ sống.
Nếu bạn lập trình web
- Lập trình web rất rộng. Nó bao gồm: lập trình front end (HTML, CSS, JavaScript), thiết kế UI/UX, lập trình back end, triển khai hệ thống web. HTML, CSS, JavaScript là ngôn ngữ dễ học lúc đầu, gõ sai cú pháp thì trình duyệt cố gắng giảm thiểu độ nghiêm trọng của lỗi. Trên Internet có rất nhiều những thư viện, mã nguồn mở giúp lập trình front end rất dễ dàng. Lập trình viên khôn ngoan giảm được 60% sức lực bằng cách dùng lại thư viện. Nhiều người lẫn lộn việc dễ dàng tiếp cận HTML, CSS, JavaScript, dùng lại mã với năng lực thực sự về 3 ngôn ngữ này của bản thân. Tạo ra thư viện front end JavaScript tốt tương thích nhiều trình duyệt mất nhiều thời gian và kinh nghiệm. Lập trình viên front end chỉ máy móc dùng lại theme, thư viện có sẵn, 5-10 năm lập trình cũng chỉ tương đương lập trình viên 1 năm kinh nghiệm.
- Công nghệ lập trình giao diện ngày một cải tiến: mô hình đồng bộ dữ liệu 2 chiều, kiến trúc MVVM, công nghệ web socket giúp giao diện tự động cập nhật thay vì yêu cầu rồi trả về trang. Vai trò của lập trình viên giao diện ngày càng lớn nếu anh ta tận dụng công nghệ mới để giúp trang web thân thiện hơn còn không vị trí của anh ta sẽ rất mờ nhạt với bởi công ty có thể mua những giao diện chuyên nghiệp bán sẵn với giá rất rẻ
- Lập trình viên web cần phải làm việc theo nhóm 2 – 7 người. Trường hợp đặc biệt, dự án nhỏ, dùng CMS sẵn có thể làm việc đơn lẻ.
- Công việc của chuyên gia thiết kế UI/UX khác so với lập trình viên front end. Cả ứng dụng di động và ứng dụng web đều cần UI/UX. Hiện Techmaster chỉ có một khóa học buổi tối, ngắn để chia sẻ kinh nghiệm thiết kế UI/UX.
- Lập trình viên web back end cần phải nắm vững 1 ngôn ngữ lập trình và 1 framework. (PHP – Laravel, Phalcon), (Ruby – Rails), (Python-Django, Tornado), (Node.js-Express, Hapi.js, Mean, Sails, Arrowjs.io). Ngoài ra lập trình viên back end còn phải nắm rõ truy xuất dữ liệu xuống các cơ sở dữ liệu: MySQL, Postgresql, MongoDB. Kỹ nghiệm bảo mật, triển khai web site lên Internet cũng là yêu cầu. Nhìn chung công việc của lập trình viên web back end nặng nhọc, đòi hỏi thời gian học – thực hành – tích lũy kinh nghiệm tối thiểu 24 tháng. Ở nhiều công ty gia công phần mềm vì không thể kiếm được lập trình viên back end nhiều kinh nghiệm, họ sẽ chia nhỏ công việc cho vài lập trình viên tập trung làm đi làm lại 1 kỹ năng chuyên môn. Khi này công việc của lập trình viên back end 1 kỹ năng nhỏ khá đơn điệu, khó hình dung ra tổng thể ứng dụng được xây dựng như thế nào. Tuy nhiên đây là cơ hội cho học viên thực tập 6 tháng tại Techmaster xin được việc làm.
- Mức lương khởi điểm tại Hà nội cho lập trình viên web rất đa dạng. Với một lập trình viên non tay nghề < 6 tháng, chưa từng có việc làm, có một chỗ ngồi, một máy tính và được tham gia dự án và nhận thù lao 500k/tháng không tệ chút nào. Nhưng với lập trình viên web đã làm ứng dụng cụ thể, tích lũy được nhiều kỹ năng, tiếng Anh tốt, nắm vững quy trình làm dự án, thì mức lương 8 triệu/tháng thực ra là thấp. Nhà tuyển dụng thường trả ép đối với những lập trình viên lần đầu đi xin việc.
- Để nắm vững nhiều kỹ thuật khó trong lập trình web sẽ mất nhiều năm, và không phải ai cũng kiên trì làm được. Việc học lập trình web đòi hỏi phải học nhiều ngôn ngữ hơn. Nhưng tôi vẫn mạnh dạn khuyên các bạn không quá giỏi, không background CNTT học lập trình web bởi đây là một thị trường rất rộng, màu mỡ, thượng vàng hạ cám. Giỏi thì kiếm, còn kém, đứng đúng chỗ vẫn sống tạm được. Với lập trình di động không có chỗ cho lập trình viên trung bình.
Trong khoảng 24 tháng đầu, lương của một lập trình viên di động có thể sẽ cao hơn đồng nghiệp web vì: số lượng lập trình viên di động chuyên nghiệp hiện còn thiếu. Tuy nhiên sau đó thì chưa chắc nếu các lập trình viên web tiếp tục nâng cấp trình độ và trở thành full stack web developer. Full stack web developer yêu cầu nhiều kỹ năng kết hợp, hiểu biết tổng quan hệ thống, rõ ràng, đãi ngộ phải tốt hơn.