CodeGym /Blog Java /Random-PL /Przyrzekłem sobie, że nie zwiążę swojego życia z Javą — h...
John Squirrels
Poziom 41
San Francisco

Przyrzekłem sobie, że nie zwiążę swojego życia z Javą — historia programisty Anzora

Opublikowano w grupie Random-PL
Wiemy, że studenci CodeGym chcą poznać historie tych, którzy już pracują w IT. Wzięliśmy sprawy w swoje ręce i uruchomiliśmy cykl o programistach z różnych krajów i firm, którzy ukończyli nasze szkolenie Java. Ta historia dotyczy programisty o imieniu Anzor Karmov (nauczył się języka Java w rosyjskojęzycznej wersji naszego kursu). Od czasów liceum ten facet lubił kodować w Pascalu, ale nie planował zostać programistą. W końcu nauczył się programowania na naszym kursie i od kilku lat pracuje jako backend developer. Anzor opowiada nam, jak tego dokonał.„Przysiągłem, że nie zwiążę swojego życia z Javą” — historia programisty Anzora – 1

„Nigdy nie dotknę tego horroru”

W szkole średniej pasjonowałem się programowaniem i językiem Pascal. Miałem korepetytora. Rozpocząłem studia na uniwersytecie, aby uzyskać dyplom z analityki biznesowej. Ten kierunek studiów obejmował zajęcia z programowania, w tym naukę języków C# i Java. Pamiętam, jak obiecałem sobie, że nie będę wiązał swojego życia z Javą: mój nauczyciel nie wyjaśnił nam podstaw. Materiały do ​​nauki zdawały się opierać na dużej wiedzy, więc wiele było niejasnych. Zakładano, że każdy zna się już na programowaniu. Wtedy pomyślałem: „Nigdy nie dotknę tego horroru”. Moja przygoda z IT zaczęła się od rozmowy kwalifikacyjnej w firmie, która wdrożyła system ERP firmy Microsoft. W swoim dziale IT zatrudniali dwa rodzaje pracowników: programistów i konsultantów. Konsultanci pełnili rolę testerów i menedżerów produktu, podczas gdy programiści, co nie było zaskoczeniem, rozwijali się. Zostałem zatrudniony jako konsultant, ale z mojego CV wynikało, że w szkole uczyłem się Pascala. Na tej podstawie zasugerowali, żebym został programistą. Kodowaliśmy w języku C#L, pieszczotliwie nazywanym „kałem”, będącym swego rodzaju „potomkiem” Pascala. Kiedy mniej więcej zorientowałem się w tej przestrzeni, zdałem sobie sprawę, że jest to, z grubsza rzecz biorąc, najniższe miejsce, w którym programista może pracować. Nie dlatego, że firma była zła, ale dlatego, że język, którego używaliśmy, miał bardzo wąskie zastosowanie. Oczekiwanie zastosowania tej wiedzy gdzie indziej było po prostu nierealistyczne. Pomyślałem, że jeśli jestem programistą, to muszę nauczyć się czegoś bardziej uniwersalnego i mającego szersze zastosowanie.

„Kiedy porzuciłem studia, zbeształem siebie za to, że jestem taki leniwy”.

