JavaRush /Blog Java /Random-PL /Co musisz wiedzieć, aby zostać Java Juniorem i co z tym w...

Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?

Opublikowano w grupie Random-PL
Wymagania stawiane potencjalnym programistom Java stale się zmieniają i trudno za nimi nadążyć. Czy wystarczy znajomość języka Java Core, aby zostać stażystą? Jak dobrze musisz znać Springa i Hibernate, aby objąć stanowisko Java Junior? Czy warto uczyć się baz danych i rozumieć algorytmy sortowania i wyszukiwania? A ponieważ studenci JavaRush bardzo często nurtują te pytania, postanowiliśmy zadać je naszym absolwentom, którzy już pracują jako Java Juniors lub odbywają staże w firmach jako Java Trainees. Należy zauważyć, że 13% respondentów miało to szczęście, że już za pierwszym podejściem uzyskało pozycję Java Middle, omijając etap Junior. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 1Respondenci dzielili się informacjami o tym, jakich technologii potrzebowali, aby przejść rozmowę kwalifikacyjną i jakich używali w pierwszym roku swojej pierwszej pracy w Java.

Każdy potrzebuje rdzenia Java

Termin Java Core jest dość szeroki. Nazwa ta odnosi się zarówno do elementarnej składni języka, jak i tak złożonego tematu, jak wielowątkowość. Właściwie kurs JavaRush jest poświęcony głównie Core. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 2Składnia Java. Podstawy języka. Wszystkie te typy danych, operatory, pętle i gałęzie. Naturalnie 92,4% osób, które dostały tę pracę, oceniło swoją znajomość składni jako „dobrą lub doskonałą”. Jednak 7,6% respondentów udało się zostać stażystami Java ze średnią znajomością składni. Należy to jednak oceniać bardziej jako szczęście (lub przechwałki respondentów :)). Oczywiście każdy, kto stara się o pracę jako programista powinien znać składnię języka. Programowanie obiektowe (OOP). Wszystko w Javie składa się z obiektów, więc OOP można uznać za jeden z najważniejszych tematów języka. Podejście obiektowe może na początku wydawać się nieznane, zwłaszcza jeśli wcześniej uczyłeś się tylko języków proceduralnych, ale przejście na obiekty nie jest trudne. Największą trudnością dla początkujących są poziomy abstrakcji i ich niezależny rozkład - początkujący programista musi umieć poprawnie stworzyć hierarchię obiektów, zrozumieć za co będzie odpowiadał interfejs i co można umieścić w klasie abstrakcyjnej, stworzyć dziedziczenie drabina i tak dalej. Jak zwykle, tę trudność rozwiązuje praktyka. Większość respondentów, bo 80,3% tych, którzy dostali pierwszą pracę, dobrze znała zasady OOP i stale z nich korzystała. W pierwszym roku pracy jako Java Juniors i stażyści 78,8% respondentów korzystało z zasad OOP bardzo często, 12,1% sporadycznie. Rzadko z nich korzystało 7,6% słuchaczy - ci goście byli zajęci głównie testowaniem jednostkowym i różnymi drobnymi zadaniami. Oznacza to oczywiście, że używali także klas lub obiektów (bez tego nie da się obejść się w Javie), ale rzadko tworzyli hierarchie klas. Ramy kolekcji. Kolekcja to zbiór pojedynczych obiektów przedstawionych jako całość. Java ma bardzo inteligentną strukturę kolekcji do reprezentowania kolekcji. Kolekcje opierają się na popularnych strukturach danych - listach zwykłych i połączonych, zbiorach, tablicach mieszających. Dlatego też podczas eksplorowania kolekcji warto lepiej zapoznać się ze strukturami danych. Główną trudnością w badaniu kolekcji jest zrozumienie i zapamiętanie, jak działają. Jeśli zrozumiesz, w jaki sposób uzyskują dostęp do elementu, wyodrębnij go z kolekcji i dodaj do niego, zaczniesz rozumieć, gdzie zastosować tę lub inną strukturę. To przychodzi z praktyką. Ale na szczęście nie wszystkie z ogromnej liczby kolekcji są aktywnie wykorzystywane w prawdziwej pracy. 80,3% respondentów wskazało, że przed otrzymaniem pierwszej oferty pracy posiadało dobrą lub wręcz doskonałą znajomość kolekcji, a prawie wszyscy 96,9% Juniorów i stażystów korzysta ze zbiorów w swojej pierwszej pracy. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 3Obsługa wyjątków.Wyjątkiem jest nietypowa sytuacja, która może wystąpić podczas wykonywania programu. Wszystkie klasy wyjątków są podtypami klasy java.lang.Exception. Mechanizm obsługi wyjątków znacznie upraszcza proces wyszukiwania błędów w programach. Zwykle uczniowie zaczynają używać wyjątków dość wcześnie, np. w JavaRush.W JavaRush ten temat jest poruszany w pierwszym zadaniu dotyczącym składni języka Java. Prawie wszyscy absolwenci JavaRush, którzy dostali swoją pierwszą pracę, wiedzieli, jak radzić sobie z wyjątkami i, oczywiście, korzystali z nich podczas pracy. Strumienie we/wy Java. Pierwsze programy napisane w Javie zwykle zawierały coś w rodzaju System.out.println („Witaj, świecie”). Często nowicjusze rozumieją, że metoda println wypisuje wiersz na konsoli, ale nie mają pojęcia, dlaczego System i out istnieją i jak działają. Nieco później okazuje się, że Java wykonuje operacje wejścia i wyjścia za pomocą strumieni, czyli ciągłego strumienia danych. Wątki nie są tematem najłatwiejszym do zrozumienia i nie są zbyt często używane w pracach dla początkujących: tylko 22,7% osób, które dostały swoją pierwszą pracę w Java Junior/Trainee, stwierdziło, że często korzystają z wątków we/wy, 31,8% – od czasu do czasu czas, 25,8% - rzadko. Zatem niecałe 20% w ogóle z nich nie korzystało podczas pierwszego roku pracy jako programista Java. 18,2% nie doświadczyło w trakcie studiów szczególnych trudności z przepływami i dobrze je znało, 36,4% oceniło swoją wiedzę jako dobrą, natomiast 10,6% zignorowało ten temat. Wielowątkowość (wielowątkowość/współbieżność Java). Być może właśnie ten temat powoduje największe nieporozumienia wśród początkujących programistów. Mimo że wielowątkowość w Javie jest bardzo dobrze zaimplementowana, jest ona trudna do zrozumienia, a problemy mogą pojawić się już przy pisaniu prostych programów (np. wielowątkowego „Hello, world”). Wielu pracodawców to rozumie i nie wymaga od początkujących głębokiego zrozumienia wielowątkowości, oczekując, że przyjdzie to z doświadczeniem. Tylko 12% respondentów stwierdziło, że przed otrzymaniem pierwszej oferty znało temat na dobrym poziomie, natomiast prawie 32% respondentów przyznało, że w ogóle nie znało tematu. Większość, 56,2%, stwierdziła, że ​​„ma pewne pojęcie” na temat wielowątkowości. Jeśli więc trudności w pracy z wątkami wydają Ci się teraz nie do pokonania, te liczby mogą Cię uspokoić. Jeśli jednak chcesz zyskać przewagę konkurencyjną podczas rozmowy kwalifikacyjnej, ten temat może być Twoją mocną stroną. W prawdziwych projektach początkujący rzadko mogą pracować z wątkami. Zatem 15,1% początkujących programistów w ogóle nie spotkało się z wielowątkowością Java w swojej pracy, a 39,4% zetknęło się z nią, ale rzadko. Często w pierwszym roku pracy tylko 9,1% respondentów miało do czynienia z wielowątkowością. Wyrażenia lambda.Wyrażenia lambda i wskazówki dotyczące programowania funkcjonalnego pojawiły się w Javie 8, ale nowicjusze nie korzystają zbyt często z tego przydatnego narzędzia. Wyrażenie lambda to funkcja, którą można utworzyć nie należąc do żadnej klasy i którą można przekazać jako obiekt lub wykonać na żądanie. Tylko 22,7% ankietowanych absolwentów dobrze znało wyrażenia lambda przed otrzymaniem pierwszej oferty pracy, a 48,5% oceniło swoją wiedzę na ten temat jako „bliską zeru”. Jednocześnie ponad 85% nowych programistów stwierdziło, że w pierwszym roku używało wyrażeń lambda. Gwoli ścisłości zwracamy uwagę, że niski odsetek osób znających ten temat może wynikać z faktu, że w JavaRush wyrażenia lambda prezentowane są dotychczas jedynie w nowych misjach i artykułach Java Syntax Pro . Można zatem śmiało powiedzieć, że znajomość Core Java dla każdego potencjalnego Java Juniora, a nawet Trainee'a jest po prostu niezbędna. Oczywiście niektóre tematy, np. wielowątkowość, można znać nieco mniej, ale składnia Java, OOP i kolekcje powinny być mocno zakorzenione w Twojej świadomości.

