Minden Java programozónak rendelkeznie kell a szoftverfejlesztés alapismereteivel. Nézzük tehát, mi számít "alapvetőnek".

1. Alapvető algoritmusok

A programozás (nem csak a Java) tanulásának megkezdésekor az első dolog, hogy meg kell érteni az alapokat. Például algoritmusok.

Végtelen sok van belőlük, és nem szabad életed egész évét megölni azzal, hogy minél több algoritmust tanulj meg: a legtöbbjük nem lesz hasznos az Ön számára. A szükséges minimum ismereteket a "Grokking Algorithms" című könyvből szerezheti meg. Ez elég az induláshoz, de ha akarod, tanulhatsz Robert Sedgewick és Kevin Wayne "Struktúrák és algoritmusok" vagy "Algoritmusok a Java nyelven" című könyvéből.

2. Java szintaxis

Az algoritmusok alapjainak megismerése után meg kell tanulnunk a Java szintaxist. Végül is Java programozónak tanulsz, igaz? A CodeGym tanfolyam tökéletes erre.

Számtalan feladat elvégzése közben a kezedbe kerül a Java szintaxis, majd különösebb habozás nélkül úgy írsz/olvashatsz Java kódot, mintha az anyanyelved lenne.

A gyakorlaton túl az elméletet is meg kell nézned, hogy megértsd, mit csinálsz. Ehhez könyveket olvashat. Például az alábbiak egyike:

  • "Head First Java",
  • Barry Bird "Java for Dummies";
  • „Java: Útmutató kezdőknek”, Herbert Schildt.

Miután elolvasta ezeket a könyveket, rátérhet a nehezebb könyvekre:

  • „Gondolkodás Jáván” – Bruce Eckel;
  • "Effective Java", Joshua Bloch;
  • "Java: The Complete Reference", Herbert Schildt.

Az utolsó három könyv nem könnyű olvasmány kezdőknek, de szilárd alapot ad a Java elmélethez.

3. Tervezési minták

A tervezési minták bizonyos megismételhető minták, amelyek megoldják a problémákat a gyakran előforduló kontextusokban. Olyan alapvető, egyszerű mintákat tartalmaznak, amelyeket minden önmagát tisztelő programozónak tudnia kell. A téma megértéséhez olvassa el a „Head First Design Patterns” című könyvet.

Hozzáférhető módon magyarázza el az alapvető tervezési mintákat. De a könyv sokat beszél a Java-ról, így ha ezt a könyvet fogyasztod, akkor folyékonyan kell beszélned a programozási nyelvet is.

A minták mélyebb megismeréséhez elolvashatja a "Design Patterns: Elements of Reusable Object-Oriented Software" című részt a Négyek bandájától ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). Miután áttanulmányozta ezt a témát, gyakorlatilag mindenhol mintákat fog látni a kódjában.

Ügyeljen erre, különösen a tavasszal használt mintákra, mivel ez egy népszerű interjúkérdés.

4. Programozási paradigmák. Kódtisztaság

A szabványos tervezési mintákon kívül számos alapelv és paradigma is tisztában kell lennie (SOLID, GRASP).

A kódot is tisztán és olvashatóan kell tartania. Mindenhez tudnia kell erről a témáról, lásd Robert Martin Clean Code című cikkét, vagy nézze meg Steve McConnell "Code Complete" című részét.

5. SQL

Következő lépésünk a relációs adatbázisok nyelvének – az SQL – tanulmányozása.

Az adatbázisok azok, ahol a webalkalmazások által használt információkat (adatokat) tárolják. Egy adatbázis több táblázatból áll (egyszerű példa a telefon címjegyzéke).

A Java fejlesztők nemcsak a Java alkalmazásért felelősek, hanem az adatbázisért is, amellyel az interakcióba lép, és ahol az adatait tárolja.

A relációs adatbázisokban (amelyek a leggyakoribb típusok) minden interakció egy speciális nyelven, a Structured Query Language-en vagy SQL-en keresztül történik.

A téma megértéséhez nem kell mást tennie, mint elolvasni az alábbi könyvek egyikét:

  1. Alan Beaulieu "SQL tanulása";
  2. Chris Fehily "SQL";
  3. "Head First SQL" Lynn Beighley.

De a gyakorlat elmélet nélkül nem vágja meg, igaz? Az interjúkon pedig SQL-ismereted próbára számíthatsz. Az interjúztatók gyakran (majdnem mindig) adnak egy-két olyan feladatot, amelyhez SQL-lekérdezést kell írni.