Wybierając język programowania, którego się uczyć, moja krótka lista sprowadzała się do C++, C# i Java. Z tego co czytałem na forach doszedłem do wniosku, że C++ byłby dla mnie trudny i włamanie się w ten temat zajęłoby dużo czasu. Zdecydowałem się na Javę, prawdopodobnie dlatego, że trafiłem na ten kurs. Języka programowania uczyłem się przez około półtora roku. Mój szef bardzo mi „pomógł”: był potężnym demotywatorem w mojej pracy, ale zdecydowanie zmotywował mnie do nauki języka Java. Był złym szefem i chciałam od niego jak najszybciej uciec. Ale zajęło mi około 1,5 roku, zanim uświadomiłem sobie, że chcę odejść, tyle samo czasu spędziłem na samokształceniu. Uczyłem się na różne sposoby. Sformułowałem plan: bez wątpienia trzeba było zmienić pracę i nauczyć się Javy, ale przez półtora roku nie mogłem konsekwentnie poświęcać temu zadaniu czasu, nie mogłem też uczyć się codziennie. Miałem krótkie przerwy przez miesiąc lub dwa, ale były też miesiące, w których aktywnie się uczyłem. Plan zajęć wyglądał mniej więcej tak: obudziłem się znacznie wcześniej niż zwykle, uczyłem się, szedłem do pracy, uczyłem się tam czegoś, jeśli nie byłem bardzo zajęty, wracałem do domu, a potem uczyłem się ponownie. Kiedy się poddałem, zbeształem siebie za lenistwo, po czym „bliska współpraca” z szefem zainspirowała mnie po raz kolejny i z zapałem wróciłem na studia. Pamiętam, że każdy nowy poziom był coraz trudniejszy od poprzedniego. Jeśli pierwsze poziomy zajęły mi około tygodnia, to bliżej środka spędziłem około tygodnia na rozwiązywaniu jednego zadania. Myśl o całkowitym porzuceniu tego wszystkiego nigdy nie przyszła mi do głowy, bo to był jedyny raz w moim życiu, kiedy zdecydowałam, że niezależnie od tego, co się stanie, dojdę do końca. Przyjąłem takie motto: jeśli długo się o coś walczę, to prędzej czy później coś się uda. Zwykle utknąłem na zadaniach, ale ponieważ wszystkie rozwiązania są gdzieś w Internecie, nie było trudno znaleźć to, którego potrzebowałem. Kiedy było to już zupełnie nie do zniesienia, po prostu chwyciłem gotowe rozwiązanie i wkleiłem. Przy okazji, miałem projekt ćwiczeniowy. Kiedy chodziłem do korepetytora w szkole, chciałem napisać grę o nazwie Sea Battle. To był mój projekt: grasz z komputerem i wpisujesz adres docelowej komórki w konsoli, a komputer wyświetla, czy trafiłeś, przegapiłeś lub zniszczyłeś łódź. W podobny sposób komputer w odpowiedzi strzela, a ty dajesz mu znać, jeśli trafi, chybi lub zostanie zniszczony. Potem utknąłem w fakcie, że nie mogłem zmusić komputera do inteligentniejszego strzelania po uderzeniu statku wielokomórkowego. Kiedy gracz trafi w statek przeciwnika, w następnej turze będzie strzelał albo powyżej, albo poniżej, albo w lewo lub w prawo od poprzedniego trafienia. Nie mogłem zmusić komputera do nagrywania w ten sposób, bo prawdopodobnie nie miałem wystarczającego mózgu. W pewnym momencie pomyślałem, że powinienem w końcu dokończyć wdrażanie tej gry. Usiadłem, napisałem kod, i przezwyciężyłem poprzedni punkt sporny. Jeszcze przed Poziomem 28 poszłam na rozmowę kwalifikacyjną. Potem stwierdziłem, że jest na to za wcześnie. Zdałem sobie sprawę, że nie znam frameworków i nie wiem, jak pracować z bazą danych. Stanąłem przed wyborem: albo przestudiować wszystko do końca na CodeGym i nauczyć się frameworków, albo zacząć chodzić na rozmowy kwalifikacyjne. Postanowiłem poszukać pracy.

„W pewnym momencie nastąpił przełom i wszyscy zaczęli do mnie dzwonić”

