CHÀO! Hôm nay chúng ta sẽ nói về con đường phát triển của một nhà phát triển Java và những gì họ phải biết để đáp ứng nhu cầu.
Trong một cuộc phỏng vấn, bất kỳ nhà phát triển nào cũng có thể nướng ứng viên. Ví dụ, họ có thể bắt đầu đặt câu hỏi về các chủ đề cụ thể mà họ gặp phải trong dự án hiện tại của họ. Nhưng không biết mọi thứ là bình thường. Việc bạn không thể trả lời một số câu hỏi cũng là điều bình thường. Theo nguyên tắc chung, mọi lập trình viên Java đều phải có hiểu biết cơ bản về phát triển phần mềm. Vì vậy, hãy xem những gì được coi là "cơ bản".
Tôi cũng khuyên bạn nên tìm kiếm các câu hỏi từ các cuộc phỏng vấn Java. Điều này sẽ giúp bạn hiểu chính xác những gì bạn cần học và những câu hỏi cần chuẩn bị.
MySQL đơn giản hơn nhiều, nhưng PostgreSQL có khả năng rộng hơn nhiều. Làm quen với ít nhất một trong số chúng là đủ để bắt đầu. Bạn có thể nghiên cứu triển khai cơ sở dữ liệu nếu sử dụng kỹ năng tra cứu trên Google — tìm các bài viết và hướng dẫn có liên quan trên YouTube. Bạn sẽ cần trau dồi khả năng của mình để tạo các truy vấn tìm kiếm thích hợp cho các câu hỏi bạn cần trả lời. Xét cho cùng, một lập trình viên là người có đai đen về googling.
Ngoài nhiều bài viết về Git mà bạn có thể tìm thấy trực tuyến, YouTube còn có nhiều video đủ để giúp bạn làm chủ công nghệ này, từng bước một. Lúc đầu, tốt hơn là sử dụng Git từ dòng lệnh thay vì một số loại triển khai GUI, bởi vì bạn sẽ buộc phải làm mọi thứ bằng lệnh. Trong các cuộc phỏng vấn, mọi người thường thích hỏi về một số lệnh Git, vì vậy tôi khuyên bạn nên viết chúng ra và để ở đâu đó gần đó. Tôi cũng khuyên bạn nên ghi chú, theo dõi những điểm quan trọng nhất để lướt qua chúng trước cuộc phỏng vấn và làm mới trí nhớ của bạn.
Việc biết khuôn khổ này bây giờ cũng quan trọng như biết Cú pháp Java. Bạn có thể nói rằng Spring có một người anh em, tức là Java EE. Nhưng Java EE đã lỗi thời và không còn được sử dụng cho các dự án mới. Phần lớn các nhà phát triển Java hiện nay là các nhà phát triển Java-Spring, vì vậy việc biết một số công nghệ cơ bản của Spring là điều bắt buộc. Spring không chỉ là một framework, mà là toàn bộ framework của các framework:
Và đây chỉ là một tập hợp con của các framework mà Spring cung cấp. Đối với người mới bắt đầu, chỉ cần biết một vài trong số chúng là đủ:
Bạn nên đặt điều này ở vị trí đầu tiên, để bạn có thể hiểu Spring là gì — tất cả về Spring container, bean, DI, IoC, v.v. Để hiểu triết lý sử dụng Spring, có thể nói như vậy. Nghiên cứu sâu hơn của bạn về các khung công tác Spring sẽ được xây dựng dựa trên cơ sở này. Có lẽ bạn nên tạo ứng dụng nhỏ của riêng mình để bạn có thể dần dần kết hợp tất cả các công nghệ mới học được vào đó.
Trước đó, chúng tôi đã đề cập đến JDBC như một công nghệ để tạo kết nối cơ sở dữ liệu. Nói chung, việc sử dụng công nghệ "trần trụi" không còn được tìm thấy trong các dự án, vì vậy bạn có thể kết luận rằng việc học JDBC là không cần thiết. Đây không phải là một thái độ đúng đắn. Bằng cách khám phá việc sử dụng JDBC trần trụi (trực tiếp), bạn có thể thấy công nghệ này ở cấp độ thấp hơn và hiểu các vấn đề cũng như thiếu sót của nó. Sau đó, khi bạn bắt đầu học Spring JDBC, bạn sẽ nhận ra chính xác những gì framework này cải thiện, tối ưu hóa và che giấu.
Tương tự với tình huống với JDBC trần trụi, khung này tận dụng một công nghệ hiện có, trong trường hợp này là Hibernate. Nếu bạn cân nhắc sử dụng Hibernate mà không có Spring, chắc chắn bạn sẽ nhận ra những lợi ích mà Spring Hibernate mang lại.
Trước đó chúng ta đã nói về JPA và đề cập rằng nó chỉ là một đặc điểm kỹ thuật, mặc dù nó có nhiều cách triển khai khác nhau. Trong số các triển khai này, Hibernate là lý tưởng nhất. Mùa xuân có triển khai JPA lý tưởng của riêng nó sử dụng Hibernate dưới mui xe. Nó càng gần với lý tưởng của đặc tả JPA càng tốt. Nó được gọi là Spring JPA. Nói một cách dễ hiểu, nó đơn giản hóa rất nhiều việc truy cập cơ sở dữ liệu. Bạn chỉ có thể học JPA mà không thể học JDBC, Hibernate, Spring JDBC hoặc Spring Hibernate. Nhưng nếu bạn thực hiện phương pháp này, kiến thức của bạn về cách kết nối với cơ sở dữ liệu sẽ rất hời hợt.
Công nghệ này cho phép hiển thị giao diện web của ứng dụng của chúng tôi cho người dùng và tạo điều kiện giao tiếp giữa giao diện và phần còn lại của ứng dụng. Công nghệ này cũng có thể được sử dụng mà không có màn hình khi bạn có một ứng dụng chịu trách nhiệm xử lý màn hình và bạn đang tương tác với ứng dụng bằng công nghệ RESTful . Để tiếp thu thông tin về Spring tốt hơn, ngoài các bài báo và bài giảng trên YouTube, bạn có thể đọc một số cuốn sách. Tôi thực sự thích cuốn sách "Mùa xuân hành động" của Craig Walls. Tôi khuyên bạn nên đọc phiên bản thứ 6, nếu bạn biết tiếng Anh tốt. Một cuốn sách tuyệt vời khác về mùa xuân là "Mùa xuân 5 dành cho những người chuyên nghiệp". Nó đậm đặc hơn. Giống như một tài liệu tham khảo có giá trị hơn để giữ trong tầm tay hơn là đọc từ đầu đến cuối.
Công nghệ này đơn giản hóa rất nhiều việc sử dụng Spring. Tôi đã không đặt nó ở cuối danh sách theo ý thích. Thật vậy, nó ẩn giấu rất nhiều điều dưới mui xe và đối với những người không quen thuộc với vanilla Spring, nhiều điểm có thể không rõ ràng hoặc khó hiểu. Đầu tiên, để hiểu rõ hơn về cách thức hoạt động của các khung công tác Spring, bạn nên sử dụng Spring thông thường, sau đó nhận tất cả các lợi ích cao hơn khi sử dụng Spring Boot. Tôi cũng khuyên bạn nên tự làm quen với Spring Security và Spring AOP. Nhưng không giống như các công nghệ trên, kiến thức sâu rộng về hai công nghệ này là chưa cần thiết. Công nghệ này không dành cho người mới bắt đầu. Tại các cuộc phỏng vấn, các nhà phát triển cấp dưới sẽ không được hỏi về chúng (có lẽ ngoại trừ một câu hỏi hời hợt). Đọc tổng quan về những công nghệ này là gì và các nguyên tắc đằng sau công việc của họ. Trong bài báo này, Tôi đã nhiều lần đề cập đến việc đọc sách. Một mặt, điều này không bắt buộc. Bạn có thể trở thành một lập trình viên mà không cần đọc một cuốn sách nào, có được tất cả kiến thức cần thiết từ các bài báo và video đào tạo trực tuyến. Mặt khác, trong thị trường việc làm, hiện nay sự cạnh tranh giữa các nhà phát triển mới vào nghề rất cao, điều này đặt ra tiêu chuẩn cho những gì người mới bắt đầu cần biết. Vì vậy, bạn càng biết nhiều, bạn càng nhanh chóng tìm được công việc đầu tiên bằng cách gây ấn tượng với người phỏng vấn về trình độ hiểu biết của bạn. Cảm ơn tất cả mọi người và có thể Java sẽ ở bên bạn. điều này nâng cao tiêu chuẩn cho những gì người mới bắt đầu cần biết. Vì vậy, bạn càng biết nhiều, bạn càng nhanh chóng tìm được công việc đầu tiên bằng cách gây ấn tượng với người phỏng vấn về trình độ hiểu biết của bạn. Cảm ơn tất cả mọi người và có thể Java sẽ ở bên bạn. điều này nâng cao tiêu chuẩn cho những gì người mới bắt đầu cần biết. Vì vậy, bạn càng biết nhiều, bạn càng nhanh chóng tìm được công việc đầu tiên bằng cách gây ấn tượng với người phỏng vấn về trình độ hiểu biết của bạn. Cảm ơn tất cả mọi người và có thể Java sẽ ở bên bạn.

1. Thuật toán cơ bản
Điều đầu tiên cần giải quyết khi bắt đầu học lập trình (không chỉ Java) là hiểu những điều cơ bản. Ví dụ, các thuật toán. Có vô số thuật toán trong số chúng và bạn không nên giết cả năm cuộc đời mình để cố gắng học càng nhiều thuật toán càng tốt: hầu hết chúng sẽ không hữu ích cho bạn. Bạn có thể nhận được kiến thức tối thiểu cần thiết từ cuốn sách "Thuật toán Grokking". Điều này là đủ để bạn bắt đầu, nhưng nếu muốn, bạn có thể học từ cuốn sách "Structures and Algorithms" hoặc "Algorithms in Java" của Robert Sedgewick và Kevin Wayne. Tôi cũng khuyên bạn nên nâng cao kiến thức cơ bản về khoa học máy tính. Điều này có thể được thực hiện với khóa học Harvard CS50.2. Cú pháp Java
Sau khi học những kiến thức cơ bản về thuật toán, chúng ta cần học cú pháp Java. Xét cho cùng, tất cả chúng ta đều đang học để trở thành lập trình viên Java ở đây, phải không? Khóa học CodeGym là hoàn hảo cho việc này. Khi bạn thực hiện vô số nhiệm vụ, bạn sẽ nắm trong tay cú pháp Java và sau đó, không cần do dự nhiều, bạn sẽ viết/đọc mã Java như thể đó là ngôn ngữ mẹ đẻ của bạn. CodeGym là thực hành, nhưng ngoài ra, bạn cũng cần nhìn vào lý thuyết để hiểu những gì bạn đang làm. Để làm điều này, bạn có thể đọc sách. Ví dụ: một trong những điều sau đây:- "Đầu tiên Java",
- "Java cho người mới bắt đầu" của Barry Bird;
- "Java: Hướng dẫn cho người mới bắt đầu" của Herbert Schildt.
- "Tư duy bằng Java," Bruce Eckel;
- "Java hiệu quả" của Joshua Bloch;
- "Java: Tài liệu tham khảo đầy đủ" của Herbert Schildt.

3. Mẫu thiết kế
Các mẫu thiết kế là các mẫu có thể lặp lại nhất định để giải quyết các vấn đề trong các ngữ cảnh thường xuyên gặp phải. Chúng bao gồm các mẫu cơ bản, đơn giản mà mọi lập trình viên tự trọng nên biết. Để hiểu chủ đề này, hãy lấy cuốn sách "Head First Design Patterns". Nó giải thích các mẫu thiết kế cơ bản theo cách dễ tiếp cận. Nhưng cuốn sách nói rất nhiều về Java, vì vậy khi đọc cuốn sách này, bạn cũng sẽ cần thông thạo ngôn ngữ lập trình này. Để tìm hiểu sâu hơn về các mẫu, bạn cũng có thể đọc "Mẫu thiết kế: Các yếu tố của phần mềm hướng đối tượng có thể tái sử dụng" từ Gang of Four (Ghi chú của biên tập viên: Gang of Four là một nhóm tác giả bao gồm Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.). Khi bạn đã nghiên cứu chủ đề này, bạn sẽ bắt đầu thấy các mẫu hầu như có ở mọi nơi trong mã của mình. Hãy chú ý đến điều này, đặc biệt là các mẫu được sử dụng trong Spring, vì đây là một câu hỏi phỏng vấn phổ biến.4. Các mô hình lập trình. Độ sạch của mã
Bên cạnh các mẫu thiết kế tiêu chuẩn, có nhiều nguyên tắc và mô hình khác nhau cần lưu ý ( SOLID , GRASP ). Bạn cũng cần giữ cho mã của mình sạch sẽ và dễ đọc. Đối với mọi thứ, bạn cần biết về chủ đề này, xem Clean Code của Robert Martin hoặc xem "Code Complete" của Steve McConnell.5. SQL
Bước tiếp theo của chúng ta là nghiên cứu một ngôn ngữ dành cho cơ sở dữ liệu quan hệ — SQL . Cơ sở dữ liệu là nơi lưu trữ thông tin (dữ liệu) được sử dụng bởi một ứng dụng web. Cơ sở dữ liệu bao gồm một số bảng (sổ địa chỉ trên điện thoại của bạn là một ví dụ đơn giản). Các nhà phát triển Java không chỉ chịu trách nhiệm về ứng dụng Java mà còn cả cơ sở dữ liệu mà nó tương tác và nơi lưu trữ dữ liệu của nó. Trong cơ sở dữ liệu quan hệ (là loại phổ biến nhất), tất cả tương tác xảy ra thông qua một ngôn ngữ đặc biệt gọi là Ngôn ngữ truy vấn có cấu trúc hoặc SQL. Để hiểu chủ đề này, tất cả những gì bạn cần làm là đọc một trong những cuốn sách sau:- "Học SQL" của Alan Beaulieu;
- "SQL" của Chris Fehily;
- "Đầu SQL đầu tiên" của Lynn Beighley.
6. MySQL/PostgreSQL
Sau khi học ngôn ngữ SQL, bạn cần làm quen với việc triển khai cơ sở dữ liệu cụ thể. Tùy thuộc vào cơ sở dữ liệu, một số lệnh có thể thay đổi đáng kể. Và có sự khác biệt khá đáng chú ý trong khả năng cơ sở dữ liệu. Các cơ sở dữ liệu quan hệ phổ biến nhất là MySQL và PostgreSQL .
7. Maven/Lớp
Bạn cần tìm hiểu khung công tác Gradle hoặc Maven . Chúng dành cho các dự án xây dựng và đối với bạn, Java giờ đây không chỉ dành cho các tác vụ liên quan đến một vài lớp mà còn là ngôn ngữ để viết các ứng dụng chính thức. Bạn cần hiểu cách xây dựng một dự án, các giai đoạn xây dựng là gì, cách tải các thư viện bên ngoài cần thiết bằng mã của bên thứ ba, v.v. Mặc dù thực tế là Gradle mới hơn và ngắn gọn hơn, Maven vẫn được sử dụng trong hầu hết các trường hợp. Vì vậy, hãy đặc biệt chú ý đến vòng đời xây dựng Maven.8.Git
Git là một hệ thống kiểm soát phiên bản phân tán. Công nghệ này cho phép các nhà phát triển cộng tác trên một ứng dụng duy nhất mà không can thiệp lẫn nhau. Tất nhiên, có những hệ thống kiểm soát phiên bản khác. Ví dụ, Subversion . Nhưng Git được sử dụng rộng rãi nhất và bạn cần có khả năng làm việc với nó.
9. JDBC
Công nghệ này kết nối ứng dụng Java của bạn và cơ sở dữ liệu quan hệ. Đối với những điều cơ bản, tôi khuyên bạn nên đọc bất kỳ hướng dẫn JDBC nào. Có rất nhiều bài viết giải thích về JDBC và cung cấp các ví dụ cơ bản, mặc dù không ai trực tiếp sử dụng JDBC trần trụi nữa.10. JPA. ngủ đông
JPA là một cách để thiết lập kết nối giữa ứng dụng Java và cơ sở dữ liệu, giống như JDBC. Nhưng đồng thời, JPA là một công nghệ cấp cao hơn và do đó dễ sử dụng hơn. Nhưng JPA chỉ là một đặc điểm kỹ thuật, không phải là một triển khai. Nó cần một triển khai cụ thể. Nhiều trong số chúng tồn tại, nhưng lý tưởng gần nhất với JPA, phổ biến nhất và phát triển nhất là Hibernate. Bạn sẽ bắt gặp công nghệ này hơn một lần trong sự nghiệp phát triển phần mềm của mình. Vì vậy, ngoài việc làm quen với công nghệ này bằng cách đọc các bài báo, có thể đáng suy nghĩ về việc đọc một cuốn sách, chẳng hạn như "API Java Persistence".11. Mùa xuân
Khi bạn trở thành một nhà phát triển Java, Spring không còn chỉ là một từ dành cho bạn nữa.

- lõi lò xo
Bạn nên đặt điều này ở vị trí đầu tiên, để bạn có thể hiểu Spring là gì — tất cả về Spring container, bean, DI, IoC, v.v. Để hiểu triết lý sử dụng Spring, có thể nói như vậy. Nghiên cứu sâu hơn của bạn về các khung công tác Spring sẽ được xây dựng dựa trên cơ sở này. Có lẽ bạn nên tạo ứng dụng nhỏ của riêng mình để bạn có thể dần dần kết hợp tất cả các công nghệ mới học được vào đó.
- JDBC mùa xuân
Trước đó, chúng tôi đã đề cập đến JDBC như một công nghệ để tạo kết nối cơ sở dữ liệu. Nói chung, việc sử dụng công nghệ "trần trụi" không còn được tìm thấy trong các dự án, vì vậy bạn có thể kết luận rằng việc học JDBC là không cần thiết. Đây không phải là một thái độ đúng đắn. Bằng cách khám phá việc sử dụng JDBC trần trụi (trực tiếp), bạn có thể thấy công nghệ này ở cấp độ thấp hơn và hiểu các vấn đề cũng như thiếu sót của nó. Sau đó, khi bạn bắt đầu học Spring JDBC, bạn sẽ nhận ra chính xác những gì framework này cải thiện, tối ưu hóa và che giấu.
- mùa xuân ngủ đông
Tương tự với tình huống với JDBC trần trụi, khung này tận dụng một công nghệ hiện có, trong trường hợp này là Hibernate. Nếu bạn cân nhắc sử dụng Hibernate mà không có Spring, chắc chắn bạn sẽ nhận ra những lợi ích mà Spring Hibernate mang lại.
- JPA mùa xuân
Trước đó chúng ta đã nói về JPA và đề cập rằng nó chỉ là một đặc điểm kỹ thuật, mặc dù nó có nhiều cách triển khai khác nhau. Trong số các triển khai này, Hibernate là lý tưởng nhất. Mùa xuân có triển khai JPA lý tưởng của riêng nó sử dụng Hibernate dưới mui xe. Nó càng gần với lý tưởng của đặc tả JPA càng tốt. Nó được gọi là Spring JPA. Nói một cách dễ hiểu, nó đơn giản hóa rất nhiều việc truy cập cơ sở dữ liệu. Bạn chỉ có thể học JPA mà không thể học JDBC, Hibernate, Spring JDBC hoặc Spring Hibernate. Nhưng nếu bạn thực hiện phương pháp này, kiến thức của bạn về cách kết nối với cơ sở dữ liệu sẽ rất hời hợt.
- MVC mùa xuân
Công nghệ này cho phép hiển thị giao diện web của ứng dụng của chúng tôi cho người dùng và tạo điều kiện giao tiếp giữa giao diện và phần còn lại của ứng dụng. Công nghệ này cũng có thể được sử dụng mà không có màn hình khi bạn có một ứng dụng chịu trách nhiệm xử lý màn hình và bạn đang tương tác với ứng dụng bằng công nghệ RESTful . Để tiếp thu thông tin về Spring tốt hơn, ngoài các bài báo và bài giảng trên YouTube, bạn có thể đọc một số cuốn sách. Tôi thực sự thích cuốn sách "Mùa xuân hành động" của Craig Walls. Tôi khuyên bạn nên đọc phiên bản thứ 6, nếu bạn biết tiếng Anh tốt. Một cuốn sách tuyệt vời khác về mùa xuân là "Mùa xuân 5 dành cho những người chuyên nghiệp". Nó đậm đặc hơn. Giống như một tài liệu tham khảo có giá trị hơn để giữ trong tầm tay hơn là đọc từ đầu đến cuối.
GO TO FULL VERSION