Cześć! Dzisiaj porozmawiamy o ścieżce rozwoju programisty Java i o tym, co musi wiedzieć, aby być poszukiwanym. Każdy programista podczas rozmowy kwalifikacyjnej może „zawieść” kandydata na stanowisko. Przykładowo zacznie zadawać pytania dotyczące konkretnych tematów, z którymi spotkał się w bieżącym projekcie. Ale nie ma nic złego w tym, że nie wiesz wszystkiego. To, że nie odpowiadasz na niektóre pytania, jest również normalne. Generalnie każdy programista Java powinien posiadać podstawową wiedzę z zakresu programowania. Przyjrzyjmy się więc, jakie technologie są uważane za „podstawowe”.
Przede wszystkim powinieneś zrozumieć, czym jest Spring: czym jest kontener Spring, fasola, DI, IoC i tak dalej. Że tak powiem, zrozum samą filozofię korzystania ze Springa. Dalsze badania frameworków Spring będą odbywać się w oparciu o tę bazę. Może warto stworzyć własną małą aplikację, do której stopniowo będziesz dodawać nowe, poznane technologie.
Wcześniej mówiliśmy o technologii JDBC jako technologii tworzenia połączenia z bazą danych. Ogólnie rzecz biorąc, w projektach nie można obecnie spotkać się z „nagim” wykorzystaniem technologii, więc może się wydawać, że nauka JDBC nie jest konieczna. Ale tak nie jest. Patrząc na gołe kości JDBC, można zobaczyć technologię na niższym poziomie i zrozumieć jej problemy i niedociągnięcia. Gdy zaczniesz uczyć się Spring JDBC, zrozumiesz, co dokładnie ten framework poprawia, optymalizuje i ukrywa przed naszymi oczami.
Podobnie jak w przypadku bare-bone JDBC, ten framework usprawnia wykorzystanie istniejącej technologii, w tym przypadku Hibernate. Jeśli rozważysz użycie Hibernate bez Springa, dokładnie zrozumiesz, jakie są korzyści z używania Spring Hibernate.
Wcześniej rozmawialiśmy o JPA i o tym, że jest to tylko specyfikacja, dla której istnieją różne implementacje. Spośród tych implementacji Hibernate jest najbliższy ideału. Spring ma swoją własną idealną implementację JPA, która wykorzystuje Hibernate „pod maską” i jest jak najbardziej zbliżona do ideału specyfikacji JPA. Technologia ta nazywa się Spring JPA. Swoją drogą znacznie upraszcza to dostęp do bazy danych. JPA można nauczyć się tylko bez nauki JDBC, Hibernate, Spring JDBC, Spring Hibernate. Ale w tym przypadku Twoja wiedza na temat łączenia się z bazą danych będzie bardzo powierzchowna.
Dzięki tej technologii możemy wyświetlić użytkownikom interfejs sieciowy naszej aplikacji i pozwolić interfejsowi na komunikację z resztą aplikacji. Technologia może działać również bez wyświetlacza, gdy istnieje jakaś aplikacja odpowiedzialna za wyświetlanie, a użytkownik wchodzi w interakcję z tą aplikacją za pomocą żądań i odpowiedzi przy użyciu technologii RESTful . Aby lepiej zrozumieć informacje o wiośnie, oprócz artykułów i wykładów na YouTube, możesz przeczytać kilka książek. Bardzo podobała mi się książka „Wiosna w działaniu” Wallsa Craiga. Niestety w języku rosyjskim dostępna jest obecnie tylko trzecia wersja, uważana za przestarzałą. Radzę przeczytać wersję 6, jeśli dobrze znasz angielski. Kolejną świetną książką o wiośnie jest „Spring 5 for Professionals”. Trudniej się jej nauczyć i bardziej przypomina wiosenną Biblię , którą lepiej mieć pod ręką, niż czytać od deski do deski.
Technologia ta znacznie upraszcza użytkowanie Springa. Nie bez powodu umieściłem go na końcu listy, ponieważ kryje on wiele pod „maską” i dla osoby nieobeznanej ze zwykłym Springiem wiele punktów może być nieoczywistych i niezrozumiałych. Po pierwsze, aby lepiej zrozumieć, jak działają frameworki Spring, powinieneś użyć zwykłego Springa, a następnie wszystkich wyższych korzyści płynących z używania Spring Boot. Radzę 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 teraz potrzebna. Ta technologia nie jest dla początkujących. Podczas rozmów kwalifikacyjnych juniorzy nie są o nie pytani (z wyjątkiem jednego, powierzchownego pytania). Przeczytaj ogólnie, czym są te technologie i jak działają. W tym artykule wielokrotnie wspominałem o czytaniu książek. Z jednej strony nie jest to konieczne. Możesz zostać programistą bez czytania ani jednej książki, po przestudiowaniu wszystkiego, czego potrzebujesz z artykułów i filmów szkoleniowych. Z drugiej strony, w tej chwili konkurencja na rynku początkujących programistów jest duża, co podnosi poprzeczkę wymaganej wiedzy początkowej dla początkującego. Dlatego im więcej wiesz, tym szybciej znajdziesz swoją pierwszą pracę, imponując rozmówcy poziomem swojej wiedzy. Dziękuję wszystkim i niech Java będzie z wami .
1. Podstawowe algorytmy
Pierwszą rzeczą, którą powinieneś się zająć rozpoczynając naukę programowania (nie dotyczy to tylko Javy) jest analiza podstaw. Na przykład algorytmy. Jest ich nieskończona liczba i nie powinieneś spędzać całych lat próbując nauczyć się jak największej liczby algorytmów: większość z nich nie będzie dla ciebie przydatna. Wymaganą minimalną wiedzę można uzyskać z książki „ Algorytmy Grockinga ”. To wystarczy, aby rozpocząć podróż, ale jeśli chcesz, możesz uczyć się, korzystając z książek „ Struktury i algorytmy ” lub „Algorithms in Java” Roberta Sedgwicka i Kevina Wayne’a. Radzę również udoskonalić swoją wiedzę z podstaw informatyki. Można to zrobić w JavaRush korzystając z kursu CS50 .2. Składnia Java
Po zapoznaniu się z podstawami algorytmów musimy poznać składnię Java. W końcu wszyscy uczymy się tutaj programisty Java, prawda? Kurs JavaRush jest do tego idealny. Wykonując wiele zadań, opanujesz płynnie składnię języka Java i będziesz pisać/czytać kod w języku Java bez większego namysłu, tak jakby był to Twój język ojczysty. JavaRush to praktyka i oprócz niej musisz także przyjrzeć się teorii, aby zrozumieć, co dokładnie robisz. Aby to zrobić, możesz przeczytać książki, na przykład jedną z następujących:- „ Najpierw Java ”;
- „Java for Dummies” Barry’ego Birda;
- "Jawa. Przewodnik dla początkujących” Herberta Schildta.
- „Filozofia Jawy”, Bruce Eckel;
- „Efektywne programowanie”, Joshua Bloch;
- "Jawa. Kompletny przewodnik”, Herbert Schildt.
3. Wzorce programowania
Wzorce programistyczne to pewne powtarzalne wzorce, które reprezentują rozwiązanie problemu w często spotykanym kontekście. Wśród nich znajdują się podstawowe, proste szablony, które powinien znać każdy szanujący się programista. Aby zrozumieć ten temat, skorzystaj z książki „ Najpierw głowa. Wzorce projektowe ." W przejrzysty sposób wyjaśni podstawowe wzorce programowania. Ale książka mówi dużo o Javie , więc w czasie jej studiowania musisz opanować ten język programowania. Aby głębiej zagłębić się we wzorce, możesz także przeczytać „Techniki projektowania obiektowego. Design Patterns” od Gangu Czterech ( Gang Czterech: zespół autorów, w skład którego wchodzą Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides – przyp. red.) . Po przestudiowaniu tego tematu zaczniesz widzieć wzorce praktycznie wszędzie w swoim kodzie. Zwróć na to uwagę, zwłaszcza na wzorce stosowane w Springu , gdyż jest to popularne pytanie podczas rozmów kwalifikacyjnych.4. Paradygmaty programowania. Czystość kodu
Oprócz standardowych wzorców programowania istnieją różne zasady i paradygmaty, które musisz znać ( SOLID , GRASP ). Należy także zadbać o to, aby kod był czysty i czytelny. Wszystko, co musisz wiedzieć na ten temat, znajdziesz w książce „ Clean Code ” Roberta Martina lub sięgnij po książkę „Perfect Code” Steve’a McConnella.5.SQL
Naszym kolejnym krokiem jest poznanie języka relacyjnych baz danych - SQL . Bazy danych to miejsce, w którym przechowywane są informacje (dane) aplikacji internetowej. Baza danych składa się z wielu tabel (najprostszym przykładem takich tabel jest książka adresowa w telefonie). Więcej o bazach danych możesz przeczytać w tym artykule . Dla programistów Java obszarem odpowiedzialności jest nie tylko aplikacja Java, ale także baza danych, z którą współdziała i gdzie przechowuje dane. W relacyjnych (najpopularniejszych) bazach danych cała interakcja odbywa się poprzez specjalny język - Structured Query Language, czyli SQL. Aby zrozumieć ten temat, wystarczy przeczytać jedną z książek:- „Nauka SQL”, Alan Bewley;
- „SQL”, Chris Fiaily;
- „Najpierw głowa SQL” Lynn Bailey.
GO TO FULL VERSION