Hello world
Co robi 12-latek niemający pojęcia o internecie jak tylko wreszcie zyskuje do niego dostęp? Raczej nie zaczyna samotnie uczyć się programowania... ale wyjątki się zdarzają, chyba trafiłem w niewłaściwy zakątek internetu.
Po krótkiej przygodzie z plikami wsadowymi i decyzji o nauce programowania jako cel obrałem naukę C++. Poznałem podstawy języka wdrażając się w programowanie, a następnie zacząłem eksperymentować z różnymi bibliotekami graficznymi. Szczególnie miło wspominam SFML.
A co to ten WebDev
Goodgame Empire, Plemiona. Fajnie jest pograć w strategie, ale co zrobić, jeśli rozgrywka staje się nudna, a w głowie rodzi się pomysł na własną grę?
W pewnym momencie C++ przestał zaspokajać moją ciekawość i zacząłem się zastanawiać, czym różni się tworzenie stron internetowych i czy nie czułbym się w tym lepiej. Po ogólnym zapoznaniu z tematem oraz HTML-em i CSS-em wyznaczyłem sobie ambitny cel - stworzenie gry przeglądarkowej. Był to najważniejszy projekt w moim rozwoju związanym z webdevem. W jego trakcie poznałem PHP, JavaScript i jQuery oraz znacznie zwiększyłem swoje wcześniejsze umiejętności i wiedzę. W międzyczasie tworzyłem również inne, małe projekty jak np. TicTacToe
2D to za mało
Od zawsze lubiłem matematykę i byłem w niej dobry. To ciekawa przygoda, w jednej chwili nudzisz się rysując trójkąty i kwadraty, aby w następnej odkryć, że istnieje jeszcze trzeci wymiar i można w nim stworzyć o wiele ciekawsze rzeczy.
Przygodę z modelami 3D zacząłem od Google SketchUp, a kontynuowałem w Blenderze ucząc się modelowania, teksturowania i animacji. Nie wykonywałem większych projektów, ale wielokrotnie wracałem do modelowania dla przyjemności i planowania swoich projektów.
Z kwiatka na kwiatek
Trafiając na pobliską jabłoń możesz zadowolić się jej owocami lub poszukać czegoś lepszego, jednak im głębiej wejdziesz do sadu, tym więcej różnych smakowitych owoców znajdziesz... i zechcesz spróbować ich wszystkich.
Moje poszukiwania ciekawszych, lepszych dla mnie technologii nie skończyły się na tych użytych do stworzenia gry przeglądarkowej. Chęć spróbowania doprowadziła mnie do wielu języków, w niektórych przypadkach kończąc na kursie podstaw (np. C, Ruby) a w innych na realizacji własnych projektów, jednak zazwyczaj była to tylko krótka przygoda. Jednym z takich języków był C#, w którym zazwyczaj wyklikiwałem interfejs i dopisywałem logikę. Napisałem w nim m.in. prosty program do nagrywania ekranu.
Podczas eksploracji różnych technologi trafiłem również na Javę. Spróbowałem swoich sił w tworzeniu modów do Minecrafta oraz zapoznałem się z podstawami pisania aplikacji na Androida. Napisałem także prostą grę w aplecie Javy, w czasach gdy nie zostały one jeszcze porzucone.
Gdy informatyka nie wystarcza
Szczęście, potęga, duma? Czymże jest uczucie, gdy po wielkim wysiłku, przemyśleniach i debugowaniu niecne wyobrażenia stają się rzeczywistością i samodzielnie wykonany projekt zaczyna działać?
Nadszedł czas, gdy informatyka przestała zaspokajać moją ciekawość i chęć tworzenia rzeczy samodzielnie. Zainteresowałem się wtedy elektroniką i zacząłem eksperymentować z projektami bazującymi na popularnych Arduino oraz Raspberry Pi. Dzięki nim programowanie zaczęło wykraczać poza ekran komputera i pozwalać na sterowanie różnymi elementami elektronicznymi. Dzięki Raspberry Pi miałem również okazję zapoznać się z Linuxem.
Edukacja informatyczna
Nauka w gimnazjum pozostawiała sporo wolnego czasu, który wykorzystywałem na naukę programowania oraz bycie aktywnym użytkownikiem i moderatorem w popularnym serwisie zadane.pl. Kończąc ten etap nauczania musiałem jednak skupić się na egzaminach oraz wyborze szkoły średniej. Naturalnym wyborem był kierunek informatyczny. Rozpocząłem naukę w rzeszowskim Technikum Elektronicznym, jednocześnie godząc naukę z programowaniem oraz nową pasją - elektroniką.
Sieci neuronowe i inne zjawiska
W trakcie nauki w technikum podląłem się nauki kolejnego języka - Pythona. Szybko polubiłem prostotę oraz możliwości tego języka i zacząłem wykorzystywać go do różnych celów. Stał się głównym językiem wykorzystywanym przeze mnie do programowania na Linuxie, w tym projektów bazujących na Raspberry Pi.
Zacząłem również interesować się rozpoznawaniem obrazów, z wykorzystaniem biblioteki OpenCV oraz sieciami neuronowymi wykonując przy ich użyciu m.in. program umiejący grać w Sapera.
Kodowanie to nie wszystko
Czasem okazuje się, że pisanie wszystkiego samodzielnie nie jest najlepszym rozwiązaniem i trzeba wrócić do gotowych, lecz ograniczających rozwiązań jak CMS-y. Tworząc strony internetowe miałem okazję wykorzystać WordPressa, jak również zaznajomić się z pisaniem do niego motywów.
Javascript to też backend
O ile w firmach zazwyczaj występuje specjalizacja i podział obowiązków o tyle, aby samodzielnie tworzyć własne projekty i portfolio najlepiej być wręcz full stack informatykiem na miarę wymagań z rządowych ofert pracy.
Dalszy rozwój skłonił mnie do bliższego zapoznania się z back-endem i kolejną technologią serwerową. Jako że miałem już styczność z javascriptem, atrakcyjne wydało się wykorzystanie go do tworzenia serwerów. Eksperymentowałem z Node.js oraz Socket.IO, łącząc je również ze sterowaniem elektroniką i wykorzystując je np. do sterowania robotem przez sieć wraz z transmisją obrazu z pokładowej kamerki.
Czas zerwać relacje
Relacje bywają trudne, czasem ma się ich dość, trzeba je porzucić, odpocząć zajmując się czymś innym.
Po wieloletnim związku z SQL-em i relacyjnymi bazami danych nadszedł czas zerwania relacji i rozpoczęcia nowego rozdziału - płomiennego romansu z MongoDB. Zadowolony z wygody stosowania nierelacyjnych baz danych zacząłem je stosować w większości swoich projektów.
Wszystko i nic
Nadchodzi czas końca beztroskiej zabawy, nie można robić wszystkiego na raz, a tym bardziej oczekiwać spektakularnych rezultatów we wszystkich tych rzeczach.
W pewnym momencie uświadomiłem sobie, że nie jestem w stanie dalej zajmować się wszystkimi swoimi zainteresowaniami, muszę obrać kierunek, na którym się skupię i który będę kontynuował na drodze zawodowej. Musiałem także zwrócić większą uwagę na prezentowanie swoich projektów i dokonań. Kontynuowałem więc rozwój w tematyce front-endu tworząc kolejne projekty, ucząc się Vue, Sass-a oraz zapoznając m.in. z Angularem, Deno i pisaniem botów na Discorda.
Studia informatyczne - nudy
Przydatne w praktyce umiejętności czy zbyt ogólna wiedza i dokument spełniający wymagania nieświadomych realiów pracodawców? Czym są studia informatyczne?
Po zdaniu matury stanąłem przed wyborem kierunku studiów. W poszukiwaniu wrażeń i interesującej wiedzy, nie chcąc podejmować studiów dla samego ich ukończenia, moje poszukiwania wybiegły poza kierunek informatyczny. Rozpozcząłem studia na kierunku Bezpieczeństwo wewnętrzne ze specjalizacjami Cyberbezpieczeństwo oraz Kryminalistyka i Kryminologia.
Narysuj mi baranka
Stworzenie grafiki na potrzeby własnych projektów od zawsze było dla mnie problemem i znacznym ograniczeniem. Do tej pory wielokrotnie wykorzystywałem rysowanie oraz grafikę rastrową jednak moje umiejętności graficzne zdecydowanie ograniczały ich przydatność. Polubiłem również grafikę 3D, lecz ma ona określone zastosowania i wymaga mocnego sprzętu. Finalnie nadszedł jednak czas na spróbowanie grafiki wektorowej. Stworzyło to również okazję do zapoznania z GSAPem i użycia grafik i animacji w projektach webowych.
Epilog
I tak oto dotarliśmy do chwili obecnej pomijając wiele przygód, których nie sposób spamiętać czy udokumentować. Dalej znajduje się tylko przyszłość, niespodziewana i nieokreślona, kryjąca w sobie nieskończone możliwości rozwoju i ambicje.