Po co mi programowanie?





Wejście w świat programowania nie jest łatwe. Bywa wręcz nieprzyjemne, zwłaszcza gdy okazuje się, że nauka to jedna strona medalu, a praktyczne wykorzystanie wiedzy wygląda kompletnie inaczej.

Poza mierzeniem się z samym sobą i własnymi słabościami poświęcić trzeba czas, a nierzadko pieniądze. Po co? Zacznę od oczywistości, a na sam koniec kilka słów o tym, co z mojej perspektywy jest najważniejsze.


Programowanie to furtka do znalezienia świetnie płatnej pracy.



Trywialna sprawa. Wszyscy czytaliśmy albo słyszeliśmy o mitycznych programistach zarabiających po 20 tysięcy złotych za klepanie kodu z Teneryfy. Takie przypadki też się pewnie zdarzają, ale mówimy jednak o garstce specjalistów, których doświadczenie i wiedza jest po prostu rozsądnie opłacana.

Każdy z nas czytał gdzieś też z pewnością o niedoborach rąk do klawiatury w sektorze IT. Bierzmy jednak pod uwagę, że brakuje specjalistów. Takich, którzy wiedzą co robią i robią to szybko. Rynek dla juniorów jest relatywnie niewielki i nieprzystępny. Ale i tu sytuacja finansowa wygląda lepiej niż średnia w kraju. Tak czy inaczej – dzięki programowaniu możesz starać się o znalezienie świetnie płatnej pracy, w toku której będzie już tylko coraz lepiej. Wraz z doświadczeniem i stażem każdy junior stanie się seniorem. Ale droga do tego wcale nie jest usłana różami.

Programowanie Cię uniezależnia



Załóżmy, że prowadzisz mniejszy lub większy biznes. Nie musisz go nawet prowadzić – możesz być ‘zwykłym’ pracownikiem. Nieważne jaką pozycję zajmujesz zawodowo, na którymś szczeblu podejmowane są decyzje uzależnione od sposobu pracy i podejścia programistów. Czy jest to po prostu strona internetowa firmy, system obiegu dokumentacji, aplikacja sprzedająca efekt waszej pracy czy jakakolwiek inna forma cyfrowego produktu.

Programiści w cyfrowym świecie to garstka "despotów", których władza opiera się na wiedzy.  Na świecie jest około 20-25 milionów ludzi określanych jako software developerzy – w skali 7.5 miliarda mieszkańców ziemi to frakcja ułamka. Ta frakcja jednak może żerować na Twojej niewiedzy i najzwyczajniej w świecie Cię wykorzystać.

To oczywiście najczarniejszy scenariusz, najmniej też prawdopodobny. Programiści sami są uzależnieni od mechanizmów rynkowych oraz całej masy obwarowań i zasad. Choć wizja podziemnej sekty hackerów jest kusząca, to chyba trzeba ją odłożyć na półkę. Faktem jest jednak to, że rozumiejąc choćby podstawy programowania możesz kompletnie inaczej rozmawiać z wykonawcami – partnersko, dociekliwie i na równi. Po prostu rozumiesz dlaczego coś jest złożone tak, a nie inaczej.

Programowanie pomaga myśleć kreatywnie.



Daliśmy się wszyscy oszukać. Podobnie jak ekonomia, programowanie nie jest nauką ścisłą. Płaszczyk matematyki, cyfr, funkcji i zasad sprawia, że wszystko co się pod nim znajduje owiane jest aurą nieprzeniknionych wzorów rodem z piekielnej algebry. A to kompletnie nie tak.

Bądźmy szczerzy – trochę matematyki nie sprawia, że coś jest nauką ścisłą. W programowaniu o wiele bardziej liczy się brak sztampy, otwartość, chęć nauki i właśnie kreatywność. Najlepsi w branży nie szczycą się tym, że dokumentację języka mają w małym paluszku czy znajomością rozwiązania na poniższe równanie.


Najlepsi są ci, którzy potrafią do programistycznego problemu podejść w sposób innowacyjny. Pewnie, że większość pracy to powtarzanie znanych schematów, ale gdy grunt ucieka nam spod nóg liczy się nie utarta ścieżka, a umiejętność przeskoczenia przeszkód. Programowanie właśnie tego może Cię nauczyć i jest to jedna z najfajniejszych rzeczy, jakie ma do zaoferowania.


Programowanie to lekarstwo na analfabetyzm XXI wieku.



Rzecz dla mnie najważniejsza, ale też wynikająca bardzo mocno z wiary w technologię i rozwój. Jeśli nie podzielasz tego entuzjazmu, to punkt ten najpewniej do Ciebie nie trafi.

Otóż sytuacja jest moim zdaniem prosta. Jesteśmy w dobie kolejnej rewolucji cyfrowej, po której przyjdzie jeszcze jedna i jeszcze jedna, i jeszcze jedna, i jeszcze jedna… Wasi menadżerowie mogą przed nią uciekać, archiwa papierowe mogą wciąż być bardziej atrakcyjne niż cyfrowe, a cotygodniowe spotkania być ważniejsze niż przesłany w systemie porządny brief. Ale nie uciekną.

Czas mija niezależnie od naszej woli, każda sekunda zbliża nas do przeszłości i oddala nas od tego, do czego jesteśmy przyzwyczajeni. Być może za 5 lat, a być może za 15 lat Twoja lodówka będzie „mądrzejsza” niż komputer na którym piszę ten post. Być może za 10, a być może za 20 lat komunikacja z maszynami będzie przebiegała na zupełnie innych zasadach. Nie nauczymy się wszystkiego. Nie nauczymy się pewnie tego, jak pisać kod obsługujący samochody automatyczne. Ale nauczymy się języka, w jakim się porozumiewają. Zrozumiemy jak to działa. Będziemy świadomymi konsumentami i członkami społeczeństwa.

