Friday, April 20, 2018

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

 
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 tiên, tôi chúc các bạn một năm mới vui vẻ. Đây là khoảng thời kì trong năm chúng ta lại bắt đầu lập mưu hoạch, đặt ra các đích 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 tính 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ở nên 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 đích 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ề trong tương lai.

thành ra, không phung 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 đích và kiên 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ở nên nhà phát triển Java cao cấp với hơn 5-6 năm kinh nghiệm, bạn được đề nghị 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ăn bản của Java.

Nếu bạn không thể bộc lộ một vận dụng hoặc không thể hiểu lí do vì 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, thí 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ảng giải về quản lý bộ nhớ, class boarding, An ninh và phản chiếu.

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 kì cho việc thực hành, 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 yếu 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 ra, 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 yêu cầu 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



học lập trình java nâng cao

 

kiên 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 vận dụng tri thức đó trong dự án thực tiễn của bạn.

Tôi đề nghị bạn l ập hồ sơ cho vận dụng Java của bạn, ít ra một tháng một lần và dành nhiều thời kì để 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 vận dụng Java của bạn?

căn nguyê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ể giải đáp vơ 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 dự các thử thách coding



 

đích này, một lần nữa, phần nào can hệ đế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ó, thỉnh thoảng, bạn không có đủ nhịp code trong dự án thực tiễn của bạn.

Nếu bạn đang dạo các bài tập code, không có gì tốt hơn việc dự 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 thẩ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 lớp một số thử thách lập trình khó khăn, bạn cũng có thể rà 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ư chẳ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ăn 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ó đủ thời cơ để 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 hiện 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ăn 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ẽ coi 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, tỉ 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ú nhận, ví dụ như reactive programming model và sự hấp thụ 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 vì sao mọi nhà phát triển Java nên học nó. Nếu bạn cần viện trợ, 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 xăm 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 sang vài trăm lỗi. Phần xăm nhất là module OAuth 2.0. Thật không may, ngày nay 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 soát 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 thụ 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ụ tập vào các đối tượng đã được soát. 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 tắt

Đó 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 đã chũm 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 đích 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 tiễn và không thành công trước khi khởi đầu.

Bạn đang chờ điều gì? Viết ra bảng kiên 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 lăm mục tiêu.

Techtalk Via  Dzone  

No comments:

Post a Comment