Czym jest programowanie?
Każdy z nas wie mniej więcej jak brzmi odpowiedź na pytanie zadane w tytule, mogłaby ona wyglądać mniej więcej: “jest to pisanie programów na komputer przeznaczonych do wykonywania określonych zadań”. I w sumie – to prawda, jednak chciałbym pogłębić tą odpowiedź i zastanowić się czemu stało się ono tak bardzo popularne i dlaczego nauka kodowania jest ważna.
Komputery, którymi się posługujemy wcale nie są tak mądre: jak nam się wydaje – ich możliwości są definiowane przez zainstalowane na nich oprogramowanie, które określa co maja robić i w jaki sposób rozwiązać dany problem. Oczywiście sprzęt ten nie „rozumie” naszej mowy – posiada swój „język”, który jest ciągiem zer i jedynek, który z kolei jest zupełnie niezrozumiały przez nas. Dlatego oprogramowanie jest z jednej strony pośrednikiem między nami a komputerem, a z drugiej strony instrukcją dla sprzętu co konkretnie ma wykonać. Słowo „konkretnie” zostało podkreślone nie bez przyczyny – ważnym aspektem w pracy programisty jest jak najdokładniejsze podanie wytycznych – elektronika nie rozumie kontekstu: dla niej słowo zamek będzie zawsze oznaczało tylko budynek lub tylko zamek w drzwiach, no chyba, że do słowa zamek dodamy kolejne, które sprecyzuje o którą wersję nam chodzi. Instrukcja pisana przez programistę jest rozmową z komputerem, w sposób dla niego zrozumiały i w taki, który nas doprowadzi do rozwiązania danego problemu.
Bazując na tym, co wcześniej napisałam, programiści muszą stanąć przed rozwiązaniem danego problemu i stworzyć takie rozwiązanie (program), które przyda się do rozwiązywania go w przyszłości. „Problem” w znaczeniu programowania jest bardzo trudny do zdefiniowania, gdyż są to wszystkie takie sytuacje, w których musi zostać podjęta konkretna decyzja, ale również może odnosić się do automatyzacji danych procesów. Odniesieniem do pierwszego z przykładów może być podjęcie decyzji przez bank, czy danej osobie można przyznać kredyt – taka decyzja nie może się opierać na subiektywnej ocenie pracownika tej instytucji, gdyż mimo, że jedna nietrafiona decyzja nie spowoduje bankructwa banku, to jednak pomnożenie tego przez ilość placówek i oddziałów oraz pracowników, którzy mogą wydawać tego typu decyzje może już zachwiać jej finansami. Dlatego warto napisać oprogramowanie, które otrzymując dane wejściowe pomoże pracownikowi w podjęciu decyzji. Tutaj może być brany pod uwagę dochód, stan cywilny, czy nawet wiek lub rodzaj wykonywanej pracy – oprogramowanie może przeanalizować te czynniki i wydać decyzję. To, w jaki sposób oprogramowanie to robi zależy już od osób piszących tego typu soft (należy pamiętać, że zawsze jest to podparte odpowiednimi danymi). Drugi przykład może wydać się prostszy: weźmy pod lupę skrzynkę e-mail. Mamy w niej możliwość tworzenia folderów oraz reguł, które napisane są w taki sposób bo komputer wiedział, że gdy otrzymujemy e-mail od pracodawcy trafi on do folderu Praca, a gdy otrzymamy po raz piętnasty tę samą wiadomość następnym razem trafi ona do spamu.
Programowanie to nie tylko „klikanie w komputer”, ale również bardzo dużo pracy analitycznej, której celem jest takie przełożenie wymogów użytkowników oprogramowania na polecenia, które zrozumie maszyna. Dodatkowo należy przewidzieć wszystkie wyjątki, oraz ograniczenia, jakie mogą pojawić się w przyszłości. A to wcale nie jest takie łatwe. Przyjrzyjmy się danej jaką jest data 10/03/2020 – dla nas oczywiste jest, że mówimy o dziesiątym marca, ale ktoś pochodzący ze Stanów Zjednoczonych myślałby o trzecim października, co zupełnie nie pokrywa się z tym o czym na początku myśleliśmy, a co może wywołać spore komplikacje. Wystarczy pomyśleć, że osoby różnych narodowości mają zaplanowane wizyty u specjalisty i w zły sposób zostanie data wizyty zaznaczona w ich kalendarzach – nerwowa sytuacja gwarantowana.
Jeśli programowane wymaga tak kreatywnego i analogicznego myślenia dlaczego stało się ono tak bardzo popularne? Oczywiście pierwsze co się nasuwa to zarobki w tej branży, które plasują się na bardzo zadowalającym poziomie. Dodatkowo dostajemy możliwość pracy na całym świecie, ponieważ w programowaniu głównie używa się języka angielskiego, dlatego osoby nawet z zagranicznych biur będą miały z nami wspólny język, który pozwoli nam na pracę w Niemczech, Słowacji, czy nawet w Hondurasie. Dodatkowo programowanie pozwala na wiele ścieżek rozwoju zawodowego, gdyż umiejąc to robić możemy być nie tylko developerem, ale również testerem, czy kierownikiem zespołu lub projektu, dodatkowo przeniesienie się pionowe między tymi profesjami jest ułatwione i gdy poczujemy, że to jednak nie to, nie musimy w pełni się przebranżawiać, by spróbować swoich sił na innym stanowisku. Warto również pamiętać, że w głównej mierze zadaniem programisty jest poszukiwanie kreatywnych rozwiązań, czyli nie tylko ludzie wybitnie uzdolnieni matematycznie poradzą sobie z przyswojeniem tej umiejętności, więc przy samozaparciu i ciężkiej pracy nawet osoby z mniejszymi zdolnościami matematycznymi posiądą tę wiedzę.
Na zakończenie chciałbym zastanowić się czy warto się uczyć programowania i odpowiedź brzmi- tak! Jednak odpowiedziałabym to samo, gdyby ktoś zapytał mnie czy warto uczyć się grać na gitarze. Zdobywanie nowych umiejętności zawsze jest czymś rozwijającym i przydatnym, możemy dzięki temu odkryć drzemiące w nas talenty lub mimochodem rozwinąć inną część swojej osobowości czy umiejętności. Żyjemy w coraz bardziej cyfryzowanym świecie, coraz więcej procesów zostaje zautomatyzowanych, a do tego są potrzebne osoby, które je wdrożą. Dodatkowo umiejętności te lepiej pozwolą nam poznać najnowsze technologie, gdyż będziemy wiedzieć jak „myślą” nowe roboty, maszyny czy urządzenia i staną nam się bliższe przez co obsługa ich stanie się dla nas zupełnie intuicyjna.