Eugene Cozac o zostaniu programistą najwyższego poziomu

Opublikowany: 2022-10-26

TechBullion: Jak zacząłeś programować?

Eugene Cozac: Dorastając odkryłem moje zainteresowanie matematyką i naukami ścisłymi. Zacząłem programować sam i oczywiście, gdy skończyłem liceum, byłem w 100% pewien, że chcę pracować w IT. Ukończyłem inżynierię komputerową na najlepszym uniwersytecie w Mołdawii. Zanim zająłem się programowaniem, zmontowałem ponad 300 komputerów, ponieważ mój pierwszy stopień naukowy był na kierunku Inżynieria Komputerowa.

TechBullion: Jaki był dla Ciebie jeden z najtrudniejszych projektów na samym początku?

Eugene Cozac: Cóż, nie mogę powiedzieć, że na samym początku miałem jakieś trudności. Ale był jeden w trzecim roku mojej kariery, kiedy zostałem programistą front-end dla Samsung Pay. Ponieważ byłem wiodącym deweloperem UI w Samsung Pay Promotions, byłem odpowiedzialny za wszystko. Samsung Pay miał wtedy ponad 15 milionów użytkowników, a każdy problem lub błąd mógł wpłynąć na ich wrażenia. Jeśli w danym momencie coś poszło nie tak, wszyscy użytkownicy byli w stanie to zobaczyć. Byłem więc bardzo ostrożny i starałem się zapewnić najwyższą możliwą jakość.

TechBullion: Zazwyczaj ludzie specjalizują się w wąskim zakresie języków programowania. Jak to się stało, że jesteś tak wszechstronny w zakresie języków programowania?

Eugene Cozac : Zazwyczaj ścieżka kariery programisty to w zasadzie awans z poziomu Juniora do Seniora z biegiem czasu, z ulepszeniem ich umiejętności. Ale to nie wystarczy. Większość programistów prawdopodobnie pracowałaby w tej samej firmie i nad tym samym projektem przez kilka lat, ale to nie jest sposób, w jaki można stać się czołowym 1% programistów. Ponadto ludzie niekoniecznie są w stanie bardzo szybko zamienić się projektami, a jeśli chcą przenieść się do innej firmy, może to stać się trudne. Chcę więc powiedzieć, że wielu programistów znajduje się w swojej strefie komfortu, co również jest w porządku. Jednocześnie nawet starsi programiści nie zawsze byliby skłonni wziąć na siebie odpowiedzialność za kierowanie projektem, po prostu wykonują swoje zadania. Prawdopodobnie ma to związek z osobowością% większość ludzi po prostu nie chce brać udziału w hackathonach, być częścią nauki lub budować czegoś, co rozwiąże problem w programowaniu. Są trochę leniwi i dobrze sobie radzą w swojej strefie komfortu. Zawsze byłam ciekawa, a moja zdolność do nauki kilku języków wynika z chęci rozwiązania problemu w najlepszy możliwy sposób, a nie z umiejętności kodowania w jeszcze innym języku.

TechBullion: Czy brałeś udział w hackathonach lub sprintach programistycznych?

Eugene Cozac: Niezupełnie. Wiem, że wielu programistów może spróbować swoich umiejętności na hackathonach, ale myślę, że najważniejszą rzeczą jest próba budowania jak największej liczby projektów i pracy w różnych środowiskach. To prawda, że ​​programiści często chcą za pomocą hackathonów zademonstrować innym lub sobie, jak fajni są, ale dla mnie innym sposobem na udowodnienie swoich umiejętności jest zbudowanie własnego frameworka na JS/CSS i upublicznienie go lub zaimplementowanie w firmie, w której pracujesz. I tam, aby udowodnić, dlaczego ta firma powinna używać własnego frameworka, a nie Reacta, Bootstrapa czy Material UI. Zresztą tylko 1% programistów wygrywa hackathony, tworząc własne frameworki, można zbudować platformy, które będą mogły być ponownie wykorzystane przez miliony użytkowników.

Eugeniusz Cozac

TechBullion: Jaki był Twój najszybszy produkt do budowania? Jak wchodziłeś w interakcję z zespołem podczas procesu?

Eugene Cozac: Zazwyczaj programiści pracują w środowisku Agile i mają wiele zadań na sprint (2 tygodnie). Co zrobić, jeśli te zadania są podzielone na 2 tygodnie, ale możesz zrobić wszystko w 3 dni? Nie wszystkie firmy są etyczne, aby prosić o więcej zadań, ponieważ jesteśmy równi, a także Project Managerowie planujemy ilość pracy dla wszystkich programistów. Ale miałem taką sytuację, że byłem wykonawcą dla firmy, w której byłem tylko jednym deweloperem i dlatego wybrałem właśnie tę firmę. Dla mnie praca nad małą liczbą zadań nie była zbyt interesująca, chciałem sam zbudować aplikację internetową dla firmy, na przykład zamiast 5 programistów. W 11 miesięcy stworzyłem system CRM od podstaw do końca, pracowałem nad API, UI, UX. Ten projekt został wykonany bardzo szybko z wieloma funkcjami, takimi jak zarządzanie projektami, śledzenie zapasów, generowanie faktur, tworzenie i zarządzanie wycenami, a także śledzenie zapasów za pomocą GPS. Nie mam aktualnych informacji, ale ten CRM będzie sprzedawany na abonament ze względu na małą niszę biznesu: akustykę w budownictwie.

