Tại sao Java - Spring Boot lại đột ngột tăng độ hot trở lại trên thị trường tuyển dụng 2021 ?

Trò chuyện cùng thầy Trần Văn Thịnh - hiện thầy là Senior Developer 7 năm kinh nghiệm cho dự án của IBM. Một dự án lớn của IBM gồm nhiều team ở các nước khác nhau, yêu cầu giao tiếp bằng Tiếng Anh là lẽ thường, khi mà khách hàng không phải người Việt. Những buổi thuyết trình trong team diễn ra thường xuyên, những buổi thuyết trình định hướng nghề nghiệp cho sinh viên Đại học Bách Khoa, yêu cầu chi tiết về số giờ tự học công nghệ mới mỗi năm, chưa kể các khoá đào tạo nội bộ, đã góp phần tôi luyện nên một người anh - người thầy kinh nghiệm, tự tin, phản ứng nhanh nhạy nhưng lại cực kì điềm đạm, khiêm tốn. 

Chúng ta nói gì khi nói về Spring Boot ?

  1. Tại sao các anh chọn sử dụng Spring Boot để lập trình? Do sở thích cá nhân, do xu hướng hay do khách hàng, dự án yêu cầu?

Spring Boot là một project trong hệ sinh thái Spring Framework. Spring Boot hỗ trợ các lập trình viên xây dựng một ứng dụng Spring với cấu hình đơn giản nhất có thể, nhanh chóng và thuận tiện hơn rất nhiều so với cách cấu hình bằng XML phức tạp trước đây. Spring Boot được phát hành từ giữa năm 2014. Với những ưu điểm nổi trội của mình, Spring Boot dần dần trở thành xu hướng và các dự án hiện nay (theo kinh nghiệm của bản thân) luôn luôn ưu tiên sử dụng Spring Boot.

  1. Khi lập trình Node.js web app, sử dụng cả JavaScript ở giao diện frontend lẫn backend. Rõ ràng là thuận tiện hơn so với Java Spring Boot, vậy ưu điểm của Spring Boot ở đây là gì?

Spring Boot là một Java framework với những ưu điểm nổi bật như:

  • Bảo mật mạnh mẽ hơn
  • Hỗ trợ lập trình đa luồng (multithreading)
  • Các module (starter) được chia tách rõ ràng
  • Dễ dàng tích hợp với các công nghệ khác như caching, websocket, message broker, ...

Bên cạnh đó, Java cũng là một ngôn ngữ rất phổ biến, dễ code và dễ đọc, có cộng đồng hỗ trợ vô cùng lớn.

  1. Công việc hàng ngày của lập trình viên Java nói chung và Spring Boot là gì?
  • Sử dụng các kiến thức về Java và Spring Boot để xử lý các bài toán nghiệp vụ ở phía backend.
  • Xây dựng các web page hoặc API phục vụ cho phía frontend/mobile.
  • Viết unit test.
  • Tìm các giải pháp để tối ưu performance.

...

  1. Cần phải chuẩn bị những kiến thức nền tảng nào để học lập trình Spring Boot?
  • Java core
  • Spring core
  • RESTful APIs
  • Database
  1. Spring Boot đang được những tổ chức, tập đoàn nào hỗ trợ?

Spring Boot được phát triển và hỗ trợ bởi công ty phát triển phần mềm Pivotal Software (một thành viên của công ty phát triển phần mềm nổi tiếng VMware).

  1. Khái niệm lập trình viên Full Stack Java Spring Boot là gì? Họ cần phải có những kỹ năng gì?

Lập trình Full Stack Java Spring Boot có thể tự mình xây dựng một hệ thống từ backend (Java + Spring Boot) đến frontend (sử dụng bất kỳ công nghệ frontend nào như Angular, ReactJS, ...) và có thể đóng gói và triển khai hệ thống này (sử dụng các công nghệ như Docker, Kubernetes, ...)

Xu hướng, công nghệ mới trong Java Spring Boot

  1. Những tính năng hay trong Java anh hay tận dụng và đánh giá cao là gì?
  • Lập trình hướng đối tượng
  • Bảo mật mạnh mẽ
  • Hỗ trợ xử lý các kiểu dữ liệu như string, date time rất tốt.
  • Hỗ trợ xử lý các cấu trúc dữ liệu như list, set, map, queue, stack, …
  • Lập trình đa luồng (multithreading)
  • Streaming dữ liệu
  1. Những tính năng, thư viện nào trong Spring Boot anh đang dùng cho dự án?
  • Embedded Tomcat server
  • Starter và auto-configuration
  • Xây dựng RESTful API nhanh chóng
  • Hỗ trợ cấu hình bằng YAML
  • Event listener
  • Actuator
  1. Anh dự định sẽ tìm hiểu thêm công nghệ gì trong Java và Spring Boot?
  • Các tính năng mới trong các phiên bản từ Java 9 trở lên
  • Lập trình Reactive với Spring Boot
  1. Có phải sau khi thành thạo Spring Boot thì sẽ nghiên cứu Spring Cloud?

