Czego nauczyło mnie programowanie? - GeekWork

Czego nauczyło mnie programowanie?

Przez część swojego dorosłego życia mocno narzekałem na to, że nie posiadam żadnej twardej kompetencji. Jestem niezły jeśli chodzi o sprzedaż, dobrze radzę sobie z wystąpieniami publicznymi. Ale wszystkie te rzeczy zwyczajnie trudno zmierzyć. Od kilku lat na mojej liście projektów wisiało – „nauczyć się programować”.

Ale to był źle wyznaczony cel…

Kilkukrotnie już o tym pisałem. Raz do roku mam zwyczaj wykonywania czegoś w stylu „dnia kolekcjonowania” z metodologii GTD (więcej w tym artykule).  Oczywiście nie byłbym sobą, gdybym oprócz faktycznie zebrania wszystkich rzeczy nie dokonał ich selekcji. Mniej więcej na początku września robię więc dosyć szczegółową listę – tego co mi się w głowie pojawia, jakimi projektami chce się zajmować.

Podobny wpis:
Jak wybrać kredyt gotówkowy?

A potem zgodnie z metodą zaczerpniętą z książki „Esencjalista. Mniej, ale lepiej” dokonywałem oceny punktowej każdego pomysłu w skali 1 do 10. Więcej o tej metodzie możesz posłuchać w podcaście „Czego nauczyły mnie podróże?”. Wszystkie rzeczy z oceną poniżej 8 – odkładałem na „kiedyś/może”. Od kilku lat tak właśnie robiłem z programowaniem.

W 2018 na poważnie zastanawiałem się nad dalszym rozwojem kariery. Uznałem wtedy, że nie ma sensu się uczyć – lepiej delegować.

Ale przy projektach, które realizowaliśmy czasami irytowało mnie to, że nie potrafię sam czegoś szybko poprawić i jestem zależny od innych. Z drugiej strony… Samodzielna nauka wydawał się niesamowicie trudna.

W 2019 nauka programowania nadal nie wskoczyła na listę realnych priorytetów. Rozwój agencji Outspace, zmiany w szeregach i ekscytujące projekty. Uznałem wtedy, że zwyczajnie nie znajdę czasu na tak dużo nauki. A nie chciałem kolejny raz wylądować z umiejętnością, z którą niewiele mogę zrobić.

Coraz mocniej z tyłu głowy klarowało się marzenie – „zbudować mały SaaS (program w chmurze) i wyjść z bezpośredniej obsługi klientów”.  Przez ostatnie kilka lat byłem czasem zapraszamy jako ekspert lub doradca, który sprawdzał dany pomysł na biznes. Dobrze radzę sobie z excelem (sic!) i wydawało mi się, że potrafię policzyć czy dany biznes ma realne szanse zacząć zarabiać.

Tymczasem w firmie ze względu na skalę działania zaczęły pojawiać się różne powtarzalne problemy. Jak dobrze raportować nasze działania klientom? Jak zarządzać kontaktami? Jak ogarnąć dostępy dla pracowników? Jak zbudować wewnętrzną komunikację?

Szukałem kolejny narzędzi ale większość mnie satysfakcjonowała. Pamiętam dokładnie, jak podczas jednego z treningów biegowych w mojej głowie zapaliła się lampka „to może napiszesz taką aplikację sam na swoje potrzeby? Przecież to nie może być takie trudne”. I lawina ruszyła!

W głowie pojawiały mi się kolejne lampki – kolejne pomysły, jak mógłbym wykorzystać takie umiejętności w praktyce. Jak proste programy oszczędziłyby mi mnóstwo czasu. Ogromną inspiracją był też Artur Piszek, który w naszym podcaście Placebo.Pro, praktycznie co tydzień opowiadał, jaką to automatyzację sobie zbudował.

Ale to jeszcze nie był ten moment. Póki co idea powoli rozpalała mnie od środka.

A potem przyszedł ma…

Chciałoby się zaśpiewać „a potem przyszedł maaj”. Ale niestety zamiast tego przyszedł marzec i COVID19.

Pierwszy tydzień pełnego lockdownu był przerażający. Na tamten moment prawie 65-70% naszych klientów to gastronomia. Co prawda już w lutym podjąłem decyzję, że zmieniamy naszą strategię działania ale planowałem, że zajmie to raczej cały 2020. Z dnia na dzień wszyscy (!) klienci wstrzymali płatności.

Mój poziom stresu pierwszy raz od dawna poszybował tak wysoko. Kilka osób współpracujących na pokładzie i brak przychodów. Na szczęście zarówno prywatnie jak i prywatnie byłem przygotowany. Może nie na aż taką sytuację ale poduszka finansowa pozwała się zatrzymać i pomyśleć.

Ale po pierwszym tygodniu nadal nic nie było wiadomo choć sytuacja powoli się klarowała. Co dalej? Czy klienci zapłacą? Czy wrócimy szybko do normalnego działa? Raczej się na to nie zapowiadało.

Wiedziałem, że to jest moment na ostre cięcia. W kilka dni postarałem się wyciąć wszystkie koszta i wejść jako firma w stan zbliżony do hibernacji. Przeczekać i obserwować. Przygotować się na zbliżający się sprint – jak tylko będzie można. To nie był jeszcze moment, żeby szukać nowych klientów. To był stan zawieszenia.

A ja nie lubię takiego stanu. Wolę mieć przed sobą jasny plan działania.

Więc go sobie stworzyłem!

Zaczynam się uczyć!

Brak możliwości działania. Rekomendacja, żeby nie wychodzić z domu. Zamknięte siłownie. Zamknięte parki i sklepy.

Małe mieszkanie.

Co robić?

Słuchawki, laptop. Kot. Dużo kota.

 

Jak zacząłem?

Bez większego zastanowienia podjąłem decyzję, że zacznę uczyć się systemu UNITY. Uznałem, że to coś dla mnie – bardzo szybko widać efekty, dużo tutoriali i pozwala się kreatywnie wyżyć. A co najważniejsze – mogę nie myśleć o aktualnej sytuacji tylko skupić się na jakiejś konkretnej rzeczy i bardzo szybko uzyskać efekty – fizyczną grę.

Zacząłem od przeglądania YouTube.

Niestety poziom tutoriali jest… baaaardzo różny. Ciężko znaleźć coś bardzo faktycznie aktualnego. Bardzo często okazywało się, że wygląd tego co jest na moim komputerze znacznie różni się od tego co jest na ekranie osoby prowadzącej tutorial.

W bólach ale z pewną dozą satysfakcji stworzyłem klasyczną pierwszą grę BLOCK. Ty też możesz w nią zagrać! Jest dostępna tutaj.

Ale pomiędzy prostymi kwadratami a w pełni funkcjonującą grą jest przepaść.

Postanowiłem zainwestować trochę w rozwój i kupiłem kilka kursów na platformie StrefaKursów oraz Udemy.

Wiedza była dużo lepiej usystematyzowana ale… wciąż mi czegoś brakowało. Miałem poczucie, że bezmyślnie przeklejam to co widzę na ekranie kursu. Trener próbował dawać z siebie wszystko ale… no cóż było widać, że ma duże doświadczenie i próbuje opowiadać o podstawach, które lekko go… nudzą? A przede wszystkim nie odpowiadał na najważniejsze dla mnie pytanie DLACZEGO robi coś w takim czy inny sposób.

Równocześnie zrozumiałem, że to co próbuję zrobić jest drogą na skróty. Że postępuje maksymalnie chaotycznie i w sposób niezorganizowany.

Szybko, szybko nim dotrze do nas, że to bez sensu.

Nowa rzeczywistość powoli się normalizowała. Wiedziałem już, że póki co nie wrócimy do normalności. Uznałem, że JESZCZE nie jest to idealny czas na wrzucenie 100% energii w firmę. Klienci byli zbyt nie pewni, żeby podejmować działania. Obsługa bieżących klientów zajmowała mi tylko część dnia. Postanowiłem więc, że skoro w końcu dużo więcej czasu, którego nie do końca mam jak zapełnić… To poświęcę jeszcze więcej energii – ale potrzebuje planu.

Przeglądając tutoriale od twórców gier natknąłem się na pojęcie data analytics oraz oczywiście sztuczna inteligencja. Jako fan szeroko pojętej tematyki sci-fi postanowiłem zgłębić mocniej temat.

W sumie bardzo lubię liczby a w mojej pracy – mam ich aż przesyt 🙂

Weryfikowanie wielu kanałów marketingowych, zbieranie danych ilościowych o zachowaniach klientów w sklepach internetowych, weryfikacja ROASów, CTR czy współczynników konwersji. No i na koniec te różne współczynniki biznesowe, które liczyłem dla swojej firmy – CAC, LTV, czy MRR.

