Więc jak długo trwa nauka języka Java? Dziesięć lat, dziesięć tygodni czy jeden dzień? Może przez całe życie? Na niektórych forach internetowych można znaleźć bardzo osobliwe odpowiedzi na to pytanie. Postawmy sprawę jasno od samego początku W tym artykule „znajomość Javy” nie oznacza, że potrafisz napisać program „Hello world”. Chodzi o znajomość Javy na tyle dobrze, aby znaleźć swoją pierwszą pracę. Motto Buzza Astrala w tytule nie jest żartem. Tak naprawdę, to można uczyć się Javy lub dowolnego innego języka do końca życia. Powodem jest to, że język stale się rozwija, zmienia się jego zakres i… Dobre wieści, przyjaciele! Nie ma powodu do paniki! Nauka języka Java jest zdecydowanie możliwa do zrealizowania w czasie od 3 do 12 miesięcy, jednak istnieje wiele niuansów, które w tym artykule omówimy. Tutaj postaramy się odpowiedzieć również na pytanie „jak szybko nauczyć się języka Java”.

Jak znaleźć odpowiedź

Pytanie „ile czasu zajmuje nauka Javy” jest dość pochwytliwe. Podzieliliśmy je na bardziej szczegółowe podpunkty i odpowiemy na nie tutaj. Aby być bardziej precyzyjnym, wykorzystaliśmy rozmowy z uczniami CodeGym, otwarte źródła oraz statystyki z badania przeprowadzonego pod koniec 2019 roku. To badanie dotyczyło procesów uczenia się języka Java i poszukiwania pierwszej pracy. Zostało ono przeprowadzone przez jeden z lokalnych oddziałów CodeGym. Uczestnikami byli uczniowie CodeGym na poziomie 30 i wyższym, którzy znaleźli pierwszą pracę związaną z Javą lub brali udział w stażu.

Co to znaczy „znać Javę”?

Najdokładniejszą, choć bardzo ogólną odpowiedzią na to pytanie, byłoby „umiejętność rozwiązania problemu przy użyciu Javy”. Takim problemem może być „zdanie egzaminu” lub „znalezienia pracy”. Może to być też zadanie techniczne, na przykład duże „stworzenie własnego projektu wystarczająco dobrego dla sklepu Google” lub małe, takie jak „zrozumienie jak napisać kod, który zrobi to czego potrzebujesz”. Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 2Oczywiście z czasem problemy będą ulegać zmianie. Po zdobyciu pierwszej pracy będziesz musiał awansować na stanowiska (na przykład z Java Junior Developer do Java Middle/Senior Developer). Po pierwszym zadaniu kodowania następuje drugie. Ponadto, gdy to zrobisz, pojawią się nowe cele. Powróćmy do naszego pytania. Jakie zagadnienia należy zrozumieć, aby móc napisać w CV „Znam Javę”? Uczniowie Javy zazwyczaj posiadają wiedzę dotyczącą następujących tematów:
  • Core Java lub
  • Core Java + JUnit lub
  • Core Java + DataBases lub
  • Core Java + Tools lub
  • Core Java + Libraries lub
  • Core Java + Spring + SpringBoot + Hibernate lub
  • Core Java + Android SDK lub
  • ...wszystkie powyższe kombinacje.
Wszystkie te tematy mają jedną wspólną cechę. Jest to Core Java, czyli podstawy języka Java. Jeśli więc nie znasz Core Java, to z pewnością nie znasz Javy w ogóle. Dlatego nauka Core Java jest krokiem nr 1 dla każdego przyszłego programisty Java. Core Java obejmuje podstawowe koncepcje języka:
  • Podstawowe typy i obiekty
  • Konstrukcje podstawowe (operatory specjalne, pętle, gałęzie)
  • Koncepcje OOP
  • Klasy opakowujące (wrappery)
  • Kolekcje
  • Wielowątkowość
  • Strumienie wejściowe/wyjściowe
  • Obsługa wyjątków
Tak więc Core Java zawiera podstawowe typy, obiekty, konstrukcje i zasady, a także najważniejsze biblioteki i frameworki. Ponadto Core Java obejmuje zajęcia z zakresu sieci, bezpieczeństwa, dostępu do baz danych, tworzenia graficznych interfejsów użytkownika (GUI) i parsowania XML. Przeważnie wszystkie pakiety "Core Java" zaczynały się od "java.lang..." Pierwszym celem każdego ucznia Javy jest nauczenie się Core Java. Czego należy się uczyć po ukończeniu kursu Java Core? To zależy od tego, po co uczysz się Javy.

Odpowiedź na to pytanie zależy od ciebie. Po co właściwie uczysz się Javy?

W tym artykule nie bierzemy pod uwagę takich opcji, jak „Uczę się Javy dla zabawy” lub „Chcę uczyć Javy w przyszłości”. Mówimy tu o profesjonalnym wykorzystaniu języka Java w IT. Obecnie Javy uczy się najczęściej na jeden z trzech sposobów:
  • Programista Java, od stażysty/młodszego programisty do starszego programisty
  • Programista Android, samodzielnie lub w firmie (od Juniora do Seniora)
  • Automatyzacja testów (z Javą)

Programista Java

Grono programistów Java jest bardzo szerokie, a wymagania dotyczące znajomości języka Java do zdobycia pierwszej pracy mogą się znacznie różnić. Według badania CodeGym, istnieją ludzie, którzy dostali swoją pierwszą pracę jako Junior, znając tylko Java Core i nic więcej. Firmy były gotowe do przeszkolenia ich podczas pracy. Jest to jednak dość rzadkie zjawisko. Częściej taka osoba może odbyć staż lub zostać praktykantem Javy po zdaniu kilku egzaminów. Zazwyczaj kandydaci na stanowiska Java Junior powinni znać więcej niż tylko Java Core, aby dostać pierwszą pracę. Poniżej znajduje się lista istotnych technik, które powinni znać programiści Javy.
  • Core Java
  • JDK API
  • Jawa 8 (lambdy)
  • Biblioteki testowe (JUnit)
  • Spring Framework
  • Spring Boot i Spring MVC
  • Hibernate
  • JDBC
Poniżej znajduje się rozszerzona infografika opracowana na podstawie badań CodeGym i analizy aktualnych ofert pracy na stanowisko Java Junior. Zwróć jednak uwagę, że przedstawia ona nie tylko Javę, ale także szereg innych technologii, które powinni znać współcześni programiści Javy. Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 3Jej rozmiar i ilość rozgałęzień mogą przestraszyć niewytrenowanego czytelnika. Proszę, zachowaj spokój i oddychaj głęboko! Te technologie szczegółowo poznasz podczas swojej pracy. Zwykle początkujący programista powinien mieć jedynie ogólne pojęcie o większości z tych technologii (z rzadkimi wyjątkami). Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 4

Programista Androida

Programiści systemu Android mogą pracować dla firmy lub prowadzić własne projekty. Na pewno powinni znać Java Core i kilka innych technologii. Mamy tu jedną infografikę, która przedstawia sposób działania programistów Androida. Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 5Cóż, na liście znajduje się wiele punktów, lecz niewiele z nich dotyczy bezpośrednio Javy (tylko narzędzi testowych, a właściwie Core Javy). Zazwyczaj programiści zgadzają się, że samodzielna nauka programowania na Androida jest nieco łatwiejsza i szybsza niż podczas programowania w przedsiębiorstwie. Niemniej jednak, nawet dla tych, którzy aspirują do stanowiska Java Junior, przydatne będzie tworzenie projektów dla systemu Android, aby podszkolić swoje umiejętności programistyczne.

Automatyzacja testów

Dobry pracownik automatyzacji testów powinien dość dobrze znać język programowania - jest to jedna z najważniejszych umiejętności w tym zawodzie. Połączenie z Javą
  • Core Java (w szczególności OOP, Kolekcja, FileOperations)
  • Biblioteki testowe (JUnit)
  • IntelliJ IDEA
Inne technologie:
  • Selenium RC/WebDriver framework
  • Page Object Model
  • HTML/CSS
  • SQL
Zazwyczaj droga do Junior QA Automation jest nieco krótsza niż do Junior Developer Java. Dokładne liczby znajdziesz na końcu tego artykułu.

Kto o to pyta? Portrety potencjalnych uczniów Javy

„Myślę, że zależy to od wykształcenia i ilości czasu, jaki można poświęcić na naukę. Kiedy zaczynałem swoją przygodę z programowaniem, poświęcałem na naukę co najmniej 40 godzin tygodniowo. Po 6 miesiącach nauki w pełnym wymiarze godzin poczułem się na tyle pewnie, że jestem w stanie samodzielnie opanować każdą nową technologię. W celu znalezienia pierwszej pracy jako inżynier oprogramowania, trzeba nie tylko nauczyć się języka Java, ale także zrozumieć podstawy informatyki, programowania obiektowego i napisać kilka projektów, w których można zaprezentować swoją pracę. Myślę, że może to trwać od dziewięciu do dwunastu miesięcy. Wiem, że to brzmi jak dużo pracy, ale nie zniechęcaj się! Ta podróż może być prawdziwą zabawą, jeśli odkryjesz jaki aspekt kodowania sprawia Ci radość i pozwolisz sobie na odrobinę rozrywki” Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 6

Yulia pracuje dla LinkedIn jako inżynier praktykant REACH. Stworzyła również kanał YouTube, aby podzielić się swoimi doświadczeniami związanymi z nauką programowania komputerowego i znalezieniem pracy w Dolinie Krzemowej.

Osoby rozpoczynające naukę języka Java można podzielić na trzy główne kategorie:
  1. „Świeżaki”. Zerowe doświadczenie. Cóż, są tu ludzie, którzy nie wiedzą nic o programowaniu.
  2. „Średniaki”. Uczniowie z minimalnym lub chaotycznym doświadczeniem w programowaniu. Ludzie ci uczyli się programowania w szkole, na uniwersytecie lub na kursach, ale nie była to poważna nauka.
  3. „Zawodowcy”. Programiści znający inne języki programowania (1 lub więcej).
Jak wynika z badania, 49% naszych uczniów miało do czynienia z podstawami programowania w szkołach lub na kursach, zanim zaczęli uczyć się Javy na poważnie.
  • 33,3% stanowili nowicjusze
  • 17,6% znało co najmniej jeden język programowania
Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 7

Co pozytywnie wpływa na efektywne wykorzystanie czasu nauki?

Aby nie tracić czasu na próżno, trzeba od samego początku podchodzić do nauki w sposób efektywny. Wyodrębniliśmy główne punkty, które pomagają w skutecznej nauce programowania.

Wybierz właściwe źródła

W Internecie można znaleźć wiele różnych informacji na temat Javy. Łatwo się w tym pogubić. Czasami, jeśli nie rozumie się jakiegoś tematu warto wyszukać nowe źródła, a przed samym rozpoczęciem nauki opłaca się dokonać wyboru: 1 kurs główny i 1-2 źródła pomocnicze, takie jak książki Javy lub samouczki. Trzymaj się ich. W ten sposób zaoszczędzisz swój czas, unikając błądzenia bez celu po Internecie w poszukiwaniu czegoś.

Bądź gotowy do ciągłego i intensywnego uczenia się

John Selawsky, nauczyciel języka Java i Software Developer, powiedział w jednym ze swoich artykułów, że czasami miał kilku uczniów, którzy radzili sobie z programowaniem zadziwiająco dobrze, lecz niektórzy z nich po prostu przestawali się uczyć. Ich problemy nie dotyczyły czasu wolnego, wieku czy płci. Nie chodziło o umiejętności! Chodziło o konsekwencję. Wszyscy odnoszący sukcesy uczniowie mieli stały harmonogram i trzymali się go. Robili postępy, nawet jeśli czasami były powolne. Należy więc opracować plan zajęć (można go wziąć z kursu głównego lub samouczka) i wyznaczyć czas na naukę. Chcesz, aby programowanie w języku Java stało się twoim zawodem? Jeśli tak, przygotuj się na codzienną naukę przez 1–3 godziny. Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 8Według ankiety CodeGym, 52,3% naszych uczniów, którzy odnieśli sukces, ćwiczyło od 1 do 3 godzin dziennie.

Dobry stosunek teorii do praktyki

Nie można nauczyć się pływać nie próbując pływać, jedynie czytając o tym książki. To samo dotyczy programowania. Nie można nauczyć się programowania bez pisania kodu. Programowanie najlepiej ćwiczy się... programując. Ważne jest, aby zacząć pisać kod jak najwcześniej. Nie trzeba uczyć się zbyt wiele teorii naraz, zwłaszcza w pierwszych miesiącach nauki. Lepiej jest przyswajać ją małymi porcjami, a następnie natychmiast zastosować tę wiedzę w praktyce. Zatem 20% czasu przeznacza się na teorię, a 80% na praktykę. W tym miejscu warto wrócić do pierwszego pytania: „Co to znaczy znać Javę” i lepiej wyjaśnić odpowiedź na to pytanie. Znajomość Javy oznacza umiejętność kodowania w Javie. Nie „znanie się na Javie”, ale umiejętność pisania programów o różnej złożoności i posiadanie określonego doświadczenie w tymże kodowaniu właśnie.

Dobry stosunek do łatwych i trudnych zadań

Nowicjusze dość często próbują rozwiązywać zbyt trudne zadania, podejmując wielokrotne, żmudne próby. Jeśli będą to robić zbyt długo, rezultat może być skranie przeciwny do naszych oczekiwań. To prosta droga do utraty motywacji. Dla początkujących korzystniejsze jest rozwiązanie wielu małych i prostych zadań niż kilku skomplikowanych. W pierwszych miesiącach nauki dobry stosunek to 1 zadanie trudne do 10–20 zadań stosunkowo prostych. I jeszcze jedno: jeśli zadanie jest dla ciebie zbyt skomplikowane i próbowałeś je rozwiązać kilka razy, bądź na tyle odważny, aby... odłożyć je na później, gdy będziesz mieć więcej wiedzy. Lepiej jest rozwiązać kilka łatwiejszych zadań, a potem wrócić do wcześnie niezdobytej twierdzy. Lub… jeśli nadal uważasz, że to odpowiedni moment, aby go rozwiązać - nie bój się zapytać. To jest następny punkt.

Umiejętność zadawania pytań

Początkujący często wahają się, czy powinni zadawać pytania na forach i w społecznościach, ponieważ uważają, że ich pytania są głupie. No cóż, może nawet i są! Ale nic w tym złego i nie ma co rozpaczać. Każdy programista był kiedyś na twoim miejscu i potrzebował odpowiedzi na podobnie głupie pytanie jakiegoś nowicjusza. No i co? Społeczności programistów są w pewnym sensie nastawione na współpracę. Programiści zwykle pracują w zespole i każdy z nich kiedyś był początkujący. Każdy uczeń, a nawet każdy świetnie doświadczony programista od czasu do czasu zadaje głupie pytania i nie ma w tym nic złego. Jeśli więc coś poszło nie tak, przejdź na forum i zadaj pytanie! Może to być na przykład JavaRanch, Stack Overflow lub CodeGym Help. Najlepsze fora do zadawania pytań lub szukania odpowiedzi:

Jak długo uczyć się języka Java, aby dostać pierwszą pracę?

Zbliżyliśmy się do punktu, w którym możemy odpowiedzieć na główne pytanie tego artykułu: jak długo trzeba się uczyć języka Java, zanim zacznie się wysyłać CV i szukać pierwszej pracy? Na podstawie danych z ankiety i wywiadów z uczniami stworzyliśmy poniższe wykresy, w których uwzględniono początkowy poziom respondentów oraz jedno z trzech potrzebnych stanowisk. Dla każdej grupy określiliśmy przedziały czasowe, w których uczono się języka Core Java oraz czas, jaki poświęcili na naukę powiązanych technologii potrzebnych do zdobycia pierwszej pracy. Uwaga! Poniżej znajdują się informacje dotyczące odczytywania wykresów. „Świeżak” charakteryzuje się zerowym doświadczeniem w programowaniu, „Średniak” to osoba, która nauczyła się trochę programowania w szkole lub na kursach. W przypadku programistów Java i Android „Zawodowca” dobrze zna jeden lub więcej języków programowania. A gdy mówimy o automatyzacji testów „Zawodowiec” oznacza osobę, która już pracuje przy testowaniu manualnym i chce zostać ekspertem od wdrażania automatyzacji przy użyciu Javy. Na wszystkich wykresach zastosowaliśmy skalę czasową z podaniem liczby miesięcy. Czerwone prostokąty oznaczają czas poświęcony na naukę Core Java, niebieskie - na inne potrzebne technologie poza Core Java. Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 9Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 10Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 11Ważne jest, aby zrozumieć, że wykresy wskazują średni czas poświęcony przez respondentów z każdej grupy na naukę technologii. W rzeczywistości w każdej grupie byli mistrzowie, którzy radzili sobie z nauką znacznie szybciej, ale byli też tacy, którzy opóźniali naukę o kilka lat. Ogólny czas nauki oznacza moment, w którym kandydaci zaczęli wysyłać CV lub ukończyli swój pierwszy projekt (taki, który zaczął przynosić zyski). Jak wynika z naszego badania, znalezienie pracy zajmuje średnio od miesiąca do trzech. Te miesiące poszukiwań rozpoczynają się po zakończeniu nauki o powiązanych technologiach. Byli szczęściarze, którzy znaleźli pracę tydzień po przesłaniu pierwszego CV, ale byli też tacy, którzy spędzili na poszukiwaniach cały rok. Nieskończoność i dłużej: jak długo trwa nauka języka Java? - 12

Wnioski

Jak długo trwa nauka Javy? Zgodnie z wynikami badań, szybkość uczenia się języka Java i technologii pokrewnych zależy głównie od systematyczności i poziomu początkowego ucznia. Jasne, że teraz nic nie możesz zrobić ze swoim początkowym poziomem, ale regularna nauka jest zdecydowanie twoim obowiązkiem. Jak szybko nauczyć się Javy? Staraj się nie robić długich przerw ani nie odkładać nauki na później. Jest to niezwykle ważne, ponieważ podczas długich postojów nie stoi się w miejscu, lecz stopniowo się cofa. Codzienna praktyka, wytrwałość i motywacja — wszystkie te cechy będą ci potrzebne, jeśli zdecydujesz się uczyć Javy i powiązanych technologii. Jeśli będziesz przestrzegać ustalonego harmonogramu, zachowywać właściwe proporcje między teorią a praktyką, ćwiczyć codziennie przez co najmniej 1-3 godziny i nie bać się zadawać pytań, całkiem możliwe jest opanowanie Javy na poziomie, który pozwoli ci znaleźć pierwszą pracę w ciągu 6-12 miesięcy. ... A potem kontynuuj naukę jako programista/specjalista od automatyzacji testów w nieskończoność i jeszcze dłużej! P. S. A jak jest z tobą? Jak długo na razie uczysz się Javy? Czy ten proces jest trudny? A może już znalazłeś swoją pierwszą pracę związaną z Javą? Czy to było trudne? Może dopiero co zacząłeś jej szukać? Podziel się swoimi doświadczeniami tutaj!