CodeGym /Kurso sa Java /All lectures for TL purposes /Checklist ng isang Java Developer

Checklist ng isang Java Developer

All lectures for TL purposes
Antas , Aral
Available

Ang bawat Java programmer ay dapat magkaroon ng pangunahing pag-unawa sa pagbuo ng software. Kaya't tingnan natin kung ano ang itinuturing na "basic".

1. Mga pangunahing algorithm

Ang unang bagay na dapat harapin kapag nagsisimulang matuto ng programming (hindi lamang Java) ay upang maunawaan ang mga pangunahing kaalaman. Halimbawa, ang mga algorithm.

Mayroong walang katapusang bilang ng mga ito, at hindi mo dapat patayin ang buong taon ng iyong buhay sa pagsisikap na matuto ng maraming algorithm hangga't maaari: karamihan sa mga ito ay hindi magiging kapaki-pakinabang sa iyo. Makukuha mo ang kinakailangang minimum na kaalaman mula sa aklat na "Grokking Algorithms". Ito ay sapat na upang makapagsimula ka, ngunit kung gusto mo, maaari kang matuto mula sa aklat na "Mga Structure at Algorithm" o "Mga Algorithm sa Java" ni Robert Sedgewick at Kevin Wayne.

2. Java Syntax

Pagkatapos matutunan ang mga pangunahing kaalaman ng mga algorithm, kailangan nating matutunan ang Java syntax. Kung tutuusin, nag-aaral ka para maging Java programmer, di ba? Ang kursong CodeGym ay perpekto para dito.

Habang nagsasagawa ka ng hindi mabilang na mga gawain, makukuha mo ang iyong mga kamay sa Java syntax at pagkatapos, nang walang labis na pag-aalinlangan, isusulat/babasa mo ang Java code na parang ito ang iyong katutubong wika.

Higit pa sa pagsasanay, kailangan mo ring tingnan ang teorya upang maunawaan kung ano ang iyong ginagawa. Upang gawin ito, maaari kang magbasa ng mga libro. Halimbawa, isa sa mga sumusunod:

  • "Unang ulo sa Java",
  • "Java for Dummies" ni Barry Bird;
  • "Java: A Beginner's Guide" ni Herbert Schildt.

Pagkatapos basahin ang mga aklat na ito, maaari kang pumunta sa mas mahirap na mga libro:

  • "Pag-iisip sa Java," Bruce Eckel;
  • "Effective Java" ni Joshua Bloch;
  • "Java: The Complete Reference" ni Herbert Schildt.

Ang huling tatlong libro ay hindi madaling basahin para sa mga nagsisimula, ngunit nagbibigay sila ng matibay na pundasyon sa teorya ng Java.

3. Mga pattern ng disenyo

Ang mga pattern ng disenyo ay ilang mga paulit-ulit na pattern na lumulutas ng mga problema sa mga madalas na nakakaharap na konteksto. Kasama sa mga ito ang mga basic, simpleng pattern na dapat malaman ng bawat self-respecting programmer. Upang maunawaan ang paksang ito, kunin ang aklat na "Head First Design Patterns".

Ipinapaliwanag nito ang mga pangunahing pattern ng disenyo sa isang madaling paraan. Ngunit marami ang pinag-uusapan ng libro tungkol sa Java, kaya kapag ginamit mo ang aklat na ito kakailanganin mo rin ang katatasan sa programming language na ito.

Para sa mas malalim na pagsisid sa mga pattern, maaari mo ring basahin ang "Mga Pattern ng Disenyo: Mga Elemento ng Reusable Object-Oriented Software" mula sa Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). Kapag napag-aralan mo na ang paksang ito, magsisimula kang makakita ng mga pattern sa halos lahat ng dako sa iyong code.

Bigyang-pansin ito, lalo na sa mga pattern na ginamit sa Spring, dahil ito ay isang tanyag na tanong sa panayam.

4. Programming paradigms. Kalinisan ng code

Bukod sa karaniwang mga pattern ng disenyo, mayroong iba't ibang mga prinsipyo at paradigm na dapat malaman (SOLID, GRASP).

Kailangan mo ring panatilihing malinis at nababasa ang iyong code. Para sa lahat, kailangan mong malaman ang tungkol sa paksang ito, tingnan ang Clean Code ni Robert Martin, o tingnan ang "Code Complete" ni Steve McConnell.

5. SQL

Ang aming susunod na hakbang ay pag-aralan ang isang wika para sa mga relational database — SQL.

Ang mga database ay kung saan nakaimbak ang impormasyon (data) na ginagamit ng isang web application. Ang isang database ay binubuo ng ilang mga talahanayan (ang address book sa iyong telepono ay isang simpleng halimbawa).