TechBullion: Co trzeba zrobić, aby być najlepszym programistą?

Eugene Cozac: Wielu programistów może odpowiedzieć, że doświadczenie jest najważniejsze, jeśli chcesz być programistą z najwyższej półki, ale niekoniecznie jest to prawdą. Znam wielu programistów, którzy mają ponad 10 lat doświadczenia, ale wiele projektów lub różnych skomplikowanych zadań może być dla nich wyzwaniem. To może wyjaśniać, dlaczego ktoś potrzebuje 7-8 lat, aby zostać Senior Developerem, podczas gdy innym zajmuje to tylko 4 lata. Najlepszym podejściem jest więc rozwijanie swoich wyjątkowych umiejętności, właściwego sposobu rozwiązywania zadań, a następnie zdobywania doświadczenia. Jednocześnie dobrze jest robić rozmowy kwalifikacyjne w fazie rozwoju do wynajęcia: przeprowadziłem ponad 100 rozmów kwalifikacyjnych dla różnych klientów. Jak już wspomniałem, aby udowodnić swoje wyjątkowe zdolności i umiejętności programistyczne jest wdrożenie projektu we własnym frameworku w firmie, dla której pracujesz. Oznacza to, że nie tylko znasz języki programowania i wiesz, jak korzystać z frameworków, ale możesz zbudować własny framework i udowodnić firmie, że z niego korzysta. Tak więc w oparciu o własne frameworki zbudujesz produkt, z którego będą korzystać miliony użytkowników. Myślę, że może to zrobić tylko 1% programistów. Na przykład buduję własny framework UI, który może być używany w połączeniu z Reactem o nazwie Krypton. Wciąż nie jest skończony, ale dla jednego z moich obecnych klientów używam części Kryptonu do budowy nowego projektu. Tak więc obecny klient nie korzysta z mojego frameworka w całości, ale częściowo, ale mam nadzieję, że dopóki nie zakończymy projektu dla tego klienta, mój Krypton będzie gotowy i ponad 60% projektu zostanie zbudowane na Kryptonie. Ponadto dobrą wskazówką, aby być najlepszym programistą, jest pisanie publikacji naukowych w profesjonalnych czasopismach, mam ich ponad 25. Zrobiłem też ponad 100 recenzji artykułów, ponieważ jako programista musisz być nie tylko częścią programowania, ale także częścią nauki.

TechBullion: Jakie są Twoje najsilniejsze umiejętności?

Eugene Cozac: Powiedziałbym, że możliwość przyłączenia się do dowolnego projektu w dowolnym czasie. Byłem w różnych sytuacjach od kiedy zaczynałem projekt od zera lub dołączyłem kiedy projekt był w trakcie. Wiele firm daje Ci czas około 2 – 3 tygodni na zrozumienie, zwykle u mnie trwa to 2 dni. Deweloperzy o wyjątkowych umiejętnościach są w stanie zrozumieć każdy projekt i zacząć naprawiać problemy lub wykonywać zadania w ciągu kilku dni, a nie tygodni. Mogę też pracować nad 4 projektami jednocześnie. Przypuszczam, że może to zrobić tylko 1% programistów, mam na myśli wszelkiego rodzaju programistów od Juniora do Tech Leadów. Miałem doświadczenie w pracy nad 2, 3 i 4 projektami jednocześnie, osiągając bardzo dobre wyniki, ponadto na każdym z nich jestem co najmniej Seniorem lub liderem zespołu dla około 4 programistów. Ponadto na tym poziomie musisz być w stanie mentorować innych programistów od Juniora do Seniora. Pracować również bardzo szybko nie tylko w codziennych projektach, ale także budować coś w rodzaju frameworka open-source, pisać publikacje naukowe i tak dalej. Jakość. Prędkość. Dywersyfikacja.

TechBullion: Jaki język był dla Ciebie największym wyzwaniem?

Eugene Cozac: Nie sądzę, aby jakikolwiek framework lub język był bardzo trudny, kiedy znasz jeden język programowania, inne są trochę takie same, po prostu mają kilka innych reguł lub framework może mieć mniej lub więcej funkcji. Dla programistów o wyjątkowych umiejętnościach nie istnieje żaden wymagający język programowania.