Każdy programista Java musi mieć podstawową wiedzę na temat tworzenia oprogramowania. Przyjrzyjmy się więc temu, co jest uważane za „podstawowe”.
1. Podstawowe algorytmy
Pierwszą rzeczą, z którą należy się zmierzyć, rozpoczynając naukę programowania (nie tylko Javy), jest zrozumienie podstaw. Na przykład algorytmy.
Jest ich nieskończenie wiele i nie powinieneś tracić całych lat życia, próbując nauczyć się jak największej liczby algorytmów: większość z nich nie będzie dla ciebie przydatna. Niezbędne minimum wiedzy możesz zdobyć z książki „Grokking Algorithms”. To wystarczy, aby zacząć, ale jeśli chcesz, możesz uczyć się z książki „Struktury i algorytmy” lub „Algorytmy w Javie” autorstwa Roberta Sedgewicka i Kevina Wayne'a.
2. Składnia Javy
Po zapoznaniu się z podstawami algorytmów musimy nauczyć się składni języka Java. W końcu uczysz się, aby zostać programistą Java, prawda? Kurs CodeGym jest do tego idealny.
Wykonując niezliczone zadania, opanujesz składnię języka Java, a następnie bez większego wahania będziesz pisać/czytać kod Java tak, jakby był to Twój język ojczysty.
Oprócz praktyki, musisz również spojrzeć na teorię, aby zrozumieć, co robisz. Aby to zrobić, możesz czytać książki. Na przykład jedno z poniższych:
- „Najpierw Jawa”,
- „Java for Dummies” Barry'ego Birda;
- „Java: przewodnik dla początkujących” Herberta Schildta.
Po przeczytaniu tych książek możesz przejść do trudniejszych książek:
- „Myślenie w Javie”, Bruce Eckel;
- „Efektywna Java” Joshua Blocha;
- „Java: pełne źródło informacji” Herberta Schildta.
Ostatnie trzy książki nie są łatwe do czytania dla początkujących, ale zapewniają solidne podstawy teorii Javy.
3. Wzorce projektowe
Wzorce projektowe to pewne powtarzalne wzorce, które rozwiązują problemy w często spotykanych kontekstach. Zawierają podstawowe, proste wzorce, które powinien znać każdy szanujący się programista. Aby zrozumieć ten temat, sięgnij po książkę „Head First Design Patterns”.
W przystępny sposób wyjaśnia podstawowe wzorce projektowe. Ale książka mówi dużo o Javie, więc kiedy będziesz ją czytać, będziesz potrzebować również biegłości w tym języku programowania.
Aby głębiej zagłębić się we wzorce, możesz także przeczytać „Wzorce projektowe: elementy oprogramowania obiektowego wielokrotnego użytku” autorstwa Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). Po przestudiowaniu tego tematu zaczniesz dostrzegać wzorce praktycznie wszędzie w kodzie.
Zwróć na to uwagę, zwłaszcza na wzory używane wiosną, ponieważ jest to popularne pytanie podczas rozmów kwalifikacyjnych.
4. Paradygmaty programowania. Czystość kodu
Oprócz standardowych wzorców projektowych istnieją różne zasady i paradygmaty, o których należy pamiętać (SOLID, GRASP).
Musisz także utrzymywać swój kod w czystości i czytelności. Aby dowiedzieć się wszystkiego na ten temat, zobacz Czysty kod Roberta Martina lub sprawdź „Code Complete” Steve'a McConnella.
5. SQL
Naszym kolejnym krokiem jest nauka języka dla relacyjnych baz danych — SQL.
Bazy danych to miejsca, w których przechowywane są informacje (dane) używane przez aplikację internetową. Baza danych składa się z kilku tabel (prostym przykładem jest książka adresowa w telefonie).
Programiści Java są odpowiedzialni nie tylko za aplikację Java, ale także za bazę danych, z którą współpracuje i gdzie przechowuje swoje dane.
W relacyjnych bazach danych (które są najbardziej powszechnym typem) cała interakcja odbywa się za pośrednictwem specjalnego języka o nazwie Structured Query Language lub SQL.
Aby zrozumieć ten temat, wystarczy przeczytać jedną z następujących książek:
- „Nauka języka SQL” autorstwa Alana Beaulieu;
- „SQL” autorstwa Chrisa Fehily'ego;
- „Head First SQL” autorstwa Lynn Beighley.
Ale praktyka bez teorii nie załatwi sprawy, prawda? A na rozmowach kwalifikacyjnych możesz spodziewać się testu znajomości języka SQL. Ankieterzy często (prawie zawsze) dają jedno lub dwa zadania, które wymagają napisania zapytania SQL.
W rezultacie bardzo ważne jest doskonalenie praktycznych umiejętności SQL, aby pokazać się w dobrym świetle.
6. MySQL/PostgreSQL
Po nauce języka SQL należy zapoznać się z konkretną implementacją bazy danych. W zależności od bazy danych niektóre polecenia mogą się znacznie różnić. I są dość zauważalne różnice w możliwościach bazy danych.
Najpopularniejszymi relacyjnymi bazami danych są MySQL i PostgreSQL. MySQL jest znacznie prostszy, ale PostgreSQL ma znacznie szersze możliwości. Znajomość przynajmniej jednego z nich wystarczy, aby zacząć.
Możesz studiować implementacje baz danych, jeśli użyjesz swoich umiejętności googlowania — znajdź odpowiednie artykuły i samouczki na YouTube. Będziesz musiał kultywować swoją umiejętność tworzenia odpowiednich zapytań do pytań, na które potrzebujesz odpowiedzi. W końcu programista to ktoś, kto ma czarny pas w googlowaniu.
7. Maven/Gradle
Musisz nauczyć się frameworka Gradle lub Maven. Służą do budowania projektów, a dla Ciebie Java to teraz nie tylko zadania obejmujące kilka klas, ale także język do pisania pełnowartościowych aplikacji.
Musisz zrozumieć, jak zbudować projekt, jakie są etapy kompilacji, jak załadować niezbędne biblioteki zewnętrzne kodem innej firmy i wiele więcej.
Pomimo faktu, że Gradle jest nowszy i bardziej zwięzły, w większości przypadków używany jest Maven. Dlatego zwróć szczególną uwagę na cykl życia kompilacji Mavena.
8. Git
Git to rozproszony system kontroli wersji. Ta technologia umożliwia programistom współpracę nad jedną aplikacją bez wzajemnego zakłócania.
Oczywiście istnieją inne systemy kontroli wersji. Na przykład Subversion. Ale Git jest najczęściej używany i musisz być w stanie z nim pracować. Oprócz wielu artykułów na temat Git, które można znaleźć w Internecie, YouTube ma wystarczająco dużo filmów, które pomogą Ci opanować tę technologię krok po kroku.
Na początku lepiej jest używać Gita z wiersza poleceń niż jakiejś implementacji GUI, ponieważ będziesz zmuszony robić wszystko za pomocą poleceń. W rozmowach kwalifikacyjnych ludzie często pytają o kilka poleceń Gita, więc zalecam zapisanie ich i trzymanie gdzieś w pobliżu.
9. JDBC
Ta technologia łączy aplikację Java z relacyjną bazą danych. Aby zapoznać się z podstawami, przeczytaj dowolny samouczek JDBC.
Istnieje mnóstwo artykułów, które wyjaśniają JDBC i dostarczają podstawowych przykładów, mimo że nikt już nie używa bezpośrednio nagiego JDBC.
10. WZP. Hibernować
JPA to sposób na ustanowienie połączenia między aplikacją Java a bazą danych, podobnie jak JDBC. Ale jednocześnie JPA jest technologią wyższego poziomu, a zatem łatwiejszą w użyciu.
Ale JPA to tylko specyfikacja, a nie implementacja. Wymaga konkretnej realizacji. Istnieje wiele z nich, ale najbliższy ideałom WZP, najpopularniejszy i najbardziej rozwinięty jest Hibernate.
Zetkniesz się z tą technologią więcej niż raz w swojej karierze programistycznej. Tak więc oprócz zapoznania się z tą technologią poprzez czytanie artykułów, warto może pomyśleć o przeczytaniu książki, np. „Java Persistence API”.
11. Wiosna
Kiedy zostajesz programistą Java, wiosna nie jest już dla ciebie tylko słowem. Znajomość tego frameworka jest teraz równie ważna jak znajomość składni języka Java. Można powiedzieć, że Spring ma rodzeństwo, czyli Javę EE. Ale Java EE jest przestarzała i nie jest już używana w nowych projektach.
Przytłaczająca większość programistów Java to obecnie programiści Java-Spring, więc znajomość podstawowych technologii Springa jest koniecznością.
Spring to nie tylko framework, ale cały framework frameworków:
A to tylko podzbiór frameworków udostępnianych przez Springa. Dla początkującego wystarczy znajomość tylko kilku z nich:
Wiosenny rdzeń
Powinieneś umieścić to na pierwszym miejscu, abyś mógł zrozumieć, czym jest Spring — wszystko o kontenerach Spring, komponentach bean, DI, IoC i tak dalej. Aby zrozumieć samą filozofię używania Springa, że tak powiem. Twoje dalsze badanie frameworków Spring będzie opierać się na tej podstawie. Być może powinieneś stworzyć własną małą aplikację, do której będziesz mógł stopniowo włączać wszystkie nowo poznane technologie.
Wiosna JDBC
Wcześniej wspomnieliśmy o JDBC jako o technologii tworzenia połączenia z bazą danych. Ogólnie rzecz biorąc, „nagiego” wykorzystania technologii nie można już znaleźć w projektach, więc można dojść do wniosku, że nauka JDBC nie jest konieczna. To nie jest do końca właściwa postawa.
Badając nagie (bezpośrednie) użycie JDBC, możesz zobaczyć technologię na niższym poziomie i zrozumieć jej problemy i niedociągnięcia. Kiedy zaczniesz uczyć się Spring JDBC, zdasz sobie sprawę, co dokładnie ten framework poprawia, optymalizuje i ukrywa.
Wiosenna hibernacja
Analogicznie do sytuacji z nagim JDBC, ten framework wykorzystuje istniejącą technologię, w tym przypadku Hibernate. Jeśli rozważasz użycie Hibernate bez Springa, z pewnością zdasz sobie sprawę z korzyści, jakie oferuje Spring Hibernate.
Wiosna ZPA
Wcześniej rozmawialiśmy o JPA i wspomnieliśmy, że jest to tylko specyfikacja, choć ma różne implementacje. Wśród tych implementacji Hibernate jest najbliżej ideału.
Spring ma własną idealną implementację JPA, która pod maską wykorzystuje Hibernate. Jest jak najbardziej zbliżony do ideału specyfikacji JPA.
Nazywa się Spring JPA. Jednym słowem znacznie ułatwia dostęp do bazy danych.
Możesz nauczyć się tylko JPA bez uczenia się JDBC, Hibernate, Spring JDBC lub Spring Hibernate. Ale jeśli przyjmiesz takie podejście, twoja wiedza o tym, jak połączyć się z bazą danych, będzie bardzo powierzchowna.
Wiosna MVC
Technologia ta umożliwia wyświetlanie użytkownikom interfejsu webowego naszej aplikacji oraz ułatwia komunikację pomiędzy interfejsem a resztą aplikacji. Tej technologii można również używać bez wyświetlania, gdy masz aplikację odpowiedzialną za obsługę wyświetlacza i wchodzisz w interakcję z aplikacją przy użyciu technologii RESTful.
Aby lepiej chłonąć informacje o Wiosnie, oprócz artykułów i wykładów na YouTube, można przeczytać kilka książek. Na przykład „Spring in Action” Craiga Wallsa. Kolejną świetną książką na temat wiosny jest „Spring 5 for the Professionals”. Jest bardziej gęsty. Bardziej jak odniesienie, które bardziej warto mieć pod ręką niż czytać od deski do deski.
Wiosenny but
Ta technologia znacznie upraszcza korzystanie ze Springa. Nie umieściłem go na końcu listy dla kaprysu. Rzeczywiście, kryje wiele pod maską, a dla kogoś niezaznajomionego z waniliową wiosną wiele punktów może być niejasnych lub niezrozumiałych.
Po pierwsze, aby lepiej zrozumieć, jak działają frameworki Springa, powinieneś użyć zwykłego Springa, a następnie czerpać wszystkie wyższe korzyści z używania Spring Boot.
Powinieneś także zapoznać się z Spring Security i Spring AOP. Ale w przeciwieństwie do powyższych technologii, głęboka wiedza na temat tych dwóch nie jest jeszcze potrzebna.
Ta technologia nie jest dla początkujących. Podczas wywiadów młodsi programiści nie będą o to pytani (może z wyjątkiem jednego powierzchownego pytania). Przeczytaj przegląd tego, czym są te technologie i książęta stojące za ich pracą.
Im więcej wiesz, tym szybciej znajdziesz swoją pierwszą pracę.
GO TO FULL VERSION