Ang mga developer ng Java ay may pananagutan hindi lamang para sa Java application, kundi pati na rin ang database kung saan ito nakikipag-ugnayan at kung saan ito nag-iimbak ng data nito.

Sa mga relational database (na ang pinakakaraniwang uri), nangyayari ang lahat ng pakikipag-ugnayan sa pamamagitan ng isang espesyal na wika na tinatawag na Structured Query Language, o SQL.

Upang maunawaan ang paksang ito, ang kailangan mo lang gawin ay basahin ang isa sa mga aklat na ito:

  1. "Pag-aaral ng SQL" ni Alan Beaulieu;
  2. "SQL" ni Chris Fehily;
  3. "Head First SQL" ni Lynn Beighley.

Ngunit ang pagsasanay na walang teorya ay hindi pinuputol ito, hindi ba? At sa mga panayam maaari mong asahan ang isang pagsubok ng iyong kaalaman sa SQL. Ang mga tagapanayam ay madalas (halos palagi) ay nagbibigay ng isa o dalawang gawain na kinabibilangan ng pagsulat ng isang SQL query.

Bilang isang resulta, napakahalaga na mahasa ang iyong mga praktikal na kasanayan sa SQL upang ipakita ang iyong sarili sa isang magandang liwanag.

6. MySQL/PostgreSQL

Pagkatapos matutunan ang wikang SQL, kailangan mong maging pamilyar sa isang partikular na pagpapatupad ng database. Depende sa database, ang ilang mga command ay maaaring mag-iba nang malaki. At may mga kapansin-pansing pagkakaiba sa mga kakayahan ng database.

Ang pinakakaraniwang relational database ay MySQL at PostgreSQL. Ang MySQL ay mas simple, ngunit ang PostgreSQL ay may mas malawak na kakayahan. Ang pagiging pamilyar sa kahit isa sa kanila ay sapat na upang makapagsimula.

Maaari mong pag-aralan ang mga pagpapatupad ng database kung gagamitin mo ang iyong mga kasanayan sa pag-googling — maghanap ng mga nauugnay na artikulo at tutorial sa YouTube. Kakailanganin mong linangin ang iyong kakayahang gumawa ng wastong mga query sa paghahanap para sa mga tanong na kailangan mong masagot. Pagkatapos ng lahat, ang programmer ay isang taong may black belt sa googling.

7. Maven/Gradle

Kailangan mong matutunan ang alinman sa Gradle o Maven framework. Ang mga ito ay para sa pagbuo ng mga proyekto, at para sa iyo, ang Java ay hindi lamang para sa mga gawaing kinasasangkutan ng ilang klase, ngunit isa ring wika para sa pagsulat ng mga ganap na aplikasyon.

Kailangan mong maunawaan kung paano bumuo ng isang proyekto, kung ano ang mga yugto ng pagbuo, kung paano i-load ang mga kinakailangang panlabas na aklatan na may code ng third-party, at marami pang iba.

Sa kabila ng katotohanan na ang Gradle ay mas bago at mas maigsi, ang Maven ay ginagamit sa karamihan ng mga kaso. Kaya, bigyang-pansin ang lifecycle ng Maven build.

8. Git

Ang Git ay isang distributed version control system. Ang teknolohiyang ito ay nagbibigay-daan sa mga developer na mag-collaborate sa isang application nang hindi nakikialam sa isa't isa.

Siyempre, may iba pang mga bersyon ng control system. Halimbawa, Subversion. Ngunit ang Git ay pinakamalawak na ginagamit, at kailangan mong magawa ito. Bilang karagdagan sa maraming mga artikulo tungkol sa Git na mahahanap mo online, ang YouTube ay may higit sa sapat na mga video upang matulungan kang makabisado ang teknolohiyang ito, hakbang-hakbang.

Sa una, mas mainam na gumamit ng Git mula sa command line kaysa sa isang uri ng pagpapatupad ng GUI, dahil mapipilitan kang gawin ang lahat gamit ang mga command. Sa mga panayam, madalas na gustong magtanong ng mga tao tungkol sa ilang mga utos ng Git, kaya inirerekomenda ko na isulat mo ang mga ito at manatili sa isang lugar na malapit.

9. JDBC

Ikinokonekta ng teknolohiyang ito ang iyong Java application at isang relational database. Para sa mga pangunahing kaalaman basahin ang anumang JDBC tutorial.

Maraming mga artikulo na nagpapaliwanag sa JDBC at nagbibigay ng mga pasimulang halimbawa, kahit na wala nang direktang gumagamit ng hubad na JDBC.

