programista android

Co mnie zdziwiło w programowaniu?

8 minut czytania
Komentarze

Witajcie ponownie! Jak co tydzień, mam dla Was kolejny odcinek naszej serii związanej z programowaniem. Dzisiaj chciałbym opowiedzieć o tym, co mnie zdziwiło gdy zacząłem pracować jako programista. Przed rozpoczęciem pracy miałem pewne wyobrażenia o tym zawodzie, jednak część z nich okazała się zupełnie nietrafiona.

Programowanie to nie klepanie kodu

Zanim zacząłem pracę programisty myślałem, że programowanie polega na pisaniu kodu, którego wcześniej się nauczyłeś. Przykładowo jeśli chcesz zrobić zielony przycisk, to po prostu piszesz kod, który wstawia taki właśnie element. Oczywiście wygląda to zupełnie inaczej. Programowanie to rozwiązywanie problemów i tłumaczenie wymagań klienta na język zrozumiały dla komputera. Język programowania to jedynie narzędzie służące do przelania swoich myśli na kod maszynowy (czyli ciąg instrukcji zrozumiałych dla procesora). W zasadzie do napisania dowolnej funkcjonalności możesz użyć każdego z języków programowania. Dla przykładu zamiast PHP mógłbyś użyć języka C++ do napisania serwisu internetowego. W programowaniu mamy ogromną władzę, tworzymy co chcemy, a komputer grzecznie to wykonuje.

Większość osób zaczyna pracować dopiero po studiach

Gdy przyszedłem do swojej pierwszej pracy – prosto po technikum – dużo osób mówiło mi, że wcześnie zacząłem. Zdziwiło mnie to, bo kilku moich znajomych pracowało dorywczo już w szkole średniej. Po przepracowaniu kilku lat w różnych firmach wiem, że faktycznie wcześnie zacząłem. Większość osób naukę programowania zaczyna dopiero podczas studiów. Przeważająca liczba programistów, z którymi rozmawiałem pierwszą pracę zaczynało będąc na ostatnim roku swoich studiów. Jeśli martwisz się, że nie umiesz programować, a w tym roku zaczynasz studia to nie przejmuj się – większość profesjonalnych programistów była w takiej samej sytuacji.

Jeśli jednak chcesz ominąć etap wieloletnich studiów i przyspieszyć swoją karierę w IT, warto wziąć pod uwagę kurs programowania w Coders Lab. W kilka miesięcy (lub nawet tygodni) jesteś w stanie przyswoić wiedzę potrzebną do zostania junior developerem i podjąć pracę w zawodzie programisty. A prawda jest taka, że to właśnie w pracy zyskasz najwięcej wartościowego doświadczenia.

Wszystko psuje się z jakiejś przyczyny

W wielu branżach nie da się wyjaśnić dlaczego coś nie działa. Często przyczynami mogą być zjawiska fizyczne takie, jak opór lub tarcie. Każdy z nas na pewno spotkał się z terminem „zmęczenie materiału”, jako wytłumaczenie przyczyny jakiejś awarii. W programowaniu czegoś takiego nie ma – każdy błąd, nawet najdziwniejszy, ma swoją przyczynę. W programowaniu nie mamy zjawisk fizycznych, nie możemy powiedzieć, że nie wykonała nam się pętla, bo jest zbyt wilgotno. Za każdym błędem stoi człowiek, bo to my wszystko tworzymy. Czasami błąd może być niezależny od Ciebie, bo występuje na przykład w systemie operacyjnym, jednak to nadal jakiś człowiek jest za niego odpowiedzialny.

android programista deweloper

Jako przykład mogę podać błąd który pochłonął tydzień mojego życia. Z logów pewnej aplikacji wywnioskowaliśmy, że akcja po kliknięciu przycisku wykonuje się kilka razy, a nie raz. Prościzna – pomyślałem i na początku sprawdziłem, czy zabezpieczamy użytkownika przed przypadkowym kliknięciem w ten przycisk kilkukrotnie. Okazało się, że nie ma możliwości, aby użytkownik to zrobił, bo po pierwszym kliknięciu pokazujemy ekran ładowania, który wszystko zasłania. Drugim moim krokiem było sprawdzenie, czy kod odpowiedzialny za tę akcję nie jest powielony kilka razy. Tutaj też okazało się, że wszystko jest w porządku. W tym momencie wydawałoby się, że problem nie ma rozwiązania i może jednak wilgotność powietrza ma coś z tym wspólnego. Tylko czysty przypadek sprawił, że udało się znaleźć przyczynę problemu. Jednej z naszych testerek udało się wywołać ten błąd. Po przeanalizowaniu logów okazało się, że jedna z zewnętrznych bibliotek powodowała zacięcie się całego systemu i użytkownik mógł kliknąć w przycisk kilka razy. W momencie, gdy system wznawiał swoją pracę, to wykonywał kod odpowiedzialny za akcję przycisku kilkukrotnie jednocześnie. Nikt z całego zespołu nie wpadł by na to, że przyczyna problemu może być tak dziwna.

Czytasz więcej kodu, niż go piszesz