I to wszystko w excelu.

A gdyby zacząć te dane analizować? I wyciągać wnioski szybciej i lepiej? Oj to brzmiało jak coś dla mnie

I tak trafiłem na Pythona

Python jest niezwykle przystępnym językiem programowania. Jest tzw. wysokopoziomowym językiem czyli zbliżonym do (w pewnym sensie) języka mówionego. Komendy wydawane do programu są po prostu klarowne i nawet nie znając się jeszcze na programowaniu można go w miarę zrozumiale czytać. Dopiero z czasem odkryłem, że to trochę złudne wrażenie. Spotkałem się wtedy z takim pojęciem jak:

Easy to learn, hard to master.

Bardzo szybko opanowałem podstawowe komendy.

Ale co z tego, że potrafiłem stworzyć pętle, która potrafi „wydrukować” 10x raz ten sam napis:

To ciekawa umiejętność ale średnio przydatna, prawda?

Równocześnie wszystko co przychodziło mi do głowy jako projekt było WIELKIE.

Uznałem, że sam nie dam rady.

Czas na szukanie nauczyciela

Pierwotnie pomyślałem sobie, że spróbuje znaleźć 2-3 osoby, które również chcą sie uczyć i będziemy się wymieniali doświadczeniami. Ale choć to piękna idea – bardzo niepraktyczna. Bez mentora, osoby, która już dobrze rozumie temat ciężko rozwiązywać problemy.

Zacząłem więc szukać oferty na rynku szkoleniowym. Przeglądałem różne firmy, opinie. Jedne wyglądały na korporacje, inne na firmy, które na szybko zwietrzyły pomysł na biznes i chciały zarobić na nauce zdalnej. Rozstrzał cen również był spory – od 2 000 zł po 18 000 zł.

Finalnie przekonał mnie zespół handlowy w firmie SDA – Software Development Academy. W rękawie mieli kilka fajnych sprzedażowych argumentów – między innymi dobry podział płatności, wsparcie mentora. Cena po lekkich negocjacjach była okej. No i szybki start zajęć – a na tym mi zależało, żeby dobrze wykorzystać czas.

Niestety rzeczywistość okazała się trochę rozczarowująca i po kilku tygodniach zrezygnowałem z kontynuowana nauki.

O powodach nie będę się rozwodził. Zwyczajnie miałem inne oczekiwania.

Muszę przyznać, że firma zagrała bardzo okej i rozstaliśmy się w zgodzie. To co trzeba przyznać – jakość obsługi w SDA jest na wysokim poziomie.

Same zajęcie już niestety nie do końca w moim stylu. Miałem bardzo dużo zarzutów co do wyboru trenerów, jakości materiałów, sposobu prowadzenia zajęć. Równocześnie – nikt nie chciał mnie wysłuchać. Niestety – zdecydowanie nie polecam współpracy z SDA jeśli chcesz się czegokolwiek nauczyć. Mocno odradzam. Na uwagę zasługuje wyłącznie praca Kamil Jarowski czyli Specjalisty ds. płatności, który jako jedyny obronił obraz tej firmy w moich oczach.

Zacząłem więc szukać kolejnego miejsca, w którym mógłbym się bezpiecznie dalej rozwijać.

CodersLab – tak powinna wyglądać szkoła programowania

Drugą firmę, którą brałem pod uwagę było CodersLab.

No i tutaj zaklikało znacznie lepiej!

W gwoli wyjaśnienia – nie jest to artykuł sponsorowany. CodersLab ani żadna inna firma nie opłaciła za ten artykuł. To moja prywatna opinia.

Przede wszystkim to zwinna firma. A ludziom na pokładzie… zwyczajnie zależy. Od samego początku miałem wrażenie, że rozmawiam z ekipą znajomych, którzy chcą podzielić się swoją wiedzą. Poza tym było widać, że są przygotowani od nauki zdalnej a wymaga to określonych kompetencji. Rodzaj energii, stosowanych narzędzi czy w końcu materiałów edukacyjnych MUSI być zupełnie inna niż w przypadku uczenia stacjonarnego.

Sam trener podlega też innym emocjom – na przykład nie widzi tam szybko reakcji kursantów. Łatwiej przeoczyć osoby, które nie ogarniają ale obawiają się z różnych względów zgłosić.

Ale zacznijmy od samego początku. Przed startem kursu dostałem dostęp do platformy LMS do samodzielnej nauki. Widać, że ktoś w to włożył sporo pracy. Dobra jakość prezentacji, dostępność mentora już na tym etapie, który podpowiadał jak działać. Dobre wprowadzenie w temat – krok po kroku pokazująca podstawy języka.

Byłem wręcz zaskoczony ilością wiedzy do przyswojenia. Ale dało mi to jasny komunikat – CodersLab to kuźnia programistów. Musi być pot, trochę łez i konkretne przyłożenie się do edukacji. Jeśli sobie odpuścisz – nie przekroczysz pewnej granicy. Wobec pythona często pojawia się zwrot „easy to learn, hard to master” i tak faktycznie jest. Podstawy można opanować w 2 godzinnym tutorialu. Ale dopiero praca z konkretnymi problemami i wsparcie nauczyciela, który jest praktykiem (a nie jak w przypadku poprzedniej szkoły wyłącznie teoretykiem) pozwala dokonać prawdziwego postępu i progresu.

Programowanie nauczyło mnie więc dużo więcej – nie tylko pokory, ale też tego, że uczenie się i zdobywanie twardych kompetencji wymaga czasu ale też pomocy kogoś z zewnątrz.

Oczywiście coders nie są idealni 🙂 Niektóre elementy w kursie (np. jeden cały moduł związany z JS), jak i niektóre materiały zdecydowanie mogłyby być lepsze. Ale doskonałości również chyba nie można oczekiwać. Równocześnie (ponownie w kontrze do poprzedniej szkoły) – słuchają. Jeśli ma się merytoryczne uwagi – są gotowi do zmian.

Powoli kończę swój kurs. Jednym z jego elementów jest tzw. projekt końcowy – pod okiem mentora i trenera buduje się swoją pierwszą finalną aplikację. Jestem tym mocno podekscytowany – to właśnie o to mi chodziło!

Bardzo odważnie postanowiłem zbudować na swoje potrzeby mini-CRM do zarządzania kontaktami i leadami. To nie jest tak, że jutro rzucam wszystko i zostaję programistą. Ale nauka programowania oraz budowanie czegoś „swojego” jest zbliżone do… hmm. Aż ciężko mi to jednoznacznie określić. Mam poczucie, że:

  • trochę gram w szachy (bo rozwiązuje problemy i zagadki, próbuje znaleźć optymalne rozwiązania)
  • trochę się uczę teorii funkcjonowania szeroko pojętych serwisów, aplikacji (dzięki czemu zauważam jak coś działa, dlaczego tak działa i doceniam kunszt)
  • trochę wyżywam się… artystycznie? Mam w sobie silną potrzebę „tworzenia” – nie mam zdolności manualnych więc tworzę w ten sposób

A co z tego będzie dalej? Zobaczymy! Kto wie, może kiedyś rzucę to wszystko, zamieszkam w lesie i będę pracował na 1/3 etatu dla firmy z Doliny Krzemowej? 🙂

Podsumowanie – czyli jak wybrać sposób nauki?

Czas na plusy i minusy poszczególnych sposobów. Postaram się zawrzeć też informacje na co warto zwracać uwagę przy wyborze danej metody:

Książki:

ZALETYWADY
Uczysz się kiedy chceszMusisz się samodzielnie zmotywować do nauki

 

Możesz robić notatki, szybko wrócić do wcześniejszych elementówCzasami po prostu przepisujesz kod z kartki na ekran

 

Zazwyczaj dobre wydawnictwa wprowadzają Cię do danego języka w uporządkowany sposób – od teorii przez praktykę

 

Jeśli nie sprawdzisz dokładnie z jakiego roku jest książka, może się okazać, że jest zdezaktualizowana
Dostajesz różne ćwiczeniaNiestety, jeśli utkniesz w jakimś miejscu, ciężko szybko znaleźć odpowiedź

 

Kursy on-line oraz tutorial na Youtube

ZALETYWADY
Uczysz się kiedy chcesz – a zacząć możesz w 15 minutMusisz się samodzielnie zmotywować do nauki

 

Zazwyczaj stosunkowo niska cena – a bardzo często kursy są dostępne bezpłatnieCzasami po prostu przepisujesz kod  i nie zawsze rozumiesz CO on robi i dlaczego

 

Większość dobry kursów jest dostępna wyłącznie w języku angielskim

 

Kursy online często są chaotyczne i przeskakują pomiędzy tematami
Uczysz się pojedynczych rozwiązań problemów (co jest zaletą, jeśli potrzebujesz tylko tego wycinka, ale wadą jeśli nie masz dobrych podstaw)Autor rzadko kiedy odpisuje na wiadomości czy komentarze

 

Kursy z mentorem, nauczycielem – on-line/off-line

ZALETYWADY
Zajęcia są zorganizowane – musisz się pojawić w określonym miejscu i czasieTermin zajęć nie zawsze Ci odpowiada, a zazwyczaj zajęcia nie są nagrywane

 

Przygotowany program zajęć i dostępność trenerów i nauczycieli.Ciężko zweryfikować jakość trenerów.
Czasami (tak jak było w moim przypadku jeśli chodzi pierwszy wybór)
możesz trafić na osoby, które są trochę jakby „z łapanki” (tak było w moim odczuciu w SDA)
a ich umiejętności nauczania
nie są dokładnie weryfikowane.
Całość prowadzona w języku polskim

 

Powrót do lat szkolnych – czasami egzaminy, zadania domowe
Nabywasz określone umiejętności a często firma pomaga Ci zbudować pierwsze portfolioSkondensowana forma wymaga uwagi, skupienia. Zajęcia często odbywają się weekendowo i trwają po 8-10 godzin

 

Kilka krótkich rad

Osobiście uważam, że forma nauki zdalnej w takiej formie robi robotę. Długo zajęło mi dojście do miejsca, w którym czuje się zaopiekowany i faktycznie czuję progres i rozwój. Nie da się jednak nauczyć programowania bez ogromu pracy własnej. Gdybym miał się decydować jeszcze raz na pewno zadałbym takie pytanie jak:

  • czy wszyscy trenerzy są programistami-praktykami języka, które uczą?
  • czy mają przygotowanie dydaktyczne (w szczególności zdalne)?
  • z jakich narzędzi korzystają?
  • czy są elastyczni (w szerokim ujęciu)?
  • jak wygląda szczegółowy program – jakie umiejętności opanujesz?
  • czy firma pomoże Ci z np. pierwszą rekrutacja (jeśli oczywiście planujesz przebranżowienie) czy może będzie chciała Ci sprzedać „dodatkowy moduł”?
  • czy przygotowuje (a potem weryfikuje) zadanie do samodzielnej nauki?
  • jak wyglądają materiały do samodzielnej nauki (np. w CodersLab jest cały system LMS, który daje dostęp do zadań, narzędzi, planu zajęć itd)
  • czy firma dba o budowanie atmosfery w grupie (i jak to robi)?
  • czy poszczególne moduły są dobrze ze sobą spięte (tzn. czy kolejne elementy z siebie wynikają)?
  • czy firma pomaga np. w pozyskaniu finansowania na kurs (np. z urzędu pracy)?
  • jakie opinie krążą o samym kursie?
  • jakie opinie krążą o… warunkach zatrudnienia? Niektóre firmy mają ogromny przemiał różnych trenerów, którzy odchodzą bo mają uczucie bycia wykorzystanymi i podczas zajęć… po prostu im nie zależy.

Osobiście jestem bardzo zadowolony, że wybrałem CodersLab. A może to oni wybrali mnie? 🙂 Jakby nie było ostatnie blisko pół roku spędziłem w fajnej atmosferze ucząc się bardzo praktycznych rzeczy. Co ciekawe… miałem swoją mini-listę oczekiwań. Kiedy je zasugerowałem w trakcie naszych rozmów – zorganizowali specjalne spotkanie podczas, którego mogłem opowiedzieć o swoich pomysłach i uwagach. A efektem tego był między innymi… live z założycielem, który możesz posłuchać tutaj. Marcin Tchórzewski opowiada tam między innymi o tym, dlaczego zawód programisty jeszcze dłuugo będzie nam potrzebny 🙂

 

3
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek
(1 głosów, średnia: 5,00 z 5)
Loading...
  1. Hej Michał! Napisz coś więcej o swojej przygodzie z programowaniem po kursie? Czy dalej się rozwijasz jako programista? Jaki projekt realizujesz? Czy programujesz wyłącznie na swoje potrzeby? Czy planujesz realizować samodzielnie projekty dla zewnętrznych klientów a może własny softwarehouse? 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

czego nauczylo mnie programowanie

0
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek
(Bądź pierwszym, który oceni!)
Loading...

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.