Algorytmy i struktury danych

Trwa ciągła debata na temat badania algorytmów sortowania i wyszukiwania. Z jednej strony najlepsze algorytmy zostały już dawno napisane i umieszczone w bibliotekach wszystkich popularnych języków programowania, łącznie z Javą. Można ich legalnie używać bez konieczności pisania własnego kodu. Jednak eksperci szkolący programistów nadal zalecają, aby każdy początkujący programista trenował swój mózg poprzez pisanie wszystkich algorytmów bąbelkowych, łączenie, wyszukiwanie binarne i tym podobne. Po pierwsze, algorytmy te są swego rodzaju papierkiem lakmusowym umiejętności programisty (czyli nie wiedzy, ale umiejętności) i zrozumienia przez człowieka, czym w zasadzie jest programowanie. Jeśli Twój mózg jest już dobrze dostrojony do tego rodzaju pracy, algorytmy napiszesz stosunkowo łatwo. A jednak pamiętaj: potrzebujesz algorytmów, aby dokładnie wytrenować swój mózg... i aby przejść rozmowę kwalifikacyjną: żrący Starsi programiści, którzy je prowadzą, bardzo lubią dręczyć kandydatów prośbami o napisanie tego czy innego algorytmu. Jednak w swojej pracy większość (48,5%) korzysta ze standardowych algorytmów bibliotecznych, skutecznych i sprawdzonych, natomiast 16% respondentów w pierwszym roku pracy jako programista w ogóle nie korzystało z sortowania. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 469,6% absolwentów twierdzi, że przed otrzymaniem pierwszej oferty pracy dobrze rozumiało algorytmy sortowania i wyszukiwania oraz umiało je samodzielnie napisać. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 5Temat struktur danych poruszaliśmy już przy okazji omawiania kolekcji w Javie. Tak, lepiej je zrozumieć, żeby wiedzieć gdzie i jaką strukturę zastosować. Tworzenie własnych struktur danych na wzór bibliotek to świetne ćwiczenie, które pomoże Ci je lepiej zrozumieć. Możesz na przykład spróbować napisać własną wersję ArrayList lub zaproponować własną pojedynczo połączoną listę (zwykła LinkedList w Javie jest podwójnie połączona). Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 6Podczas pracy początkujący programiści korzystali głównie ze standardowych struktur danych.Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 7