Ennek eredményeként nagyon fontos, hogy a gyakorlati SQL-készségeidet tökéletesítsd, hogy jó fényben mutasd meg magad.

6. MySQL/PostgreSQL

Az SQL nyelv megtanulása után meg kell ismerkednie egy adott adatbázis-megvalósítással. Az adatbázistól függően egyes parancsok drámaian változhatnak. És egészen észrevehető különbségek vannak az adatbázis-képességekben.

A leggyakoribb relációs adatbázisok a MySQL és a PostgreSQL. A MySQL sokkal egyszerűbb, de a PostgreSQL sokkal szélesebb képességekkel rendelkezik. Az induláshoz elég, ha ismeri legalább az egyiket.

Az adatbázis-megvalósításokat tanulmányozhatja, ha guglizási készségeit használja – keressen releváns cikkeket és oktatóanyagokat a YouTube-on. Fejlesztenie kell azon képességét, hogy megfelelő keresési lekérdezéseket készítsen a megválaszolandó kérdésekhez. Hiszen a programozó az, akinek fekete öves a guglizás.

7. Maven/Gradle

Meg kell tanulnod a Gradle vagy a Maven keretrendszert. Ezek a projektek építésére szolgálnak, és Önnek a Java mostantól nem csak néhány osztályt magában foglaló feladatokhoz, hanem teljes értékű alkalmazások írásának nyelve is.

Meg kell értenie, hogyan kell felépíteni egy projektet, mik a felépítési szakaszok, hogyan lehet betölteni a szükséges külső könyvtárakat harmadik féltől származó kóddal és még sok mást.

Annak ellenére, hogy a Gradle újabb és tömörebb, a legtöbb esetben a Maven-t használják. Ezért fordítson különös figyelmet a Maven build életciklusára.

8. Git

A Git egy elosztott verziókezelő rendszer. Ez a technológia lehetővé teszi a fejlesztők számára, hogy egyetlen alkalmazáson működjenek együtt anélkül, hogy zavarnák egymást.

Természetesen vannak más verziókezelő rendszerek is. Például a Subversion. De a Git-et használják a legszélesebb körben, és tudnia kell dolgozni vele. A Gitről szóló számos online cikk mellett a YouTube több mint elegendő videóval rendelkezik, amelyek segítenek lépésről lépésre elsajátítani ezt a technológiát.

Eleinte jobb, ha a Git parancssorból használod, nem pedig valamilyen grafikus felhasználói felület megvalósítását, mert kénytelen leszel mindent parancsokkal megtenni. Az interjúk során az emberek gyakran szeretnek néhány Git-parancsról kérdezni, ezért azt javaslom, hogy írja ki őket, és tartsa valahol a közelben.

9. JDBC

Ez a technológia összekapcsolja a Java alkalmazást és a relációs adatbázist. Az alapokért olvassa el bármelyik JDBC oktatóanyagot.

Rengeteg olyan cikk található, amelyek elmagyarázzák a JDBC-t és kezdetleges példákat mutatnak be, bár már senki sem használja közvetlenül a meztelen JDBC-t.

10. JPA. Hibernálás

A JPA a JDBC-hez hasonlóan a Java-alkalmazások és az adatbázisok közötti kapcsolat létrehozásának módja. Ugyanakkor a JPA magasabb szintű technológia, ezért könnyebben használható.

De a JPA csak specifikáció, nem megvalósítás. Konkrét megvalósítást igényel. Sok közülük létezik, de a JPA eszméihez legközelebb álló, legnépszerűbb és legfejlettebb a Hibernate.

Ezzel a technológiával többször találkozhat szoftverfejlesztői pályafutása során. Tehát amellett, hogy cikkeket olvasva ismerkedünk meg ezzel a technológiával, érdemes lehet elgondolkodni egy könyv, például a „Java Persistence API” elolvasásán.

11. Tavasz

Amikor Java-fejlesztő leszel, a tavasz már nem csak egy szó az Ön számára. Ennek a keretrendszernek az ismerete most ugyanolyan fontos, mint a Java szintaxis ismerete. Mondhatnánk, hogy Springnek van egy testvére, vagyis a Java EE. A Java EE azonban elavult, és már nem használják új projektekben.

A Java fejlesztők túlnyomó többsége ma már Java-Spring fejlesztő, így néhány alapvető Spring technológia ismerete elengedhetetlen.

A tavasz nem csak egy keret, hanem keretek egész kerete:

És ez csak egy részhalmaza a Spring által biztosított kereteknek. Egy kezdő számára elég, ha csak néhányat ismer:

Spring Core

Ezt kell az első helyre tenni, hogy megérthesse, mi a Spring – minden a tavaszi konténerekről, babokról, DI-ről, IoC-ről és így tovább. Hogy úgy mondjam, megértsük a Spring használatának filozófiáját. A tavaszi keretrendszerek további tanulmányozása erre az alapra fog épülni. Talán létre kellene hoznia egy saját kis alkalmazást, amelybe fokozatosan beépítheti az összes újonnan tanult technológiát.

Tavaszi JDBC

Korábban említettük a JDBC-t, mint adatbázis-kapcsolat létrehozásának technológiáját. Általánosságban elmondható, hogy a technológia "meztelen" használata már nem található meg a projektekben, így arra a következtetésre juthat, hogy a JDBC tanulása nem szükséges. Ez nem egészen helyes hozzáállás.

A JDBC meztelen (közvetlen) használatának felfedezésével alacsonyabb szinten láthatja a technológiát, és megértheti annak problémáit és hiányosságait. Aztán amikor elkezded tanulni a Spring JDBC-t, rájössz, hogy ez a keretrendszer pontosan mit javít, optimalizál és rejt.

Tavaszi hibernált állapot

A csupasz JDBC helyzetéhez hasonlóan ez a keretrendszer egy létező technológiát, jelen esetben a Hibernate-t használ. Ha a Hibernate Spring nélküli használatát fontolgatja, biztosan felismeri a Spring Hibernate által kínált előnyöket.

Tavaszi JPA

Korábban a JPA-ról beszéltünk, és megemlítettük, hogy ez csak egy specifikáció, bár különféle megvalósításokkal rendelkezik. Ezen megvalósítások közül a Hibernate áll a legközelebb az ideálishoz.

A Springnek megvan a maga ideális JPA-megvalósítása, amely a motorháztető alatti hibernálást használja. Ez a lehető legközelebb áll a JPA specifikációjának ideáljához.

Tavaszi JPA-nak hívják. Egyszóval nagyban leegyszerűsíti az adatbázis-hozzáférést.

A JPA-t csak a JDBC, a Hibernate, a Spring JDBC vagy a Spring Hibernate tanulása nélkül tanulhatja meg. De ha ezt a megközelítést választja, az adatbázishoz való kapcsolódásról szóló ismeretei nagyon felületesek lesznek.

Tavaszi MVC

Ez a technológia lehetővé teszi alkalmazásunk webes felületének megjelenítését a felhasználók számára, és megkönnyíti a kommunikációt a felület és az alkalmazás többi része között. A technológia kijelző nélkül is használható, ha olyan alkalmazással rendelkezik, amely a kijelző kezeléséért felelős, és Ön a RESTful technológia használatával kommunikál az alkalmazással.

A tavaszról szóló információk jobb felszívása érdekében a cikkek és a YouTube-előadások mellett több könyvet is olvashat. Például Craig Walls "Spring in Action". Egy másik nagyszerű tavaszi könyv a "Tavasz 5 a szakembereknek". Sűrűbb. Inkább egy hivatkozás, amelyet értékesebb kéznél tartani, mint a borítótól a borítóig olvasni.

Spring Boot

Ez a technológia nagyban leegyszerűsíti a Spring használatát. Nem szeszélyből tettem a lista végére. Valójában sok mindent rejt a motorháztető alatt, és ha valaki nem ismeri a vanília tavaszt, sok pont homályos vagy érthetetlen lehet.

Először is, a Spring keretrendszerek működésének jobb megértéséhez használja a szokásos Spring-et, majd ismerje meg a Spring Boot használatának minden előnyét.

Meg kell ismerkednie a Spring Security és a Spring AOP szolgáltatásokkal is. De a fenti technológiákkal ellentétben e kettő mélyreható ismeretére még nincs szükség.

Ez a technológia nem kezdőknek való. Az interjúkon a fiatal fejlesztőket nem kérdezik meg róluk (talán egy felületes kérdést kivéve). Olvassa el egy áttekintést arról, hogy melyek ezek a technológiák és a munkájuk mögött rejlő fejedelem.

Minél többet tudsz, annál gyorsabban találod meg az első munkahelyedet.