Każdy może zostać programistą – dlaczego programowanie jest proste?

Każdy może zostać programistą – dlaczego programowanie jest proste?

Jest kilka powodów, dla których stworzyłem bloga „Jak Zostać Programistą?”. Jedynym z nich jest moje silne przekonanie, że każdy niezależnie od wieku, płci, wykształcenia, dotychczasowego doświadczenia może zostać programistą. W moim pierwszym wpisie „Zjedz słonia po kawałku – czyli jak zostać programistą?” napisałem, że moim celem nie jest nauczenie Cię trudnej sztuki programowania, ale pokazanie Ci, że programowanie jest łatwe, a znalezienie pracy w branży IT jest możliwe. W tym wpisie w całości skupię się na tej tezie i spróbuję Ci wyjaśnić dlaczego tak uważam. Zaczynamy!

Czego nie robią programiści?

Zanim wyjaśnię Ci czym jest programowanie, spróbuję wskazać czynności, które, wydawać by się mogło, należą do obowiązków programisty, ale w większości przypadków do nich nie należą. Wyobraź sobie, że stoisz przed wielkim drzwiami z napisem „Programowanie”. Nie masz pojęcia co kryje się za nimi. Słyszałeś, że programiści piszą kod! Zbyt wiele Ci to nie mówi i wcale Ci się nie dziwię.

Naprawisz mi komputer?

Oto pytanie znienawidzone przez większość programistów. Jeżeli nigdy nie miałeś pojęcia dlaczego twój komputer nie działa i nie potrafiłeś go naprawić to bardzo dobrze! Podpisałeś umowę na internet, dostałeś router od firmy telekomunikacyjnej i nie wiesz jak go skonfigurować? Ktoś Cię zapytał jaki komputer kupić, jaki procesor, jaką pamięć, jaki dysk twardy, a ty za wiele o tym wiesz? I co z tego! Programista nie jest ekspertem od hardware’u.

Potrafiłbyś włamać się do banku?

W mediach, od czasu od czasu, słyszymy informacje o atakach hakerów, którzy trudnią się w kradzieży wrażliwych danych osobowych, takich jak dane kart bankowych. Kilkakrotnie byłem zapytany czy potrafiłbym coś takiego zrobić. Uwierz mi, większość programistów nie posiada umiejętności, które posiadają hakerzy.

Jesteś matematycznym geniuszem?

Jeżeli myślisz, że przeciętny programista jest wybitnym matematykiem to wydaje mi się, że jesteś w dużym błędzie. Uważam, że większość tworzonych aplikacji nie ma nic wspólnego z matematyką, czy fizyką. Stworzenie aplikacji i stron w internecie takich jak Facebook, Youtube, Twitter, Uber, Booking.com, czy Instagram nie wymaga znajomości wzorów, których uczyłeś się w szkole (nie wiem czy zdajesz sobie sprawę, ale nad aplikacjami, które wymieniłem pracują setki programistów – nie jest to efekt pracy kilku, czy kilkunastu osób).

Programiści piszą kod

W związku z tym, co tak właściwie robią programiści? W przypadku większości profesji nie mamy problemu ze wskazaniem namacalnych efektów pracy. Barista zajmuje się wybieraniem, parzeniem i przygotowanie kawy. Kucharz czyta przepis, wybiera składniki i przygotowuje posiłek. Programista czyta opis zadania, które ma wykonać (w formie dokumentacji projektu lub, co także się zdarza, wiadomości e-mail), natomiast składnikami, które musi wybrać są języki programowania (np. HTML, Java, C++). Efektem pracy programisty może być na przykład strona internetowa taka jak ten blog, bardziej złożona aplikacja internetowa taka jak Facebook, czy system bankowy, do którego logujesz się, aby sprawdzić stan konta. Wszystkie te aplikacje składają się z kilkudziesięciu lub kilkuset plików napisanych w języku programowania np. Java (jedna aplikacja może być napisane przy użyciu kilku języków programowania, jednak bardzo często jeden język dominuje w projekcie). Zadaniem programisty jest napisanie tych plików. Gdy ktoś mówi, że programuje np. w języku Java to znaczy, że tworzy pliki z instrukcjami napisanymi w tym języku. Instrukcje nazywane są również liniami kodu. Bardzo często zadaniem programisty jest modyfikacja lub usuwanie już istniejących linii kody, a także usuwanie całych plików.

Jeden projekt to setki osób

Pewnie myślisz sobie, że stworzenie programu komputerowego, a co za tym idzie, napisanie kilkuset plików przy użyciu np. instrukcji Java, to zadanie niezwykle karkołomne. Co więcej, wydaje Ci się, że Ty, jako kompletny laik, nie odnajdziesz się w tym gąszczu kodu. I tutaj się z Tobą całkowicie zgodzę. Jednak chciałbym, abyś miał świadomość, że takie projekty tworzone są przez lata, a pracuje nad nimi kilkadziesiąt, a nawet kilkaset programistów. Zgadnij ile osób technicznych zaangażowanych jest w tworzenie i utrzymanie systemu Allegro? Z informacji, które posiadam, jest to ok. 300-400 programistów. Chcę, abyś zrozumiał, że nikt nie będzie wymagał od Ciebie, czyli od początkującego programisty, zrozumienia całego systemu, aplikacji, czy strony internetowej. Dołączając do firmy, zwykle dołącza się do małego projektu odpowiedzialnego za niewielką część dużego systemu. Już na starcie twoje zadanie jest bardzo ułatwione, bo nie musisz rozumieć jak działa cały system.

Podział ról

Co więcej, istnieje duża szansa, że oprócz podziału zespołów ze względu na mniejsze podsystemy, programiści wewnątrz zespołu będą podzieleni ze względu na umiejętności. W branży istnieją takie pojęcia jak programista front-end, programista back-end, czy programista baz danych. Jeżeli nie rozumiesz tych pojęć to nic nie szkodzi. Co one oznaczają? Programiści, aby ułatwić sobie zadanie, specjalizują się w wąskiej dziedzinie i wykonują tylko konkretny rodzaj zadań. Są też osoby od wszystkiego, a ich stanowisko to programista full-stack. Szczegóły obowiązków z podziałem na role zostaną poruszone w osobnym wpisie.

Cel: praktyki lub młodszy programista

Podjąłeś już decyzję, że nauka programowania da Ci wiele możliwości zawodowych, ale ciągle brakuje Ci wiary, że podołasz. Z pewnością pomocne może być wyznaczenie jasnego celu. Moim subiektywnym zdaniem, celem ambitnym, a zarazem całkiem realnym, jest stanowisko młodszego programisty. W wielu przypadkach, droga do tego celu będzie prowadziła przez płatne (lub darmowe) praktyki. Zdaję sobie sprawę, że dla wielu osób porzucenie obecnej pracy i rozpoczęcie bezpłatnych praktyk może być trudno lub prawie niemożliwe, jednak chciałbym tutaj zwrócić uwagę na jedną rzecz. Taki stan rzeczy nie będzie trwał długo. Powiem Ci jak to wyglądało na moim przykładzie. Podczas pierwszych praktyk, które trwały 3 miesiące zarabiałem 500zł netto miesięcznie. Podczas kolejnych praktyk, które również trwały 3 miesiące zarabiałem ok. 10zł/h. Podczas pierwszej pracy jako młodszy programista Java moja pensja wynosiła 4500 zł brutto na umowie o pracę. Zarobki to temat na osobny wpis. Wiele osób decyduje się na płatne kursy programowania tzw. bootcamp’y, za które płacą kilka, a nawet kilkanaście tysięcy złotych. Uważam, że o wiele lepszą decyzją byłoby znalezienie praktyk w firmie IT. Po co? Ponieważ podczas takich praktyk wiele się nauczysz, spotkasz osoby znajdujące się w podobnej sytuacji do twojej i nie zapłacisz ani grosza. Prawdopodobnie otrzymasz również pensję. Doprowadź do sytuacji, w której to pracodawca zapłaci za twój trening.

Dyplom to nie wszystko

Wiele osób może się ze mną nie zgodzić, ale uważam, że studia informatyczne to nie jest wymóg. Na 3-letnich studiach inżynierskich ogromna ilość czasu poświęcana jest na tematy, których w pracy nigdy nie wykorzystasz. 3 semestry skomplikowanej matematyki i fizyki w żaden sposób nie przybliżą Cię do pracy programisty. Mam wrażenie, że 3-miesięczne praktyki, które odbyłem podczas wakacji pomiędzy 4-tym i 5-tym rokiem dały mi więcej wiedzy praktycznej niż 5 lat studiów. Powtórzę to jeszcze raz, pierwszym krokiem powinny być dla Ciebie praktyki w firmie IT. Wbij sobie to do głowy, napisz na kartce, uczyń z tego noworoczne postanowienie.

Od czego zacząć

W tym miejscu muszę sprostować tytuł tego wpisu. Programowanie jest proste to zbyt ogólne stwierdzenie, z którym ktoś może się nie zgodzić. Czy uważam, że stworzenie oprogramowania do obsługi samolotu jest proste? Nigdy tego nie robiłem, więc trudno mi powiedzieć, ale mogę przypuszczać, że do najłatwiejszych nie należy. Czy stworzenie takiej gry jak Wiedźmin to proste zadania? Nie specjalizuję się w tworzeniu gier, więc nie posiadam odpowiedniej wiedzy, aby odpowiedzieć na to pytanie, ale domyślam się, że może być to skomplikowane. Czy znalezienie pracy jako młodszy programista lub praktykant w firmie IT, w Polsce, w roku 2017 to trudne zadanie? To bardzo realny cel. Wiele osób uważa, że to czas pracownika, a nie pracodawcy. Z pewnością dotyczy to branży IT. Jeżeli chcesz zmienić branże, to jest to idealny moment. Uwierz mi, że obowiązki na takim stanowisku to nie jest rocket science. Z podstawową wiedzą z zakresu programowania możesz zabłysnąć na rozmowie rekrutacyjnej.

Nie jesteś za stary
Mam 38 lat, czy mogę zostać programistą? Wątpię, aby jakaś firma dała mi szansę, szczególnie, że w tym wieku dziwne by mogło być ubieganie się o stanowisko junior developera
W komentarzu do pierwszego wpisu, o to, czy wiek może być przeszkodą, zapytał Adam. Słowo „Junior” oznacza doświadczenie, a nie wiek. Dla mnie osoba w tym wieku na stanowisku Juniora to nic nadzwyczajnego. Wydaje mi się, że zapotrzebowanie na nowych pracowników jest tak duże, że żadna osoba z HR-u nie odrzuciłaby twojego CV ze względu na wiek. Jak już pisałem, moją motywacją do stworzenia bloga było moje silne przekonanie, że każdy niezależnie od wieku, płci, wykształcenia, dotychczasowego doświadczenia może zostać programistą.

Za ładna na programistkę

Czy kobiety mogą programować? Oczywiście, że tak! Jednak jak pokazuje akcja #ilooklikeanengineer, stereotypy w branży IT są ciągle żywe. Dla tych, którzy nie słyszeli o burzy rozpętanej przez jedną z firm z San Francisco opiszę w skrócie sytuację sprzed kilku miesięcy. Jedna z firm z branży IT, w ramach kampanii rekrutacyjnej, na terenie San Francisco rozmieściła kilka bilbordów ze zdjęciami swoich pracowników i ich krótkimi opiniami na temat pracy w tej firmie. Umieszczając na jednym z plakatów kobietę o imieniu Isis Wenger chcieli pokazać, że pracują u nich także kobiety i firma jest na nie otwarta. Dlaczego plakaty wywołały burzę? Według internautów Isis jest atrakcyjną kobietą, więc „to niemożliwe by była inżynierem”, bo „tak nie wyglądają kobiety inżynierowie”. Jej komentarz odbił się szerokim echem i zapoczątkował dyskusję o wciąż żywym seksizmie w świecie technologii. Ja na swojej drodze zawodowej spotkałem wiele świetnych programistek. Poza tym, nie uważam, że mężczyźni posiadają jakieś szczególne predyspozycje do tego zawodu, dlatego zachęcam wszystkich do nauki programowania!

Podsumowanie

Mam nadzieję, że przekonałem Cię, że i Ty możesz zacząć swoją przygodę z programowanie. W kolejnym wpisie skupię się dokładnie na wiedzy i umiejętnościach, które musisz posiadać, aby zacząć wysyłać swoje CV. Przeanalizuje kilkanaście ofert pracy i sprowadzę je do wspólnego mianownika, tak aby znaleźć umiejętności, które są najczęściej wymieniane w ogłoszeniach o pracę. Zrobię to, aby ułatwić Ci proces nauki. Nie chcę, abyś tracił czas na naukę rzeczy, które są mało popularne, skomplikowane i zamiast pomóc, mogą Cię jedynie zniechęcić. Chcę zwiększyć atrakcyjność twojej osoby na rynku pracy. Na tej podstawie, chcę opracować kurs programowania zatytułowany „Jak Zostać Młodszym Programistą Java?”, który w formie video będzie dostępny na blogu!

Bartosz Miller
11 komentarzy
  • Posted at 18:51, 16 grudnia 2016
  • Łukasz
    Odpowiedz
    Posted at 16:39, 19 grudnia 2016

    Hej,

    Fajny blog! Motywuje 🙂 Ja od pewnego czasu uczę się C# I jestem na 2gim roku szkoły zawodowej – Technik Informatyk (W szkole uczę się PHP, SQL, HTML, JS, CSS) I mam 27 lat. Niestety, czasem jak wracam z pracy to nie mam zwyczajnie siły, do nauki ;(. Ale staram się, mam nadzieję, że mi się uda. Czekam na kolejne wpisy, pozdrawiam 🙂

  • Posted at 11:26, 22 grudnia 2016

    He he, ja w tym roku skończyłem 40-tkę, a od sierpnia pracuję jako junior frontend 😉

    • Ewa
      Odpowiedz
      Posted at 17:21, 22 grudnia 2016

      Marcin, opowiedz swoją drogę? Po kursie czy sam się uczyłeś?

  • Posted at 21:12, 29 grudnia 2016

    No tak kochani Ja niestety jestem trochę starszy od Was chciałbym coś zmienić w swoim życiu, ale tak nie dość że mam 50, nie znam angielskiego A programowanie to przede wszystkim komendy po angielsku. Mam co prawda kilka epizodów amatorsko że stronami www ale tworzone były w różnych programach i Moją wiedza jest poszatkowana na strzepy HTML,CSS No i oczywiście WP z WooComerce. Dlatego jak macie jakieś rady dla takich staruchow jak Ja to poproszę, ale muszę pracować chyba w domu bo w firmie IT to by Mnie wyśmiali.

  • KaCzKa
    Odpowiedz
    Posted at 21:16, 29 grudnia 2016

    Piszesz, że junior to nie wiek, a doświadczenie. Jasne. Ale junior to także junior-wypłata. Młody student może sobie na to pozwolić, bo zazwyczaj mieszka kątem u mamusi albo w akademiku. A ktoś w wieku 38 lat ma zazwyczaj zobowiązania. Rodzinę, dzieci, kredyty. Stawanie się wtedy juniorem jest problemem nie z powodu wieku, umiejętności itp (choć też, bo często taki gość w średnim wieku kuma już słabiej (wiem po sobie, jestem 40+), nie nadąża za trendami itp. ) ale z powodu junior-wypłaty.

    • Posted at 20:25, 20 lutego 2017

      Zgadzam się! Wtedy nie pozostaje nic innego, tylko junior starszy musi pocisnąć samemu, żeby wskoczyć stopień wyżej. Pewnie do łatwych to nie należy, ale również mam nadzieję, że jest to możliwe.

  • Ewa
    Odpowiedz
    Posted at 12:06, 5 stycznia 2017

    Hej Bartosz!! Swietne wpisy,. Ja wlasnie jestem na drodze zmiany sciezki zawodowej, po 12 latach wyczerpujacej pracy w londynskim City. Chce nauczyc sie programowania i uzyskac troche niezaleznosci i nie pracowac na etacie (!). Wkomponowales sie wiec swoim blogiem w moje potrzeby. Czekam z niecierpliwoscia na wiecej. Pozdrawiam serdecznie

Post a Comment

Comment
Name
Email
Website