Czym jest programowanie?

Wyobraź sobie, że pracujesz dla międzynarodowej firmy i masz umówione spotkanie z biznesmenem z Chin. Oczywiście znasz Polski, ale nie umiesz ani słowa po chińsku. Jednakże znasz też angielski tak jak i biznesmen z Chin. Dlatego rozmawiacie ze sobą po angielsku.

 

Dokładnie tak samo używamy takich języków, jak HTML, CSS, JavaScript, Java itp., by komunikować się z komputerem w taki sposób, by się wzajemnie rozumieć.

Domyślnym językiem komputera jest kod binarny: niewyobrażalnie długie ciągi 0 i 1. Kod binarny nie jest łatwy dla ludzi ani w czytaniu, ani w pisaniu, dlatego wymyśliliśmy języki programowania, by móc porozumiewać się z komputerami. Jako że komputery nie znają żadnego ludzkiego języka, musieliśmy znaleźć kompromis.

Jednakże w przeciwieństwie do ludzi, komputery nie są w stanie zrozumieć intencji nie wprost i zawsze traktują wszystko bardzo dosłownie. Jeśli każesz im coś zrobić, wykonają to dokładnie tak, jak im poleciłeś. Komputery nie są wystarczająco mądre, by samodzielnie podejmować decyzje i nie zrozumieją informacji podanych nie wprost. Dlatego to ty musisz zadbać o to, żeby instrukcje, które dajesz, były dokładne i jednoznaczne.

Na przykład, jeśli poprosiłabym, żebyś zrobił mi kanapkę, mógłbyś zapytać mnie o składniki i czy chce ją na zimno, czy na ciepło. To mogą być wszystkie informacje, których potrzebujesz, aby przygotować pyszną kanapkę. Jednakże przygotowanie kanapki wymaga podjęcia wielu małych decyzji i wiedzy dotyczącej kanapek.

Natomiast jeśli powiedziałbyś komputerowi, że chciałbyś ciepłą kanapkę z serem, szynką na żytnim chlebie i z majonezem, możesz otrzymać coś zupełnie innego niż zamawiałeś. Człowiek wie, że najpierw trzeba posmarować chleb majonezem, potem położyć na nim szynkę i ser, a następnie włożyć do piekarnika, by ją podgrzać.

 

Ale skąd komputer ma to wiedzieć?

Pamiętaj, że powiedzieliśmy komputerowi “ciepłą kanapkę z serem, szynką na żytnim chlebie i z majonezem”. Dla komputera logiczne może być wykonanie tych rzeczy po kolei. Mógłby na przykład najpierw podgrzać każdy składnik oddzielnie, następnie ułożyć jeden na drugim i polać majonezem.

 

Czy komputery nie powinny być mądrzejsze?

Cóż, komputery rozumieją wszystko bardzo dosłownie, musisz dokładnie określić każdy kolejny krok i ułożenie składników. Każdy wie, że miejsce składników jest w bułce, ale komputer nie ma takiej wiedzy z doświadczenia — on po prostu wykonuje twoje instrukcje.

To jest kolejny powód, czemu nie możemy porozumiewać się z komputerami za pomocą ludzkiego języka, przynajmniej na razie. Nasze języki są po prostu zbyt niedokładne dla komputera. Poza tym słowa i zdania mogą mieć wiele znaczeń i komputer nie wiedziałby, o które z nich nam chodzi. Wszystko musi być powiedziane jednoznacznie.

Prawda jest taka, że komputery wcale nie są mądre; po prostu umieją przetwarzać informacje szybciej niż my.

Kim są programiści i czym się zajmują?

Pamiętaj, że nie możesz powiedzieć czegoś do komputera po prostu po polsku. Potrzebujesz programisty, który przetłumaczy twoją wypowiedź na język komputera. Programista komputerowy to osoba, przedkładająca twoje pomysły i instrukcje na język komputera, tworzy strony internetowe, gry i inne programy, które widzisz na ekranie.

Programistę możemy nazwać też poliglotą (osobą znającą wiele języków), który specjalizuje się w rozmawianiu z komputerami. Programista wie dokładnie co i w jaki sposób “powiedzieć”, żeby komputer go zrozumiał. Jeśli kiedykolwiek uczyłeś się drugiego języka, wiesz, że każdy język ma swoje słowa, gramatykę i reguły. Języki komputerowe też mają to wszystko, nazwane jednym zgrabnym słowem — syntax.

Jeśli źle wymówisz słowo, użyjesz złej odmiany lub popełnisz błąd gramatyczny, człowiek powinien zrozumieć cię bez problemu, jednak komputery są mniej wybaczające. Jeśli popełnisz błąd, komputer przestanie “słuchać” i zakończy program.

To niezbyt miłe.

 

Do czego może ci się przydać programowanie?

Jeśli kiedykolwiek używałeś komputera, oglądałeś filmy online lub grałeś w gry na komputerze, może być ciężko w to uwierzyć, ale te wszystkie rzeczy to tak naprawdę ciągi liter i symboli. Siła komputera wynika z tego, że może przetworzyć tysiące linijek kodu w sekundę, co pozwala mu wykonywać bardzo skomplikowane instrukcje i robić niesamowite rzeczy.

Zajmijmy się tym, co fajnego można zrobić programując:

  • Tworzyć i projektować strony internetowe
  • Tworzyć aplikacje mobilne
  • Pisać programy na komputer
  • Tworzyć gry
  • Tworzyć bazy danych i korzystać z nich
  • Rozwiązywać skomplikowane problemy
  • Tworzyć sztuczną inteligencję
  • Robić analizę statystyczną
  • I wiele więcej…

Jeśli interesuje cię którykolwiek z tych rzeczy lub chciałbyś robić je zawodowo, nauka programowania to podstawa, bez której się nie obejdziesz.

 

Co sprawia, że programowanie się przydaje i do czego?

Jako że coraz więcej rzeczy bazuje na komputerach, nasze codzienne życie powoli staje się od nich zależne, a wraz ze wzrostem ważności komputerów rośnie ważność programowania.

W niedalekiej przyszłości wszystko będzie bazować na komputerach, a co za tym idzie, programowanie pomoże ci z twoją przyszłą karierą. Na przykład programowanie można wykorzystać przy pisaniu, analizie, zarządzaniu, inżynierii, pisaniu programów itd.

Zwolennicy nauki programowania uważają je za uniwersalną umiejętność, którą powinien mieć każdy, podobnie jak umiejętność czytania, pisania i podstaw matematyki. Wiele rządów na świecie też jest takiego zdania i wprowadza obowiązkowe lekcje programowania do szkół.

Podobnie jak my, rozumieją, że programowanie to przydatna umiejętność na obecnym rynku pracy.

 

Już wiem, że jest przydatne, ale na czym dokładnie polega programowanie?

Zwyczajny dzień z życia programisty nie jest tak porywający, jak to czasem widać w filmach czy serialach.

Bycie dobrym programistą wymaga dużo koncentracji, cierpliwości i samodzielności. Jeśli nie umiesz usiąść i być skupionym przez wiele godzin, powinieneś zastanowić się, czy programowanie to na pewno coś dla ciebie.

Niektóre zawody związane z programowaniem wymagają też bycia w gotowości cały czas, bo nigdy nie wiadomo kiedy znajdzie się nowy błąd, który trzeba będzie natychmiast naprawić. Jednak są też takie, które funkcjonują w zwykłym trybie od ósmej do szesnastej.

Jednakże praca programisty może zapewnić ci swobodę, która jest niewyobrażalna w twojej obecnej pracy. Wiele firm zatrudnia programistów do pracy zdalnej, co oznacza, że możesz programować z domu, kawiarni, lub nawet z plaży — oczywiście, jeśli zasięg WiFi jest tak duży.

 

Czy programowanie to coś naprawdę dla mnie?

Tutaj następuje zderzenie z rzeczywistością i moment, w którym będziesz musiał rozważyć wady i zalety pracy jako programista. Możliwe, że miałeś błędne wyobrażenie o programowaniu i nie brałeś pod uwagę, że to praca jak każda inna na rynku — to wciąż ciężka praca. Jednakże jeśli masz poniższe cechy i umiejętności, jest duża szansa, że programowanie to coś dla ciebie.

Znaki, że programowanie nie jest dla ciebie:

  • Interesują cię tylko pieniądze, a nie komputery
  • Nie lubisz długo siedzieć
  • Włosy stają ci dęba, gdy widzisz stronę kodu
  • Wolno piszesz na klawiaturze i robisz dużo błędów

Znaki, że programowanie jest dla ciebie:

  • Jesteś wnikliwy ORAZ kreatywny
  • Zwracasz uwagę na detale
  • Umiesz pracować zarówno z innymi, jak i samodzielnie
  • Znasz dobrze podstawy angielskiego
  • Lubisz rozwiązywać problemy
  • Lubisz uczyć się nowych rzeczy
  • Szybko dostosowujesz się do zmian
  • Lubisz organizować informacje i automatyzować procesy

 

Jaki język programowania wybrać i gdzie powinienem zacząć?

Wróćmy do naszego przykładu ze spotkaniem z chińskim biznesmenem.

Mimo że w środowisku biznesowym angielski może być przydatny, w innych miejscach inne języki mogą okazać się lepsze. Na przykład, możesz potrzebować francuskiego do dyplomacji, greckiego do filozofii i niemieckiego do inżynierii. Zależy w czym chcesz się specjalizować, powinieneś wybrać odpowiedni język.

W przyszłości możesz nie mieć czasu i możliwości, żeby nauczyć się nowego języka, dlatego musisz zawczasu podjąć właściwą decyzję, jakich języków się nauczysz. Najpierw musisz zdecydować, co jest dla ciebie ważne, co chcesz osiągnąć i jakie języki będą ci do tego potrzebne.

Mimo że technicznie nie są to języki programowania, HTML i CSS są dobrym wyborem na początek, by poznać podstawy działania programowania. HTML i CSS są “językami znaczników”, których używamy, by formatować tekst. Bez HTML i CSS twoja przeglądarka nie wiedziałaby, czy te słowa powinny być pogrubione, kursywą itd.

Nawet teraz pisząc ten artykuł używam HTML i CSS, by pomóc twojej przeglądarce zrozumieć co mam do powiedzenia.

 

TL;DR (Za długie; Nie przeczytałem)

Podsumowując, programowanie jest dobrze płatnym zawodem, który wymaga cierpliwości, zaangażowania i dbałości o szczegóły.

Jeśli nie lubisz siedzenia długo przed komputerem i nie będziesz chciał poświęcać czasu na ćwiczenie, bardzo prawdopodobnie nie polubisz programowania i szybko je porzucisz. Również, jeśli motywuje cię myśl o pensji, a nie o samej pracy, raczej ci się nie uda.

Jednakże, jeśli lubisz uczyć się nowych rzeczy, jesteś zmotywowany i nie poddajesz się bez walki, osiągniesz sukces niezależnie od twojego wykształcenia.