CodeGym /Blog Java /Random-PL /Nie ma potrzeby walczyć ze złem w fazie rozwoju, ale nie ...
John Squirrels
Poziom 41
San Francisco

Nie ma potrzeby walczyć ze złem w fazie rozwoju, ale nie należy go też dotykać: historia Iriny Programistki

Opublikowano w grupie Random-PL
Wiemy, że studenci CodeGym chcą poznać historie tych, którzy już pracują w IT. Wzięliśmy więc 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 Iriny. W szkole i na uniwersytecie uwielbiała nauki techniczne. Znała się trochę na programowaniu, ale zdecydowała się podjąć pracę w reklamie kontekstowej. Mimo to Irina chciała spróbować swoich sił w rozwoju. Któregoś dnia otrzymała e-mail z informacją, że do konkretnej usługi zatrudnieni są stażyści-programiści. I choć nasza bohaterka nie przeszła rozmowy kwalifikacyjnej, to doświadczenie zmotywowało ją do rozpoczęcia nauki Javy.„Nie trzeba walczyć ze złem w rozwoju, ale też nie należy go dotykać”: historia Iriny Programistki - 1

„Zdecydowanie chciałem spróbować swoich sił w rozwoju”

Po IX klasie, kiedy stanąłem przed wyborem kierunku dalszych studiów (tj. ścieżki technicznej, humanitarnej, ekonomicznej i medycznej), byłem rozdarty pomiędzy ścieżką humanitarną a techniczną. Dla mnie nauki humanistyczne oznaczały karierę dziennikarza, potępiającego zło i opowiadającego się za dobrymi sprawami na całym świecie. Zastanawiając się nad technicznym torem, pomyślałem: jeśli nie będę walczył ze złem, to przynajmniej go nie dotknę. Poszedłem po najmniejszej linii oporu i wybrałem ścieżkę techniczną. Po szkole wstąpiłem na uniwersytet, na kierunku informatyka i inżynieria komputerowa. Niestety, uczelnia nie zapewniała umiejętności posługiwania się konkretnym językiem. W sposób chaotyczny dowiedziałem się kilku rzeczy o C++, C#, JavaScript i układzie interfejsu użytkownika. Na trzecim roku zupełnie przypadkowo zainteresowałem się reklamą kontekstową i przypadkiem dostałem pracę w dość znanej firmie. W rezultacie pozostałem w reklamie przez 2 lata. Cieszyły mnie przyzwoite sukcesy, ale zdecydowanie chciałem spróbować swoich sił w rozwoju. Mój powrót do programowania również nie odbył się bez przemyślanego planu: dostałem w pracy maila z informacją o nowej usłudze, która poszukuje stażystów programistów Java. Zdecydowałem się pójść na rozmowę kwalifikacyjną. Oczywiście w tamtym czasie moja podstawowa wiedza nie była wystarczająca, aby otrzymać ofertę, ale ten epizod skłonił mnie do poszukiwania pewnych zasobów na temat Javy. Natknąłem się na ten kurs w Internecie. Na początku mnie nie wciągnęły: wszystkie śmieszne obrazki i historie o robotach sprawiały, że wydawało mi się to niepoważne, ale naprawdę podobała mi się możliwość ćwiczenia i sprawdzenia swoich zadań. Zwlekałem i postanowiłem spróbować, a potem dałem się wciągnąć.

„Nie udało mi się przejść kilku pierwszych rozmów kwalifikacyjnych”

Uczyłem się bez sztywnego planu, z przerwami: w przerwach w pracy, czasem w nocy. Na poziomie 16-17 zacząłem szukać pracy. W tym czasie uczyłem się przez około trzy miesiące z kilkoma przerwami. Jeśli nie masz doświadczenia zawodowego, chętnie pytają o algorytmy, ale ja też prawie ich nie znałem. Dlatego nie udało mi się przejść kilku pierwszych rozmów kwalifikacyjnych. Musiałem przygotować więcej, poszukać najczęściej zadawanych pytań i zapamiętać odpowiedzi na nie. Pilnie nauczyłem się SQL, studiowałem systemy wersjonowania kodu (IMO, CodeGym wspomina o Gicie na nieracjonalnie zaawansowanym poziomie, dopiero na poziomie 30) i zasady SOLID oraz nauczyłem się algorytmów sortowania. W końcu zostałem zatrudniony jako młodszy programista w małej firmie. Moje zadania w pierwszej pracy były banalnie proste: opracowywanie nowej funkcjonalności systemu, udoskonalanie istniejącej funkcjonalności, naprawianie błędów. Zastosowaliśmy metodologię kaskadową: przedsiębiorca wysyła zadanie, analityk opisuje je nieco bardziej szczegółowo, programista wdraża, analityk testuje, a następnie programista wdraża je w produkt. Nie stosowaliśmy żadnych specjalnych technologii: wszystko napisaliśmy w czystej Javie — monolit zamiast mikroserwisów. Do pracy z bazą danych wykorzystaliśmy nasz własny, autorski framework o zamkniętym kodzie źródłowym. Już na początku był ocean trudności — od nauczenia się, jak wgrać projekt do repozytorium, po to, jak napisać żądanie do bazy danych, aby nie przekroczył limitu czasu. Musiałem dużo wyszukiwać w Google na temat pracy z JSON, SOAP, czym jest Maven i jak zbudować projekt Maven. Nie porzuciłem nauki. Starałam się uczyć przynajmniej co drugi dzień, ale zdarzało się, że musiałam odłożyć to na miesiąc. Ale moim celem było ukończenie cenionych 40 poziomów. Równolegle uczestniczyłem w kursie poświęconym frameworkowi Spring. Wiosna otworzyła przede mną wiele nowych możliwości, a oferty, które otrzymuję dzięki mojemu CV, pomnożyły się wielokrotnie. W czasie kwarantanny zmieniłem pracę i przerzuciłem się na projekt o architekturze mikroserwisowej. Tworzymy serwis umożliwiający wyszukiwanie, sprzedaż, kupno i wynajem nieruchomości mieszkalnych i komercyjnych, a także ubieganie się o kredyt hipoteczny i jego obsługę. 80% naszych usług jest napisanych w Kotlinie. Pozostałe 20% jest napisane w Javie.

