Jak zmienić branżę i zacząć programować? – wywiad z Super Programistką Martą

Jak zmienić branżę i zacząć programować – wywiad z Super Programistką Martą

To kolejny wpis z serii wywiadów z Super Programistkami! Poznaj Martę – dziewczynę, która kilka lat temu wzięła sprawy w swoje ręce i zdecydowała się zmienić zawód i zostać programistką. Dzisiaj pisze w Pythonie i poprawia jakość życia osób z problemami słuchowymi oraz pomaga innym w zmianie branży

Agata: To zacznij może od powiedzenia, co przyciągnęło Cię do programowania?
Marta:  Pierwszy kontakt z programowaniem miałam w liceum – w ręce wpadł mi podręcznik do programowania, jednak po napisaniu kilku pętli i zadań nie bardzo wiedziałam, jakie powinny być następne kroki. Nie miałam wtedy żadnych kontaktów z programistami. W mojej głowie programista budził skojarzenia z bohaterami filmów, którzy piszą w konsoli – białe albo zielone latające literki. Wtedy po prostu odpuściłam.
Kolejną styczność z programowaniem miałam na studiach. Studiowałam elektrotechnikę, co samo w sobie miało niewiele wspólnego z programowaniem, ale jak przyszło do wybrania pracy magisterskiej, to mój promotor zasugerował temat, który czekał już kilka lat, aż ktoś się wreszcie nad nim zlituje. Chodziło o napisanie programu, który będzie obliczał parametry zwarcia linii wysokich napięć. I zdecydowałam się. Stwierdziłam, że zwarcia umiem, a programować się po prostu nauczę. Teraz – po latach – mogę powiedzieć, że ten kod był po prostu straszny, ale przede wszystkim spełniał swoją funkcję i podawał oczekiwane wyniki, a to było wtedy najważniejsze. Program napisałam w Javie, ucząc się na bieżąco, co i jak zrobić – Googlowałam potrzebne mi informacje, a następnie aplikowałam je w swoim programie.
I dopiero kilka lat później – gdy pracowałam w firmie Samsung na stanowisku testera urządzeń mobilnych we współpracy z siecią komunikacyjną – zgłosiłam się do projektu pisania oprogramowania do analizy logów telekomunikacyjnych. Moja poprzednia rola trochę mnie już zmęczyła i postanowiłam coś zmienić w swoim życiu, a ten projekt wydawał się właśnie świetnym pomysłem. Programowanie było już wtedy coraz bardziej popularne i więcej osób decydowało się na obranie takiej ścieżki kariery, mnie jednak (wtedy jeszcze) mocno hamowało przeświadczenie, że aby zostać zawodową programistką powinnam mieć ukończone studia informatyczne…
Program do analizy logów napisałam w C#, potem powstało jeszcze kilka dodatkowych elementów w Javie. Był to taki moment dla mnie, kiedy poczułam, że coś potrafię. Kiedy wpisałam sobie tę informację w profilu na LinkedIn, pierwsze firmy zaczęły się do mnie zgłaszać z ofertami pracy. I tym sposobem znalazłam swoją pierwszą pracę, gdzie już oficjalnie w umowie było zapisane, że jestem programistką.
Agata: A jak przebiegał ten proces zmiany stanowiska i pracy?