Kiedy uczysz się języka Java, masz dwie możliwości: zająć się tworzeniem back-endu lub Androidem. Jednocześnie zacząłem uczyć się Androida. Napisałem kilka prymitywnych aplikacji. Jedna była grą liczbową, a druga kalkulatorem. Moje pierwsze rozmowy kwalifikacyjne nie wypadły dobrze, ponieważ nadal wielu rzeczy nie rozumiałem i nie wiedziałem. Zdecydowałem się wrócić do rozmów kwalifikacyjnych ponad sześć miesięcy po mojej pierwszej rozmowie kwalifikacyjnej (która okazała się epicką porażką). Kiedy byłem znacznie mniej wykształcony w zakresie Javy, z jakiegoś powodu dostawałem mnóstwo zaproszeń na rozmowy kwalifikacyjne, ale po pewnym czasie, gdy podniosłem swoje umiejętności, przestali dzwonić. Trwało to około sześciu miesięcy – sześć dość bolesnych miesięcy. Wkradło się poczucie, że to wszystko na próżno. Plan był prosty: będę się dalej uczyć i prędzej czy później zostanę wezwany na kolejne rozmowy kwalifikacyjne. Na swoim blogu zacząłem publikować odpowiedzi na pytania, które mogą zostać zadane podczas rozmowy kwalifikacyjnej. Zebrałem informacje, przestudiowałem je i zacząłem publikować. Napisał do mnie jakiś facet, podziękował za moje posty i zaoferował pomoc w napisaniu CV, jeśli zajdzie taka potrzeba. Przekazał mi opinię na temat mojego CV, które poprawiłem. Ale z jakiegoś powodu nadal nie zapraszano mnie na rozmowy kwalifikacyjne. Kojarzę to z zastojem na rynku: najprawdopodobniej w czerwcu pracodawcy nie potrzebowali nikogo. „W pewnym momencie nastąpił przełom i wszyscy zaczęli do mnie dzwonić”. Było kilka wywiadów. Na przykład była rozmowa grupowa, podczas której musieliśmy przygotować odpowiedzi na kartkach papieru, a następnie po kolei wzywano potencjalnych programistów, aby udzielili odpowiedzi. Trzecią była rozmowa kwalifikacyjna w firmie, w której obecnie pracuję. Nazywa się to Fabryką Lojalności. Zaczęło się od startupu. Firma rozwija narzędzia marketingowe mające na celu zwiększenie lojalności wobec marki. Nasz produkt to zestaw narzędzi marketingowych, który wykonujemy dla różnych marek, głównie dla restauracji, ale nadaje się również dla stacji benzynowych, salonów kosmetycznych i centrów handlowych. Produkt składa się z systemu CRM oraz aplikacji mobilnej. Jeśli więc klientem jest restauracja, to tworzymy dla niej aplikację mobilną. Klienci restauracji pobierają aplikację mobilną, a właściciel restauracji uzyskuje dostęp do systemu CRM, dzięki któremu może poznać grupę docelową i wysyłać oferty w ramach różnorodnych promocji. W aplikacji docelowi odbiorcy mają możliwość gromadzenia punktów i wymieniania ich na określone nagrody. Jeden z naszych samodzielnych modułów umożliwił integrację z bramkami płatniczymi. Weszliśmy na rynek międzynarodowy na długo przed kwarantanną, ale to właśnie ona wygenerowała tak ogromne zapotrzebowanie na dostawę żywności do domu. Wiele restauracji potrzebowało możliwości umożliwienia klientom składania zamówień za pośrednictwem aplikacji mobilnej i wiele z nich zwróciło się do nas. Nasi klienci, którzy nie korzystali z modułu dostawy jedzenia, poprosili nas o dostosowanie go dla nich. Pomogło im to w utrzymaniu działalności podczas kwarantanny, ponieważ restauracje mogły przetrwać jedynie dzięki dostawom.

„Wziąłem w pracy zwolnienie lekarskie i nie robiłem nic poza jedzeniem, spaniem i pracą nad zadaniem testowym”.