Moje plany na najbliższą przyszłość to:

  1. Głębsze zanurzenie w architekturze. Chciałbym dogłębnie zagłębić się w projektowanie architektury backendu.

  2. Nauka C++. Myślę, że na pewno przyda się to każdemu programiście – będzie mógł w razie potrzeby napisać części aplikacji, które muszą działać wyjątkowo szybko. Będzie to przydatne przy wszelkich skomplikowanych obliczeniach matematycznych.

  3. DevOps. Niektóre firmy czynią tę umiejętność nawet obowiązkowym wymogiem dla programistów. I na pewno przyda się w każdej innej firmie.

Absolutnie nie żałuję, że w dziewiątej klasie wybrałem kierunek techniczny i że dwa lata temu odważyłem się rzucić reklamę i rozpocząć karierę programisty. Rozwój jest rodzajem magii, sposobem na uproszczenie skomplikowanych rzeczy, zastąpienie zamieszania jasnością. Obecnie próbuję zainteresować programowaniem mojego 12-letniego młodszego brata. Rok temu dałem mu zestaw startowy Arduino i zastanawiam się nad kupnem dla niego książki o kodowaniu Pythona dla Minecrafta. Kiedy trochę podrośnie, przedstawię mu CodeGym. Myślę, że mu się to spodoba. Jedną ważną rzeczą, jaką otrzymałem od CodeGym, jest uświadomienie sobie, że naprawdę nie należy bać się płacić za dobre materiały. Opłaci się stokrotnie.

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

  • Kontynuuj programowanie. Praca programisty polega wyłącznie na rozwiązywaniu określonych problemów, znajdowaniu określonych błędów i ich poprawianiu. Czasami może się to (i na pewno tak będzie!) wydawać się nieznośnie trudne, nudne i irytujące, ale kiedy w końcu rozwiążesz problem, poczujesz się jak prawdziwy przełom, zwycięstwo, prawie odkrycie. I ten cykl się powtarza. Złość, akceptacja, długie próby i niekończące się niepowodzenia, a potem zwycięstwo. Dreszcz emocji związany z pracą programisty polega na oczekiwaniu na kolejny przełom i zwycięstwo. „Nie trzeba walczyć ze złem w rozwoju, ale też nie należy go dotykać”: historia Iriny Programistki - 2
  • Kontynuuj naukę kiedykolwiek i gdziekolwiek to możliwe. Czytaj artykuły i książki. Znajdź i weź udział w kursach z różnych dziedzin tworzenia oprogramowania. Koniecznie wypróbuj nowe technologie. Zastosuj je do swoich osobistych projektów. Współpracuj z innymi pasjonatami tworzenia oprogramowania. Wymieniaj się doświadczeniami i pomysłami. Dawno, dawno temu to właśnie rozmowy z tak ambitnymi ludźmi pomogły mi nie znudzić się w mojej pierwszej firmie i nie bać się iść dalej.

  • Stąd moja trzecia wskazówka — nie bój się zmian : nowa praca, nowy framework, nowy język (wybacz mi, CodeGym). Wszystkie moje największe zwycięstwa nad sobą wydarzyły się dokładnie w momencie zmiany pracy. Początkowo wydaje się przerażające pójście gdzieś bez pełnego opanowania technologii lub języka, ale stymuluje to duży rozwój w miarę studiowania tej nieznanej technologii lub języka. Pojawia się drugi oddech i odnajdujesz szczególne znaczenie w zrozumieniu i studiowaniu czegoś nowego.

  • Bądź rozsądny w ocenie swoich mocnych stron. Nawet jeśli uda Ci się połączyć pracę, samodzielną naukę w domu, niektóre kursy online, studia, a może i rodzinę, przez jakiś czas istnieje duża szansa, że ​​poczujesz się wyczerpany. Niestety znam kilku chłopaków, którzy wypalili się i porzucili programowanie po dłuższym okresie łączenia uczelni, pracy zarobkowej, a także pracy jako nieodpłatny stażysta programisty. Gdyby wzięli dodatkowy dzień wolny lub urlop naukowy na uczelni, gdyby wzięli jeden dzień na wakacje i odłożyli naukę, gdyby zrobili sobie kilkutygodniową przerwę w kursach online, to może wszystko by się ułożyło różnie.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION