9 điều lập trình viên Java nên biết trong năm 2018

4045

Bạn muốn bắt đầu năm mới theo một hướng đúng? Đây là một loạt các chủ đề bạn có thể thử để trở thành một Java dev giỏi hơn, từ việc điều chỉnh hiệu suất đến Spring Security 5.0.

Trước hết, tôi chúc các bạn một năm mới vui vẻ. Đây là khoảng thời gian trong năm chúng ta lại bắt đầu lập kế hoạch, đặt ra các mục tiêu và ra quyết tâm cho năm mới.

Là một Java Dev và là tác giả của một blog Java, tôi thường xuyên nhận được yêu cầu từ các lập trình viên Java ở khắp nơi trên thế giới về cách cải thiện năng lực.

Năm ngoái, tôi đã chia sẻ 11 mẹo để trở thành một lập trình viên Java giỏi hơn, và bài viết ấy vẫn đúng nhưng khi một năm mới đến, tôi quyết định viết ra những mục tiêu mới cho các lập trình viên Java để cải thiện bản thân, mở rộng kiến thức về lập trình Java và tăng giá trị cho việc phát triển nghề nghiệp trong tương lai.

Vì vậy, không lãng phí thời gian nữa, cùng xem qua 9 ý tưởng của tôi dành cho các lập trình viên Java trong năm mới 2018. Bạn có thể lấy cảm hứng từ những ý tưởng này để tạo ra các mục tiêu và quyết tâm cho riêng mình.

Tìm hiểu về Java Performance Tuning

Trong vài năm gần đây, tôi đã thực hiện hơn 50 cuộc phỏng vấn với các nhà phát triển Java, và một kỹ năng tôi thấy thiếu khá rõ là việc thiếu kiến thức và sự hiểu biết về JVM, các hành vi của GC và Java performance tuning.

Khi kinh nghiệm Java của bạn tăng và bạn trở thành nhà phát triển Java cao cấp với hơn 5-6 năm kinh nghiệm, bạn được yêu cầu phải biết cả bức tranh lớn và các chi tiết nhỏ về các nguyên tắc cơ bản của Java.

Nếu bạn không thể mô tả một ứng dụng hoặc không thể hiểu lí do tại sao nó chậm hoặc làm thế nào để làm nó nhanh hơn thì bạn nên đọc một cuốn sách hay về JVM và điều chỉnh hiệu suất, ví dụ như Scott Oaks’ best seller Java Performance the Definitive Guide.

Tôi đã đọc nó nhiều năm về trước và vẫn tham khảo lại nó bất cứ khi nào tôi có thời gian. Mục tiêu của tôi là đọc lại nó trong năm nay.

Nếu bạn thích các khóa học trực tuyến hơn là sách, tôi đề nghị bạn xem qua chuỗi khoá học Understanding the Java Virtual Machine về Pluarlsight, giải thích về quản lý bộ nhớ, class boarding, An ninh và Phản ánh.

Mỗi ngày code trong vòng 2 giờ

Một điều khác tôi đã nhận thấy trong năm ngoái là khi kinh nghiệm của bạn tăng, bạn dành nhiều thời gian cho việc thực hiện, trả lời email, làm chất xúc tác, khắc phục sự cố, cố vấn và nói chung là một người quản lý dự án tốt.

Điều bạn bị tụt lại phía sau là coding, đó là kỹ năng quan trọng nhất của một lập trình viên.

Nếu bạn cảm thấy rằng bạn chưa code đủ, hãy quyết tâm code mỗi ngày. Ít nhất, hãy viết một cái gì đó, dù là về dự án của bạn, một framework mã nguồn mở, một thư viện hay một tiện ích.

Bắt đầu là điều khó khăn nhất, tôi đề nghị bất cứ lúc nào bạn cảm thấy chần chừ, bắt đầu đọc và refactoring code cho vui trước. Bạn sẽ thích và trong quá trình đó, bạn cũng sẽ viết code.

Bạn cũng có thể giải quyết các vấn đề dựa trên buổi phỏng vấn Cracking the Coding, 150 câu hỏi lập trình. Điều này không chỉ đảm bảo rằng bạn đã sẵn sàng cho cuộc phỏng vấn mà còn nâng cao kiến thức về cấu trúc dữ liệu, các thuật toán và logic lập trình.

Lập hồ sơ ứng dụng Java của bạn mỗi tháng 1 lần

Quyết tâm này được đính kèm với quyết tâm đầu tiên về đọc một cuốn sách hay về JVM nội bộ và điều chỉnh hiệu suất. Đọc cuốn sách đó sẽ không đủ. Bạn phải áp dụng kiến thức đó trong dự án thực tế của bạn.

Tôi đề nghị bạn lập hồ sơ cho ứng dụng Java của bạn, ít nhất một tháng một lần và dành nhiều thời gian để hiểu và phân tích kết quả.

Bạn cũng có thể “ take a heap dump ” của quá trình Java của bạn hoặc, nếu bạn có crash gần đây, sau đó “ take that heap dump “ và tìm ra đối tượng nào chiếm hầu hết bộ nhớ của bạn. Có rò rỉ bộ nhớ trong ứng dụng Java của bạn?

Nguyên nhân là gì? Điều gì sẽ xảy ra nếu 100k khách hàng mới khác truy cập vào ứng dụng của bạn? Nếu bạn có thể trả lời tất cả những câu hỏi này một cách thoải mái, thì bạn đã chuẩn bị tốt. Nếu bạn cần một số hướng dẫn giải quyết vấn đề về bộ nhớ và CPU, tôi đề nghị bạn xem qua  Understanding and Solving Java Memory Problems  của Richard Warburton.

Tham gia các thử thách coding