Nie musisz znać wszystkich języków programistycznych świata by poznać zasady funkcjonowania rzeczy obsługiwanych kodem. Ale jeśli nie poznasz choćby podstaw, to po prostu zostaniesz z tyłu. Kod jest pierwszym krokiem do zrozumienia świata przyszłości. Być może za jakiś czas będzie go trzeba się „oduczyć” i „nauczyć” kompletnie nowych umiejętności i języków. Jeśli będziesz jednak na bieżąco śledził rzeczywistość, to ona nie zostawi Cię z tyłu. Zamiast tego weźmie Cię na przejażdżkę, której nie pożałujesz. Wystarczy, że otworzysz konsolę i wpiszesz w niej „Hello World!”


160 godzin


Tyle czasu spędziłem ucząc się programowania na kursach internetowych. O poszczególnych kursach być może jeszcze napiszę kilka postów, bo sam ich wybór nie jest łatwy.

Dużo? Mało?

Czego można się nauczyć w 160 godzin?



Trudno powiedzieć - osobiście odczuwam, że zdecydowanie za mało, ale to bardzo subiektywna sprawa. Z pewnością dokłada się do tego odczucia 'rozproszenie' nauki - 2-3 godziny dziennie to jednak nie to samo, co 8 godzin 5 dni w tygodniu. Z drugiej strony 160 godzin to tyle, ile spędza się przez miesiąc w pracy na pełnym etacie. Wyobraźcie sobie etat polegający na oglądaniu filmów instruktażowych oraz pisaniu kodu! Z trzeciej strony do porównania można wziąć Bootcampy, gdzie zakres godzinowy jest bardzo szeroki, od 80 do 400 godzin. Wrócę do tego pytania nieco później. Zamiast pytać się o to, czy to dużo czy mało czasu najlepiej będzie w kilku słowach napisać…




Piszę to na własnym przykładzie, więc jeśli masz kompletnie inne doświadczenia, to nie ma w tym nic dziwnego. Programowanie często jest określane jako nieustanna wędrówka pod górę. Gdy wydaje Ci się, że jesteś już na szczycie, to okazuje się, że tak właściwie jest to jedynie polana, a przed Tobą dwa razy wyższa i groźniejsza góra. Moje 160 godzin można bez problemu podzielić na takie ‘pagórki’. Zawsze miałem dryg do wizualnej strony aplikacji (pewnie nasiąkłem tym w trakcie pracy zawodowej), więc postanowiłem iść w kierunku programowania Front-end. Ten czas wystarczył mi więc na przyzwoite poznanie HTML’a, CSS’a, preprocesora SASS, kilku różnych narzędzi do pisania kodu. Połowa (lub trochę więcej) z 160 godzin przypadła na język JavaScript, który w porównaniu do wymienionych w poprzednim zdaniu języków znacznikowych wypada niczym góra Khazad-dûm  w zestawieniu z domkiem Teletubisi. Udało się póki co zrozumieć programowanie proceduralne oraz podstawy programowania obiektowego w JS.



 W nauce programowania wiele zależeć będzie od kilku predyspozycji i założeń,


z którymi podchodzisz do tematu. Osobiście zawsze miałem pewną łatwość w uczeniu się języków obcych, nie mam więc problemów z nauką ‘słówek’ (czyli nazw właściwości, kluczy, funkcji). Jeśli masz problemy z ‘wkuwaniem’, to musisz założyć sobie kilka dodatkowych godzin na przyswojenie sobie wszystkich podstaw. Kolejnym ważnym czynnikiem jest język angielski, bez znajomości którego nie skorzystamy ani z oficjalnej (nieprzetłumaczonej) dokumentacji technicznej języka, ani z większości for internetowych poświęconych programowaniu (np. StackOverflow). Trzecia sprawa jest banalna w brzmieniu, ale naprawdę trudna do realizacji i kluczowa.


Determinacja, samozaparcie, zaciętość, nieugiętość, pasja



Zupełnie szczerze – praktycznie porzuciłem moje hobby rękodzielnicze i inne rozrywki po to, by uczyć się kodowania. Nic nie stoi na przeszkodzie, bym teraz wrócił do starych nawyków, ale chyba nie przeżyłbym poczucia winy. Jeśli masz słabą wolę, to wypracuj sobie mechanizm nagród za osiągnięcie kolejnego stopnia wiedzy. Bez ciągłości i wręcz upartości w nauce niestety nic z tego nie będzie. Musisz ‘wyczarować’ kilka godzin dziennie po to, by robić coś tak abstrakcyjnego, frustrującego i jednocześnie nagradzającego, jak kodowanie.

 

160+ godzin



Gdy rozpoczynałem naukę kodowania zakładałem, że po tej ilości czasu będę już całkiem przyzwoicie obeznany z programowaniem na Froncie. Nieco złudne wrażenie dały mi pierwsze sukcesy z nieprogramowanymi podstawami językami znacznikowymi (HTML/CSS). Dziś wiem, że 160 godzin to dla mnie po prostu mało i potrzeba dwa razy tyle, by poczuć się pewnie.W planach na najbliższy czas mam zaprzyjaźnienie się z biblioteką React oraz OOP – przygody z tą dwójką opiszę w oddzielnym poście.