Czytanie kodu napisanego przez innych programistów jest nieodzowną częścią tego zawodu. Pracując w zespole obowiązkową praktyką jest tworzenie tak zwanych Pull Requestów. Oznacza to, że jeśli skończysz implementować jakąś funkcjonalność, to zbierasz cały swój kod do kupy i pokazujesz współpracownikom. Oni oceniają czy napisany przez Ciebie kod jest dobry i ewentualnie sugerują jakieś poprawki. Oczywiście są do tego narzędzia, które sprowadzają całą procedurę do kilku kliknięć myszką. Tak, jak inni będą czytać i oceniać Twój kod, tak Ty musisz czytać i oceniać kod innych. Dzięki temu każdy ma kontrolę nad tym, co się dzieje w różnych częściach aplikacji, nad którą pracujecie. Poza czytaniem kodu współpracowników będziesz również czytał sporo kodu zupełnie obcych ludzi. Nie da się programować bez czerpania wiedzy z internetu – bardzo często będziesz wykorzystywał kod, który ktoś wcześniej napisał. Takie podejście potrafi oszczędzić naprawdę sporo czasu.

Większość programistów jest młodych

Programowanie to branża, która jest stosunkowo młoda. Oczywiście pierwsze programy powstawały już w pierwszej połowie 20 wieku. Jednak prawdziwy boom nastąpił dopiero po spopularyzowaniu Internetu oraz smartfonów. Ja w swojej karierze nie spotkałem w żadnej firmie nikogo, kto miałby więcej niż 40 lat. Przekłada się to na fajną atmosferę w pracy, bo łatwo jest znaleźć wspólne tematy.

Nie ma rywalizacji

Nigdy nie spotkałem się z rywalizacją o to, kto będzie lepszym programistą w firmie. Każdy sobie pomaga i nie wyśmiewa czyjejś niewiedzy. Dzięki temu zespoły programistyczne są bardzo silne i każdy wie, że w razie problemów może liczyć na czyjąś pomoc. Brak rywalizacji jest odczuwalny nie tylko na poziomie jednej firmy lecz nawet w szerszych kręgach. Programiści zrzeszają się w różne grupy tak aby powymieniać się doświadczeniami.

Manager jest dla Ciebie

Zanim zacząłem pracować w dużych firmach myślałem, że manager to ktoś, kto tylko na Ciebie naciska, abyś pracował szybciej. W rzeczywistości manager ma Ci pomagać. To do niego możesz zwrócić się z każdym problemem. Często będziesz potrzebował jakiejś decyzji od klienta – to właśnie manager będzie walczył z klientem o szybkie podjęcie takiej decyzji.

Warto znać kilka technologii

Zaczynając naukę programowania wiedziałem, że chce zostać programistą aplikacji na Androida. W mojej pierwszej pracy również byłem odpowiedzialny za tworzenie aplikacji androidowych. Cały czas myślałem, że ludzie specjalizują się tylko w jednej technologii i w niej się rozwijają. Wydawało mi się trudne lub wręcz niemożliwe żeby być dobrym w kilku technologiach. Jednak po pewnym czasie sam zacząłem się uczyć drugiej technologii używanej do tworzenia aplikacji internetowych. Z perspektywy czasu wiem, że to był bardzo dobry wybór. Dzięki znajomości dwóch różnych technologii, masz większe szanse na zdobycie jakiś dodatkowych zleceń. Również mniejsze jest prawdopodobieństwo, że się wypalisz jako programista, ponieważ jeśli znudzi Ci się już pisanie w jednym środowisku, to możesz łatwo przerzucić się na coś innego.

Luźna atmosfera

Zanim zacząłem pracę to nie wiedziałem za bardzo jak to wygląda. Myślałem, że wszyscy siedzą przy komputerach i tylko piszą kod. Zdziwiłem się, gdy okazało się, że atmosfera jest mega luźna. Jak już pisałem w poprzednich odcinkach, nie da się bez przerwy pisać kodu, bo nasz mózg szybko się męczy. Dzięki temu, że programiści robią sobie częste przerwy, będziesz miał dobry kontakt ze współpracownikami. Nie ma nic lepszego, niż praca w gronie osób, które dobrze się znają!

Programy konsolowe stają się żywe

To zdziwienie wystąpiło u mnie jeszcze zanim zacząłem pracę. Podczas nauki programowania przeważnie zaczynasz od pisania jakiś prostych programów, które wypisują wynik w wierszu poleceń. Bardzo często myślałem: po co mi te wszystkie pętle i ify jak to nie daje żadnego realnego działania. Zastanawiałem się jak z takich pętli można utworzyć taką aplikację, jak na przykład YouTube. Gdy stworzyłem swój pierwszy program na Androida i zobaczyłem, że te wszystkie elementy są tam używane byłem bardzo szczęśliwy. To było wspaniałe uczucie – zrozumiałem wtedy, że te wszystkie godziny nauki nie poszły na marne. Wam też życzę, żebyście poczuli to samo!

Mam nadzieję, że udało mi się rozwiać część Waszych wątpliwości i dzięki temu artykułowi wiecie więcej o tym zawodzie. Tradycyjnie widzimy się już za tydzień. W kolejnym odcinku napiszę, co należy robić, aby nie stracić motywacji.

Zapraszam również na największe w Polsce Forum dla programistów Android. Jeśli macie pytania odnośnie kariery jako programista – zapraszam do działu Kariera programowanie.

Poprzednie odcinki:

  1. Typowy dzień pracy programisty
  2. Wady pracy programisty
  3. Zalety pracy programisty
  4. [FAQ] Wszystko, co powinieneś wiedzieć jeśli interesuje Cię praca programisty

Motyw