IT2.0 #5 Co warto wiedzieć zanim zacznie się przygodę z programowaniem – podsumowanie
To już ostatni odcinek z serii „Wehikuł Czasu”. Ostatnie cztery aspekty jakie warto przemyśleć zanim zacznie się przygodę z programowaniem.
Jako, że mamy za sobą już wszystkie odcinki serii to zrobię dzisiaj niewielkie podsumowanie.
Jak wspomniałem w odcinku 1 zadałem moim przyjaciołom, znajomym, programistkom, programistom, i osobom które mają styczność z programowaniem, wytwarzaniem oprogramowania jedno pytanie (zadałem to pytanie ponad 100 osobom). Gdyby mogli cofnąć się w czasie: Jaką jedną rzecz, chcieliby wiedzieć, zanim zaczęli by przygodę z programowaniem?
18 istotnych aspektów i 6 grup
Bazując na odpowiedziach jakie otrzymałem od wszystkich wyłoniło się 18 istotnych aspektów, które zostały wskazane jako istotne.
Patrząc na to przez pryzmat swojego doświadczenia wiele z tych aspektów były / są dla mnie oczywiste. Są też takie, które mnie trochę zakończyły. Kilka, chociaż wiem że są istotne, nadal nie przepracowałem do końca. Mogę nawet powiedzieć, że popełniłem mnóstwo błędów gdy zaczynałem, bo nie zwracałem uwagi na niektóre istotne aspekty.
Patrząc na listę, która powstała wierzę, że może być ona bardzo pomocna dla tych, którzy dzisiaj zaczynają lub zastanawiają się nad rozpoczęciem swojej przygody z programowaniem.
Wśród tych 18 aspektów, wydzieliłem sześć grup bazując na tym czy jest to informacja, wskazówka lub też działanie jakie warto wykonać.
Aby lepiej zobrazować te grupy utworzyłem grafikę prezentującą wszystkie grupy wraz z aspektami jakie zawierają nie w danej grupie (dokument pdf z grafiką jest dostępny dla wszystkich osób zapisanych na newsletter).
Grupa 1: Powinieneś wiedzieć, że
Grupa 1: fakty/informacje jakie powinnismy wiedzieć niezależnie od panujących opinii i stereotypów. Wrzuciłem je do grupy „Powinieneś wiedzieć, że”. To zestaw takich informacji jakie warto usłyszeć, które pomogą nam wygrać z wszelkiego rodzaju mitami, stereotypami czy strachem przed tą profesją. Zatem powinieneś wiedzieć, że:
- to wcale nie jest bardzo skomplikowane i każdy może zostać programistką/programistą (twórcą oprogramowania). Nie daj sobie wmówić, że tworzenie oprogramowania jest dla matematyków, introwertyków, facetów, informatyków, wybrańców losu, geniuszy itd. Możesz być w każdej z tych grup, być w części albo nie być w żadnej i to nie przeszkodzi Ci aby tworzyć wspaniałe aplikacje.
- nikt nie wie wszystkiego w tym zawodzie. Nie stresuj się, że nie wiesz wszystkiego dzisiaj. Mógłbym powiedzieć, że to świat ludzi, którzy uczą się i nie wiedzą wszystkiego. To świat ludzi, którzy nie wstydzą się pytać innych i szukać pomocy w książkach, kursach i Internecie. Jeżeli tylko chcesz się uczyć i nie boisz się wyzwań to zdecydownaie jest to profesja dla Ciebie.
- to naprawdę kreatywne zajęcie, pozwalające na ekspresję swoich pomysłów. Wbrew obiegowym opiniom to nie jest tylko nudne klepanie kodu. Będąc twórcą oprogramowania niezależnie odi roli jaką masz w zespole niejednokrotnie będziesz miała/miał okazję wykazać się swoją pomysłowością.
- kompetencje miękkie są ważne w tym zawodzie. Kompetencje twarde, które nabywamy w trakcie nauki tworzenia oprogramowania są bardzo istotną składową naszej wiedzy. Niemniej jednak bardzo istotne są także niedoceniane kompetencje miękkie. Z perspektywy wielu pracodawców kompetencje miękkie są równie ważne co kompetencje twarde. Współpraca w zespole, kreatywność, umiejętność przekazywania informacji zwrotnych, dobra organizacja pracy własnej to tylko niewielki wycinek kompetencji miękkich jakie będą nam pomocne przy tworzeniu oprogramowania. Chcąc odnaleźć się w tym zawodzie trzeba mieć na uwadze, że rozwój kompetencji twardych powinien iść w parze z rozwojem kompetencji miękkich.
Grupa 2: Sprawdź
Grupa 2: To grupa „Sprawdź” czyli grupa elementów jakie możemy sprawdzić eksperymentalnie lub bazując na swoich oczekiwaniach. Elementy w tej grupie to:
- czy to na pewno jest dla Ciebie – Jak możesz to sprawdzić? zanim zaczniesz wydawać miliony dolarów na kursy i szkolenia, zrób mały projekt testowy. Znajdź kogoś zaufanego dla kogo możesz zrobić prostą aplikację. Zaproponuj, że zrobisz to bezpłatnie (np. mała aplikacja mobilna, strona www). Podczas takiego projektu zweryfikujesz czy to jest to co „Cię kręci”. Jeżeli nie projekt to znajdź kurs lub tutorial (jest dużo bezpłatnych kursów), który krok po kroku poprowadzi Cię abyś przygotował projekt. Najważniejsze jest to aby to było naprawdę „proste” przedsięwzięcie.
- jaki język programowania jest dla mnie najbardziej optymalny – języków programowania jest wiele. Odpowiedz sobie na pytanie jakie aplikacje chcesz robić a pewnie ilość języków zmniejszy się diametralnie. Jeżeli np. chcesz robić aplikacje na platformę Android to zapewne Kotlin lub Java będą dla Ciebie najlepszym kierunkiem. Na początek skup się na jednym języku aby osiągnąć najlepsze efekty.
Grupa 3: Pamiętaj
Grupa 3: Grupę tą nazwałem „Pamiętaj”. Są tu elementy jakie warto mieć w pamięci aby w dłuższej perspektywie zadbać o poprawny rozwój w świecie programowania. W grupie tej mamy:
- w początkowej fazie nauki plan działania i umiar jest bardzo ważny. Nie tylko w tej dziedzinie umiar jest ważny. Dużym błędem wielu początkujących jest np. nauka zbyt wielu języków programowania, czy robienie zbyt rozbudowanych projektów na początku swojej nauki. To bardzo zniechęca i sprawia, że wiele osób porzuca naukę programowania. Bez planu raczej nic nie osiągniemy. Dlatego miej w głowie zawsze jakiś plan na to co chcesz zrobić i jakie projekty realizować w obszarze IT.
- dbaj o zdrowie fizyczne. Zadbaj o swoje zdrowie – nie przesiaduj przez setki godzin przed komputerem. Wcześniej czy później organizm się zbuntuje. Odpoczywaj, dbaj o aktywność fizyczną i dbaj o ergonomię stanowiska pracy. Dobre krzesło i biurko regulowane to bardzo ważne elementy twojego warsztatu.
- dbaj o zdrowie psychiczne. Jest ono równie ważne co zdrowie fizyczne. Stres to cichy zabójca, zatem pamiętaj o tym aby dać swojej głowie odpocząć. Mogę polecić medytację i „dobre” planowanie tego co chcemy osiągnąć. Nie narzucaj na siebie zbyt wielkich oczekiwań. Korzystajmy z pomocy tych, którzy już w tym obszarze funkcjonują dłużej niż my.
Grupa 4: Przeanalizuj
Grupa 4: To grupa elementów, które należy poddać analizie. Mniej szczegółowej, lub bardziej szczegółowej w zależności od tego jak bardzo chcemy poznać temat. Grupa ta nosi nazwę „Przeanalizuj” i zawiera następujące elementy:
- jakie projekty będziesz realizował(a) w przyszłości. Zanim zaczniesz pracować jako twórca oprogramowania np. aplikacji na wspomnianego Androida, możesz sprawdzić jakie są już na rynku aplikacje na Android, czy to jest coś co Cię interesuje? czy może są to nudne rzeczy. Aplikacji jest wiele, dlatego warto zrobić analizę ogólną różnych typów aplikacji jakie możemy robić w danym obszarze. Pozwoli nam to też lepiej zrozumieć czy to jest właśnie to czego szukam. Szukając pracy lub stażu, zawsze możemy zapytać przyszłego pracodawcy w jakim projekcie będziecie pracować. Pozwoli to uniknąć rozczarowania zanim spędzicie pół roku robiąc coś czego nie chcecie robić.
- ścieżki kariery oraz możliwości rozwoju zawodowego. Jeśli czujesz, że kręci Cię programowanie robotów to przeanalzuj jakie są oferty pracy na rynku. Czego oczekują pracodawcy od takich osób. Jakie są oferty różnych stanowisk, w zależności od doświadczenia dla takich programistów. Tu podobnie jak wcześniej łatwiej Ci będzie podjąć decyzję czy chcesz poświęcić wszystko aby uczyć się tej technologii.
Grupa 5 i 6: Poznaj i dowiedz się
Grupy 5 i 6 wymagają od nas najwiecej czasu i wiążą się one z nauką oraz przyswajaniem wiedzy. Grupy te to „Poznaj” i „Dowiedz się”. Na poszczególne zagadnienia warto poświęcić minimum czasu aby lepiej zrozumieć środowisko wytwarzania oprogramowania. Na każde z tych zagadnień można poświęcić nawet lata. Bardziej chodzi o to aby na początku poświęcić przynajmniej dzień na każde z zagadnień. W grupie „Poznaj” mamy takie elementy jak:
- zasady pracy w zespole tworzącym oprogramowanie. W tym zawodzie najczęściej nie pracujemy sami i warto choć trochę się orientować co nas może spotkać w pszyszłosci.
- systemy kontroli wersji – coś przed czy nie uciekniemy choć bardzo byśmy pewnie chcieli. Pracując w zespole będziemy pracować w kilka osób nad wspólnym kodem. I tu zarządzanie tym procesem będzie możliwe dzieci systemom kontroli wersji. Jak raz zrozumiecie i się nauczycie to potem już wszystko będzie proste.
- przyszłego pracodawcę – zanim zdecydujesz się na jakiegoś pracodawcę to proszę sprawdź go. Jesteśmy świetni w sprawdzaniu innych osób na profilach społecznościowych. Tu możemy temat potraktować podobnie. Poszukaj opinii matematyki pracodawcy. Jak masz możliwość to porozmawiaj z kimś kto pracuje w firmie lub w niej pracował. Nie bój się też pytać pracodawcy bezpośrednio o warunki jakie oferuje.
a w grupie „Dowiedz się” mamy: - jak dokładnie wygląda praca programisty (twórcy oprogramowania). W zależności na co się decydujesz podobnie jak w przypadku pracodawcy, znajdź kogoś kto to robi zawodowo. Niech opowie Ci co go cieszy w tej pracy, co irytuje, co zaskakuje i co nudzi. Mając opinie kilku osób zdecydowanie łatwiej będzie Ci podjąć decyzję czy to jet właśnie to co chcę robić.
- jakie są sposoby rozwiązywania problemów przy tworzeniu oprogramowania – a co jak będę miał problem? dowiedz się jak inni robiący to co ty chcesz robić rozwiązują swoje problemy. Książki, kursy, Internet – im więcej na początek poznasz miejsc gdzie możesz szukać pomocy tym łatwiej Ci będzie i oszczędzisz sobie wielu „nieprzespanych nocy” szukając rozwiązania, które zapewne gdzieś jest już zrobione i czeka na Ciebie.
- jakich technologii i narzędzi uczyć się – narzędzia i technologie związane są z kierunkiem w jakim chcemy iść. Inne są dla twórców WWW a inne dla osób piszących aplikacje na Android. Im wcześniej wiesz co ważne tym lepiej dla Ciebie. Nie ucz się czegoś czego nie potrzebujesz. Bo po co Ci znajomość środowiska Unity jak masz zamiar programować roboty?
- jak wygląda proces wytwarzania oprogramowania – tworzenie oprogramowania to nie tylko kodowanie. Im wcześniej to zrozumiesz tym łatwiej będzie Ci zrozumieć tworzenie kompleksowego rozwiązania użytecznego dla użytkowników. W swojej wybranej dziedzinie naucz się jak dostarczać kompleksowy produkt np. tworząc aplikację na Android aby była nie tylko w Twoim komputerze lecz także dostępna do pobrania dla innych.
Ale ty to sprawdź
Zapewne jest dużo więcej aspektów pomocnych gdy zaczynamy przygodę z tworzeniem programowania. Pewnie mo zna nawet zrobić całkiem inną listę. Niemniej jednak te wyszły od osób, które mają bardzo różne i ciekawe doświadczenia z tworzeniem oprogramowania. Uważam, że jest to bezcenne i jeszcze raz dziękuję wszystkim, którzy podzielili się ze mną swoimi doświadczeniami.
Potraktuj proszę tą listę jako wsparcie i wskazówkę, jaką dostajesz od innych aby Twoja początkowa droga była łatwiejsza i mniej wyboista.
Przemek