2024-09-08

Mity technologiczne obalone: co ludzie myślą o programowaniu i dlaczego się mylą

Humorystyczny i przyjazny dla początkujących post obalający najczęstsze mity o programowaniu: od potrzeby bycia geniuszem matematyki po przekonanie, że prawdziwi programiści nigdy nie popełniają błędów.

Mity technologiczne obalone: co ludzie myślą o programowaniu i dlaczego się mylą

Programowanie ma reputację.

Dziwną reputację.

Niektórzy wyobrażają sobie programistów jako tajemniczych czarodziejów klawiatury siedzących w ciemnych pokojach, piszących z niemożliwą prędkością, pijących kawę z podejrzanie dużych kubków i hakujących satelity przed śniadaniem.

Hollywood zdecydowanie nie pomogło.

Według filmów programowanie wygląda mniej więcej tak:

“Powiększ obraz. Odwróć firewall. Włam się do mainframe’a. Mamy 12 sekund.”

Prawdziwe programowanie wygląda częściej tak:

“Dlaczego ten przycisk jest 3 piksele za nisko?”

A potem spędzasz 45 minut, żeby odkryć, że zapomniałeś zamknąć jeden tag.

Piękne.

Bolesne.

Edukacyjne.

Jeśli dopiero zaczynasz programować, prawdopodobnie słyszałeś już wiele mitów. Niektóre brzmią strasznie. Niektóre imponująco. Niektóre wyglądają, jakby wymyślili je ludzie, którzy raz zobaczyli terminal i natychmiast zamknęli laptopa.

Więc obalmy kilka z nich.

Bo programowanie to nie magia.

Nie jest tylko dla geniuszy.

I nie, nie potrzebujesz superkomputera, doktoratu ani umiejętności płynnego mówienia binarnie przez sen.

Potrzebujesz ciekawości, cierpliwości i odwagi, żeby czytać komunikaty błędów bez brania ich osobiście.

Przeważnie.


Mit 1: musisz być geniuszem matematyki

To prawdopodobnie jeden z najczęstszych mitów.

Ludzie słyszą “programowanie” i od razu wyobrażają sobie zaawansowaną matematykę, równania latające po ekranie i kogoś szepczącego:

“Tylko wybrani przez analizę matematyczną mogą wejść.”

Nie.

W większości codziennego programowania nie musisz być geniuszem matematyki.

Potrzebujesz logiki.

Potrzebujesz rozwiązywania problemów.

Potrzebujesz rozumieć podstawowe operacje, takie jak:

let total = price * quantity;

To nie jest czarna magia.

To zakupy z użyciem zmiennych.

Oczywiście, niektóre obszary programowania używają dużej ilości matematyki.

Silniki gier, grafika, machine learning, kryptografia, symulacje — tak, tam matematyka staje się ważniejsza.

Ale jeśli tworzysz strony internetowe, automatyzujesz zadania, piszesz backendowe API, budujesz formularze, pracujesz z bazami danych albo uczysz się pierwszego języka programowania, możesz zacząć bez przyjaźni z zaawansowanym rachunkiem różniczkowym.

Większość początkujących musi zrozumieć takie rzeczy jak:

  • zmienne,
  • warunki,
  • pętle,
  • funkcje,
  • tablice,
  • obiekty,
  • i dlaczego true to nie to samo co "true".

To ostatnie zaboli przynajmniej raz.

Rzeczywistość

Nie musisz być geniuszem matematyki, żeby zacząć programować.

Musisz być gotowy myśleć krok po kroku.

I czasami liczyć od zera, bo programiści spojrzeli na normalne liczenie i powiedzieli:

“Za łatwo. Niech początkujący trochę pocierpią.”


Mit 2: potrzebujesz drogiego komputera

Kolejny klasyczny mit:

“Nie mogę nauczyć się programowania, bo nie mam mocnego komputera.”

Spokojnie.

Uczysz się pisać kod, a nie odpalać satelitę pogodowego z kuchni.

Do nauki programowania prawie każdy działający laptop wystarczy.

Jeśli twój komputer potrafi otworzyć przeglądarkę, uruchomić edytor tekstu i nie zemdleć dramatycznie za każdym razem, gdy naciskasz Enter, możesz zacząć.

Nie potrzebujesz:

  • 64 rdzeni CPU,
  • 128 GB RAM,
  • świecącego RGB,
  • wieży chłodzonej cieczą,
  • ani maszyny, która brzmi, jakby przygotowywała się do startu.

Możesz uczyć się HTML, CSS, JavaScript, Pythona, Git, podstaw Linuksa, baz danych i wielu innych rzeczy na skromnym laptopie.

Tak, niektóre zadania wymagają więcej mocy.

Uruchamianie wielu maszyn wirtualnych, duże setupy Docker, emulatory mobilne, montaż wideo, renderowanie 3D, machine learning — to może być ciężkie.

Ale do nauki programowania?

Normalny komputer wystarczy.

Wielu developerów zaczynało na starych maszynach, które brzmiały jak zmęczone, ale nadal działały.

Czasem słabszy komputer uczy nawet dobrych nawyków.

Uczysz się unikać zbędnego bloatu.

Uczysz się zamykać karty.

Uczysz się, że otwarcie 47 kart w przeglądarce to nie osobowość.

To wołanie o pomoc.

Rzeczywistość

Zacznij z komputerem, który masz.

Nie czekaj na idealny setup.

Idealny setup to często tylko prokrastynacja w ładnej klawiaturze.


Mit 3: programowanie jest nudne

Niektórzy wyobrażają sobie programowanie jako patrzenie na nieskończone linie tekstu i powolną utratę chęci do życia.

I tak, niektóry kod może tak wyglądać.

Zwłaszcza kod legacy.

Kod legacy to kod napisany przez kogoś innego, dawno temu, w tajemniczych okolicznościach, możliwe że podczas burzy.

Ale samo programowanie nie jest nudne.

Programowanie to rozwiązywanie problemów.

To budowanie rzeczy.

To sprawianie, że przycisk działa.

To tworzenie strony internetowej.

To automatyzowanie czegoś irytującego.

To napisanie skryptu, który oszczędza ci 30 minut, a potem spędzenie 3 godzin na jego ulepszaniu, bo teraz to już sprawa osobista.

Programowanie bywa frustrujące.

Oczywiście.

Ale jest też satysfakcjonujące.

Niewiele rzeczy daje taką radość jak naprawienie błędu po szukaniu, testowaniu, kwestionowaniu swoich życiowych wyborów i odkryciu, że problemem był jeden typo.

Mały typo.

Mikroskopijny złoczyńca.

Programowanie jest jak rozwiązywanie zagadek, tylko że zagadka czasem odpowiada niemiłym komunikatem błędu.

To nie jest nudne.

To chaos ze strukturą.

Rzeczywistość

Programowanie robi się ciekawe, gdy budujesz coś, co ma dla ciebie znaczenie.

Stronę osobistą.

Małą grę.

Skrypt do pracy.

Blog.

Dashboard.

Narzędzie, które rozwiązuje prawdziwy problem.

Nudna część to zwykle nie programowanie.

Nudna część to oglądanie tutoriali bez budowania czegokolwiek własnego.

Więc buduj.

Psuj.

Naprawiaj.

Powtarzaj.

Tam zaczyna się zabawa.


Mit 4: musisz znać wszystkie języki programowania

Niektórzy początkujący patrzą na świat programowania i wpadają w panikę.

Jest Python.

JavaScript.

TypeScript.

Java.

C.

C++.

C#.

Rust.

Go.

PHP.

Ruby.

SQL.

Bash.

A potem ktoś wychodzi z cienia i mówi:

“Próbowałeś Haskella?”

Nic dziwnego, że początkujący czują się przytłoczeni.

Ale prawda jest taka:

Nie musisz znać wszystkich języków programowania.

Nikt nie zna wszystkich.

A jeśli ktoś twierdzi, że zna wszystkie języki, poproś go, żeby wyjaśnił wskaźniki w C, utrzymując kontakt wzrokowy.

Pokój bardzo szybko stanie się szczery.

Najlepsza strategia jest prosta:

Wybierz jeden język.

Naucz się dobrze podstaw.

Buduj małe projekty.

Potem rozszerzaj wiedzę.

Gdy zrozumiesz koncepcje programowania, nauka kolejnego języka staje się łatwiejsza, bo wiele idei się powtarza:

  • zmienne,
  • funkcje,
  • warunki,
  • pętle,
  • struktury danych,
  • błędy,
  • moduły,
  • wejście i wyjście.

Składnia się zmienia.

Myślenie pozostaje podobne.

Nauka pierwszego języka programowania jest jak nauka jazdy.

Potem zmiana samochodu jest łatwiejsza.

Niektóre auta są automatyczne.

Niektóre manualne.

Niektóre są Javą i proszą cię o napisanie 12 linii, zanim cokolwiek się wydarzy.

Ale droga zaczyna mieć sens.

Rzeczywistość

Zacznij od jednego języka.

Dobre wybory dla początkujących to:

  • Python, jeśli chcesz coś czytelnego i przyjaznego,
  • JavaScript, jeśli chcesz tworzyć strony internetowe,
  • TypeScript, jeśli znasz już JavaScript i chcesz więcej struktury,
  • Java, jeśli chcesz solidne podstawy backendu,
  • C, jeśli chcesz zrozumieć komputery bliżej sprzętu.

Nie kolekcjonuj języków jak trofeów.

Naucz się jednego na tyle dobrze, żeby coś zbudować.

To ma znacznie większą wartość.


Mit 5: programowanie jest tylko dla geniuszy

Ten mit musi zniknąć.

Programowanie nie jest tylko dla geniuszy.

Programowanie jest dla ludzi, którzy są gotowi uczyć się, ćwiczyć, popełniać błędy, szukać, próbować ponownie i powoli się poprawiać.

Większość programistów nie jest chodzącymi superkomputerami.

To normalni ludzie, którzy nauczyli się dzielić problemy na mniejsze części.

I ciągle szukają informacji w internecie.

To nie jest sekret.

Duża część programowania polega na umiejętności zadania właściwego pytania.

Czasami najbardziej profesjonalną rzeczą, jaką developer robi przez cały dzień, jest wpisanie komunikatu błędu w wyszukiwarkę z energią emocjonalną osoby wołającej o ratunek.

I to jest normalne.

Programowanie nie polega na wiedzeniu wszystkiego.

Polega na umiejętności dojścia do rozwiązania.

Nie musisz urodzić się ze specjalnym “mózgiem developera”.

Budujesz go przez praktykę.

Na początku wszystko wydaje się dziwne.

Potem pojawiają się wzorce.

Potem zaczynasz rozpoznawać błędy.

Potem naprawiasz coś bez szukania i czujesz się jak czarodziej przez 14 sekund.

Ciesz się tymi 14 sekundami.

Zasłużyłeś.

Rzeczywistość

Nie potrzebujesz geniuszu.

Potrzebujesz wytrwałości.

Początkujący, który ćwiczy codziennie, pokona “geniusza”, który tylko mówi o nauce i nigdy nie pisze kodu.

Brutalne, ale prawdziwe.

Klawiatura nagradza działanie.

Nie fantazję.


Mit 6: prawdziwi programiści nie popełniają błędów

Ten mit jest zabawny.

Prawdziwi programiści popełniają błędy cały czas.

Ciągle.

Codziennie.

Czasem przed kawą.

Czasem przez kawę.

Programowanie jest pełne błędów:

  • błędów składni,
  • brakujących średników,
  • złych nazw zmiennych,
  • zepsutych importów,
  • nieskończonych pętli,
  • błędnych założeń,
  • błędów off-by-one,
  • przypadkowego usunięcia czegoś ważnego,
  • naprawienia jednego błędu i stworzenia trzech nowych.

Jeśli popełniasz błędy, gratulacje.

Programujesz poprawnie.

Różnica między początkującym a doświadczonym programistą nie polega na tym, że doświadczeni przestają popełniać błędy.

Różnica polega na tym, że doświadczeni są lepsi w ich znajdowaniu i naprawianiu.

Czytają komunikaty błędów.

Używają narzędzi debugowania.

Testują małe zmiany.

Używają kontroli wersji.

Uczą się zachowywać spokój, gdy terminal wygląda na wściekły.

No dobrze, prawie spokój.

Czasem terminal zasługuje na podejrzliwe spojrzenie.

Rzeczywistość

Błędy nie dowodzą, że jesteś słaby w programowaniu.

Błędy są częścią programowania.

Prawdziwa umiejętność to debugowanie.

Pisanie kodu to tylko połowa pracy.

Naprawianie go to miejsce, gdzie odbywa się rozwój postaci.


Mit 7: potrzebujesz dyplomu, żeby zostać programistą

Studia informatyczne mogą być przydatne.

Mogą nauczyć teorii, algorytmów, systemów, matematyki i uporządkowanego myślenia.

Ale nie są jedyną drogą.

Wielu programistów nauczyło się samodzielnie.

Wielu uczyło się z kursów online, dokumentacji, książek, tutoriali, projektów open source, bootcampów, doświadczenia zawodowego i projektów osobistych.

Najważniejszy nie jest papier.

Najważniejsze jest to, czy potrafisz rozwiązywać problemy i budować rzeczy.

Dyplom może pomóc otworzyć niektóre drzwi.

Ale twoje umiejętności, projekty, konsekwencja i zdolność uczenia się mają ogromne znaczenie.

Szczególnie w praktycznym programowaniu.

Jeśli nie masz dyplomu, nie używaj tego jako wymówki.

Zbuduj portfolio.

Twórz projekty.

Pisz kod.

Publikuj swoją pracę.

Naucz się Git.

Zrozum podstawy architektury oprogramowania.

Ćwicz wyjaśnianie tego, co zbudowałeś.

Rynek nie nagradza ludzi, którzy tylko mówią:

“Chcę zostać developerem.”

Nagradza ludzi, którzy pokazują:

“Oto, co zbudowałem.”

Rzeczywistość

Dyplom może pomóc.

Ale nie jest obowiązkowy.

Dobre portfolio, praktyczne umiejętności i regularna nauka mogą zaprowadzić cię bardzo daleko.

Żaden dyplom nie zdebuguje kodu za ciebie.

Niestety.


Mit 8: musisz zacząć młodo

Niektórzy myślą, że programowanie jest tylko dla nastolatków, którzy zaczęli kodować w wieku dwunastu lat i zbudowali robota przed śniadaniem.

Błąd.

Możesz zacząć programować w wieku 15 lat.

Wiek nie jest problemem.

Konsekwencja jest.

Dorośli często wnoszą do programowania przewagi:

  • cierpliwość,
  • doświadczenie życiowe,
  • dyscyplinę,
  • umiejętność komunikacji,
  • rozumienie problemów biznesowych,
  • zdolność łączenia programowania z praktycznymi potrzebami.

Nastolatek może szybko nauczyć się składni.

Dorosły może lepiej rozumieć, dlaczego dane narzędzie ma znaczenie w realnym życiu.

Obaj mogą zostać dobrymi programistami.

Nie istnieje magiczna granica wieku, przy której komputer mówi:

“Przepraszam, jesteś za stary na zmienne.”

To byłoby niegrzeczne.

Nawet jak na kompilator.

Rzeczywistość

Możesz zacząć później.

Nadal możesz się nauczyć.

Będziesz potrzebował czasu.

Będziesz potrzebował cierpliwości.

Ale nie jesteś spóźniony.

Po prostu zaczynasz z miejsca, w którym jesteś.

I to jest dozwolone.


Mit 9: musisz wszystko zapamiętać

Początkujący często myślą, że programiści pamiętają każdą komendę, funkcję, regułę składni i bibliotekę.

Nie.

Absolutnie nie.

Programiści ciągle zapominają rzeczy.

Nawet doświadczeni developerzy czasem szukają podstawowej składni.

Nie dlatego, że są słabi.

Dlatego, że programowanie jest ogromne.

Jest zbyt wiele języków, frameworków, API, bibliotek, narzędzi i szczegółów zależnych od wersji, żeby zapamiętać wszystko.

Celem nie jest zapamiętanie całego internetu.

Celem jest rozumienie koncepcji i wiedza, gdzie znaleźć wiarygodne informacje.

Dokumentacja istnieje z jakiegoś powodu.

Wyszukiwarka istnieje z jakiegoś powodu.

Notatki istnieją z jakiegoś powodu.

Twój mózg nie jest dyskiem twardym.

A nawet dyski twarde się psują.

Rzeczywistość

Rozumiej koncepcje.

Ćwicz na tyle, żeby pamiętać typowe wzorce.

Resztę sprawdzaj.

Dobry programista to nie ktoś, kto wie wszystko.

Dobry programista to ktoś, kto potrafi nauczyć się tego, czego potrzebuje, i zastosować to poprawnie.


Mit 10: programowanie to tylko pisanie kodu

To podstępny mit.

Programowanie to nie tylko wpisywanie kodu.

Programowanie obejmuje:

  • zrozumienie problemu,
  • planowanie rozwiązania,
  • wybór narzędzi,
  • czytanie dokumentacji,
  • debugowanie,
  • testowanie,
  • refaktoryzację,
  • komunikację,
  • nazywanie rzeczy,
  • organizowanie plików,
  • utrzymywanie projektów,
  • i czasami zastanawianie się, dlaczego wczoraj działało.

Kod to widoczna część.

Myślenie to część ukryta.

Dlatego developer może patrzeć na ekran przez 20 minut, a potem napisać trzy linie.

Z zewnątrz wygląda, jakby nic się nie wydarzyło.

W mózgu developera mały komitet stoczył wojnę.

Programowanie to przede wszystkim rozwiązywanie problemów.

Pisanie to tylko ta część, którą widzi klawiatura.

Rzeczywistość

Nie oceniaj postępu tylko po liczbie napisanych linii.

Czasem usunięcie kodu jest postępem.

Czasem uproszczenie kodu jest postępem.

Czasem zrozumienie, że twój pierwszy pomysł był zły, jest postępem.

Bolesnym postępem.

Ale nadal postępem.


Czym naprawdę jest programowanie

Programowanie to sztuka dawania instrukcji komputerowi.

Bardzo precyzyjnych instrukcji.

Boleśnie precyzyjnych instrukcji.

Człowiek rozumie:

“Postaw przycisk w ładnym miejscu.”

Komputer pyta:

“Zdefiniuj ładne.”

I to jest programowanie.

Uczysz się być konkretny.

Uczysz się dzielić duże pomysły na małe kroki.

Uczysz się myśleć logicznie.

Uczysz się testować.

Uczysz się ponosić porażki bez emocjonalnej eksplozji za każdym razem.

Przeważnie.

Programowanie uczy cierpliwości.

Uczy pokory.

Uczy, że jeden brakujący znak może zepsuć całe popołudnie.

Ale daje też możliwość tworzenia.

A to jest tego warte.


Jak zacząć i się nie zgubić

Jeśli jesteś początkujący, trzymaj rzeczy prosto.

Nie próbuj uczyć się wszystkiego naraz.

Dobry początkowy plan może wyglądać tak:

  1. Naucz się podstaw HTML.
  2. Naucz się podstaw CSS.
  3. Naucz się fundamentów JavaScript.
  4. Buduj małe strony webowe.
  5. Naucz się Git i GitHub.
  6. Później naucz się jednego języka lub frameworka backendowego.
  7. Buduj prawdziwe projekty.

Nie zaczynaj od próby stworzenia “nowego Facebooka”.

Zacznij od:

  • strony osobistej,
  • kalkulatora,
  • listy zadań,
  • layoutu bloga,
  • prostego formularza,
  • małego API,
  • skryptu, który zmienia nazwy plików,
  • projektu, który rozwiązuje jeden mały problem.

Małe projekty nie są dziecinne.

Małe projekty to sposób, w jaki się uczysz.

Duże projekty to po prostu wiele małych problemów w płaszczu.


Końcowe przemyślenia

Programowanie jest otoczone mitami.

Nie musisz być geniuszem matematyki.

Nie potrzebujesz superkomputera.

Nie musisz znać wszystkich języków.

Nie musisz być geniuszem.

Nie potrzebujesz idealnego startu.

Musisz zacząć.

Potem kontynuować.

Potem ponieść porażkę.

Potem naprawić.

Potem powtórzyć.

To jest prawdziwa droga.

Programowanie nie jest magią, ale może wydawać się magiczne, gdy coś w końcu działa.

I tak, czasem spędzisz dwie godziny na naprawianiu problemu spowodowanego jednym typo.

To nie porażka.

To tradycja.

Chcesz nauczyć się więcej?

Jeśli chcesz zacząć od fundamentów webu, zacznij od HTML i CSS.

Są przyjazne, wizualne i idealne dla początkujących.

Możesz zacząć tutaj:

Zacznij kurs HTML

A potem:

Zacznij kurs CSS

Nie spiesz się.

Pisz kod.

Psuj rzeczy bezpiecznie.

Naprawiaj je.

I pamiętaj:

Każdy komunikat błędu to nie obraza.

To tylko twój komputer mówiący:

“Potrzebuję lepszych instrukcji.”