Mục tiêu này, một lần nữa, phần nào liên quan đến quyết tâm thứ hai của chúng ta – viết code trong 2 giờ mỗi ngày. Hãy đối mặt với nó, đôi khi, bạn không có đủ cơ hội code trong dự án thực tế của bạn.

Nếu bạn đang tìm kiếm các bài tập code, không có gì tốt hơn việc tham gia lập trình và các thử thách coding.

Có rất nhiều trang web trên Internet chứa các thách thức lập trình và cho bạn cơ hội kiểm tra kĩ năng của bạn, nhưng TopCoder có thể nói là tốt nhất.

Nếu bạn đang tìm kiếm một số thử thách lập trình khó khăn, bạn cũng có thể kiểm tra danh sách các trang web tốt để thực hành coding.

Tìm hiểu về Network programming trong Java

Một điều nữa tôi đã học được từ việc phỏng vấn mọi người là các nhà phát triển Java cần phải cải tiến socket programming của họ và networking fundamentals.

Tôi đã hỏi nhiều câu hỏi từ danh sách các câu hỏi networking programming Java của tôi, nhưng các nhà phát triển hầu như không thể trả lời các câu hỏi đó.

Một số người trong số họ thậm chí còn phấn đấu để phác thảo những điểm khác biệt chính giữa TCP và UDP, mà tôi nghĩ là quá cơ bản để hỏi bất kỳ nhà phát triển Java nào có kinh nghiệm từ 2-5 năm.

Nếu bạn cảm thấy rằng bạn không có đủ cơ hội để học socket programming trong Java hoặc bạn không cần vì bạn là nhà phát triển web Java làm việc với JSP, Servlet và JSF thì tôi khuyên bạn nên đọc ít nhất một cuốn sách hay về Mạng Java, NIO và socket programming.

Một cuốn sách tôi khuyên bạn nên đọc là TCP / IP Sockets trong Java, Second Edition, Hướng dẫn thực hành cho các lập trình viên. Rất dễ đọc, thú vị, và một cách hay để tìm hiểu các nguyên tắc cơ bản của socket programming.

Java 9

Năm 2017 đã chứng kiến những phát hành lớn, một trong số đó là JDK 9. Tôi chưa bắt đầu với JDK 9, nhưng đây là điều đầu tiên tôi sẽ xem xét vào năm 2018. Nếu bạn muốn tìm hiểu các tính năng mới của Java 9, ví dụ: Jigsaw, Reactive Streams, API enhancements, v.v … thì Java 9 MasterClass là một khóa học tốt để bắt đầu.

Spring 5.0

Một phát hành lớn khác cho thế giới Java vào năm 2017 là Spring Framework 5.0. Với nhiều tính năng thú vị, ví dụ như reactive programming model và sự tiếp nhận Java 8 và 9, việc áp dụng Spring 5.0 sẽ tăng tốc vào năm 2018, và đó là lý do tại sao mọi nhà phát triển Java nên học nó. Nếu bạn cần giúp đỡ, Spring 5.0: Beginner to Guru là một khoá học tốt để bắt đầu.

Spring Security 5,0

Một phát hành thú vị khác của năm 2017, mà tôi sẽ học vào năm 2018, là Spring Security 5.0. Spring Security 5.0 là một phiên bản chính, và họ viết lại một vài modules và sửa chữa vài trăm lỗi. Phần thú vị nhất là module OAuth 2.0. Thật không may, hiện tại không có nhiều tài nguyên để học Spring Security 5.0, nhưng may mắn thay, Eugen đã cập nhật phần mềm Learn Spring Security để bao gồm phiên bản 5.0 và cũng bổ sung thêm một module mới trên OAuth 2.0.

Unit testing

Nếu bạn muốn trở thành một nhà phát triển giỏi hơn vào năm 2018, bạn nên làm việc với các kĩ năng unit testing của bạn. Và không chỉ với unit testing, nhưng tự động kiểm tra nói chung. Điều này cũng bao gồm thử nghiệm tích hợp. Bạn có thể học JUnit 5 và các thư viện unit testing nâng cao khác như Mockito, PowerMock, Cucumber và Robot để đưa kĩ năng unit testing của bạn lên cấp độ mới. Mockito thực sự mạnh mẽ và cho phép bạn viết một bài unit testing cho các lớp phức tạp bằng cách mocking dependencies và chỉ tập trung vào các đối tượng đã được kiểm tra. Nếu bạn là một người mới bắt đầu unit testing và muốn học nó vào năm 2018, thì khóa học JUnit và Mockito Crash từ Udemy là một điểm khởi đầu tốt.

Tóm lược

Đó là lời khuyên của tôi! Nếu bạn là một lập trình viên Java với một vài năm kinh nghiệm, bạn cũng có thể lấy cảm hứng từ danh sách này để đặt mục tiêu cá nhân. Một số thứ khác bạn có thể thêm vào danh sách này là học Android, Docker, và Spark, vì đây là điều cần thiết cho bất kỳ trình lập trình viên Java nào.

Tôi đã cố gắng làm cho nó đơn giản và dễ dàng làm được vì tôi tin rằng những thành công nhỏ dẫn đến những thành công lớn. Đặt ra những mục tiêu nhỏ và đạt được chúng tốt hơn việc đặt ra các mục tiêu lớn, không thực tế và không thành công trước khi khởi đầu.

Bạn đang chờ đợi điều gì? Viết ra bảng quyết tâm của bạn cho năm mới và chia sẻ chúng với chúng tôi. Vào cuối năm, bạn có thể trở lại đây và cho chúng tôi biết bạn đã đạt được bao nhiêu mục tiêu.

Techtalk Via Dzone

CHIA SẺ