Một người anh siêu giỏi, code lâu năm nhắn tin hỏi tôi lời khuyên về định hướng cho các bạn chuyển từ các ngành khác qua IT. Phản ứng đầu tiên của tôi là cool quá vì được thần tượng nhắn tin. Sau 4 năm vừa học vừa làm thì tôi cũng có những bài học đắt giá muốn chia sẻ lại cho mọi người. Hi vọng chúng sẽ có ích cho bạn.
Các rào cản của làm việc trái ngành
Nhảy ngành là một quyết định lớn trong sự nghiệp của mỗi người. Điều đầu tiên mọi người nên biết khi có ý định nhảy sang ngành IT là xác định các rào cản của việc làm trái ngành.
Chênh lệch thu nhập ban đầu
Bạn phải mất 1 - 2 năm đi học hoặc vừa học vừa làm không lương hoặc với mức lương không được cao. Thậm chí là thấp hơn nhiều so với công việc trước đó của bạn. Khi bạn có chút kinh nghiệm thì lúc đó lương mới bắt đầu tăng. Nếu bạn là nguồn thu nhập chính trong gia đình, hãy đảm bảo 2 - 3 năm đầu tài chính của bạn dư dả.
Cạnh tranh từ những đối thủ có lợi thế hơn
Bạn sẽ phải chấp nhận đồng đội của bạn hay sếp của bạn nhỏ tuổi hơn bạn, trẻ hơn bạn, giỏi hơn bạn và học nhanh hơn bạn. Tôi cũng từng rất áp lực khi đồng đội giỏi hơn mình rất nhiều. Các bạn ấy học lập trình từ hồi cấp 3 lại thêm 5 năm đại học. Mỗi người có một xuất phát điểm khác nhau. Chỉ cần hôm nay bạn đi xa hơn ngày hôm qua thì đó cũng là một thành công lớn.
Phân biệt giới tính
Trong một ngành phần lớn người lao động là nam. Nếu bạn là nữ và hỏi xin lời khuyên nên làm gì ví trí gì, tôi cá là kiểu gì cũng có nhiều người khuyên bạn nên làm tester, QA, designer hay những vị trí “dành cho nữ hơn” hay “bớt dùng não hơn”. Bất kể bạn có năng khiếu học toán, thích logic và có khi còn giải quyết vấn đề tốt hơn mấy ông nam. Đây là những định kiến ăn sâu vào tiềm thức của nhiều lập trình viên. Tôi hi vọng trong những năm tới, sẽ có nhiều nữ hơn trong ngành IT ở Việt Nam. Đặc biệt là các vị trí Back-end Engineer, Solution Architect, ...
Hổng kiến thức
Sau 1 năm đi làm thì tôi thấy mình không khác gì con vẹt. Viết code theo hướng dẫn sử dụng của thư viện và copy đoạn code trên Google. Dù có hiểu nghĩa và đọc thêm tài liệu cộng với tiếng anh khá nhưng tôi vẫn không thể nào giải thích được tại sao nó chạy. Lúc này, tôi mới hiểu phần lớn các trung tâm dạy lập trình và bootcamp đều bỏ những môn quan trọng như hệ điều hành, mạng máy tính, bảo mật ... Đây là những kiến thức gốc, rất quan trọng. Họ chủ yếu dạy các bạn kiến thức để làm “thợ code". Bạn sẽ có việc rất nhanh sau 4 - 12 tháng, học thấy đỡ nản nhưng càng về sau, khi muốn lên ví trí cao hơn đòi hỏi xử lý hệ thống phức tạp hơn thì những môn “không được dạy" kia sẽ giúp bạn tiến xa và tiến sâu hơn rất nhiều. Xa và sâu ở đây cũng ám chỉ cả lương nữa.
Các bước nên làm để không bị lạc trong ngành IT
Tìm hiểu tổng quan ngành IT
IT là một ngành rất rộng, có nhiều hướng để phát triển sự nghiệp và mỗi hướng đi thì đều có một. Vì thế nên khi mới bắt đầu tìm hiểu, bạn sẽ rất dễ bị hoang mang và nản chí. Sau đây là một vài lĩnh vực mà nhu cầu thị trường đang cần trong những năm gần đây (xác định đơn giản bằng số tin tuyển dụng xuất hiện trên các trang tuyển dụng lớn như itviec, linkedin, glassdoor, ...)
- Phát triển ứng dụng web (Web development)
- Trí tuệ nhân tạo (Artificial intelligence) và học máy (Machine learning)
- Cyber sercurity
- Điện toán đám mây (cloud computing)
- Phần cứng (Hardware development)
- Vân vân và mây mây
Ngoài ra, bạn có thể tìm thấy thông tin trên Google và qua các event của các trường đại học lớn hoặc trên Youtube về tổng quan ngành. Tìm một người đang làm trong ngành và hỏi họ về công việc hàng ngày là một ý tưởng hết sức tuyệt vời. Có những thứ bạn đọc khác hoàn toàn với lúc bạn bạn đi làm. Và đôi khi chỉ có trải nghiệm mới biết bạn hợp hay không.
Xây dựng roadmap
Tôi xin trích ra ba câu hỏi rất hay trong cuốn Người Trong Muôn Nghề: Ngành IT có gì? - Bức tranh tổng quan ngành Công nghệ thông tin.
- Vì sao bạn học lập trình? Mục đích và mục tiêu của bạn là gì?
- Bạn sẵn sàng bỏ ra bao nhiêu lâu để “phá băng” vào ngành này?
- Cách bạn tự học thường như thế nào?
Không phải ai cũng thích viết lách. Tuy nhiên, viết ra là cách hữu ích giúp bạn biến những ý tưởng mơ hồ thành rõ ràng hơn. Ví dụ, "Tôi thích học lập trình vì thuật toán rất thú vị và tôi có thể áp dụng tạo ra sản phẩm có ích cho xã hội" sẽ rõ ràng hơn "Tôi thích học lập trình".
Việc học lập trình cần có một kế hoạch rõ ràng. Tìm hiểu roadmap của lĩnh vực sẽ giúp bạn biết bạn còn thiếu những kiến thức gì, cần bổ sung kiến thức gì. Để tìm roadmap của một vị trí, bạn search với key là <vị trí> roadmap
. Ví dụ, đây là roadmap cho Go Developers. Bạn không cần học hết tất cả các mục trong roadmap để có được công việc đầu tiên nên đừng vì nhiều mục quá mà nản nhé. Cứ học từ từ theo thứ tự thôi.
Bản roadmap trên mạng thường rất chung chung, chỉ đưa ra từ khoá lớn. Bạn phải Google và tham khảo thêm từ rất nhiều nguồn khác để tự tạo ra roadmap cá nhân. Khi đã có roadmap cho riêng mình, bạn sẽ biết mình nên học gì tiếp theo, ít bị lạc hơn và tập trung hơn. Bạn có thể tham khảo bài post viết kỹ về quá trình học và có việc làm đầu tiên của chị Ngoc Le trong group Viet Tech (group chia sẻ kinh nghiệm cho các bạn trong ngành IT, cụ thể là software engineer)
Tìm cho mình tối thiểu một cộng đồng tốt và những người thầy tốt
Đối với các bạn trái ngành, tìm cho mình một cộng đồng tốt giúp bạn có nhiều động lực học tập hơn. Bạn sẽ tìm được rất nhiều người bạn tốt có cùng mục tiêu. Việc học nhóm sẽ tạo điều kiện cho bạn phát triển tư duy làm việc nhóm và các kỹ năng giao tiếp.
Phim ảnh thường xây dựng hình ảnh lập trình viên là những người “lập dị, thông minh, cả ngày ngồi máy tính”. Nhưng thực tế là ngành IT đòi hỏi giao tiếp và làm việc nhóm khá nhiều. Giải quyết bất đồng quan điểm, làm rõ những điều chưa hiểu trong yêu cầu của khách hàng, thuyết phục khách hàng/đồng đội về giải pháp đưa ra hay làm sao để vượt qua các câu hỏi tình huống tuyển dụng. Những người có kỹ năng giao tiếp và làm việc nhóm hiệu quả sẽ xử lý vấn đề này tốt hơn người chưa biết cách giao tiếp và làm việc nhóm.
Thầy (mentors) là người không thể thiếu cho dù bạn học bất kỳ cái gì. Thầy có thể là nguời chỉ dẫn cho bạn, có thể là khoá học hoặc sách từ người có kinh nghiệm. Bạn nên chủ động tìm mentors cho bản thân. Khi gặp khó khăn, đừng ngại xin lời khuyên từ họ.
Hãy trau dồi thật tốt 4 kỹ năng tiếng anh
Tất cả các ngôn ngữ lập trình và tài liệu hướng dẫn sử dụng chúng đều được viết bằng tiếng anh. Phần lớn các lập trình viên trên thế giới đều dùng tiếng anh để trao đổi trong công việc (và cuộc sống). Bạn có thể dùng tiếng anh làm công cụ xây dựng danh tiếng của bản thân và tạo mối quan hệ tốt với các developers giỏi trên thế giới.
Stackoverflow là trang hỏi đáp lớn nhất về lập trình trên thế giới và ngôn ngữ sử dụng là 100% tiếng anh. Với profile vài nghìn điểm Stackoverflow, bạn sẽ có một ấn tượng tốt với nhà tuyển dụng. Tôi cũng nhận được sự trợ giúp về kỹ thuật từ những người giỏi bằng cách viết email hỏi họ.
Bên cạnh đó, lập trình viên giao tiếp tiếng anh tốt có mức lương cao hơn 10-20% so với lập trình viên yếu tiếng anh ở cùng level. Bạn còn có cơ hội nhận các job remote từ nước ngoài với range lương cao hơn so với các job trong nước hoặc ra nước ngoài làm việc.
Một lưu ý nữa là giao tiếp tiếng anh tốt trong công việc khác với học giỏi tiếng anh. Nếu bạn có tiếng anh tốt (IELTS 9.0 chẳng hạn), bạn có lợi thế hơn các bạn học đúng chuyên ngành IT nhưng tiếng anh yếu ở việc xử lý tài liệu tiếng anh nhanh hơn nhưng nó không đồng nghĩa với việc bạn đưa ra hướng giải quyết cho vấn đề nhanh hơn.
Đừng mắc bẫy thu nhập
Trong 2 - 3 năm đầu tiên đi làm, thứ bạn quan tâm đầu tiên là môi trường tốt, đồng đội tốt và bản thân bạn học được nhiều thứ nâng trình độ bản thân lên tầm cao mới. Đừng vì công ty A trả cao hơn công ty B nhưng một năm sau nhìn lại, bạn không thấy mình học được nhiều thứ mới, không có kỹ năng gì đặc biệt bỏ vào resume. Tới lúc chán muốn tìm cơ hội mới thì phỏng vấn lại rơi vào thế lưỡng nan là không công ty nào trả lương cao hơn cho mình.
Phát triển tiếp như nào?
Câu này bạn sẽ tự hỏi mình khi bạn đã đi làm được vài tháng cho tới vài năm. Như đã viết ở phần hổng kiến thức phía trên. Nếu bạn đã đi theo roadmap cá nhân và vẫn thấy bế tắc. Lời khuyên của tôi là hãy kiên nhẫn và tìm hiểu thêm. Tôi đã phải đọc lại giáo trình hệ điều hành tới lần thứ 2 trong vài tháng liền mới hiểu cơ bản về cách bộ nhớ và CPU hoạt động.
Eli Weinstock-Herman có viết một bài blog rất hay về các nấc thang trong sự nghiệp của một lập trình viên. Bạn có thể tham khảo để tự đánh giá trình độ bản thân và điều chỉnh lại roadmap cá nhân.