Prawdopodobnie dostałem tę pracę dzięki mojemu listowi motywacyjnemu. To było moje setne przesłanie CV. Byłam w podłym nastroju, bo nikt mnie nigdzie nie zapraszał na rozmowę kwalifikacyjną. W liście motywacyjnym opisałam cały mój ból i wysłałam go. Rekruterka powiedziała mi później, że był to najbardziej wzruszający list motywacyjny w jej życiu i prawdopodobnie z tego powodu zostałam wezwana na rozmowę kwalifikacyjną. Po rozmowie kwalifikacyjnej postawili mi zadanie testowe: napisz program z interfejsem internetowym, który testuje aplikację na Androida przez Wi-Fi. Mój program miał pokazać, które testy wypadły pomyślnie, a które nie. Na wykonanie testu dostałem tydzień. To był najbardziej pracowity tydzień kodowania w całym moim życiu. Wziąłem w pracy zwolnienie lekarskie i nie robiłem nic poza jedzeniem, spaniem i pracą nad zadaniem testowym. W końcu skończyłem i oddałem. Po pewnym czasie zadzwonił do mnie rekruter i powiedział, że tak dobrze poradziłam sobie z testem, że nie mają zamiaru czekać na innych kandydatów. Poszedłem tam, żeby zostać programistą Java, ale okazało się, że wakat jest już zapełniony, więc zaproponowano mi, żebym został testerem, który będzie pisał testy automatyczne. W naszym dziale testowym nikt poza mną nie znał Javy. Powiedziano mi, że istnieje system ręcznego testowania aplikacji mobilnych. Był to program z interfejsem webowym: wchodzisz do interfejsu webowego, łączysz aplikację testową z sesją testową i wtedy widzisz co trzeba zrobić. Moim pierwszym zadaniem było zastąpienie testera, który kliknie w sesji testowej. Wszystko ruszyło niedługo później: zautomatyzowałem pierwszy przypadek testowy, potem drugi i trzeci... Niestety, mój pomysł nigdy nie trafił do produkcji, ponieważ aplikacje mobilne rozwijały się znacznie szybciej, niż mogłem dostosować autotesty dla nich. Później dostałem drugi projekt testów automatycznych — w celu przetestowania interfejsu internetowego. Musiałem pokryć wewnętrzny panel administracyjny testami. Zacząłem pisać program od zera, aby go przetestować. Kiedy kończyłem swój trzeci projekt, zaproponowano mi przeniesienie się do działu z programistami serwerów i napisanie dla nich kodu. Byłem tym zachwycony. W tym dziale zacząłem wprowadzać drobne usprawnienia i zapoznałem się z systemem. Trochę bałam się każdego nowego zadania. Bałam się, że sobie nie poradzę. W końcu wszystko się udało. Obecnie jestem liderem zespołu zajmującego się tworzeniem backendu aplikacji mobilnych. Jeden z moich podwładnych, który jest jednocześnie moim kuzynem, również brał udział w tym kursie Java. Byłem dla niego mentorem. Obecnie jest młodszym programistą. Można powiedzieć, że zmotywowałam go do nauki. To szkolenie pomogło zmienić moje życie na lepsze i chciałam podzielić się tą szansą z moimi bliskimi.„Przysiągłem, że nie zwiążę swojego życia z Javą” — historia programisty Anzora – 3

Wskazówki dla początkujących programistów:

1. Jak organizować naukę

Na początek opowiem o tym, jak się uczyłem. Uczyłem się falami. Były okresy, kiedy w ogóle się nie uczyłem, pewnie z powodu wypalenia zawodowego. Bywały okresy, które trwały miesiąc lub dłużej, kiedy nic nie robiłem. A potem rozpocznie się okres zdrowienia. Stało się to, gdy zdałem sobie sprawę, że jeśli nadal nic nie będę robić, nic w moim życiu się nie zmieni. To przekonanie skłoniło mnie do wstania o 4:30 rano i pouczenia się trochę przed pracą. Uczyłem się w pracy. A po pracy wróciłem do domu i znów się uczyłem. Po pewnym czasie doprowadziło to w naturalny sposób do wypalenia zawodowego i nierobienia niczego przez wiele miesięcy. Nie poddałem się całkowicie, tylko dlatego, że wyraźnie widziałem, że jeśli przestanę, moje życie pozostanie takie samo. I nie podobało mi się moje dawne życie. Dlatego starałam się nawet nie dopuszczać do głowy myśli, że mogłabym przestać. Moje motto brzmiało: „jeśli będziesz się nad czymś długo męczyć, to prędzej czy później coś się uda”. Teraz, po 4 latach, nie polecałbym robić tego samego. Nie sądzę, że każdy zniesie takie samookrucieństwo. Praca bez odpoczynku prowadzi do wypalenia zawodowego. Stres jest korzystny tylko wtedy, gdy po stresie następuje relaks. Tak więc, jeśli chodzi o organizację studiów (jak we wszystkim innym), radzę ci uczyć się po trochu, ale regularnie i w dłuższej perspektywie. Musisz się zrelaksować. Nie zmuszaj się. Mózg zacznie przyswajać wszystko dopiero, gdy będziesz odpoczywać i spać. Oznacza to, że powinieneś równie poważnie podchodzić do nauki i odpoczynku.