10. JPA. Hibernate

Ang JPA ay isang paraan upang magtatag ng koneksyon sa pagitan ng Java application at database, tulad ng JDBC. Ngunit sa parehong oras, ang JPA ay isang mas mataas na antas ng teknolohiya at samakatuwid ay mas madaling gamitin.

Ngunit ang JPA ay isang detalye lamang, hindi isang pagpapatupad. Kailangan ng konkretong pagpapatupad. Marami sa kanila ang umiiral, ngunit ang pinakamalapit sa mga ideyal ng JPA, ang pinakasikat, at pinaka-develop ay ang Hibernate.

Mahahanap mo ang teknolohiyang ito nang higit sa isang beses sa iyong karera sa pagbuo ng software. Kaya, bilang karagdagan sa pagiging pamilyar sa teknolohiyang ito sa pamamagitan ng pagbabasa ng mga artikulo, maaaring sulit na isipin ang tungkol sa pagbabasa ng libro, halimbawa, "Java Persistence API".

11. Spring

Kapag naging Java developer ka, hindi na isang salita lang ang Spring para sa iyo. Ang pag-alam sa balangkas na ito ay kasinghalaga na ngayon ng pag-alam sa Java Syntax. Masasabi mong may kapatid si Spring, ie Java EE. Ngunit ang Java EE ay luma na at hindi na ginagamit sa mga bagong proyekto.

Ang napakaraming karamihan ng mga developer ng Java ay mga developer na ngayon ng Java-Spring, kaya't ang pag-alam sa ilang mga pangunahing teknolohiya ng Spring ay isang kinakailangan.

Ang tagsibol ay hindi lamang isang balangkas, ngunit isang buong balangkas ng mga balangkas:

At ito ay isang subset lamang ng mga framework na ibinibigay ng Spring. Para sa isang baguhan, ang pag-alam lamang ng ilan sa mga ito ay sapat na:

Spring Core

You should put this in the first place, so you can understand what Spring is — all about Spring containers, beans, DI, IoC, and so on. To understand the very philosophy of using Spring, so to speak. Your further study of Spring frameworks will build on top of this base. Perhaps you should create your own small application into which you can gradually incorporate all the newly learned technologies.

Spring JDBC

Earlier we mentioned JDBC as a technology for creating a database connection. In general, "naked" use of the technology can no longer be found in projects, so you may conclude that learning JDBC is not necessary. This is not quite the right attitude.

By exploring naked (direct) use of JDBC, you can see the technology at a lower level and understand its problems and shortcomings. Then when you start learning Spring JDBC, you will realize what exactly this framework improves, optimizes, and hides.

Spring Hibernate

Analogous to the situation with naked JDBC, this framework leverages an existing technology, in this case, Hibernate. If you consider using Hibernate without Spring, you will definitely realize the benefits that Spring Hibernate offers.

Spring JPA

Earlier we talked about JPA and mentioned that it is only a specification, though it has various implementations. Among these implementations, Hibernate comes closest to the ideal.

Spring has its own ideal JPA implementation that uses Hibernate under the hood. It is as close as possible to the JPA specification's ideal.

It is called Spring JPA. In a word, it greatly simplifies database access.

You can only learn JPA without learning JDBC, Hibernate, Spring JDBC, or Spring Hibernate. But if you take this approach, your knowledge of how to connect to a database will be very superficial.

Spring MVC

This technology makes it possible to display our application's web interface to users and facilitate communication between the interface and the rest of the application. The technology can also be used without display when you have an application that is responsible for handling the display and you're interacting with the application using RESTful technology.

In order to better soak up information about Spring, in addition to articles and YouTube lectures, you can read several books. For instance, "Spring in Action" by Craig Walls. Another great book on Spring is "Spring 5 for the Professionals". It's more dense. More like a reference that is more valuable to keep close at hand than to read cover to cover.

Spring Boot

This technology greatly simplifies the use of Spring. I didn't put it at the end of the list on a whim. Indeed, it does hide a lot under the hood, and for someone unfamiliar with the vanilla Spring, many points may be unclear or incomprehensible.

First, for a better understanding of how Spring frameworks work, you should use regular Spring, and then pick up all the higher benefits of using Spring Boot.

You should also familiarize yourself with Spring Security and Spring AOP. But unlike the technologies above, deep knowledge of these two is not needed just yet.

This technology is not for beginners. At interviews, junior devs won't be asked about them (except one superficial question, perhaps). Read an overview of what these technologies are and the princeiples behind their work.

The more you know, the faster you will find your first job.

Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION