CodeGym /Blog Java /Random-PL /Lista kontrolna programisty Java. Co powinien wiedzieć pr...
John Squirrels
Poziom 41
San Francisco

Lista kontrolna programisty Java. Co powinien wiedzieć programista

Opublikowano w grupie Random-PL
Cześć! Dzisiaj porozmawiamy o ścieżce rozwoju programisty Java oraz o tym, co musi wiedzieć, aby być poszukiwanym. Lista kontrolna programisty Java.  Co powinien wiedzieć programista – 1Podczas rozmowy kwalifikacyjnej każdy programista może przesłuchać kandydata do pracy. Na przykład mogą zacząć zadawać pytania dotyczące konkretnych tematów, z którymi zetknęli się w bieżącym projekcie. Ale niewiedza o wszystkim jest normalna. Fakt, że nie możesz odpowiedzieć na niektóre pytania, jest również normalny. Zasadniczo 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ńczona liczba 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. Polecam również pogłębienie wiedzy z podstaw informatyki. Można to zrobić za pomocą kursu Harvard CS50.

2. Składnia Javy

Po zapoznaniu się z podstawami algorytmów musimy nauczyć się składni języka Java. W końcu wszyscy uczymy się tutaj, aby zostać programistami 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. CodeGym to praktyka, ale poza tym 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. Nie zapomnij także o artykułach CodeGym, ponieważ zawierają one wyjaśnienia większości tematów, które mogą Cię zainteresować. Odpowiedni artykuł można znaleźć wpisując w wyszukiwarkę temat, który Cię interesuje: Lista kontrolna programisty Java.  Co powinien wiedzieć programista - 2Gorąco polecam również szukanie pytań z wywiadów Java. Pomoże Ci to zrozumieć, czego dokładnie musisz się nauczyć i na jakie pytania się przygotować.

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 (od redakcji: Gang of Four to zespół autorów, w skład którego wchodzą 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 . Lista kontrolna programisty Java.  Co powinien wiedzieć programista – 3MySQL 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ł rozwijać swoją umiejętność tworzenia odpowiednich zapytań, 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łnoprawnych 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ć.Lista kontrolna programisty Java.  Co powinien wiedzieć programista - 4Opró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. Polecam również robienie notatek, notowanie najważniejszych punktów, aby móc je przejrzeć przed rozmową i odświeżyć sobie pamięć.

9. JDBC

Ta technologia łączy aplikację Java z relacyjną bazą danych. Jeśli chodzi o podstawy, polecam przeczytanie dowolnego samouczka 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. Zatem 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. Lista kontrolna programisty Java.  Co powinien wiedzieć programista - 5Znajomość 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: Lista kontrolna programisty Java.  Co powinien wiedzieć programista - 6A 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. Bardzo podobała mi się książka „Wiosna w akcji” Craiga Wallsa. Radzę przeczytać wersję 6, jeśli dobrze znasz angielski. 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.Lista kontrolna programisty Java.  Co powinien wiedzieć programista - 7

  • 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. Polecam również zapoznanie 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 tych technologii i zasady ich działania. W tym artykule, Wielokrotnie wspominałem o czytaniu książek. Z jednej strony nie jest to obowiązkowe. Możesz zostać programistą, nie czytając ani jednej książki, zdobywając całą wymaganą wiedzę z artykułów online i filmów szkoleniowych. Z drugiej strony na rynku pracy konkurencja wśród początkujących programistów jest obecnie duża, co podnosi poprzeczkę w zakresie tego, co początkujący powinien wiedzieć. Im więcej wiesz, tym szybciej znajdziesz swoją pierwszą pracę, imponując rozmówcy swoim poziomem wiedzy. Dziękuję wszystkim i niech Java będzie z wami. co podnosi poprzeczkę dla tego, co powinien wiedzieć początkujący. Im więcej wiesz, tym szybciej znajdziesz swoją pierwszą pracę, imponując rozmówcy swoim poziomem wiedzy. Dziękuję wszystkim i niech Java będzie z wami. co podnosi poprzeczkę dla tego, co powinien wiedzieć początkujący. Im więcej wiesz, tym szybciej znajdziesz swoją pierwszą pracę, imponując rozmówcy swoim poziomem wiedzy. Dziękuję wszystkim i niech Java będzie z wami.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION