poniedziałek, 20 kwietnia 2020

Reminiscencje Twórcy Systemów cz. 4: Pierwsza kompetencja

Nauka stojąca za wczorajszym wpisem jest prosta: znajdź mentora, grupę pasjonatów. Z kim przystajesz, takim się stajesz. Dzisiaj możesz to zrobić ze środka lasu, jeśli masz dostęp do neta. Możesz być aktywnym członkiem grupy programistycznej bez wychodzenia z piwnicy.

Pierwszy semestr na studiach inżynierskich to głównie przedmioty techniczne, fizyka i matematyka. Jest jeden o C++ i najważniejszy dla mnie przedmiot: Organizacja Komputerów. Prowadzi go AJ, facet o aparycji generała Montgomery’ego (tego co pokonał lisa pustyni Rommla): szczupły, krótko przycięte siwe włosy, angielski wąsik. Prawdziwy pasjonat architektury komputerów, rozwiązań technicznych, wszystko rozpisane na instrukcje asemblera. Nie opuszczam żadnego wykładu, chłonę każde słowo.

To co dla mnie jest złotem, dla innych smutną koniecznością. Jak ktoś walczy o średnią (lub przetrwanie), większą wagę przykłada do Analizy Matematycznej. Wielu nie widzi żadnej wartości w pisaniu programów w asemblerze. Chcą zostać administratorami sieci, baz danych. Powoli klarują się obszary kompetencji. Mój cel jest jasno zdefiniowany: robić gry komputerowe, zatem w tym momencie wydaje mi się, że najważniejsze to nauczyć się C++.

Używam starego dobrego kompilatora Borland C++ pod DOS. Jeśli mój program się zawiesza, muszę restartować kompa. Mógłbym już przenieść się na znacznie lepsze środowiska programistyczne pod Windowsa (Linuxa już mam, ale nie udaje mi się skonfigurować karty sieciowej), jednak blokuje mnie ilość nowych rzeczy do nauki. Czuję się niepewnie, więc trzymam się tego co znam. Z jednej strony to wada, bo zamyka mnie na nowości, z drugiej zaleta, bo skupiam się na tym co najważniejsze: programowaniu.

Nad kodem trzeba spędzić kilkaset godzin miesięcznie. Tysiące w skali roku. Dopiero gdy ograniczenia narzędzia zaczynają mi doskwierać, rozglądam się za lepszym. Im więcej umiem, tym więcej pomysłów na bardziej złożone programy. Trzeba przejść przez wskaźniki, sortowanie, listy, żeby napisać pierwszą bazę danych w C. Nie spinać się, że jeden już robi gry, a drugi demka w 3d. Kumpel z łącznika w akademiku zaraża mnie do matematyki wyższej, i pierwszy raz w życiu jestem w stanie wykorzystać komputer do złożonych obliczeń matematycznych i rysowania wykresów. Droga do robienia gier (w tamtych czasach pisało się je od A do Z) jeszcze daleka, ale później te umiejętności będą kluczowe do pisania enginów.

Programowanie to pasja. Fundament tworzenia systemów. Nie wierzę, że można zaprojektować dobry system, jeśli nie podjęło się wcześniej setek tysięcy decyzji co, gdzie i dlaczego zdefiniować, przenieść, usunąć w kodzie.


Brak komentarzy:

Prześlij komentarz

W ramach eksperymentu wyłączam moderację komentarzy.

Zasady komentowania:
- żadnego spamu i reklam (także linków do serwisów w nazwie użytkownika),
- komentarze obraźliwe będą usuwane,
- proszę o zachowanie kultury i brak kłótni; różnice zdań należy wyrażać poprzez dyskusję wspartą argumentami.

Podtwórca