Jak zacząć programować?

Ludzie często pytają mnie: Mati, jak to się stało, że jesteś królem życia i stać cię na wszystko? Odpowiadam im: bo jestem najlepszym programistom na planecie. A potem się budzę.

Ta robota ma swoje wady i zalety. Na pewno nie można narzekać na pensję, zazwyczaj jest to dość luźna i wygodna forma praca i nikt nie może sztucznie ograniczyć twojego rozwoju wymaganiem jakiś certyfikatów, czy innych bzdur. Czasem wymaga się jakiegoś wykształcenia w zakresie IT, ale nie zawsze. Gdy tylko zdobędzie się pierwsze doświadczenie zawodowe wykształcenie przestaje mieć znaczenie. Warunek: jeśli chcesz dojść do czegoś więcej w sensownym czasie, trzeba być gotowym na dokształcanie się po godzinach. Oraz siedzenie przed komputerem i gapienie się na dziwne znaczki. Co kto lubi.

Od czego bym proponował zacząć? Na pewno nie od jakiegoś gówna, które trzeba kompilować, ustawiać systemy buildów, mainy i inne trudne słowa, na które pora powinna przyjść pora gdzieś w okolicach lekcji czwartej przypadkowego kursu internetu jaki wypadł z Google.

Zamiast tego spróbuj zabawy z koncepcją Read-Eval-Print-Loop. Jak sama nazwa wskazuje, odpalasz okienko, w którym możesz wpisywać kod programu na żywca, klepiesz co Ci przyszło do łba, wciskasz enter i od razu oglądasz wynik. Popełniłeś błąd? Nie panikujesz, czytasz co Ci wypluło, jeśli przypadkiem nie jest to w żadnym ludzkim języku, kopiujesz tekst do Google, i sprawdzasz co o tym powiedzą nerdy z forum StackOverflow. Albo dokumentacja. A potem próbujesz znowu, i tak parę razy, aż poczujesz, że z jednej strony Ci się to podoba, a z drugiej nie masz ochoty każdorazowo wpisywać swojego programu od początku.

Wtedy zaczniesz wrzucać swoje programy do plików. Dopiero się uczysz, więc nie narzucaj sobie od początku sztywnej struktury. Naucz się po prostu odpalać te pojedyncze pliki. Później spróbuj przekazać jakieś parametry do programu. Wtedy zaczniesz powoli czuć, o co chodzi z koncepcją maina i args. Zacznij rozwijać jakiś pomysł, przy którym mógłbyś posiedzieć dłużej. Automatyczna lista zakupów, kółko i krzyżyk, internetowy zegar pogodowy - cokolwiek zatrzyma twoją uwagę i pozwoli się powyżywać.

A dopiero kiedy zaczniesz się gubić we własnym programie, zabierz się za czytanie o dobrych praktykach, wzorcach projektowych i testach - próbując uczyć się zbyt wielu rzeczy na raz, niepotrzebnie sobie wszystko utrudnisz, programowanie będzie się wydawać trudniejsze niż jest w istocie. Poza tym - bez doświadczenia z programowaniem bez sztywnych zasad, podręczników stylu i wytycznych, trudniej będzie Ci zrozumieć sens wszystkich tych zaleceń, oraz rozpoznać sytuacje, kiedy nie mają one sensu. No i będzie mniej zabawy. Później już można wrzucić Hiszpańską Inkwizycję do pilnowania 110 przykazań.

Po drodze warto pamiętać o dobrym wujku Google, forum StackOverflow i może jeszcze odpowiednich kanałach tematycznych na Reddicie. Oraz pamiętać o tym, że dopóki nikt Ci za to nie płaci, programowanie powinno być zabawą, zaś wszystkich pajaców z internetu dąsających się, że wujek Bob nie szanuje twojego kodu, można spuścić na drzewo.