Nên là như vậy. Các dự án Spring Cloud thường được xây dựng dựa trên Spring Boot. Thành thạo Spring Boot sẽ giúp chúng ta tiếp cận và triển khai Spring Cloud nhanh chóng hơn.

  1. Spring Boot hỗ trợ bảo mật chống lại tấn công website như thế nào?

Spring Boot cung cấp starter spring-boot-starter-security giúp chúng ta dễ dàng tích hợp các cơ chế bảo mật (basic authentication, form login, …) cho các API/web page của ứng dụng.

Lời khuyên

  1. Từ kinh nghiệm học và làm dự án của anh, anh có những gợi ý gì cho những bạn không học CNTT muốn học Java để trở thành lập trình viên?

Các bạn không học CNTT hoàn toàn có thể học Java để trở thành lập trình viên, nhưng các bạn cần:

  • Cố gắng nắm được những kiến thức nền tảng như cấu trúc dữ liệu và giải thuật, lập trình hướng đối tượng, design pattern, Java core.
  • Không ngừng rèn luyện kỹ năng tư duy lập trình.
  • Kiên trì và không sợ thất bại.
  1. Những tài liệu, sách, khóa học nào cho người mới bắt đầu học Java. Ví dụ em là nữ, cần bao lâu, mỗi ngày học, lập trình bao tiếng để thành thạo Java, Spring Boot.

Nếu bạn tự học, tôi có thể gợi ý cho bạn khóa học này:

https://www.udemy.com/course/java-the-complete-java-developer-course/

Về các tài liệu, các bạn nên sử dụng các tài liệu tiếng Anh:

https://www.amazon.com/Effective-Java-Joshua-Bloch-ebook/dp/B078H61SCH

https://www.amazon.com/Java-Coding-Problems-Programming-real-world/dp/1789801419

Học lập trình là cả một quá trình từ tiếp nhận kiến thức, hiểu kiến thức và áp dụng kiến thức vào trong các dự án thực tế. Học lập trình cũng không phân biệt nam hay nữ. Các bạn càng code nhiều, va vấp càng nhiều dự án thực tế thì các bạn càng nhanh chóng thành thạo Java và Spring Boot. Vì vậy để trả lời câu hỏi mất bao lâu để thành thạo thì khá là khó để có câu trả lời chính xác. Nhưng thường với một lập trình viên từ khi bắt đầu đi làm, thì sẽ mất khoảng ít nhất là 2 năm có thể xem là thành thạo về mặt coding. Nhưng để thực sự là master về ngôn ngữ và công nghệ thì cần nhiều hơn thế.

  1. Những sai lầm nếu anh từng gặp phải khi học và lập trình Java là gì?
  • Thiếu kiên trì: lập trình là cả một quá trình phát triển lâu dài. Không thể ngày 1 ngày 2 mà có thể thành thạo được ngay.
  • Chạy theo xu hướng công nghệ mà bỏ quên các kiến thức nền tảng như cấu trúc dữ liệu và giải thuật, lập trình hướng đối tượng, design pattern, Java core.
  • Chưa tận dụng hết sức mạnh của các thư viện Java.
  1. Cơ hội việc làm của lập trình Java Spring Boot ở Việt Nam và thế giới là như thế nào?

Trong rất nhiều năm và đến thời điểm hiện tại, Java luôn được xem là một trong những ngôn ngữ top đầu về số lượng job tuyển dụng ở cả Việt Nam và thế giới.

Các công ty đang sử dụng và triển khai dự án Java - Spring Boot:BIDV, VinID, Hyperlogy, Viettel, Doctor Joy, IBM, ODC...

Khoá học Lộ trình Java Spring Boot Full Stack của Techmaster : 7 tháng có phải là dài ? 

Hãy tự tìm hiểu để có câu trả lời cho riêng mình tại đây nhé.

Tư vấn - Đăng kí học: Ms Mẫn 0963023185 (zalo)

Khai giảng Lộ trình Java Spring Boot Back End :https://techmaster.vn/trungtam/lich-khai-giang