JavaRush /Blog Java /Random-PL /Ścieżka programisty Java
trinit
Poziom 41

Ścieżka programisty Java

Opublikowano w grupie Random-PL
Cóż, moja kolej na napisanie mojej historii. Krótko mówiąc, od 3,5 miesiąca jestem Junior Java Developerem. Jeśli chcesz szczegółów, czytaj dalej. Jak każdy, kto pisze historie zatrudnienia, prawdopodobnie najlepiej będzie zacząć od historii o tym, kim byłem i kim się stałem. Dawno, dawno temu, wiele, wiele lat temu próbowałem zacząć programować. To była druga lub trzecia klasa, zapisałem się do klubu programistów, poszedłem kilka razy, nauczyłem się pisać na klawiaturze swoje imię i nazwisko oraz adres domowy i to był koniec mojego programowania, bo z jakiegoś powodu z tego klubu wypadłem . Nie miałem żadnych umiejętności programowania ani w szkole, ani na uniwersytecie, tak jak uczyłem się na księgowego. Kilka razy próbowałem uczyć się programowania na własną rękę. Miałem w domu książkę o informatyce, która zawierała problemy w Pascalu, ale nic z niej nie rozumiałem i nie było komu tego tłumaczyć, więc dałem sobie z tym spokój. Lata mijały, uczyłem się na księgowego, pracy nie było. Około dwa lata temu w końcu znalazłem pracę u franczyzobiorcy 1C. Poszedłem tam na linię pomocy technicznej użytkownika, ponieważ... Znałem księgowość, a głównym kierunkiem 1C jest nadal ta branża. Po pewnym czasie dyrektor stwierdził, że trzeba będzie się nauczyć programowania, bo... Nie ma do kogo pisać i ta wiedza nie zaszkodzi w pomocy technicznej. Nie było dokąd pójść i to był mój pierwszy krok na tej drodze. Przez dwa miesiące czytałem książkę o platformie 1C, potem wyjaśnili mi, czym jest zmienna, a potem była jak mgła :) Żartuję. Nie rozumiałem niczego poza zmiennymi i musiałem oglądać kursy dla początkujących oparte na Pythonie. Już w trakcie pracy i konkretnych zadań zacząłem rozumieć pętle, tablice i mechanizm debugowania krok po kroku. Prawdziwym przełomem było, gdy odkryłem, jak przekazywać parametry do innych funkcji. Któregoś dnia siedziałem i szperałem w googlach w poszukiwaniu tego, co mogłoby mi pomóc w nauce 1C i na jednym z forów dowiedziałem się, że nauka języka VB.NET może mi w tym pomóc. To był kolejny przełom. Pobrałem książkę „Lukin S.N. Zrozumienie Visual Basic.NET. Podręcznik do samodzielnej instrukcji w 3 tomach” i zacząłem się z nią uczyć. Książka jest bardzo dobra, zwłaszcza dla początkujących. A język dla początkujących też jest dobry, choć wiele osób źle się o nim wypowiada (najwyraźniej pamiętają stary VB). Z jednej strony pozwala na ograniczenie logiki bez rozpraszania się interfejsem użytkownika, z drugiej strony jest jednocześnie proceduralny i OOP. Ponadto VB.NET naprawdę okazał się bardzo podobny do 1C, a raczej 1C był do niego podobny i łatwo było mi programować w 1C przez cały dzień, rozwiązując problemy w pracy, a wieczorem przychodzić i szybko przełączać się na inny język. Cały swój wolny czas i weekendy poświęcałem programowaniu. Mniej więcej w tym czasie zacząłem już mieć dość 1C i zdałem sobie sprawę, że nie mogę zarabiać na 1C (zarabiałem półtora razy mniej niż moi klienci księgowi, dla których pisałem program i których szkoliłem). Zacząłem się zastanawiać, co dalej? Pojawiły się myśli o Androidzie, wydał się ciekawy, obiecujący itp. Znajomy programista powiedział, że piszą w Javie, a Internet to potwierdził. Znajomy powiedział, że lepiej byłoby nauczyć się C++ przed Javą. Już chciałem zacząć, ale w VB.NET była jeszcze ponad połowa książki i nie chciałem rezygnować. Książkę można było przeczytać w miesiąc, jednak uświadomiłam sobie, że samo czytanie bez praktyki nic nie da i postanowiłam napisać jakiś mały, ale własny projekt. W tym celu wybrano notatnik. Napisałem notatnik, który otwiera i zapisuje pliki, określa kodowanie podczas otwierania pliku i koloruje składnię 1C. Potem napisałem kalkulator (nigdy nie myślałem, że to taka skomplikowana sprawa). Potem był kolejny duży, jak na moje standardy, projekt - program do rozwiązywania testów 1C. Rzecz w tym, że pobiera plik tekstowy z pytaniami i odpowiedziami, wkłada to wszystko do pliku Excela (tak, wtedy nie wiedziałem, jak pracować z bazą danych) i wtedy można rozwiązać zarówno sekcję, jak i losowe bilety, itp. Było kilka innych małych programów do zrozumienia przepływów, modyfikatorów dostępu i innych rzeczy. Nadszedł czas, kiedy ukończyłem książkę VB.NET. Bazę miałem wystarczającą, mniej więcej taką samą, jak po 2., a nawet 3. roku studiów. W pracy też umiałem już dobrze pisać i rozumieć dżunglę kodu. Tyle, że praca w końcu stała się nudna, bo żeby pisać na 1C nie trzeba znać się na programowaniu, a w większym stopniu wystarczy zrozumieć mechanizmy platformy. Jak doradził mi przyjaciel, teraz kolej na C++. Otworzyłem książkę o C++ i otworzyłem drugą. Wszędzie piszą, że zanim nauczysz się C++, musisz znać C. Znalazłem książkę o C, przejrzałem ją i pomyślałem „PIEPRZ SIĘ!”, Chcę pisać na Androidzie, POTRZEBUJĘ JAVA. I jakby w końcu i nie rezygnując z C, postanowiłem, tak na przyszłość, przyjrzeć się kursom dla początkujących w Javie. Zgadnij, gdzie się potknąłem? Tak, do naszego ukochanego JavaRush. To był Nowy Rok 2015. Gdy tylko nacisnąłem duży zielony przycisk PLAY, byłem przytłoczony. Pierwsze 10 poziomów było łatwe. Potem była opłata, a dolar był na niespotykanych dotąd wysokościach, trzeba było czekać na zniżkę. W międzyczasie trafiłem na darmowe kursy Pythona o średnim stopniu trudności; rozciąganie mózgu nigdy nie jest złym pomysłem i ukończyłem te kursy, co zajęło mi kolejne kilka miesięcy. Któregoś dnia miałem okazję iść na rozmowę kwalifikacyjną do pewnej firmy, potrzebowali osoby umiejącej pisać w języku Java. Całą noc nie mogłem spać, myślałem, że mogą mnie zapytać, rano powtarzałem różnicę między interfejsem a klasą abstrakcyjną, modyfikatory dostępu, polimorfizm. Ale o nic mnie nie pytali, po prostu napisali listę technologii, których trzeba się nauczyć, po czym obiecali dać mi zadanie testowe, na jego podstawie sprawdzą mój styl kodowania, logikę, a następnie zrobią decyzję o moim zatrudnieniu. Wakat nie dotyczył Androida, ale serwera, może to będzie najlepsze rozwiązanie. Drugiego dnia rzuciłem 1C, ponieważ ten obszar był dla mnie wyczerpany, a zdobywanie groszy i codzienne przerzucanie ton kodu 1C, po czym studiowanie technologii Java, było ponad moje siły. Z zapałem zacząłem studiować technologie Java, które mi dano, czyli tę Nie wiedziałem wtedy, jak pracować z bazą danych), a następnie możesz zdecydować zarówno o partycji, jak i losowych biletach itp. Było kilka innych małych programów do zrozumienia przepływów, modyfikatorów dostępu i innych rzeczy. Nadszedł czas, kiedy ukończyłem książkę VB.NET. Bazę miałem wystarczającą, mniej więcej taką samą, jak po 2., a nawet 3. roku studiów. W pracy też umiałem już dobrze pisać i rozumieć dżunglę kodu. Tyle, że praca w końcu stała się nudna, bo żeby pisać na 1C nie trzeba znać się na programowaniu, a w większym stopniu wystarczy zrozumieć mechanizmy platformy. Jak doradził mi przyjaciel, teraz kolej na C++. Otworzyłem książkę o C++ i otworzyłem drugą. Wszędzie piszą, że zanim nauczysz się C++, musisz znać C. Znalazłem książkę o C, przejrzałem ją i pomyślałem „PIEPRZ SIĘ!”, Chcę pisać na Androidzie, POTRZEBUJĘ JAVA. I jakby w końcu i nie rezygnując z C, postanowiłem, tak na przyszłość, przyjrzeć się kursom dla początkujących w Javie. Zgadnij, gdzie się potknąłem? Tak, do naszego ukochanego JavaRush. To był Nowy Rok 2015. Gdy tylko nacisnąłem duży zielony przycisk PLAY, byłem przytłoczony. Pierwsze 10 poziomów było łatwe. Potem była opłata, a dolar był na niespotykanych dotąd wysokościach, trzeba było czekać na zniżkę. W międzyczasie trafiłem na darmowe kursy Pythona o średnim stopniu trudności; rozciąganie mózgu nigdy nie jest złym pomysłem i ukończyłem te kursy, co zajęło mi kolejne kilka miesięcy. Któregoś dnia miałem okazję iść na rozmowę kwalifikacyjną do pewnej firmy, potrzebowali osoby umiejącej pisać w języku Java. Całą noc nie mogłem spać, myślałem, że mogą mnie zapytać, rano powtarzałem różnicę między interfejsem a klasą abstrakcyjną, modyfikatory dostępu, polimorfizm. Ale o nic mnie nie pytali, po prostu napisali listę technologii, których trzeba się nauczyć, po czym obiecali dać mi zadanie testowe, na jego podstawie sprawdzą mój styl kodowania, logikę, a następnie zrobią decyzję o moim zatrudnieniu. Wakat nie dotyczył Androida, ale serwera, może to będzie najlepsze rozwiązanie. Drugiego dnia rzuciłem 1C, ponieważ ten obszar był dla mnie wyczerpany, a zdobywanie groszy i codzienne przerzucanie ton kodu 1C, po czym studiowanie technologii Java, było ponad moje siły. Z zapałem zacząłem studiować technologie Java, które mi dano, czyli tę Nie wiedziałem wtedy, jak pracować z bazą danych), a następnie możesz zdecydować zarówno o partycji, jak i losowych biletach itp. Było kilka innych małych programów do zrozumienia przepływów, modyfikatorów dostępu i innych rzeczy. Nadszedł czas, kiedy ukończyłem książkę VB.NET. Bazę miałem wystarczającą, mniej więcej taką samą, jak po 2., a nawet 3. roku studiów. W pracy też umiałem już dobrze pisać i rozumieć dżunglę kodu. Tyle, że praca w końcu stała się nudna, bo żeby pisać na 1C nie trzeba znać się na programowaniu, a w większym stopniu wystarczy zrozumieć mechanizmy platformy. Jak doradził mi przyjaciel, teraz kolej na C++. Otworzyłem książkę o C++ i otworzyłem drugą. Wszędzie piszą, że zanim nauczysz się C++, musisz znać C. Znalazłem książkę o C, przejrzałem ją i pomyślałem „PIEPRZ SIĘ!”, Chcę pisać na Androidzie, POTRZEBUJĘ JAVA. I jakby w końcu i nie rezygnując z C, postanowiłem, tak na przyszłość, przyjrzeć się kursom dla początkujących w Javie. Zgadnij, gdzie się potknąłem? Tak, do naszego ukochanego JavaRush. To był Nowy Rok 2015. Gdy tylko nacisnąłem duży zielony przycisk PLAY, byłem przytłoczony. Pierwsze 10 poziomów było łatwe. Potem była opłata, a dolar był na niespotykanych dotąd wysokościach, trzeba było czekać na zniżkę. W międzyczasie trafiłem na darmowe kursy Pythona o średnim stopniu trudności; rozciąganie mózgu nigdy nie jest złym pomysłem i ukończyłem te kursy, co zajęło mi kolejne kilka miesięcy. Któregoś dnia miałem okazję iść na rozmowę kwalifikacyjną do pewnej firmy, potrzebowali osoby umiejącej pisać w języku Java. Całą noc nie mogłem spać, myślałem, że mogą mnie zapytać, rano powtarzałem różnicę między interfejsem a klasą abstrakcyjną, modyfikatory dostępu, polimorfizm. Ale o nic mnie nie pytali, po prostu napisali listę technologii, których trzeba się nauczyć, po czym obiecali dać mi zadanie testowe, na jego podstawie sprawdzą mój styl kodowania, logikę, a następnie zrobią decyzję o moim zatrudnieniu. Wakat nie dotyczył Androida, ale serwera, może to będzie najlepsze rozwiązanie. Drugiego dnia rzuciłem 1C, ponieważ ten obszar był dla mnie wyczerpany, a zdobywanie groszy i codzienne przerzucanie ton kodu 1C, po czym studiowanie technologii Java, było ponad moje siły. Z zapałem zacząłem studiować technologie Java, które mi dano, czyli tę I jakby w końcu i nie rezygnując z C, postanowiłem, tak na przyszłość, przyjrzeć się kursom dla początkujących w Javie. Zgadnij, gdzie się potknąłem? Tak, do naszego ukochanego JavaRush. To był Nowy Rok 2015. Gdy tylko nacisnąłem duży zielony przycisk PLAY, byłem przytłoczony. Pierwsze 10 poziomów było łatwe. Potem była opłata, a dolar był na niespotykanych dotąd wysokościach, trzeba było czekać na zniżkę. W międzyczasie trafiłem na darmowe kursy Pythona o średnim stopniu trudności; rozciąganie mózgu nigdy nie jest złym pomysłem i ukończyłem te kursy, co zajęło mi kolejne kilka miesięcy. Któregoś dnia miałem okazję iść na rozmowę kwalifikacyjną do pewnej firmy, potrzebowali osoby umiejącej pisać w języku Java. Całą noc nie mogłem spać, myślałem, że mogą mnie zapytać, rano powtarzałem różnicę między interfejsem a klasą abstrakcyjną, modyfikatory dostępu, polimorfizm. Ale o nic mnie nie pytali, po prostu napisali listę technologii, których trzeba się nauczyć, po czym obiecali dać mi zadanie testowe, na jego podstawie sprawdzą mój styl kodowania, logikę, a następnie zrobią decyzję o moim zatrudnieniu. Wakat nie dotyczył Androida, ale serwera, może to będzie najlepsze rozwiązanie. Drugiego dnia rzuciłem 1C, ponieważ ten obszar był dla mnie wyczerpany, a zdobywanie groszy i codzienne przerzucanie ton kodu 1C, po czym studiowanie technologii Java, było ponad moje siły. Z zapałem zacząłem studiować technologie Java, które mi dano, czyli tę I jakby w końcu i nie rezygnując z C, postanowiłem, tak na przyszłość, przyjrzeć się kursom dla początkujących w Javie. Zgadnij, gdzie się potknąłem? Tak, do naszego ukochanego JavaRush. To był Nowy Rok 2015. Gdy tylko nacisnąłem duży zielony przycisk PLAY, byłem przytłoczony. Pierwsze 10 poziomów było łatwe. Potem była opłata, a dolar był na niespotykanych dotąd wysokościach, trzeba było czekać na zniżkę. W międzyczasie trafiłem na darmowe kursy Pythona o średnim stopniu trudności; rozciąganie mózgu nigdy nie jest złym pomysłem i ukończyłem te kursy, co zajęło mi kolejne kilka miesięcy. Któregoś dnia miałem okazję iść na rozmowę kwalifikacyjną do pewnej firmy, potrzebowali osoby umiejącej pisać w języku Java. Całą noc nie mogłem spać, myślałem, że mogą mnie zapytać, rano powtarzałem różnicę między interfejsem a klasą abstrakcyjną, modyfikatory dostępu, polimorfizm. Ale o nic mnie nie pytali, po prostu napisali listę technologii, których trzeba się nauczyć, po czym obiecali dać mi zadanie testowe, na jego podstawie sprawdzą mój styl kodowania, logikę, a następnie zrobią decyzję o moim zatrudnieniu. Wakat nie dotyczył Androida, ale serwera, może to będzie najlepsze rozwiązanie. Drugiego dnia rzuciłem 1C, ponieważ ten obszar był dla mnie wyczerpany, a zdobywanie groszy i codzienne przerzucanie ton kodu 1C, po czym studiowanie technologii Java, było ponad moje siły. Z zapałem zacząłem studiować technologie Java, które mi dano, czyli tęlista: 1. OOP. 2. Maven. 3. Płytki Apache. 4. Wiosenny MVC. 5. Hibernacja. 6. Eclipse (polecam nie używać czystego środowiska, ale STS ze Springa - https://spring.io/tools/sts/). 7. Tomcat 8. 8. JUnit. Dodam jeszcze kilka technologii, które warto znać: 9. Bootstrap - dzięki niemu możesz bardzo szybko stworzyć interfejs strony internetowej, nie wymyślając wiesz czego... 10. JQuery - żeby nie pisać ton natywnego JS code + istnieje wiele przydatnych funkcji, takich jak autouzupełnianie () itp. 11. Linux/Ubuntu – w większości przypadków będzie instalowany w pracy. Musisz przynajmniej umieć zainstalować JDK i Tomcat. 12. GIT/inny system kontroli wersji jest koniecznością. 13.JSON. i technologie, które być może trzeba będzie zastosować w projektach: 14. AngularJS - framework JS, bardzo fajna rzecz. 15. MongoDB. 16. KrólikMQ. i bez czego nie możesz się obejść: 17. Angielski! Należało zachować równowagę pomiędzy jakością nauki a czasem na niej spędzonym. Wakat nie mógł na mnie czekać w nieskończoność i to mnie napędzało. Codziennie poświęcałem na naukę około 14-16 godzin. Zaznajomienie się z tymi technologiami zajęło mi 3 tygodnie. Właśnie przeczytałem kilka artykułów o niektórych technologiach i obejrzałem filmy o innych. Poznałem w praktyce ludzi takich jak Spring i Hibernate - oglądałem filmiki z Indianami i powtarzałem to, co robią. Napisałem kilka testów JUnit i po prostu zainstalowałem Tomcat na moim komputerze. Maven uwzględnił zależności w pliku pom.xml. O Eclipse myślałem, że to tylko narzędzie i w każdej chwili mogę się na nie przełączyć z IDEA (jakże się myliłem). Choć nie byłem pewien swojej wiedzy, przyszedł czas na podejście do testu. Zdałem, okazało się, że nie jest to bardzo trudne, bo w ciągu ostatnich 3 tygodni natknąłem się na prawie to wszystko, studiując technologię. Niezbędne było napisanie aplikacji internetowej - menedżera zadań (strony), w której można utworzyć zadanie, zmienić je, usunąć, nadać mu status i datę utworzenia. A także opracuj dla niego moduł rejestracji/logowania. Wszystko to można zrobić bez użycia JS, pięknego interfejsu użytkownika, prostego HTML i CSS. W tym samym czasie pojawiła się zniżka na JavaRush i zapisałem się na abonament, ale nie było już czasu na kursy. Wykonanie zadania testowego było bardzo interesujące. Ukończenie głównej funkcjonalności zajęło tydzień, kolejne 3 na naprawienie drobnych błędów, refaktoryzację, przepisanie z org.hibernate.SessionFactory na javax.persistence.EntityManager, zmianę bazy danych z MySQL na H2 lub HSQLDB, napisanie testów JUnit. Robiąc to wszystko od nowa, napotkałem tysiąc błędów, po drodze nauczyłem się czytać mój ukochany stackoverflow po angielsku i przynajmniej trochę rozumiałem, choć z tłumaczenia Google. Ja też miałem problemy z Eclipse, bo znalazło się ono na liście technologii, którą dostałem na rozmowie kwalifikacyjnej. Powiem tylko, że różnica pomiędzy IDEA a Eclipse jest kolosalna. Wyobraź sobie, że lecisz samolotem, a więc IDEA to samolot z pilotem, a Ty śpisz w fotelu pierwszej klasy i powoli lecisz do celu, a Eclipse - też lecisz samolotem, ale jako pilot , na zewnątrz jest burza i piorun uderza w silnik co 20 minut. A tak na serio, IDEA robi za Ciebie wiele rzeczy, a Ty nawet o tym nie wiesz; w Eclipse wszystko to trzeba skonfigurować, skonfigurować i zarejestrować. W pierwszych dniach „mojego Eclipse” plułem, przeklinałem i okazywałem skłonności samobójcze, po 5 miesiącach pracy z tym IDE mogę powiedzieć, że jest fajne, mocne i użyteczne, trzeba się tylko do tego przyzwyczaić. Ostatecznie wszystko się udało, odbyła się kolejna rozmowa z pytaniami dotyczącymi realizacji funkcjonalności aplikacji i zdałem. Potem kolejny wywiad z reżyserem. Potem część osób decydujących o moim losie pojechała na wakacje, potem były wakacje majowe, potem przywieźli mój komputer i coś jeszcze. Tak minęły kolejne 2 miesiące. W ciągu tych 2 miesięcy udało mi się ukończyć poziomy 13-22 w JavaRush, obejrzeć 2 kursy Batyrshynova na Spring i Spring MVC, swoją drogą, dobre kursy, ale tylko dla początkujących, bo w zasadzie wszystkie przykłady są na poziomie "Hello world". I zabrałem się do pracy. Od razu dali mi projekt - API REST dla zabawki na iOS, komunikacja poprzez JSON. To było bardzo ciekawe, ale trudne. Na początku szczególnie trudno było zagłębić się w coś, czego nigdy nie widziałem – Ubuntu i GIT. Ubuntu można opanować bez problemów, ale GIT to fajna, potężna i złożona rzecz, szczególnie w przypadku dużych projektów i niestandardowych sytuacji. Nigdy nie zapomnę mojej pierwszej pensji, która okazała się 4 razy większa niż w 1C. Zaraz po tym jak dostałem pracę, aby samodzielnie studiować technologię i w ramach projektu testowego, postanowiłem napisać zabawkę, na przykład piaskownicę, aby wdrożyć pewne pomysły. A niedawno go skończyłem. Jeśli chcesz, możesz zobaczyć wynik (ale zdecydowanie zaleca się logowanie z komputera i Chrome, ponieważ nadal jestem kiepskim projektantem układu): http://triangles.cf Pracuję już 4 miesiąc Teraz. Myślałam, że wszystko, co trudne, mam już za sobą, a okazało się, że jest odwrotnie. Przed Tobą nauka języka angielskiego, bo jeśli go nie znasz, to nawet jeśli zostaniesz zatrudniony, nie popracujesz długo. Czytanie dokumentacji, komunikacja z klientami, pisanie kodu i komentarzy - wszystko w języku angielskim. Musisz także ukończyć kursy JavaRush, wzorce uczenia się, algorytmy i inne przydatne rzeczy. Życzę wszystkim powodzenia, łatwego rozwoju i silnego umysłu. Dla tych, którzy pracują i tych, którzy chcą znaleźć pracę. Odniesiesz sukces, musisz się tylko starać i to robić, walczyć ze sobą i z przerwami. JAVA wszystkim!) walcz ze sobą i z wyjątkami. JAVA wszystkim!) walcz ze sobą i z wyjątkami. JAVA wszystkim!)
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION