Piszę teksty, których potrzebuje Twój biznes

HRIT

Sporo rzeczy, których potrzebujesz, aby zostać programistą

Girl with a computer

Dwadzieścia albo trzydzieści lat temu nikt nie uznałby, że pisanie kodu jest super. A dzisiaj? Wow, nagle wszyscy chcą rozpoczynać kariery w IT. Wiele osób chce zostać programistami. Nie wszyscy wiedzą jednak, jak zacząć karierę w IT. W tym tekście przeczytasz o językach programowania, dodatkowych umiejętnościach i źródłach wiedzy. Udało mi się zebrać te informacje dzięki moim tajnym kontaktom.

Zastrzeżenie nr 1

Nie jestem programistą ani specem od IT.

Spędziłem jednak trochę czasu, pracując jako Project Manager w firmie IT. Poza tym, całkiem przypadkiem część moich znajomych zajmuje się tworzeniem oprogramowania lub są innymi specjalistami IT. Zapytałem więc ich i ich kolegów, co poradziliby komuś, kto chciałby zostać programistą. Pytanie ludzi o radę albo o wprowadzenie w temat jest czymś, co często robię podczas pisania. To po prostu część przygotowań do tworzenia tekstu.

Tak czy inaczej, zapytałem tych ludzi o różne sprawy, takie jak języki programowania, źródła wiedzy i umiejętności nietechniczne, których potrzebuje programista. Niniejszy tekst jest więc napisany głównie na podstawie tego, co usłyszałem od swoich informatorów.

Czy programowanie na pewno jest dla Ciebie?

Tworzenie oprogramowania i branża IT w ogóle, są teraz na topie. Potrafię to zrozumieć. Możesz tam zarobić niezłe pieniądze, jeśli wiesz, jak napisać efektywny kod. Być może zostaniesz przyszłym Billem Gatesem albo Elonem Muskiem. Kto wie? Muszę tu jednak zrobić kolejne zastrzeżenie. Produkcja oprogramowania nie jest wcale prostą robotą. Jest łatwiejsza niż była 40 lat temu, ale wciąż, to nie bułka z masłem.

Żeby osiągnąć sukces, musisz wykazać się pracowitością. No i przygotować się na zderzenie z rzeczywistością, jaką jest żmudne szukanie bugów i rozwiązań. Twój kod musi spełniać różnorakie wymagania narzucone przez klientów (twojego szefa albo firmę zewnętrzną).

Na koniec, choć to nie mniej ważne, nie zapominaj, że całkiem wielu programistów wcale nie zarabia kroci. Spora część z nich jest odpowiedzialna za dość proste i powtarzalne zadania i być może wkrótce zostaną zastąpieni przez sztuczną inteligencję.

Którego języka programowania powinniśmy się uczyć?

Wybór języka programowania stanowi częsty dylemat deweloperów in spe. Chcą wiedzieć, który z języków da im większe szanse na rozwój kariery, więcej pieniędzy i większy szacunek. Problem jest podobny do nauki języka obcego.

Poniżej znajduje się wykres pokazujący, jakie języki polecają do nauki moje “kontakty”. Można zauważyć, że według nich największą wartość mają JAVA, PHP i Python.

Które języki programowania ogarnąć?

Clou problemu jest jednak w tym, że możesz znać 10 języków, ale w żadnym nie mieć nic do powiedzenia. To nie tylko anegdotka. Programowanie, na bardzo podstawowym poziomie to wydawanie instrukcji komputerowi. W przypadku komunikacji międzyludzkiej korzystamy nie tylko ze słów. Wystarczy spojrzeć na półki książek o komunikacji niewerbalnej. Ton głosu, mimika i niedopowiedzenia. Twój komputer nic z tego nie zrozumie, dlatego potrzebujesz wysokiej precyzji.

Zresztą, musisz mieć coś do powiedzenia, ale komu i o czym? Innymi słowy, jaki rodzaj oprogramowania chcesz tworzyć? Jest wiele rzeczy, które można zaprogramować i w zależności od nich wybierzesz odpowiedni język.

Photo by Valentin Petkov on Unsplash

Może zechcesz programować gry, a może aplikacje webowe? A w nich wolisz front-end czy back-end? Może zainteresuje Cię tworzenie baz danych albo budowa oprogramowania dla maszyn przemysłowych? Kto wie?

Jakich innych umiejętności potrzebuje programista?

Czasy introwertycznych nerdów w kraciastych koszulach minęły. Tzn. ja sam mam kilka takich koszul, ale społeczność IT jest dzisiaj o wiele bardziej zróżnicowana. No i większa. W związku z tym musisz poznać nie tylko sztukę kodowania, ale rozwinąć również inne umiejętności.

Dla przykładu dobrze wiedzieć, jak wytłumaczyć, na czym polega Twoja praca komuś, kto nie ma pojęcia o technologii. Jeśli chcesz, możesz użyć swojego dziadka jako królika doświadczalnego.

