JavaRush /Blog Java /Random-PL /Jak zostałem programistą

Jak zostałem programistą

Opublikowano w grupie Random-PL
Po około 5 latach pracy jako barman wrzuciłem swoje rzeczy do plecaka i wsiadłem w pociąg powrotny ze stolicy, z domu na prowincję, do rodziców. Uznałem, że 25 lat to właśnie wiek, w którym należy zająć się sobą, a nie butelka whisky. Ponieważ moje dwa wyższe wykształcenie nie zapewniały mi normalnego dochodu, a moja specjalność po prostu nie była zainteresowana, postanowiłem spróbować zostać programistą. Pomyślałem: dlaczego nie? Modne, dobrze płatne, bez pracy rąk i stania na nogach - idealnie! Nie przeszkodziło mi to nawet w tym, że wcześniej nie znałem nawet nazwy języka programowania. Jak zostałem programistą – 1I tak, wydając ostatnie pieniądze na bilet do domu i abonament tutaj, ułożyłem plan studiów i 10 listopada 2015 roku rozpoczęły się moje studia. Na szczęście dla mnie programowanie okazało się nie tylko modne, ale i ciekawe. Pierwsze 10 poziomów ukończono w ciągu miesiąca i okazało się to cholernie ekscytujące. Drugie 10 poziomów również zostało ukończonych w ciągu miesiąca, ale mój Boże, ile razy uderzałem głową w ścianę (dosłownie), próbując rozwiązać problem, a mimo to nadal torturowałem Google i tę rzecz, która sprawdza problemy (nie nie pamiętam jak to się nazywa). Zrobiłem sobie małą przerwę z okazji świąt noworocznych i kontynuowałem z nową energią. Od poziomów 20 do 30 rozwiązałem to przez kolejny miesiąc i tutaj było już trudno (nadal nie rozwiązałem problemu z poziomu 27 - jest po prostu okropnie). Już miałem kontynuować swój maraton przez kolejny miesiąc, ale nagle pojawił się kurs dla programistów Java, w najfajniejszej firmie w mieście. Po rozwiązaniu zadania testowego zostałem przyjęty. Moja radość nie miała granic, już marzyłam o tym, jak po kursach mnie zatrudnią (to była standardowa praktyka w tej firmie). Kursy okazały się naprawdę fajne: 10 wykładów po około 2 godziny każdy przez 2 miesiące i 10 zadań domowych w oparciu o materiał wykładowy (JDBS, JPA, Hibernate, SQL, Servlet, rest, maven, git). Dla każdego tematu konieczne było napisanie prostej działającej aplikacji crud. Ale najfajniejszą rzeczą w tych kursach jest to, że te zadania zostały sprawdzone przez programistów z tej firmy i przeprowadzili bardzo (BARDZO) wybredną recenzję kodu. I nie podjęli się zadania, dopóki nie byli usatysfakcjonowani poziomem napisania programu. Rozwiązałem wszystkie zadania i nawet (o ironio) dali mi zaświadczenie o ukończeniu kursu. Następnego dnia zadzwoniłem i poprosiłem o przyjazd do nich do pracy. Wysłali mi zadanie testowe i oblałem je spektakularnie. Nie było nawet wywiadu. To był ból. Zajadając smutek dżemem, przeglądałem wiadomości o tej firmie, marząc o zemście, ale nagle natknąłem się na ogłoszenie, że organizują wydarzenie, na którym zgromadzą wszystkich zainteresowanych i bliskich IT, aby naśladować proces prawdziwy zespół rozwijający produkt, którego klientami byliby pracownicy firmy. W ciągu dwóch tygodni wraz z moim zespołem napisaliśmy „całkiem niezły” harmonogram zadań w Swingu. Byłem wtedy strasznie dumny, że to było 4000 linii kodu. W dwa tygodnie nauczyłem się tak wiele o Swingu, że mógłbym uczyć się go sam przez dwa miesiące, było super. Żując z radości pierniki, ponownie przeglądałem stronę internetową tej firmy i marzyłem o pracy tam, ale nie było wolnych miejsc, był natomiast hackaton. W temacie mikrousług (inteligentny dom). Niezbędne było wykorzystanie Springa do połączenia się z czujnikami emisji z inteligentnego domu i odpowiedniego przetworzenia z nich informacji. Zwycięzcą zostaje ten, którego algorytm przetwarzania najlepiej reaguje na sytuacje symulowane przez pracowników. Wygrałem to! A miesiąc później zostałem tam zaproszony na rozmowę kwalifikacyjną! Od razu! bez zadania testowego. Aaa i werble - znowu mi się nie udało! Ponieważ nie mogłem napisać algorytmu odwracania łańcucha! (odwrotna linia KARL!!!). To była jednocześnie epicka porażka i facepalm. Poczułem się na nich jeszcze bardziej urażony. Ale zdecydowałem, że byłoby niedorzecznie przestać teraz i kontynuowałem. Znalazłem stronę acmp.ru (to nie jest reklama, ale jest fajna) z problemami związanymi z programowaniem Olimpiady. I osiedlił się tam na dwa miesiące. Istnieje archiwum zadań (700 sztuk) posortowanych według stopnia trudności. Zacząłem od najprostszych. Kiedy rozwiązanie jednego problemu zaczęło zająć około 5-6 godzin, poddałem się. Rozwiązałem 301 problemów i wziąłem udział w kilku olimpiadach na tej stronie. Nauczyłem się pisać algorytm odwracania łańcucha. Nauczyłem się też na pamięć algorytmów szybkiego sortowania i sortowania przez wstawianie, dowiedziałem się, czym jest graf, jak wygląda i jak czegoś w nim szukać, co to jest programowanie dynamiczne i jak z niego korzystać, ale cholera, nadal nie mogę zrozumieć, jak działa algorytm bicza -Morris-Pratt. Sapiąc głośno i patrząc ze złością na tę samą firmę, wysłałem swoje CV do wszystkich innych firm w mieście. Na stanowisko front-end odpowiedziały 3-4 firmy. Po rozwiązaniu zadań testowych w javascript (podczas rozwiązywania biegałem w kółko krzycząc - Zamknięcia, co to są zamknięcia??!!) . Przeszedłem rozmowę kwalifikacyjną i zostałem zatrudniony na dumnym stanowisku młodszego programisty JavaScript. Stało się to dokładnie rok po rozpoczęciu moich studiów. Pracując tam przez dwa miesiące, zdałem sobie sprawę:
  1. InternetExplorer został wymyślony przez szatana, aby programiści cierpieli przez całe życie.
  2. Google Chrome jest znacznie bardziej skomplikowany, niż się wydaje. To dosłownie dziesięć razy trudniejsze, niż się wydaje.
  3. Nienawidzę rozwoju frontendu.
Był taki czas, że 3 dni spędziłem na pisaniu złożonej animacji 30 obiektów, żeby działała wszędzie i robiła to płynnie i pięknie. A potem projektanci zmienili to jeszcze trzy razy (TRZY cholerne razy!!) całkowicie! I właśnie w apogeum mojej nienawiści pojawił się wakat na stanowisku Java juniora. Po prostu tam pobiegłem. Zadanie testowe, rozmowa kwalifikacyjna, telefon i już jestem dumnym juniorem Java z pensją dokładnie dwa razy wyższą.To było w kwietniu. Firma jest bardzo mała - 6 osób. Zajmuje się modelowaniem procesów (pełne modelowanie ogromnych wyrobisk, kopalń i kopalń, modelowanie, a następnie optymalizacja firm logistycznych). Sam prawie nie zajmuję się modelingiem. Piszę edytor 3D do wizualizacji modeli (obecnie go mamy, ale zaczyna się zawieszać przy dużych zbiorach danych). Technologia OpenGL zaimplementowana w Javie w bibliotece lwjgl. To jest to, co teraz robię. Ładuj dane bezpośrednio do karty graficznej, shaderów i ton geometrii analitycznej. Dokładnie dwa lata później, w pamiętnym dniu (10 listopada), planowałem przejść certyfikację od Oracle Java SE 8 Programmer (1Z0-808). A teraz jestem certyfikowanym specjalistą Java (zdany na 87%, test faktycznie jest łatwy... głupio jest pracować z kompilatorem). Właśnie tak. Powodzenia wszystkim. PS I HR z tej samej firmy już do mnie dzwonili trzy razy i oferowali pracę. Na razie odmawiam. Zemszczę się.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION