Trở thành một Senior Java

Giới thiệu nội dung bài viết

Chào các bạn, chắc hẳn bạn sẽ muốn biết làm như thế nào để trở thành một Java developer xịn. Hôm nay anh sẽ giới thiệu một số nội dung , công nghệ mà các bạn bắt buộc phải học để trở thành một java developer giỏi.


1. Tìm hiểu về JVM (Java Virtual Machine)

Ở phần này chúng ta tìm hiểu các thành phần cấu tạo của máy ảo JVM. Cách nó hoạt động như thế ? Chúng ta tìm hiểu JIT , JVM Option, Garbage collections và collector hoạt động ra sao để hiểu được nguyên lý hoạt động của một ứng dụng Java.


2. Tìm hiểu Java Performance

Ở phần này chúng ta tìm hiểu sâu hơn về ứng dụng Java được triển khai như thế nào và làm cách nào để tăng hiệu năng (năng suất) của ứng dụng mình. Cải thiện bộ nhớ , lưu trữ các biến , object của ứng dụng trong bộ nhớ. Tối ưu chương trình Java giúp chương trình nhanh hơn

Nếu có thời gian các em nên đọc cuốn sách The Definitive Guide To Java

memory


3.Java API và Library

Nếu các em muốn học được các ví dụ, cách viết code hay thì nên đào sâu vào các thư viện có sẵn của Java. Trong bộ core của java có rất nhiều cách viết code hay mình có thể học hỏi nhiều thứ từ những thư viện này. Có hơn 20 loại thư viện và API được dùng thường xuyên trong java. Nắm được cách viết này mình sẽ nâng cao kỹ năng viết code tốt.


4. Học Java 8

Hiện nay Java phiên bản 13 đã ra đời tuy nhiên cũng rất ít developer Java sử dụng hết các chức năng mới này. Hầu hết các Java Developer thường sử dụng Java 7 là nhiều .

Tất cả các công việc tuyển dụng về vị trí Java các nhà tuyển dụng thường đòi hỏi các lập trình viên phải nắm được các chức năng của Java 8 như Lambdas và Stream API. Đây là 2 chức năng quan trọng mà Java 8. Nếu như không trả lời được các kỹ thuật trên thì rất khó để nhà tuyển dụng đánh giá cao mình.


5. Spring Boot

Ngày nay hầu hết các công ty sử dụng các framework của Java như Spring MVC, Spring Boot, Spring Cloud để xây dựng các ứng dụng về web, Rest API, và Microservice. Chính vì vậy nếu mình là một lập trình viên Java thì mình phải biết và sử dụng được Spring Boot. Như vậy mới có thể tham gia vào các dự án ở công ty JAVA.


6. Cloud và Microservice

Năm này qua năm nọ , kiến trúc của một hệ thống dần dần thay đổi. Cách đây khoảng 10 năm các ứng dụng đều xây dựng trên kiến trúc nguyên khối (monolithic). Kiến trúc nguyên khối bao gồm controller , service , repository chung với nhau. Tính phụ thuộc giữa các module rất cao. Chính vì vậy mà khả năng mở rộng (scale) rất hạn chế. Và ngày nay mọi người đang chuyển dần các ứng dụng theo kiến trúc nguyên khối (monolithic) sang kiến trúc Microservice (độc lập các modules). Chính vì vậy mà tính phụ thuộc các module rất thấp nên dễ dàng thay thế , cải tiến và mở rộng (scale)


7. Học Design Pattern và các Best Practice của Coding

Hầu hết các framework chúng ta dùng đều sử dụng Design Pattern. Nó giúp cho các framework trở nên linh động , khả năng mở rộng cao mà không phải đập code đi viết lại. Nắm được design pattern sẽ giúp chúng ta viết code một cách tối ưu . Khả năng mở rộng cao cho hệ thống sau này.

Hiện nay có hơn 25 bản design pattern phục vụ cho việc tạo đối tượng, cấu trúc các đối tượng và hành vi các đối tượng. Mỗi pattern đều có những mục đích riêng giúp mình mở rộng sau này các chức năng mà không phải đập hết các code cũ và viết lại cái mới.


8. Refactoring

Sẽ có những lúc mình đọc code của người khác và muốn sửa lại làm cho nó dễ đọc hơn, dễ bảo trì và mở rộng. Thì Refactoring là những kỹ thuật giúp mình làm được điều đó. Reactoring gồm các kỹ thuật tách hàm, biến , class phức tạp , khó hiểu thành những dòng code nhỏ hơn dễ hiểu hơn nhưng vẫn đảm bảo chức năng chạy đúng. Hiện này có hơn 20 kỹ thuật để giúp mình viết lại, chỉnh sửa code có sẵn để nó trở nên nhỏ gọn và dễ hiểu.


9. Devops

Đối với một lập trình Java hiện đại. Ngoài việc viết code mình cũng phải trang bị các kiến thức về Devops. Mình phải biết các kỹ thuật và tool để thực hiện các công việc tự động build , tự động tích hợp và tự động deploy (triển khai) sản phẩm. Các công nghệ mà lập trình viên Java cần trang bị là Docker ,K8s ,Ansible, Jenkins.


10. Unit Test

Một lập trình viên chuyên nghiệp, tay nghề cao thì việc đầu tiên trước khi họ viết code thì sẽ viết Unit Test trước. Để đảm bảo một chức năng chạy luôn đúng thì lập trình viên phải viết tất cả các testcase xảy ra đối với chức năng đó. Lập trình viên dự đoán những tình huống xảy ra thông qua việc viết các Unit Test. Thực tế các dự án anh làm cho thấy, những dự án nào có Unit Test bao phủ 80% thì đó là những dự án có chất lượng tốt. Để đạt 80% cũng là việc rất khó nhưng team anh luôn đặt ra mục tiêu là 80% các chức năng phải được bao phủ bởi Unit Test nếu không thì sẽ không được release cho khách hàng.

Trong Java thì anh hay sử dụng Junit và Mockito để làm Unit Test cho các chức năng của sản phẩm.


Kết luận

Để trở thành một lập trình viên Java chuyên nghiệp thì còn phải học rất nhiều cái khác nữa. Nhưng chỉ cần các em biết được 10 chủ đề ở trên thì là quá tuyệt rồi. Ở các công ty Java họ mong muốn tìm được một người có kỹ năng đạt được 10 điều trên. Đó cũng chính là các kỹ thuật bắt buộc mà một Dev Java mong muốn trở thành Senior Java.

Mọi người hãy subcribe kênh youtube dưới đây nhé. Videos về các kỹ năng mềm và lập trình sẽ được cập nhật hằng tuần


Comments