Dzisiaj porozmawiamy o kodowaniu. Konkretnie, odpowiem na pytanie: Czym na świecie jest kodowanie? Opowiemy też trochę o tym, co się dzieje, gdy kodujemy.
Zanim jednak zaczniesz czytać dalej, kliknij prawym przyciskiem myszy w oknie przeglądarki i wybierz opcję „Wyświetl źródło strony”.
Gdy to zrobisz, uzyskasz widok kodu strony internetowej. Co oznacza, że zaglądając za kurtynę, zobaczyłeś język, który mówi komputerowi, jak sprawić, by ta strona wyglądała tak dobrze, jak wygląda.
Pierwszy raz, gdy faktycznie spojrzałem na kod w oknie przeglądarki, był dla mnie odkrywczy. Oto internet we własnym głosie! Nie rozumiałem większości z nich, ale mogłem wyłowić fragmenty słów i zwrotów, które wyglądały znajomo. Było kilka nazw czcionek, które rozpoznałem, i mniej więcej rozumiałem rozmiary pikseli. Reszta była dla mnie obca. Oto język, którym mówił mój komputer, a przynajmniej tak mi się wydawało.
Jeśli planujesz nauczyć się kodować, warto przemyśleć mechanikę kodowania. Wiedza o tym, co dokładnie się dzieje, gdy kodujesz, co to znaczy, gdy mówimy, że ktoś koduje, jaka jest różnica między kodowaniem a programowaniem, w jakich językach możesz skończyć kodować i jak zacząć kodować, pomoże ci być lepszym koderem.
Kodowanie komputerowe dla początkujących
Jest dużo szumu wokół kodowania, więc zacznijmy od wyjaśnienia, czym kodowanie nie jest. Wspomniałem powyżej, że kiedy po raz pierwszy zobaczyłem kod źródłowy strony internetowej, pomyślałem, że patrzę na język, którym posługuje się mój komputer. Jest to powszechny sposób wyjaśniania, czym jest kod, ale nie jest to do końca prawda.
Twój komputer nie rozumie niuansów języka. W rzeczywistości jedynymi terminami, które twój komputer rozumie bardzo dobrze w ogóle, są „Tak” lub „Nie”.
Wyobraź sobie, że budujesz most z grupą inżynierów. Ty jesteś po jednej stronie, oni po drugiej i musisz się porozumieć, aby zakończyć projekt. Problem w tym, że twój telefon padł, a twoje radio działa tylko w jedną stronę. Wszystko co masz do komunikacji z nimi to latarka. Jeden błysk na tak, dwa na nie. To zajmie trochę czasu, ale w końcu most zostanie zbudowany.
Tak właśnie komputer komunikuje się z ludźmi. Język, którym posługuje się komputer, to kod binarny, matematyczny język jedynek i zer. Podobnie jak w przypadku latarki, istnieją tylko dwie opcje. Komputer rozumie „włączony” i „wyłączony”, i nic poza tym. Więc jeśli nie wpisujesz ciągów jedynek i zer do edytora tekstu (a nie wpisujesz), to tak naprawdę nie piszesz kodu w języku komputera.
Ale jeśli kod nie jest napisany w języku komputera, to co robisz?
Kod komputerowy jest językiem
Pomyśl o pisaniu kodu w ten sposób. Nie posługujesz się językiem binarnym, a maszyna nie jest w stanie zbliżyć się do zrozumienia ludzkiego języka. Dlatego, aby powiedzieć komputerowi, co ma robić, musisz zaprojektować tłumacza, który może działać jako pośrednik. To jest właśnie cel kodu. Kod jest formą zapisu, która nie jest binarna, która jest łatwa do nauczenia się i interpretacji dla ludzi, ale którą komputer może zrozumieć.
W przypadku większości programów, nad którymi będziesz pracował, kod, który piszesz, jest w rzeczywistości o krok od kodu binarnego, który komputer będzie przetwarzał. Będziesz pisał w kodzie, który czerpie z ludzkiego języka. Programy wbudowane w komputer przetłumaczą to, co napisałeś, na kod binarny. To tak, jakbyś potrzebował porozmawiać z kimś, kto mówi po mandaryńsku, a ty znasz tylko angielski, a jedyny tłumacz, jakiego znalazłeś, mówił tylko po mandaryńsku i francusku. Potrzebowałbyś innego tłumacza, aby przetłumaczyć z angielskiego na francuski, a następnie pierwszy tłumacz może przetłumaczyć francuski na mandaryński, miejmy nadzieję, że bez znaczenia gubiącego się w procesie.
Co poniekąd rozwala mój umysł o tym wszystkim jest to, że to jakoś działa. Mamy programy tłumaczące programy dla maszyny, która mówi tylko w języku binarnym. Jest to szalenie skomplikowany proces, a jednak wpisuję ludzkie słowa na moim binarnie mówiącym komputerze.
Jest tego o wiele więcej, oczywiście, ale są to podstawowe rzeczy, które należy wiedzieć przed rozpoczęciem rozmowy z komputerem za pomocą kodu.
Kodowanie vs. Programowanie: What’s the Difference?
Kiedy dorastałem, mój tata i wszyscy ludzie, z którymi pracował, byli programistami komputerowymi. W ten sposób rozumiałem ludzi, którzy przez długi czas pisali kod dla komputerów: Byli programistami.
W ostatnim czasie wydawało się, że nastąpiło przesunięcie albo w terminologii, albo w branży. Nagle ludzie, którzy pisali dla komputerów, stali się koderami. Ta zmiana skłoniła mnie do zastanowienia się, czy istnieje jakakolwiek różnica między tym, co robią programiści, a tym, co robią koderzy.
Wielu twierdzi, że tak naprawdę nie ma żadnej różnicy między koderem a programistą. Jest to raczej różnica w terminologii niż w działaniu. Jeśli cokolwiek, moim skromnym zdaniem, mówienie, że jest się koderem jest nieco bardziej ogólne niż mówienie, że jest się programistą. Ponieważ dla mnie słowo programista jest często kojarzone z kursami programowania (i informatyki) na uniwersytecie. Natomiast kodowanie jest czymś, co każdy może robić.
Jonah Bitautas, projektant produktu za Cards Against Humanity, robi interesujący punkt, kiedy argumentuje, że istnieje prawdziwa różnica i jest ona zakorzeniona w kwestiach skali. Zasadniczo, koder to ktoś, kto pisze język dla komputerów. Programista to ktoś, kto nadzoruje pisanie całego programu – czyli całego projektu wartego kodowania.
Na koniec dnia, nie ma formalnej definicji kodera lub programisty. I tak, jest całkowicie w porządku używać tych terminów zamiennie: możesz powiedzieć „jestem koderem” lub „jestem programistą” i nikt nie będzie cię za to osądzał. Chyba, że podczas rzadkich okazji na Hacker News – stronie z wiadomościami programistycznymi, gdzie przesiadują doświadczeni (i opiniotwórczy) koderzy. Jasne, mogą coś powiedzieć. Po prostu to wyrzuć i idź dalej.
Types of Coding Languages
Istnieją dziesiątki języków kodowania. Kilka języków jest uniwersalnych (lub wielozadaniowych), ale większość z nich służy konkretnej funkcji. CSS, na przykład, funkcjonuje głównie po to, by rzeczy wyglądały ładnie. JavaScript, stosunkowo stary język, istnieje po to, by strony internetowe były bardziej funkcjonalne. Istnieją wyspecjalizowane języki, które są świetne, jeśli potrzebujesz czegoś bardzo specyficznego, ale wszystko, czego naprawdę potrzebujesz, aby zacząć, to kilka popularnych języków.
HTML
Kiedy poprosiłem cię o otwarcie kodu źródłowego tej strony internetowej, przeniosło cię to do linii kodu napisanych w HTML. Skrót od Hypertext Markup Language, HTML służy jako kość Internetu. Mówi on stronom internetowym, co powinno być wyświetlane oraz gdzie i jak mają się one mieścić w danym arkuszu stylów. Mówi on również przeglądarce, gdzie szukać treści, takich jak obrazy i filmy, które możesz chcieć włączyć do swojego projektu, a także gdzie znaleźć arkusz stylów, z którego korzystasz.
Jedna rzecz, której należy być świadomym: HTML technicznie nie jest „językiem programowania”, ponieważ nie używa wyrażeń opartych na logice, tak jak, powiedzmy, Python. HTML jest językiem znaczników – ale podobnie jak w przypadku debaty koder vs. programista vs. deweloper – raczej nie będziesz winny za nazwanie go językiem programowania, szczególnie jeśli jesteś początkujący.
CSS
CSS to arkusz stylów. Jeśli otworzysz plik CSS, zobaczysz wiele odniesień do rodzin czcionek, kolorów i stylów formatowania czcionek (takich jak pogrubienie, podkreślenie czy kursywa). Kiedy twoja przeglądarka ładuje stronę, HTML mówi jej „Spraw by ta część strony wyglądała jak nagłówek. OK?”. Mówi również „Tutaj jest miejsce, gdzie należy zajrzeć, aby zrozumieć jak powinien wyglądać nagłówek”. To zawsze będzie plik CSS.
Javascript
Javascript jest językiem, który wprowadza interaktywność na stronę internetową. Na przykład, kiedy klikasz przycisk na stronie internetowej, to JavaScript sprawia, że przycisk wygląda, jakbyś go kliknął. Sterowanie odtwarzaczami wideo w sieci i animacjami również często odbywa się za pomocą JavaScriptu.
Ruby vs. Python
Właściwie mamy już post o różnicach między Ruby i Pythonem, ale w skrócie chodzi o to, że te dwa języki programowania są często używane do tworzenia aplikacji internetowych.
To znaczy, tworzą one programy, które pozwalają stronom internetowym robić rzeczy na wysokim poziomie interaktywności. Jeśli chcesz, na przykład, zbudować bota do tworzenia automatycznego systemu płatności dla swoich klientów, prawdopodobnie użyjesz jednego z nich. Są to świetne programy do nauki pracy z nimi, ponieważ są niezwykle wszechstronne i w sieci jest wiele gotowego kodu, z którym możesz zacząć się bawić.
Jak nauczyć się kodować?
Istnieje wiele podobieństw pomiędzy nauką kodowania a nauką nowego (ludzkiego) języka. Najbardziej frustrującym podobieństwem jest to, że tak jak w przypadku nauki jakiegokolwiek języka, musisz spędzać czas na ćwiczeniu!
Niektórzy ludzie są po prostu naturalnymi koderami, jasne, tak jak istnieją ludzie, którzy mogą mówić po włosku po wysłuchaniu kilku oper. Jednak dla większości z nas nauka kodowania to proces prób i błędów. Kodowanie to umiejętność. Wymaga czasu, a pomocne jest posiadanie wskazówek.
Na szczęście, istnieje wiele niedrogich kursów online do nauki kodowania! Jeśli jesteś początkujący w kodowaniu i nie wiesz od czego zacząć, proponuję Programming For Non-Programmers. Ten kurs da ci słownictwo i perspektywę niezbędną do zrozumienia świata kodowania.
Jeśli jesteś gotowy, aby zanurzyć się prosto w naukę kodowania, naucz się Pythona. To jest to, co wszystkie fajne dzieciaki robią w tych dniach. Python jest świetnym językiem, którego możesz użyć do zbudowania prawie każdej strony internetowej lub aplikacji, jaką kiedykolwiek chciałbyś stworzyć. Nie wierzysz w to? Google, Uber, Netflix i wiele innych to tylko kilka firm używających Pythona.
Tight on cash? Istnieją dziesiątki stron internetowych, na których możesz nauczyć się kodować za darmo. Więc teraz nie masz już żadnych wymówek.