Wszyscy zapewne słyszeliście słowo “programowanie”, które w ostatnich dekadach zdobywa coraz większą popularność. Regularnie rosnąca ilość studentów oraz osób, które zdobywały wiedzę i doświadczenie poza strukturami uczelni, sprawiły, że dział informatyki, jakim jest programowanie, urósł do niewyobrażalnych rozmiarów. Każdy chciałby znaleźć swoją wymarzoną pracę w takich potęgach jak Google, Facebook czy Amazon.
Czym jest programowanie?
W tym artykule skupię się na wyjaśnieniu, czym tak naprawdę jest programowanie.
Programowanie to sposób komunikowania się z komputerem, aby przekazać mu instrukcję do wykonania określonych zadań.
Brzmi skomplikowanie? To postarajmy się rozbić to na prostsze, bardziej zrozumiałe fragmenty.
“komunikowania się z komputerem”
Co to oznacza? Komunikacja polega na rozmawianiu. W programowaniu właśnie o to chodzi. Jedną ze stron tej konwersacji jesteśmy my, programiści. Po drugiej stronie stoi nasz współrozmówca – komputer.
W dialekcie istotne jest to, aby obie strony się rozumiały. Żeby tego dokonać, musimy porozumiewać się wspólnym słownictwem – językiem. Nie inaczej jest w tym przypadku. Komputer nie będzie rozumiał każdego naszego słowa. Ma określony zbiór słów, które będzie potrafił odpowiednio zinterpretować.
“przekazać mu instrukcję”
Czy nasza rozmowa przebiega na równych warunkach? Nie zupełnie. Musimy na to spojrzeć z nieco innej perspektywy. Wyobraźmy sobie, że jest to rozmowa szefa z pracownikiem, gdzie szefem jesteśmy my, a pracownikiem komputer.
To my jesteśmy tą osobą, która wydaje polecenia. Komputer (nasz pracownik) ma je tylko zrozumieć i wykonać je w określony sposób. Dlatego tak ważnym elementem jest język. Komputer musi nas zrozumieć, aby odpowiednio zinterpretować nasze słowa. Musi wiedzieć, czego my od niego chcemy. Jeżeli wydamy nieodpowiednie polecenie lub nasza instrukcja będzie niejasna, komputer tego zadania nie wykona.
Tak jak w prawdziwym życiu. Jeżeli ktoś będzie mówił niejasno, nie zrozumiemy jego intencji i nie będziemy potrafili zrobić rzeczy, o którą nasz szef nas prosi.
“wykonania określonych zadań”
Nasz pracownik musi wykonać odpowiednie zadanie. To które mu powierzyliśmy. Komputer otrzymuje od nas jasne instrukcje, wie co ma zrobić i to robi.
Jak to działa w praktyce?
W takim razie możemy inaczej przetłumaczyć, że programowanie to rozmowa programisty z komputerem, w którym programista wydaje określone polecenia maszynie, aby ta wykonała odpowiednie zadanie. To jak wygląda to w praktyce? Poniżej postaram się zobrazować to na podstawie kilku przykładów.
Wyobraźmy sobie, że potrzebujemy dodać dwie liczby do siebie. Jako programista, używamy instrukcji (słów) dodawania, oraz dwóch liczb 7 i 5. Przekazujemy je do komputera, aby ten wykonał dla nas zadanie. Komputer otrzymuje zrozumiałe dla niego polecenia i dodaje w pamięci do siebie obie liczby, podając nam wynik 12.
Oczywiście powyższy przykład jest banalny i każdy może dodać dwie liczby do siebie. Ale wyobraźmy sobie, że będzie nam potrzebna średnia cena produktu w sklepie, z ostatnich 12 miesięcy. Co wtedy? Musielibyśmy dodać do siebie wartość produktu z 365 dni, a następnie podzielić wartość przez 365. To już takie proste nie jest. Dla nas. Komputer zrobi to w ułamku sekundy.
Czy komputer mówi po polsku?
Nie. Co więcej, komputer nie mówi także w języku angielskim. Mimo tego, że wydawane mu polecenia w większości języków, w których się z nim rozmawiamy jest po angielsku, to maszyna ich nie rozumie.
Jak to się dzieje? Otóż w naszej rozmowie uczestniczy jeszcze jedna osoba. Kompilator. To nasz tłumacz. Pomaga on na odebraniu od nas wytycznych dla komputera, tłumaczy je, opisuje w zrozumiały dla komputera język i dostarcza bezpośrednio do procesora.
Aby to zobrazować postaram się to wytłumaczyć na przykładzie. Wyobraź sobie sytuację, że jako szef firmy zatrudniasz nowego pracownika. Jest to Hiszpan o imieniu Sergio. Sergio niestety nie zna jeszcze polskiego, a i z angielskim sobie nie radzi. Na szczęście w Twojej firmie jest Miguel, który bardzo dobrze radzi sobie zarówno z językiem polskim jak i hiszpańskim. Miguel będzie uczestniczył w każdej waszej rozmowie. Będzie tłumaczył każde Twoje polecenie dla Sergio, tak, aby ten potrafił wykonać powierzone mu zadanie.
Tym właśnie jest kompilator. Tłumaczy nasze instrukcje, na język maszynowy, dzięki czemu komputer wykonuje dokładnie to, czego od niego wymagamy.
Dlaczego programowanie jest istotne?
W gruncie rzeczy, komputery w większości nie robią bardzo skomplikowanych rzeczy. Liczą. I to bardzo często liczą proste rzeczy. Jakie? Np. procent z liczby, dodawanie kilku liczb, mnożenie, dzielenie itd. Dlaczego więc komputery są coraz powszechniejsze? Przecież większość z tych rzeczy, potrafi zrobić absolwent szkoły podstawowej. Oczywiście, ale komputer zrobi to szybciej i lepiej. Oto kilka korzyści, które niesie za sobą używanie komputera:
- jest szybki – komputer potrafi wykonywać większość obliczeń znacznie szybciej niż człowiek. Mnożenie, dzielenie, pierwiastki. wiele z tych obliczeń możemy zrobić w głowie. Ale jeżeli przyjdzie nam podzielić przez sobie kilka liczb całkowitych, komputer zrobi to w ułamku sekundy. Człowiek będzie potrzebował kartki i długopisu, aby gdzieś zapisać wyniki poszczególnych operacji.
- pracuje bez przerwy – wyobraźmy sobie, że potrzebujemy wykonywać sporo obliczeń dziennie. Możemy zatrudnić kogoś, aby to robił. Ale będzie mógł to wykonywać przez 8 godzin dziennie. Komputer podłączony do prądu, będzie mógł pracować 24 godziny, 7 dni w tygodniu
Czego potrzebuję aby zacząć?
Tak to dobre pytanie. W gruncie rzeczy nie trzeba aż tak dużo. To czego potrzebujesz na początku to komputer, wolny czas i chęci. Wbrew błędnym przekonaniom, zaawansowana matematyka, czy fizyka, nie jest czymś, bez czego się nie da programować.
Większość zadań programistów wcale nie polega na tworzeniu zaawansowanych systemów do naprowadzania rakiet dla wojska. To przyziemne rzeczy, które mają ułatwić życie przeciętnej osobie. Jasne, bez matematyki się nie obejdzie. Ale nie musisz potrafić mnożyć w zakresie miliona, każdego ułamka.
Gdy już masz czas, zapał i komputer, musisz wybrać odpowiedni język. Tutaj wybór jest spory, ale o językach napiszę w lekcji drugiej.