Testów jednostkowych

Za testy jednostkowe w Javie odpowiada biblioteka JUnit. Tak naprawdę testy jednostkowe można rozpocząć niemal na samym początku szkolenia. Przynajmniej, gdy podejmiesz się swojego pierwszego samodzielnego projektu, nawet bardzo małego, lepiej już być biegłym w tym narzędziu. Pisanie testów jednostkowych nie jest takie trudne, chociaż są pewne niuanse. Nauka JUnit nie zajmie dużo czasu, ale korzyści płynące z jego poznania są ogromne. Będziesz mógł pokryć testami kod swój i cudzy. Bardzo często nowicjusze otrzymują zadanie napisania testów jednostkowych dla współpracowników, więc może to być przydatne bezpośrednio w ich nowej pracy. 57,5% respondentów stwierdziło, że korzystało z JUnit przed pierwszą udaną rozmową kwalifikacyjną w języku Java, a ponad 83% korzystało już z testów jednostkowych w pierwszym roku.

Biblioteki narzędziowe, GUI i przydatne komponenty

Zapytaliśmy, jak absolwenci JavaRush znają różne narzędzia, a niektóre z nich zostały omówione w naszym kursie.
  • Serwlety to komponenty oprogramowania Java, które rozszerzają możliwości serwera.
  • JDBC to niezależny od platformy standard zapewniający interoperacyjność aplikacji Java i baz danych. JDBC jest zaimplementowany jako pakiet Java. sql jest zawarty w pakiecie Java SE (wersja standardowa).
  • log4j to najsłynniejsza biblioteka rejestrująca komunikaty. Pozwala pisać wywołania bibliotek w kodzie Java, a następnie elastycznie je dostosowywać bez zmiany już napisanego kodu.
  • Jacksona/JSON-a. JSON (JavaScript Object Notation) to niezwykle popularny otwarty standardowy format wymiany plików i danych, a Jackson to wysokowydajny procesor JSON dla języka Java.
Wszystkie te narzędzia są bardzo przydatne i często wykorzystywane w pracy, a większość uczniów nie zaniedbała ich przygotowując się do rozmowy kwalifikacyjnej. Dotyczy to zwłaszcza Jacksona, z którym zetknęło się 72,7% osób ubiegających się o stanowisko programisty Java, JDBC – bibliotekę tę wypróbowało ponad 78% respondentów. Prawie wszyscy korzystali z tych technologii w swojej pracy. Programiści Java nie spotykają się zbyt często z GUI. Zadaliśmy pytanie o JavaFX: tylko 18% respondentów zetknęło się z tą technologią w pracy. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 8Dwie trzecie respondentów pracowało z serwletami, nieco mniejsza grupa testowała je już na studiach. Okazuje się również, że niektórzy nowi programiści Java zetknęli się z projektami takimi jak Apache Commons (zestaw bibliotek skupiających się na wszystkich aspektach komponentów Java wielokrotnego użytku) i Guava (zestaw wspólnych bibliotek open source dla Java, opracowanych głównie przez inżynierów Google).Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 9

Ramy

Wcześniej nikt nie spodziewał się, że Java Junior będzie znał Springa czy Hibernate. Ale czasy się zmieniają i dzisiaj czasami oczekuje się tego nawet od stażysty. Samodzielna nauka tych technologii nie jest łatwa. Nawet jeśli wszystko wydaje się jasne, uczniowie często bardzo szybko zapominają, co jest czym. Czasami nawet aplikacje napisane samodzielnie w Springu nie są panaceum. Pomoże tylko aktywna praca. Jednak przed udaną rozmową kwalifikacyjną jedna trzecia respondentów znała Springa na poziomie dobrym, a 45,5% średnio go rozumiało. Nieco gorzej jest z Spring Boot (36,4% w ogóle o tym nie wiedziało), a prawie 44% ankietowanych absolwentów JavaRush stwierdziło, że dobrze zna Hibernate. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 10Jednocześnie podczas pracy z głównego frameworku Java korzystało prawie 88% nowych programistów, Spring Boot – 83%, Hibernate – 81%.Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - jedenaście

Twórz narzędzia do automatyzacji i serwery aplikacji

Większość absolwentów JavaRush, z którymi przeprowadzono wywiady, próbowała pracować z twórcami projektów. Najczęściej był to Maven (40,9% próbowało go w praktyce, kolejne 30,3% korzystało z niego od czasu do czasu, a 12,1% korzystało z niego stale w trakcie studiów). Pracując z Mavenem spotkałem się z 72,7% (często), 7,6% (czasami) i 3% (rzadko). Jeśli chodzi o Gradle, sytuacja jest nieco gorsza. Tylko 22,7% ćwiczyło z tym kolektorem, a większość z nich dopiero wypróbowała tę technologię. Prawie połowa respondentów korzystała z Gradle w swojej pracy. Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 12Mrówka już dawno straciła swoją pozycję, co widać po jej popularności wśród naszych absolwentów: majstrowało przy niej jedynie 3% ankietowanych. A 12% tych, którzy odpowiedzieli na pytania, musiało z nim współpracować. Tomcat jest liderem wśród serwerów aplikacji, ponad 77% respondentów przekonało się o tym na studiach, 11% próbowało GlassFish, 12% próbowało JBossa. Podobnie wygląda popularność serwerów wśród tych, którzy już pracują. Tylko 31,8% osób, które dostały tę pracę, nie miało żadnego doświadczenia z Tomcat. Również absolwenci JavaRush podczas pierwszego roku pracy jako programiści testowali takie serwery jak WebSphere, Jetty, Netty, Wildfly, Weblogic.Co musisz wiedzieć, aby zostać Java Juniorem i co z tym wszystkim zrobić?  - 13

Co jeszcze?

Zdecydowana większość respondentów jeszcze przed podjęciem pierwszej pracy:
  • rozumiał HTML, CSS i JavaScript;
  • pracował z bazami danych, znał SQL;
  • prawie wszyscy korzystali z Git i GitHub;
  • próbowałem pracować z czystym XML-em.
Wszystkie te technologie przydały im się w dalszej pracy. Od programisty Java lub dowolnej innej osoby domyślnie oczekuje się znajomości wszystkich powyższych zagadnień. To znajomość, a nie głęboka wiedza. Dlatego zalecamy czasem przerwę od Javy i poszerzenie horyzontów poprzez zapoznanie się z tymi technologiami. Również część osób, które odpowiedziały na pytania, zauważyła, że ​​na rozmowie kwalifikacyjnej oczekiwano od nich wiedzy, przynajmniej teoretycznej, na temat wzorców projektowych, wzorców architektonicznych, a także dobrych manier w programowaniu (wszystkie te KISS, DRY, SOLID). Jednak najczęściej podczas wywiadu wystarczały same definicje: prowadzący wywiady doskonale zdawali sobie sprawę, że prawdziwe zrozumienie takich rzeczy można osiągnąć jedynie poprzez ciągłą praktykę. Czy przydały się w Twojej pracy? Oczywiście, że się przydały.

wnioski

Mamy nadzieję, że nie przestraszyliśmy Cię za bardzo liczbą technologii, których musisz się nauczyć. Nie trzeba tego wszystkiego wiedzieć dokładnie, a poza tym rozpracowanie tego wszystkiego jest dość interesujące. Nie bez powodu zdecydowałeś się zostać programistą, prawda? Kontynuuj naukę języka Java i zachowaj motywację. Powodzenia! PS Jeśli już znalazłeś pracę i chcesz podzielić się swoimi doświadczeniami, zapraszamy do komentarzy!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION