Rzeka zwana „Informatyką”

Garść przemyśleń dotyczących nauk informatycznych. Narzuca się, aż samo porównanie informatyki do bardzo szerokiej rzeki, w której mnogość prądów, drobnych zawirowań sprawia, że wielu sprawia sporą trudność opisanie czym jest w nowoczesnym świecie informatyka i jakie stawia wymagania przed każdym, kto chcę informatykiem być nazywany. Jako, że już jakiś czas temu udało mi się ukończyć studia wyższe z tej dziedziny postaram się na to pytanie odpowiedzieć – dokonując krótkiej klasyfikacji dziedzin informatycznych.
Z jeszcze dawnych lat znany jest prosty i zdecydowanie zbyt mało mówiący podział na „software” i „hardware”. Pozwala jednak ten podział na odfiltrowanie wszelkiej maści elektroników i eksperymentatorów sprzętowych, np. użytkowników zestawów dla majsterkowiczów „Arduino”, które służą do budowy własnych sterowanych kodem urządzeń lub tzw. inteligentnego domu. Jeżeli do dziś, któś jest zdziwniony, że jego znajomy informatyk nie naprawi mu laptopa lub innego sprzętu, musi wziąć sporą poprawkę na swoją wiedzę w tej branży.
Druga gałąź w informatyce – oprogramowanie – jest znacznie szersza. I choć na rynku pracy najbardziej są poszukiwani specjaliści w bardzo wąskich nurtach programowania dostosowanego do potrzeb danego projektu, warto jednak zauważyć, że wiedze ogółną powinien mieć każdy informatyk. Dziedzina pierwsza – systemy operacyjne. Mam nadzieję, że wiedza i znajomość systemów operacyjnych jest szersza niż tylko umiejętność przeinstalowania Windows’a. I tak systemy Windows są najczęściej spotykane u klientów i przydaje się znajomość takich zagadnień jak rejestr systemowy, konfiguracja sprzętu (drukarek, itp.). Podgałęzią dużo ciekawszą są systemy Unix’owe w tym Linux, które mają podstawowe znaczenie w systemach serwerowych, tych małych jak Raspberry w domu, jak i wielkich serwerowniach.
Kolejną dziedziną – jest programowanie. I tu wiele nurtów – od podziału na frontend, backend, przez jezyki niskiego poziomu (Assembler), wyższego (C,C++) po interpretowane języki (PHP,Python,Ruby). Pewną odrębną grupę stanowią języki typowo sieciowe – budujące strukturę strony (HTML, CSS), w których nie spotkamy się choćby z pojęciem algorytmu. W pozostałych jezykach wyróżniamy języki proceduralne – niższego poziomu (oferujące podział kodu na procedury i funkcje) oraz języki obiektowe (wyższego poziomu). Dużą różnicę sprawiają obsługiwane typy danych, w językach niższego poziomu ściśle określone statyczne typy zajmujące konkretną ilość bajtów w pamięci, w językach wyższego poziomu dynamicznie przydzielane przez interpreter lub kompilator. Tu kolejny podział na języki interpretowane i kompilowane – te ostatnie dają wynikowy plik wykonywalny, podczas gdy pierwsze interpretują bezpośrenio kod źródłowy.
Dużo by jeszcze się rozpisywać by ogarnąć całą tą rzekę dziedzin związanych z obróbką cyfrową. Nie wspominiałem nawet o często wiązanych z informatyką dziedzinach artystycznych – jak grafika komputerowa lub na przykład sprawy związane z sieciami komputerowymi na pograniczu sprzętu i oprogramowania. To tylko w telegraficznym skrócie, żeby osobie nie związanej z informatyką pomóc zrozumieć znajomego informatyka – to czym się zajmuje – jaką poddziedziną tego zawodu. Być może następnym razem będzie łatwiej rozmawiając z informatykiem sprecyzować – jakie wobec niego mamy oczekiwania i jakie zadania jest w stanie wykonać.

code


ZYGTECH.pl