Poza tym, moi informatorzy zwrócili moją uwagę na obszerny zbiór kompetencji.

  • Posługiwanie się wyszukiwarkami, jak Google – na pewno będziesz szukać sprawdzonych rozwiązań i pomysłów.
  • Problem-solving skills –to akurat trudno zdefiniować, ale uważam, że to sposób myślenia o napotykanych przeszkodach. Dobrze jest zlokalizować problem, ale jeszcze lepiej jest go rozwiązać.
  • Logiczne myślenie – tym razem nie chodzi o zdrowy rozsądek, ale o związki przyczynowo skutkowe oraz związki logiczne. Myślenie matematyczne jest tym, czego potrzebujesz.
  • Analiza wymagań biznesowych i rozumienie logiki biznesowej – to coś, czego możęsz nauczyć się z doświadczenia biznesowego, ale studia z Ekonomii czy Zarządzania też się przydadzą.
  • Niektórzy uważają, że dobrze jest znać branżę, dla której się pisze. Z drugiej strony to zależy od ścieżki kariery, jaką wybierzesz. Jak zwykle, możesz być albo wysoce wyspecjalizowanym deweloperem rozwiązań dla branży automotive, albo wielozadaniowym usuwaczem problemów programistycznych.
  • Testowanie i optymalizacja własnego kodu – to jest już wyższy poziom programowania. Szczególnie optymalizacja. Na początku prawdopodobnie nie będziesz wiedzieć, jak to zrobić. Dobrze jednak wiedzieć, że coś takiego na Ciebie czeka.
  • Kreatywne myślenie – napiszę osobny tekst o kreatywności kiedy indziej. Na razie ogranicznym się do tego, że nie chodzi o bujanie w obłokach i kolorowe ciuszki. W kreatywności chodzi o znajdywanie innowacyjnych rozwiązań, które działają.
  • Języki obce – to ma znaczenie szczególnie dla osób spoza angielskiego obszaru językowego, np. z Polski. Jest wiele źródeł w języku angielskim, więcej lepiej się go naucz.

    English, do you speak it?
  • Jak czytać dokumentację i schematy UML – to zdecydowanie przydatne, bo w taki sposób będziesz otrzymywać wytyczne.
  • Jak pisać dokumentację – to coś ode mnie. Zaufaj mi, jako były PM wiem, jak ważne jest posiadanie dobrze napisanej dokumentacji. Dzięki temu praca nas wszystkich jest łatwiejsza. Nawet Twoja, jeżeli będziesz wprowadzać zmiany w kodzie po kilku latach. Proszę, pisz dokumentacje.

    Zdjęcie autorstwa rawpixel z Pixabay
  • Komunikacja i praca zespołowa. Jak rozmawiać z ludźmi – szczególnie w zespole. Systemy komputerowe stają się coraz bardziej skomplikowane. Zespoły zmieniają się. W końcu nie znajdziesz nikogo, kto wiedziałby wszystko o systemie, na którym pracujesz. Dlatego musicie ze sobą rozmawiać i robić to skutecznie.
  • Jak szybko się uczyć – bo żeby pisać kod, potrzebujesz czegoś więcej niż języka. Środowisko programistyczne jest dynamiczne, a Ty musisz nadążać za zmieniającymi się frameworkami i innymi przydatnymi technologiami.

Gdzie uczyć się kodowania?

Od kiedy dokonała się rewolucja informacyjna, dostęp do wiedzy stał się o wiele łatwiejszy. Jednak z drugiej strony, jesteśmy zalewani wieeelką ilością bullshitu (fake newsów, jak to się teraz mówi). Ocean informacji, który nas otacza, jest problemem, a przyszli programiści często pytają, gdzie mogą znaleźć wartościową wiedzę i instrukcje przydatne w ich sytuacji.

Moi przyjaciele wskazali kilka możliwych sposobów nauczenia się programowania. Zwrócili jednak uwagę, że one wszystkie są pierwszym krokiem. To tylko początek. Jakikolwiek kurs, książka lub szkolenie dadzą Ci tylko podstawy. W najlepszym wypadku. Potem musisz zdobywać doświadczenie w pracy nad pierwszym projektem, potem drugim, i kolejnym, i kolejnym.

Poniżej zobaczysz, które źródła wiedzy preferują moi znajomi. Kursy online i darmowe tutoriale z sieci dostały najwyższe oceny. Dlaczego? Prawdopodobnie dlatego, że studia zajmą 3 do 5 lat i dadzą Ci potężną dawkę wiedzy o sprawach tylko luźno związanych z programowaniem, a kursy stacjonarne są zwykle drogie i nie tak przydatne, jak byśmy chcieli.

Wykres pokazujący, z jakich źródeł czerpać wiedzę o IT
Skąd czerpać wiedzę o IT?

I co teraz?

Oczywiście teraz potrzebujesz pracy. Gdzie znaleźć oferty dla świeżych programistów? To jest całkiem inna opowieść. Poznanie języka programowania to Twoja podstawa. Zdobycie niektórych z opisanych dodatkowych umiejętności pomoże Ci wybić się z tłumu innych przyszłych programistów. Bez względu na ścieżkę, jaką wybierzesz, nauka kodowania to dopiero początek.

Zbrójcie się. Nadchodzi rynek pracy.

Źródła zdjęć:

https://www.flickr.com/photos/londonmatt/18891515611  na licencji: https://creativecommons.org/licenses/by/2.0/

https://pixabay.com/photos/board-business-company-creative-2449726/

https://unsplash.com/photos/-xTBn1YBrTE

https://unsplash.com/photos/uKS_wcTAMZU