Na początku była pasja…
Programowaniem bawiłem się w czasach, gdy 128 mega ramu w moim Atari było czymś, z czym nawet sam komputer nie wiedział do końca jak sobie poradzić, a człowiek był zdany najpierw na jakieś pokątne broszurki w stylu “Atari Basic Essentials” a potem na całkiem obszerne (jak na swój czas) materiały w Bajtku. Piękne czasy mikroprogramów, bezpośredniego programowania pamięci, zabawy z asemblerem, spritami…
Niniejszy post jest częścią cyklu "Wasze Historie".
Autor: Bartosz Gala
Odwiedź też blog Bartosza!
Świetna zabawa, konkurowanie z kolegami kto w tych kilkunastu (góra kilkudziesięciu) linijkach absolutnie niezrozumiałego dla przeciętnego śmiertelnika kodu zrobi coś niezwykłego. To było coś fascynującego! I to do tego stopnia, że co nieco zapamiętałem aż do dziś.
Taki klasyczny mikroprogram składał się generalnie z dwóch części: pętli z komendą peek x,y w roli głównej która to zapisywała do podanej komórki pamięci konkretną wartość oraz listy Data a, b, c, d, e, …. zawierającej dane dla komendy peek. Kilka linijek programu i kilka/kilkanaście linijek cyferek. I powstawał programik, przy którym assembler brzmiał tak wysokopoziomowo jak dziś Python czy Ruby ;)
W najprostszej możliwej wersji wyglądało to mniej więcej tak:
1 FOR I=1536 TO 1550 5 READ A 10 POKE I,A 15 NEXT I 20 DATA 173,11,212,141,10,212,141,24,208,141,26,208,23,123,134
…ale coś poszło nie tak…
Niestety, braki materiałów do dalszej nauki utrudniały wybicie się dalej.
Brak Internetu, książek, kogokolwiek znajomego, kto by mógł pomóc i do tego wcale niepoprawiająca sytuacji niecierpliwość typowa dla nastolatka.
Ja osobiście zatrzymałem się na drukowanej niebieską czcionką (bo kserokopiarki wtedy nie chciały tego ruszyć – ot taka ówczesna walka z piractwem ) książce do Pascala (autora nie pamiętam, i dobrze mu tak zresztą, za to co uczynił) po prostu odbiłem się od niej jak od ściany i tak mi zostało.
…a na koniec edukacja
Aktu zniszczenia dokonało Liceum z “informatyką”, gdzie niemająca pojęcia o czymkolwiek nauczycielka od muzyki wpajała nam wyczytywane z kartek komendy LOGO. Siedzieliśmy po 3 osoby przy jednym komputerze i wklepywaliśmy bezrozumnie pod dyktando w poczciwe Elwro 800 Junior.
I tak umarło już do końca coś, co trwało ładnych kilka lat. Umarło, zdemolowane przez wspaniałe szkolnictwo średnie lat ‘90-tych.
Przerywnik autobiograficzny
Przez następne lata z programowaniem nie miałem w zasadzie nic wspólnego. No chyba, że zaliczyć przelotną i
niemiłą przygodę z TEX-em bez żadnej dokumentacji, czy pomniejsze dostosowywania już istniejących addonów
do gier.
Mimo ciągłego kontaktu z sprzętem, serwisem komputerów, sieci i sprzętu pomiarowego zaszytego po zęby procesorami, kontrolerami i oprogramowaniem, zabaw z Linuksem czy często nierównymi walkami z konfiguracją routerów, do programowania nawet nie myślałem wracać. W mojej głowie miałem wkodowany “paradygmat programowania upierdliwego” – i nic nie chciało tego zmienić…
Paradygmat programowania upierdliwego
Pojawiła się też nowa pasja – Role Playing Games. Nie komputerowe, tylko klasyczne, pełne interakcji z innymi,
pełne kombinowania, pełne myślenia… I jak się pojawiła, tak trwa do dziś. Chociaż komputerowe RPG stają się coraz lepsze, to nadal daleko im do pierwowzoru :)
Powrót pasji
Jednak jakiś rok temu w ramach wolnego czasu zdecydowałem, że już wiek odpowiedni, żeby zapomnieć o
urazach i przypomnieć sobie pasję z młodych lat. Wiele nie myśląc, siadłem do zabawy z programowaniem na
nowo.
Nie będę tu sciemniać – nie było ciężko, bo jedyny cel, jaki sobie postawiłem, to sprawdzić, czy dam radę. Czy sprawi to taką radochę jak za młodu? Czysty relaks, zero stresu. Początki okazały się dużo prostsze, niż myślałem, a dopiero potem zaczęło pojawiać się to przyjemne uczucie odkrywania ziemi nieznanej… i trwa do dziś.
Jak wybrać język z tego natłoku? Wybór języka padł na C++ i było to zupełnie losowe (lista języków na ekranie, zamknięte oczy i pacamy palcem), chociaż ten traf dał od początku poczucie czegoś “znajomego”, czegoś co w końcu lat ‘80 jawiło się jako wielka nowość… i tylko wszyscy się zastanawiali, czemu są wzmianki o C, C++ a nigdzie nie ma nic o C+… bo przecież oczywiste, że gdzieś ten z jednym plusem musi być :).
Jednak podejrzewam, że każdy inny wybór dałby podobny efekt, więc nie ma co myśleć: albo wybieramy język, który zna ktoś znajomy i może nam pomagać raz na czas, albo… pacamy :)
Dzień dzisiejszy
Dzisiaj piszę sobie jakieś ćwiczenia, jeden większy, wykorzystujący całą do tej pory zdobytą wiedzę, projekt. Generalnie: świetnie się bawię, poświęcając na tę zabawę czasem ciut za dużo czasu.
Korzystam pełnymi garściami z tego, czego te 30 lat temu po prostu nie było – z wiedzy w Internecie, książek, możliwości spytania się kogoś o poradę (a sporadycznie nawet taką poradę otrzymuję, zanim sam znajdę rozwiązanie). I jest naprawdę fajnie!
Nawet nie zdajecie sobie sprawy, jak niesamowite jest móc skorzystać z dokumentacji w internecie… to zmienia wszystko.
Wnioski na koniec
Tak więc jeśli zastanawiasz się, czy mając te ponad 40 wiosen na karku można sobie usiąść i zacząć programować, to… można! I nie wymaga to lat poświęceń, wydawania majątku na szkolenia. Oczywiście o ile tylko sprawi ci to radochę, a twoim głównym celem nie jest po trzech dniach nauki aplikować na stanowisko “Senior devilish good developer” i zarabiać na start miesięcznie więcej niż cały Google w rok. Tylko po prostu, tak “dla funu” i bez “parcia na karierę”.
Możesz naprawdę udowodnić sobie, że potrafisz tworzyć użyteczne (chociażby tylko dla siebie) programy. I osiągnąć to, co dla większości ludzi wokoło wydaje się niemożliwe.
Co dalej?
Co prawda nie wykluczam, że któregoś dnia ogłoszę światu “jeśli ktoś chce przyjąć starego, pamiętającego
dinozaury (i ZX Spectrum) juniora na praktyki i da jakieś 1500 na przeżycie to się polecam“… ale na razie po prostu mam radochę z klepania kodu. Radochę z tego, że program robi to, co ja chcę (czasem), a nie to co on chce (częściej). I że wreszcie mogę spełnić przynajmniej kilka marzeń z dzieciństwa, jak chociażby napisać sam dla siebie jakąś prostą nostalgiczną gierkę tekstową wyglądającą, jakby żywcem została wyjęta z lat 80. I nieważne, że przeciętny “indyk” jest przy niej arcydziełem sztuki programistycznej.
No chyba, że ktoś by zaproponował mi udział w tworzeniu jakiejś gry RPG. Wtedy pewnie nawet nie spytam kiedy i za ile, bo jak zderzą się dwie pasje w jednym miejscu, to rozum potrafi iść spać ;) i w sumie sam nie wiem, czy ta myśl – że może kiedyś jednak coś takiego się wydarzy – nie napędza mnie nieświadomie przy klepaniu kolejnych linijek kodu, uczeniu się kolejnych technik i ciekawostek.
…a jak nie, to może sam napiszę sobie jakiegoś “Erpega” i będę się z niego cieszyć. W końcu należy spełniać
własne marzenia!
W tym Atari to chyba 128 kilo a nie mega?
Czas i jednostki tak biegną do przodu, że aż się wszystko czasem myli – ale tak, masz rację :)
No my mieliśmy więcej szczęścia, może dlatego, że zanim w szkole pojawiły się Elwro Juniorki, to były kupione 4 commodorki. Nauczycielka zaś stwierdziła, że nauka logo to jest dobra dla dzieci, tak więc uczyliśmy się podstaw Basica i Pascala, ba udało się nawet dostać po 2 latach certyfikat sygnowany przez Politechnikę Łódzką, jako, że mamy zaliczony podstawowy kurs programowania.
128MB ramu? Bez przesady wtedy to tyle miały dyski twarde.
Jak już wcześniej pisałem komuś – błąd przez osłabienie czujności w kwestii dynamiki postępu ;) Ale też muszę przyznać, spostrzegawczość w narodzie jest wielka !
Jeśli chcesz spróbować swoich sił w tworzeniu gry RPG jest teraz ku temu niepowtarzalna okazja i Szczur Gimpera -https://m.youtube.com/watch?v=UHkPLtlzz7E
Dzięki za info… siadam stworzyć coś dającego szansę na udział w tym projekcie :)
Mysle ze spokojnie znajdziesz prace i przy 40tce za wiecej niz 1500. To nie dyscyplina sportowa gdzie wiek ma az takie znaczenie.