33 tuổi - Tôi là một Fresher Java !

12 tháng 04, 2021 - 3031 lượt xem

Tại sao mình muốn chuyển đổi sang nghề lập trình

Chào các bạn, mình là Hoàng Thanh Sơn, năm nay 33 tuổi. Hiện đang là Fresher Java tại VTI. Trước đây, mình tốt nghiệp chuyên ngành Điều khiển tự động, đã có 8 năm làm việc trong ngành, chuyên thiết kế, lắp đặt và vận hành các hệ thống đo lường & điều khiển cho các nhà máy hóa chất.

Sau khoảng 6 năm đi làm, một phần vì công việc không còn nhiều cái mới để học hỏi (mình chỉ thích làm về chuyên môn, không thích làm quản lý), một phần vì công việc thường xuyên phải đi công trường trong thời gian dài, mình bắt đầu thấy chán và quay sang tìm hiểu những thứ khác.

Thấy công nghệ thông tin khá hấp dẫn và có tính thử thách, công nghệ thay đổi từng ngày, đòi hỏi phải liên tục học hỏi, cập nhật kiến thức liên tục, khá phù hợp với sở thích của bản thân, nên mình có lên mạng tìm hiểu, tìm sách đọc, học thử một vài khóa học trên mạng như FreeCodeCamp’s 3000-hour Curriculumn, … nhưng kiến thức nhiều và lộn xộn, mình không xác định được hướng đi rõ ràng và cụ thể. Qua tìm hiểu thông tin các khóa học trên mạng, đầu năm 2020, mình quyết định nghỉ việc, tập trung theo học lộ trình Java Spring Boot tại Techmaster.

Quá trình học tập tại Techmaster

Quá trình học ở Techmaster, mình thấy các giảng viên trước hết đều là người có kinh nghiệm làm việc trong ngành lập trình, cộng với kỹ năng sư phạm tốt và sẵn sàng hỗ trợ học viên khi cần (thầy Cường khá kỹ tính trong việc lựa chọn giảng viên và yêu cầu chuẩn bị giáo trình). Trung tâm cũng rất lắng nghe và đáp ứng tối đa trong khả năng có thể các yêu cầu của học viên.

Từ thực tế bản thân mình, có một điểm mình nghĩ trung tâm cần cải thiện là làm sao để học viên phải tăng thời lượng tự code (cái này thầy Cường làm rất chặt, nhưng các thầy cô khác làm hơi lỏng :P) Mặc dù ban đầu khá khó chịu, nhưng khi đi phỏng vấn hay làm việc về sau sẽ rất có ích.

Chia sẻ về cách học

Dành cho các bạn muốn chuyển sang ngành CNTT, mình nghĩ cần 3 thứ:

  1. Đầu tiên là sự chuẩn bị, quan trọng nhất là chuẩn bị về tư tưởng. CNTT vốn đã là một ngành rất áp lực. Là một người chuyển ngành, không có kiến thức nền về CNTT, bạn sẽ phải bỏ nhiều thời gian và công sức hơn để bù đắp thiếu hụt này, cộng thêm khi ra đi làm (thường bắt đầu từ vị trí fresher) sẽ phải cạnh tranh với rất nhiều bạn trẻ hơn, sung sức hơn, chưa bị áp lực cơm áo gạo tiền, sẵn sàng cày cuốc OT (over time) thâu đêm suốt sáng mà lại nhận lương thấp hơn,… Vì vậy, mình nghĩ nên xác định tư tưởng rõ ràng, dứt khoát ngay từ đầu, cần có thái độ học tập nghiêm túc. Ngoài ra cần chuẩn bị về tài chính. Các bạn nên chuẩn bị dư dư ra một chút, ví dụ: thời gian học là 9 tháng thì nên chuẩn bị tài chính cho 1 năm: có thể lớp bắt đầu trễ 1-2 tuần so với lịch, hoặc trùng vào các đợt nghỉ, hoặc xuất hiện các yếu tố bất ngờ như dịch Covid...
  2. Thứ hai là khả năng tự học. Mặc dù trung tâm có lộ trình học rõ ràng, trang bị cho bạn những kiến thức cần thiết để trong thời gian ngắn nhất có thể đi làm được ngay. Tuy nhiên, ngoài những kiến thức này, sẽ còn rất-rất-rất … nhiều thứ khác bạn phải học nếu muốn đi lâu dài với nghề. Chưa kể, trường hợp xấu, bạn còn không được làm việc với những thứ được dạy ở trung tâm: như bản thân mình, học Spring Boot, hiện tại làm với Micronaut; học MySql, làm với Postgresql; học maven, làm với gradle; đến cả cái IDE cũng đổi từ VSCode sang Intellij – đời rất dở nhưng vẫn phải niềm nở.
  3. Thứ ba là tiếng Anh (kỹ năng đọc hiểu tiếng Anh là đủ, bạn nào muốn làm các công việc phải giao tiếp/làm việc trực tiếp với người nước ngoài thì thêm kỹ năng giao tiếp tiếng Anh). Tiếng Anh gần như trở thành bắt buộc nếu bạn muốn theo nghề lập trình. Công nghệ thay đổi, cập nhật liên tục, nên thường là chỉ có các bài hướng dẫn (tutorial, guides), ví dụ trên mạng bằng tiếng Anh, tài liệu tiếng Việt gần như không có hoặc không cập nhật kịp. Ví dụ ngay với Spring là framework được nhiều người quan tâm nhất, nhưng thời điểm mình học (12/2020-03/2021) thì sách tiếng Anh (mình thích đọc sách nhất – viết đầy đủ, mạch lạc, rõ ràng – nên thường tìm sách trước) nổi bật nhất và mới nhất có Spring In Action, 5th edition (10/2018) và Pro Spring 5, 5th edition (10/2017). Các tutorial bằng tiếng Anh trên mạng thì nhiều và cập nhật, còn tiếng Việt thì ít và không cập nhật lắm. “Nghiệt ngã” hơn, các bạn có thể tìm kiếm tài liệu về Micronaut để biết.

