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. I 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ę:
- InternetExplorer został wymyślony przez szatana, aby programiści cierpieli przez całe życie.
- Google Chrome jest znacznie bardziej skomplikowany, niż się wydaje. To dosłownie dziesięć razy trudniejsze, niż się wydaje.
- Nienawidzę rozwoju frontendu.
GO TO FULL VERSION