2. Jak szukać pracy

To jest proste. Kiedy szukasz pracy, Twoim pierwszym celem jest dotarcie do rozmowy kwalifikacyjnej. Najprawdopodobniej poniesiesz porażkę. Nie myśl więc za dużo o tym, żeby od razu znaleźć pracę. Aby rozpocząć, wystarczy udać się na rozmowę kwalifikacyjną. Aby tak się stało, musisz zrobić tylko 3 rzeczy, aż gdzieś dostaniesz zaproszenie:
  1. Utwórz CV.
  2. Wyślij swoje CV każdemu.
  3. Spójrz na opinie, które otrzymujesz. Jeśli nie otrzymasz wielu odpowiedzi, oznacza to, że Twoje CV jest mało atrakcyjne. Przeczytaj, jak napisać CV, jak ubiegać się o pracę i jak pisać listy motywacyjne. Przejdź do kroku 1.
Po nieudanej pierwszej rozmowie kwalifikacyjnej poklep się po plecach. Opanowanie pewnego zasobu wiedzy i dotarcie do rozmowy kwalifikacyjnej — to wielkie osiągnięcia. Największym błędem w tym przypadku byłoby poddanie się. Oczywiście, nieprzyjemnie jest zostać odrzuconym. Ale wszystko idzie zgodnie z planem i jesteś znacznie bliżej wymarzonej pracy. Twoim następnym celem jest zawalenie kolejnej rozmowy kwalifikacyjnej. A potem jeszcze jeden, i kolejny... I po każdej rozmowie oceń, co się stało. Przyjrzyj się swoim brakom w wiedzy i zmniejsz je. Nie spieszysz się. Najważniejsze jest konsekwentny wysiłek i bycie dla siebie życzliwym. Robisz wszystko dobrze. Pewnego dnia otrzymasz ofertę. To jest cel, do którego zmierzasz. Twoja zasłużona oferta. Jesteś niesamowity! Omawiając ofertę, nie wahaj się zadawać pytań. Najlepiej sporządzić listę pytań z wyprzedzeniem. Poproś o informacje na temat przebiegu pracy. Jakimi zadaniami będziesz się zajmować? A co jeśli pewnego dnia nie będziesz miał ochoty pracować i postanowisz zrobić sobie przerwę? A co jeśli zachorujesz? Jeśli chodzi o urlop, czy możesz wykorzystać wszystkie 28 dni kolejno, czy jest to niedozwolone? Czy będziesz mieć mentora? I tak dalej. Lepiej zadać wszystkie pytania i uzgodnić wszystko od razu, niż później spotkać się z niemiłą niespodzianką. Pamiętaj, że podczas rozmowy kwalifikacyjnej zaloty i ocena działają w obie strony. Oni potrzebują Cię tak samo jak Ty ich.

3. Jak czuć się komfortowo w pracy

Bądź sobą. Nie wahaj się zadawać pytań. Nie bój się popełniać błędów. Jeśli na początku nie rozumiesz zbyt wiele, nie stresuj się. Na początku wszyscy są zdezorientowani. Za około 6-12 miesięcy zaczniesz przynosić firmie realne zyski. W międzyczasie zanurz się w procesie, przestudiuj produkt i kontynuuj naukę.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION