- Thống kê những ngôn ngữ lập trình bị "ghét" nhất
- Tại sao Web Designer nên học Ruby on Rails?
- Hướng dẫn cách biên dịch và thực thi Java bằng Command Prompt
Bạn muốn bắt đầu năm mới theo một hướng đi đúng? Đây là khoảng thời gian mỗi chúng ta cần lập ra kế hoạch, đặt ra các mục tiêu và quyết tâm một năm thành công.
Là một Java Developer (lập trình viên Java) và là tác giả của một blog Java, tôi - tác giả bài viết thường xuyên nhận được những câu hỏi 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ẻ 10 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 bắt đầu một năm mới, tôi quyết định viết ra những mục tiêu mới dành 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, hãy cùng Quản Trị Mạng xem qua 9 ý tưởng hay dành cho các lập trình viên Java trong năm 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.
1. Tìm hiểu về điều chỉnh hiệu năng Java
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 có kinh nghiệm và một kỹ năng tôi thấy thiếu ở họ đó là kiến thức và sự hiểu biết về JVM nội bộ, các hành vi của GC và điều chỉnh hiệu năng Java (Java performance tuning).
Khi kinh nghiệm Java tăng lên và 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 toàn bộ bức tranh lớn và các chi tiết nhỏ về 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 cho nó nhanh hơn thì bạn nên đọc một cuốn sách hay về JVM nội bộ và điều chỉnh hiệu suất, ví dụ như cuốn sách bán chạy nhất của Scott Oaks “Java Performance the Definitive Guide”.
Tôi đã đọc cuốn sách này nhiều năm trước đây và vẫn tham khảo lại 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 sách, tôi khuyên bạn nên xem qua chuỗi khoá học Hiểu biết về Java Virtual Machine (JVM) - một thiết bị trừu tượng về Pluarlsight giải thích quản lý bộ nhớ, class boarding, An ninh và Phản ánh.
2. Mỗi ngày code 2 tiếng
Một điều khác tôi nhận thấy trong năm ngoái là khi kinh nghiệm tăng lên, bạn thường 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à 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à code, đó là kỹ năng quan trọng nhất của một lập trình viên.
Nếu cảm thấy bạn code chưa đủ, 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 luôn 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ừ, hãy đọc và tái cấu trúc code cho vui trước. Sau đó, bạn sẽ thích và viết code.
Ngoài ra, 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 và 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.
3. Lập hồ sơ ứng dụng Java mỗi tháng 1 lần
Điều này đi kèm với quyết tâm đầu tiên trong việc đọc sách hay về JVM nội bộ và điều chỉnh hiệu suất. Nếu chỉ đọc sách là chưa đủ, bạn phải áp dụng kiến thức đó vào dự án thực tế của bạn.
Tôi khuyên bạn nên lập hồ sơ cho ứng dụng Java của mình, ít nhất một tháng một lần và dành nhiều thời gian để tìm hiểu và phân tích kết quả.
Bạn cũng có thể lấy kết xuất quá trình Java của mình hoặc nếu gặp sự cố trong chương trình gần đây, hãy kết xuất nó và tìm ra đối tượng nào chiếm hầu hết bộ nhớ của bạn. Liệu 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 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 đã có sự 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 khuyên bạn nên xem qua Understanding and Solving Java Memory Problems (Kiến thức và cách giải quyết sự cố bộ nhớ Java) của Richard Warburton.
4. Tham gia các thử thách code
Một lần nữa, mục tiêu này phần nào liên quan đến quyết tâm thứ hai kể trên – viết code trong 2 tiếng mỗi ngày. Hãy đối mặt với nó bởi đôi khi bạn không có đủ cơ hội code trong dự án thực tế của mình.
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 code. Hoặc tham khảo bài viết của chúng tôi:
- Bài tập C++ có giải (code mẫu) về biến, kiểu dữ liệu và toán tử
- Bài tập C++ có lời giải (code mẫu)
- Bài tập Java cơ bản, có lời giải code mẫu
Có rất nhiều trang web trên Internet chứa các thách thức lập trình và cung cấp cho bạn cơ hội kiểm tra kỹ năng bản thân, nhưng Top 20 website học lập trình miễn phí cần bookmark ngay lập tức 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 hơn, bạn cũng có thể kiểm tra danh sách các trang web tốt để thực hành code.
5. Tìm hiểu về Network programming (Lập trình mạng) trong Java
Một điều nữa tôi học được từ việc phỏng vấn là các nhà phát triển Java cần cải tiến lập trình mạng socket và nguyên tắc cơ bản về mạng lưới của họ. Tôi đã hỏi nhiều câu hỏi từ danh sách câu hỏi lập trình mạng Java của mình, nhưng các nhà phát triển hầu như không thể trả lời được.
Thậm chí một vài người trong số họ còn cố gắng phác thảo đ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 có kinh nghiệm từ 2-5 năm.
Nếu bạn cảm thấy không có cơ hội học lập trình mạng socket trong Java hoặc bạn không cần chúng 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à lập trình mạng socket.
Cuốn sách tôi khuyên bạn nên đọc là TCP/IP Sockets in Java, Second Edition: Practical Guide for Programmers (The Practical Guides). Rất dễ đọc, thú vị và là một cách hay để tìm hiểu các nguyên tắc cơ bản của lập trình mạng socket.
6. Java 9
Năm 2017 chúng ta đã 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ày. Nếu bạn muốn tìm hiểu các tính năng mới của Java 9 như Jigsaw, Reactive Streams, API enhancements,… thì Java 9 MasterClass trên Udemy là một khóa học tốt để bắt đầu.
7. 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ị như mô hình và sự tiếp nhận reactive programming của Java 8 và Java 9, việc áp dụng Spring 5.0 sẽ tăng tốc vào năm 2018, đó 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.
8. 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 nay là Spring Security 5.0. Spring Security 5.0 là một phiên bản chính, họ viết lại một vài module 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 nguồn tài nguyên để học Spring Security 5.0, nhưng Eugen đã cập nhật phần mềm Learn Spring Security bao gồm phiên bản 5.0 và bổ sung thêm một module mới trên OAuth 2.0.
9. Unit testing
Nếu muốn trở thành 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. Không chỉ với unit testing mà còn cả kiểm thử tự động (automated testing) 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 mình lên cấp độ mới.
Mockito thực sự mạnh mẽ và cho phép bạn viết một 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ại
Trên đây 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 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. Bạn có thể thêm vào danh sách 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 nó trở nên đơn giản và dễ làm vì tôi tin rằng thành công nhỏ sẽ dẫn đến 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 mong chờ điều gì? Hãy viết ra điều bạn muốn làm trong năm nay và chia sẻ chúng với chúng tôi. 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.
Tác giả: Javin Paul
Tham khảo thêm một số bài viết:
- Top 5 CSS Framework phổ biến mà bạn cần lưu ý
- Mảng và đối tượng trong JavaScript giống như cuốn truyện và tờ báo!
- Nếu bạn muốn trở thành nhà khoa học dữ liệu, hãy học ngay 3 ngôn ngữ này!
Chúc các bạn vui vẻ!