Marta: W Samsungu przez jakiś czas już pracowałam nad rozwojem tego projektu programistycznego, choć oficjalnie byłam testerką. Kiedy już stwierdziłam, że jestem gotowa do zmiany pracy, zaktualizowałam informacje w profilu na LinkedIn i dałam też znać znajomym rekruterom o tym, że szukam pracy, jako programistka.
I początkowo wciąż dostawałam wiadomości o pracy jako tester, jednak odpowiadałam wtedy w wiadomości, że szukam pracy na stanowisku programistki i opowiadałam im, co potrafię, jakie mam doświadczenie i w jakich technologiach już pracowałam. W pewnym momencie to zaczęło działać! Zaczęłam chodzić na pierwsze rozmowy kwalifikacyjne.
Nie było to łatwe, bo na pierwszych rozmowach dostałam feedback, że nie jest źle i chętnie ze mną popracują, kiedy się jeszcze troszeczkę podszkolę. Sugerowali, żeby zgłosić się za pół roku. Z jednej strony zdawałam sobie sprawę z tego, że jestem początkująca, ale muszę przyznać, że to mi trochę jednak podcięło skrzydła… Później jednak trafiłam na rozmowę w firmie, gdzie konwersacja toczyła się wokół tego, co do tej pory robiłam, w czym programowałam, jakie rozwiązywałam problemy i jakie mam podejście do samodzielnej pracy. Co ciekawe, zamiast prosić mnie o napisanie jakiegoś krótkiego programu, algorytmu, oni spytali, czy jestem gotowa nauczyć się kolejnego języka i zacząć pracę w C. Powiedziałam otwarcie, że pracowałam do tej pory w C#, Javie i uczyłam się Pythona, i że chętnie spróbuję też kolejnego języka.
I tak właśnie dostałam pracę, jako młodsza programistka C, gdzie początkowo dużo czasu poświęcałam na naukę tego języka, rozwiązując jakiś drobne problemy. Szybko jednak parłam do przodu! 
Agata: To jak wyglądał ten początkowy proces nauki? Czy firma wspierała Cię w tej drodze?  Marta: Firma mnie wspierała. Mój przełożony techniczny wiedział, że ja tego wsparcia będę na tym etapie potrzebować, więc starał się organizować pracę tak, żeby delegować mi zadania, z którymi będę w stanie sobie poradzić. 
W firmie były jakby dwa rodzaje przeszkód, z którymi musiałam sobie poradzić. Pierwszą był sam język programowania. Cały projekt był pisany w C i wiele rzeczy było bardzo niskopoziomowych – wiadomo, wskaźniki, operowanie na komórkach pamięci itd. Wiele z tych rzeczy było dla mnie albo nowych, albo przynajmniej nie czułam się jeszcze pewnie z danym zagadnieniem. Jednak tę trudność udało mi się dość szybko pokonać. Kolejną przeszkodą natomiast, było to, że obsługiwaliśmy naprawdę bardzo duży i stary system. Niektóre pliki miały po 20 i więcej lat! Bardzo dużo pracy wymagało ode mnie wdrożenie się w sam system po prostu – zrozumienie wszystkich zależności, które tam występują itd.
W firmie zawsze była wyznaczona osoba, która miała mi pomagać i odpowiadać na pytania. Z czasem po prostu tych pytań było coraz mniej i mniej, a potem nagle role się odwróciły – i to ja pomagałam i odpowiadałam na pytania kolejnych osób, które zaczynały pracę już po mnie. To było fajne uczucie.
Agata: To super! A czy potem zostałaś już w backendzie? Marta: Tak, zostałem w backendzie. W tej firmie nabrałam doświadczenia z C, z obsługą system Linux, niektóre automatyzacje pisałam również w Pythonie. I firma, do której przeszłam, szukała właśnie programisty o takim zestawie umiejętności – C i Python. Bardzo mi to wtedy podpasowało, więc zdecydowałam się dołączyć i nadal tam pracuję.
Tworzymy aparaty słuchowe i mój dział zajmuje się oprogramowaniem procesorów sygnałowych, które przetwarzają dźwięk w aparatach słuchowych. Same procesory sygnałowe są oprogramowane w C, natomiast ja w Pythonie tworzę kod, który wspiera pewne kwestie związane z optymalizacją pracy tych procesorów. To taki kod pomocniczy, który jest tam potrzebny, żeby te procesory działały jak najlepiej. Tu się mogę pochwalić taką małą rzeczą, z której jestem dumna – mianowicie dzięki mojej pracy, udało się zoptymalizować jeden z procesorów o 4%! To całkiem sporo, bo w sumie przelicza się to po prostu na czas użytkowania przez użytkownika. Czyli osoba, która nosi taki aparat słuchowy, dzięki mojej pracy będzie mogła używać go 4% dłużej!
Agata: To bardzo super wynik!
Agata: Wspomniałaś, też Linuxa i tak zaczęłam się zastanawiać, że samo programowanie to jest jedna sprawa, ale druga to także narzędzia takie związane z Twoją codzienną pracą. Często będzie to właśnie obsługa Linuxa. Czy stanowiło to dla Ciebie jakąś blokadę, czy może przyszło to tak bardziej naturalnie? Marta: Wiesz co, faktycznie na początku, czyli w tej pracy, w której programowałam w C, tam cały system oparty był na Linuxie. Ja wcześniej nie miałam z tym systemem do czynienia. Wiedziałam, co to jest, ale nie używałam go. I faktycznie to też był taki kolejny level, który musiałam przejść, zmieniając pracę. Musiałam kompletnie przestawić się z Windowsowych okienek na Linuxa – nawet nie bardzo mogłam korzystać z jakichś nakładek graficznych, ponieważ często pracowaliśmy na zdalnych maszynach. Po prostu logowaliśmy się do nich zdalnie i tam mogliśmy wyłącznie operować przy użyciu Command Line.
Początkowo to było trudne, ale starałam się notować, co zrobić i trzymać się zasady, że jak raz o coś zapytam, to potem mam już zapisaną odpowiedź i drugi raz nie będę zadawać tego samego pytania. I jakoś tak krok po kroku zyskiwałam swobodę w pracy z Linuxem.
Poza tym – jeśli chodzi o dodatkowe narzędzia – używaliśmy wtedy Subversion jako systemu kontroli wersji. W kolejnej firmie za to korzystaliśmy z Gita. To też są takie rzeczy, które osoba początkująca musi opanować – poza samym programowaniem. I to też czasami jest problem, zwłaszcza jeżeli ma się do czynienia z dużym i skomplikowanym repozytorium kodu.
Agata: A czy poza pracą, robiłaś jeszcze jakieś specjalne kursy programowania?      Marta: Jak zaczęłam planować, że chcę pracować jako programistka, to zrobiłam taki kurs Pythona połączony ze wstępem do programowania. Był to taki zestaw podstawowej wiedzy dla programisty – struktury danych, złożoność obliczeniowa, algorytmy… To byl kurs na EDX – bardzo fajnej platformie e-learningowej, gdzie kursy często dostępne są za darmo i są wysokiej jakości.
Problemem jednak było to, że uczyłam się Pythona, ale pracowałam w C#, a potem w Javie… Wiedza z tego kursu, ta ogólnoprogramistyczna wystarczyła, ale jeśli chodzi o naukę języków, to uczyłam się na bieżąco, korzystając z Google. Była to więc trochę poszarpana wiedza. Sądzę, że byłoby mi prościej zacząć, gdybym od początku wiedziała, że będę programować w C# i taki kurs zrobiła. Na pewno byłoby łatwiej taką wiedzę usystematyzować. A tak – w głowie tworzy się trochę taki chaos i zajmuje to więcej czasu.   Agata: A co zdecydowało potem o dalszym wyborze i kolejnej zmianie pracy?  Marta: Miałam duży dylemat. Nie do końca mi się podobało w tej firmie, że mieliśmy dość stary kod, który miał mnóstwo, z mojego punktu widzenia problemów. Był to po prostu bardzo ciężki do przebrnięcia kod, dość kiepsko napisany. Miałam wrażenie, że w tej firmie raczej nie mogę liczyć, że to się kiedyś zmieni. Natomiast bardzo dużym plusem tej firmy była kwestia ludzi, z którymi pracowałam. Tam była naprawdę super ekipa i bardzo dobrzy programiści. Pracowało mi się z nimi świetnie i szkoda mi było ich zostawiać, jednak zdecydowałam się ruszyć dalej i przejść do firmy, która ma trochę bardziej nowoczesne podejście do tworzenia oprogramowania. Przekonało mnie też to, że będę tam w znacznie większym procencie używać Pythona i ja po prostu chciałam pracować w Pythonie. 
Kiedy podjęłam decyzję o zmianie pracy, zaczęłam odpowiadać na wiadomości na LinkedIn, że chętnie umówię się na rozmowę. Byłam w kilku firmach i ta, do której ostatecznie trafiłam, najbardziej mnie do siebie przekonała.    Agata: Właśnie dlatego, że było tam trochę więcej Pythona, czy jeszcze jakieś szczególne rzeczy zwróciły Twoją uwagę?    Marta: Było bardziej nowoczesne podejście do programowania. Kolejną kwestią, która mnie przekonała, było to, że firma zajmuje się tworzeniem aparatów słuchowych. Mam w rodzinie osoby, które tych aparatów słuchowych używają, więc jakby doskonale rozumiem, jak ważne to jest dla innych. Jest to po prostu fajna sytuacja, w której robisz w pracy coś, do czego jesteś przekonana, że faktycznie komuś to poprawi jakość życia! Ponadto też dobre wrażenie firma zrobiła na mnie już na etapie rozmowy kwalifikacyjnej.
Agata: Rozumiem. To podsumowując, w zasadzie ile czasu jesteś już w branży? Marta: Około pięciu lat. 
Agata: To gdybyś tak mogła cofnąć czas czy zmieniłabyś cokolwiek w nawigowaniu swojej kariery? Marta: Hm, ciekawe pytanie. Wydaje mi się, że – używając takiej analogii związanej z grami – miałam dość kiepskie karty na początku, ale tymi kartami zagrałam nie najgorzej. Czyli wykorzystałam możliwość, jaką mi dawała praca testera, żeby zacząć programować w tej pracy. Uważam, że każda osoba, która chce się przekwalifikować, powinna od tego zacząć. Czyli jeśli jest to tylko możliwe, to spróbować zacząć programować w miejscu, w którym aktualnie się jest. W wielu firmach jest taka możliwość, żeby wyjść z inicjatywą i powiedzieć “słuchajcie, a może stworzę takie małe narzędzie, które nam ułatwi pracę” – i jest szansa, że ten aktualny pracodawca się na to zgodzi.  Dzięki temu można zacząć zyskiwać doświadczenie już z tej pracy, z której kiedyś planujemy odejść. Ja to zrobiłam. 
Być może lepiej by było dla mnie, gdybym od razu trafiła na firmę, w której programowałabym w Pythonie. Jednak początkowo nie chciałam za bardzo wybrzydzać – miałam podejście, że trzeba zacząć jakkolwiek, a czas na wybrzydzanie przyjdzie później. Pewnie dałoby się coś w tym moim procesie zmiany pracy zrobić lepiej, ale uważam, że poszło nie najgorzej i że najlepszą decyzją było to, żeby zacząć programować w miejscu, w którym byłam na początku tego procesu. 
Agata: A czy to byłaby Twoja rada dla osób, które zastanawiają się nad zmianą branży?  Marta: Tak, ja to mówię właśnie wszystkim, którzy mnie pytają – jeżeli tylko mogą, to niech zaczną programować w miejscu, do którego już należą.  Jeżeli nie mogą tego robić w pracy, ale np. należą do jakiegoś klubu karate, to mogą zaproponować zrobienie strony tego klubu! Po prostu gdziekolwiek jesteśmy, możemy próbować zdobywać doświadczenie i to na pewno bardzo zwiększa szanse juniora. Są osoby, które zrobią kilka kursów i od razu chciałyby podjąć pracę, ale na pytanie o doświadczenie odpowiadają, że nie mają, bo nie mieli wcześniej pracy… A wydaje mi się, że jeśli rozejrzeć się wokół siebie, to gdzieś możemy to doświadczenie zdobywać już samodzielnie wcześniej. 
Agata: Wiem, że nie widzisz, ale siedzę i tak kiwam głową, bo zgadzam się ze wszystkim, co mówisz.  W ogóle bardzo podoba mi się Twoja analogia z kartami i że jest świetna.  
Marta: Bardzo lubię planszówki i mam takie bardzo mocno zgrywalizowane podejście do życia i w ten sposób właśnie analizuję sytuacje. Czasami masz po prostu kiepskie rozdanie i grasz tak, żeby jakoś z tego wyjść. 
Agata: Znakiem tego jesteś całkiem niezłym graczem, wysoki level!  Marta: Dziękuję! 
Agata: Nauka, nauką, ale czy miałaś problem z byciem osobą początkującą i to odbijało się na Twoich relacjach ze współpracownikami? Czy na przykład czułaś, że jesteś inaczej traktowana, lepiej, gorzej? Jak się w ogóle czułaś, wchodząc do branży?      Marta: Wiesz co, firma, w której już bardziej zaczęłam jako pełnoprawna programistka, pełna była życzliwych ludzi! To była nawet trochę zabawna sytuacja, bo to był zespół złożony z samych mężczyzn (w większości sporo starszych ode mnie) i oni byli bardziej przerażeni niż ja, że przyjdzie im do zespołu dziewczyna! Pamiętam, że jak po trzech miesiącach któryś z nich pierwszy raz pozwolił sobie na jakieś brzydkie słowo w moim towarzystwie, to popatrzyli na mnie wszyscy z taką zgrozą… Powiedziałam im wtedy: “Panowie, spokojnie, ja też czasami przeklinam”. I to dopiero wtedy ta atmosfera się jakoś rozluźniła. Poza tym byli bardzo pomocni! Koledzy z zespołu bardzo się starali, żeby jakoś nam się miło układała ta współpraca.
Trafił się jeden facet w innym zespole, z którym musiałam współpracować i okazał się bardzo nieprzyjemny. Pamiętam, że zastanawiałam się wtedy, czy on jest wredny wobec mnie, bo ma 10 lat doświadczenia a ja dopiero zaczynam i myśli, że jestem głupia. W sumie potem się okazało, że on taki jest dla wszystkich i to też poprawiło mi humor, że to jednak nie było wycelowane we mnie, tylko to po prostu człowiek, którego chyba rano coś gryzie w tyłek! 
Agata: To może teraz opowiedz trochę o swoim pomyśle kierowanym do przyszłych programistów! Marta: Pomysł wziął się stąd, że właśnie z racji tego, że udało mi się przekwalifikować, to bardzo dużo ludzi pytało mnie o to, jak to zrobić, prosili mnie o pomoc, żebym jakoś przedstawiła tę ścieżkę. Wcześniej też zajmowałam się rekrutacją techniczną, to mam też więcej doświadczenia w kwestii tego, jak się tworzy CV i jak się zaprezentować na rozmowie. I właśnie zauważyłam, że dużo osób, które się do mnie zgłasza, nie ma pojęcia jak to robić! Są ludzie, którzy potrafią całkiem sporo, ale nie potrafią tego ująć w CV, ani tym bardziej na LinkedIn. No i ludzie, którzy umieją całkiem sporo, ale są przekonani, że tej pracy nie da się dostać! Później jeszcze stworzyłam taki kurs na Udemy, w którym pokazałam 50 pytań kwalifikacyjnych z Pythona i kursanci pisali do mnie w prywatnej wiadomości z pytaniami o to, co dalej. No i okazało się, że jest duże zapotrzebowanie na to, żeby człowieka poprowadzić za rękę i powiedzieć mu: “Słuchaj, najpierw musisz wybrać technologię, potem musisz się nauczyć w niej programować, potem musisz zrobić jakiś projekt, potem musisz pojawić się w sieci i zrobić sobie tego LinkedIna, czy Ci się to podoba, czy nie”.
Tworzę bloga “Jak zostać programistą?” i na niej chcę przedstawić cały proces zmiany branży, a dla osób, które będą chciały, żebym pomogła im przejść przez ten proces krok po kroku, wraz ze skonsultowaniem każdego z tych etapów pojawi się kurs. Teraz taki framework tego działania udostępniam za darmo, bo po prostu chcę, żeby ludzie, którzy się zakopią gdzieś na tym etapie i niestety nie wiedzą, jak ruszyć dalej, po prostu mogli to przeczytać i podjąć decyzję, w którą stronę teraz ruszyć. 
Agata: Bardzo fajny pomysł. Powodzenia z Twoim projektem! Marta: Bardzo dziękuję.