Jeśli zaczynasz krętą ścieżkę do nauki Javy, może wydawać się ona zniechęcająca, a w twojej głowie pojawi się wiele pytań. Ile czasu to zajmie? Od czego mam zacząć? Co z tego wyniknie? To podstawowe pytania, które mogą przyprawić o zawrót głowy. Jeśli więc odczuwasz przytłoczenie, czytaj dalej. Ten krótki przewodnik odpowie na każde z tych pytań (i wiele innych) oraz pomoże zrozumieć, ile czasu należy poświęcić na naukę języka Java i dokąd na dłuższą metę to prowadzi.
![Jak długo trwa nauka kodowania? - 1]()
![Jak długo trwa nauka kodowania? - 2]()

Co to znaczy „znać Javę”?
Najpierw zacznijmy od podstaw. Tak naprawdę nauka kodowania często sprowadza się do rozwiązywania problemów. Tak więc, kiedy już opanujesz takie umiejętności, jak naprawianie błędów, używanie frameworków i bibliotek, konstruowanie strony internetowej i kilka innych specyficznych metodologii, możesz śmiało powiedzieć, że pierwsze znaczące kroki zostały już wykonane. Podczas gdy niektórzy programiści uważają, że mają już opanowane kodowanie, gdy tylko ukończą swój pierwszy projekt, natomiast inni sądzą, że powinni otrzymać pierwszą ofertę pracy, aby powiedzieć: „Jestem gotów”.Jak długo trwa nauka kodowania?
Nie ma prawidłowej odpowiedzi na to pytanie, ponieważ każdy przyswaja informacje inaczej — szybciej lub wolniej, w zależności od preferowanego tempa. Lecz z grubsza nie powinno to zająć ci więcej niż 18 miesięcy, nawet jeśli jesteś absolutnie początkującym uczniem, który chce poświęcić co najmniej 2-3 godziny dziennie na naukę Javy. Odpowiednio, im więcej czasu poświęcisz na naukę, tym szybciej będziesz w stanie przenieść swoje umiejętności do rozwiązywania problemów.Czy przeszłość ma jakieś znaczenie?
Oczywiście przeszłość również ma znaczenie. Na przykład nauka kodowania od podstaw może zająć do 18-24 miesięcy, w zależności od twojego komfortowego tempa i innych czynników. Jeśli jesteś zwykłym uczniem z zerową umiejętnością programowania, który chce spróbować nowych rzeczy tylko dla zabawy, to nauka kodowania będzie dość długa (kilka lat lub więcej). Lecz to całkiem w porządku, jeśli podchodzisz do tego zadania jako hobby. Osoby zaawansowane? Zazwyczaj znają podstawy kodowania i rozumieją, jaką dodatkową wiedzę muszą zdobyć, aby lepiej wykonywać swoją pracę. Podobnie, wiedzą już, na jakich tematach powinni się skupić. Trudno jest określić dokładne ramy czasowe dla tego typu uczniów, ale rok jest uważany za rozsądny szacunek. Jeśli jesteś zmieniającym/cą karierę, na pewno znasz swoje cele i dołożysz wszelkich starań, aby jak najszybciej nauczyć się kodować. Najprawdopodobniej zmienisz swoją karierę w mniej niż rok.Jakie umiejętności na początek mogą wzmocnić twoją naukę?
Wiele z nich może usprawnić twoją naukę, a wśród nich możemy wyróżnić: Umiejętność poznania koncepcji kodu. Jest to kluczowa cecha wymagana dla każdego przyszłego programisty. Innymi słowy, potrafisz poznać i zapamiętać koncepcje kodu. Umiejętność adaptacji nowych technologii. Ponieważ żyjemy w szybko zmieniającym się świecie, należy być w stanie otworzyć się na nowe technologie i pojawiające się trendy, iść z duchem czasu i być na bieżąco z tym, co jest modne we współczesnym świecie technologii. Zdolność do rozwiązywania problemów. Umiejętność szybkiego myślenia to jedna z głównych zalet każdego udanego kodera. Solidna zdolność do rozwiązywania problemów może pomóc w ich przewidywaniu, zanim jeszcze się pojawią. Dbałość o szczegóły i dobre umiejętności edytowania. Małe elementy są bardzo ważne dla kodów, ponieważ pominięty dwukropek może zmienić całe polecenie. Wśród innych niezbędnych umiejętności, które mogą przyspieszyć twoją naukę, warto wymienić:- wysoka prędkośc pisania na klawiaturze;
- biegłość w posługiwaniu się liczbami;
- zarządzanie bazą danych;
- umiejętności komunikacji.
Jakie są moje możliwości?
Liczą się również ścieżki kariery. Jeśli chcesz zostać programistą Java, potrzebujesz określonego zestawu umiejętności, natomiast jeśli chcesz związać swoje życie z aplikacjami na Androida, należy posiąść inne zdolności. Istnieją jednak pewne niezbędne wartości dla każdego ucznia Java, niezależnie od przyszłego rodzaju zawodu. Należą do nich:- Składnia Java.
- Zasady OOP.
- Kolekcje w Javie.
- Wyjątki w Javie.
- Strumienie wejściowe/wyjściowe.
- Algorytmy.
- Wielowątkowość w Javie.
- Wzorce Javy.
- Testy jednostkowe.
- Wyrażenia lambda.
- Serializacja w JSON, RMI, HttpUrlConnection, socket.

Jak pozostać konsekwentnym?
Dużym błędem wielu uczniów jest to, że próbują chaotycznie nauczyć się zbyt wielu tematów. Zamiast tego lepiej dowiedzieć się, jaki rodzaj pracy chcesz wykonywać, a następnie ustalić swoje cele taktyczne. Następnie, gdy zdecydujesz się na swój przyszły zawód, możesz zawęzić zakres podstawowych umiejętności, których możesz potrzebować. Po czym zbuduj praktyczną mapę drogową dostosowaną do twoich konkretnych potrzeb i postępuj zgodnie z nią. Kolejnym krokiem jest określenie osobistego harmonogramu nauki, który pomoże ci trzymać się swojego planu. Najlepiej byłoby poświęcić co najmniej 2-3 godziny dziennie na kodowanie. Weź pod uwagę swój styl życia i jeśli jesteś osobą dość zajętą, spróbuj wstać o 5-6 rano i uczyć się godzinę przed pracą i kilka godzin wieczorem. Idealnie byłoby zacząć dzień od teorii, a wieczorami poświęcić więcej czasu na ćwiczenia. Należy starać się osiągnąć równowagę 20%/80% teorii do praktyki. To powiedziawszy, spróbuj ustalić realistyczne, ograniczone czasowo cele bez przeciążania siebie. Nie wywieraj na siebie dodatkowej presji — zastanów się nad swoim stylem życia i poświęcaj rozsądną część swojego czasu na dążenie do robienia postępów w każdym tygodniu.Dodatkowe wspomagacze
Nie pomijaj korzystania z dodatkowych narzędzi do kodowania. Jako przyszły programista warto uzbroić się w najlepsze oprogramowanie pozwalające na sprawne pisanie kodu, sprawdzanie go i testowanie wyników. Do tych najbardziej popularnych, znacząco zwiększających twoją produktywność, należą:- Edytory tekstu, takie jak Sublime Text, TextMate i Vim
- Program REPL (pętla odczytu, oceny i drukowania)
- Przeglądarka kodów
- Narzędzia kontroli wersji (Git, Mercurial, CVS, SVN)
- Narzędzia ciągłej integracji takie jak GitHub, GitLab, Bitbucket
- Narzędzia do ciągłego testowania: JIRA, Selenium, Bamboo, Jenkins, Docker i Tabnine
- Narzędzia do ciągłego wdrażania: Jenkins, Bamboo, GitLab
GO TO FULL VERSION