Nói qua một chút về tài liệu thì mình thấy thế này:

  • Đầu tiên là sách: viết đầy đủ, mạch lạc, rõ ràng nhất (có thể không phải là mới nhất), sẽ cho bạn một cái nhìn từ tổng quan về ngôn ngữ, framework: bao gồm các thành phần nào, các thành phần hoạt động, tương tác với nhau như thế nào, …), đến chi tiết các ví dụ thực tế. Đọc sách hơi mất thời gian, nhưng bạn sẽ có một kiến thức nền tốt, hiểu sâu sắc hơn. (Thêm nữa sách thường hướng dẫn cụ thể, “trang bị tận răng” nên chỉ cần làm theo là các ví dụ chạy được, không lỗi lầm -> sướng)
  • Các tutorial trên mạng: thường là các chia sẻ/cách giải quyết của tác giả về một vấn đề thực tế gặp phải, đây là dạng tài liệu cập nhật nhanh nhất, mới nhất tuy nhiên hơi lộn xộn. Đôi khi bạn đọc một tutorial cũ, sử dụng chức năng cũ, hoặc tutorial mới quá, sử dụng chức năng mới mà phiên bản trên máy bạn không có, …Trường hợp các bạn làm theo tutorial không chạy được, sẽ rất rối, không biết lỗi từ đâu, rất nhiều khả năng gây lỗi. Nên mình nghĩ, đọc tutorial trên mạng dành cho những bạn đã có kiến thức nền tốt, biết rõ mình đang tìm kiếm cách giải quyết cho vấn đề gì, phần nào trong code chắc chắn ok, phần nào khả năng có lỗi, thì quá trình làm theo ví dụ trên mạng và fix lỗi nếu có, các bạn sẽ vừa tăng thêm được kiến thức, vừa tăng thêm được kỹ năng fix bug (f**k bitch – cái này mới biết ở chỗ làm :P)

Vì vậy, mình nghĩ khi tiếp xúc với một ngôn ngữ hay framework mới, các bạn nên đọc sách trước để biết sơ sơ, có khái niệm ban đầu, tổng quan hệ thống (không cần phải đến mức rành rẽ từng lời, từng mục trong sách), sau đó code thực tế, giải quyết các vấn đề thực tế sẽ giúp hiểu hơn lý thuyết trong sách hoặc nếu có đọc tutorial trên mạng cũng biết nó nằm ở phần nào trong hệ thống, đang giải quyết vấn đề gì.

Về việc chọn Front-end hay back-end

Có thể là theo sở trường bạn nào có cảm quan về mỹ thuật, quan tâm đến trải nghiệm người dùng thì chọn front-end, bạn nào tư duy logic tốt, thích làm việc với dữ liệu, giải quyết các vấn đề về hệ thống thì chọn back-end. Nếu không chắc các bạn có thể thử (thử cũng cần có thái độ nghiêm túc nhé, thử thấy không ổn thì chuyển ngay, không chần chừ)

Chúc các bạn thành công!

Tham khảo khoá học Java Spring Boot Full Stack 7 tháng tại Techmaster : https://java.techmaster.vn/

 

Bình luận

avatar
Nguyễn Trung Nguyên 2021-04-12 12:18:05.753268 +0000 UTC
Năm sau mình học khóa này!
Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  +76 Thích
+76