Skip to content

Gorący tydzień 3/8 konkursu Firestarters, czyli decyzja co zbuduję oraz walidacja pomysłu poprzez wspomnienia.

Ostatni tydzień był ciężki. Nie z powodu udziału w konkursie, a głównie za sprawą gorączek, jakie opanowały żeńską część mojej rodziny. Obydwie z moich kobiet, walczyły w tym tygodniu z wysoką temperaturą, dobijającą momentami do 40 stopni. Mimo że choroba oszczędziła mnie osobiście, to natłok spraw, jaki wygenerował ten nagły wypadek był momentami przytłaczający.

40 to też temperatura zewnętrzna, jaka panowała w ostatnim tygodniu, przynajmniej tak ją odczuwałem.

Całkiem przypadkiem 40 to też liczba wszystkich uczestników konkursu wakacyjnego Firestarters. Konkurencja jest naprawdę mocna, chociaż sam traktuję ją tutaj jako grupa wsparcia. Nie wygrana jest tutaj najważniejszą, a droga, którą wszyscy pokonujemy.

Poniżej skrót minionego tygodnia w formie spisu treści:

Czas decyzji

Jak już wspominałem w poprzednim tygodniu, rozważałem kilka różnych opcji na start. Dziś wiem, co będzie najlepszą opcją do rozwiązania problemów grupy docelowej, którą znam od podszewki. Nie będzie to najłatwiejsza droga, ale zdecydowanie taka, której osoby z mojej grupy docelowej, najbardziej oczekiwały.

Kurs tworzenia projektów programistycznych pod rekrutacje, naukę i dobrą zabawę

To na nim będę się skupiał w najbliższych tygodniach. Główny nacisk położę na dobre wytłumaczenie całego programu i organizacji przedsprzedaży.

  1. Przede wszystkim pomoże mi to lepiej zwalidować w mój pomysł. Tak jak wspominałem w poprzednim tygodniu $$$ zawsze są najlepszym sposobem na sprawdzenie, czy jakiś problem jest faktycznie warty rozwiązania.
  2. Po drugie przedsprzedaż i budowanie programu z małą grupą early adopterów, chętnych dołączyć na specjalnych warunkach, niesie sporo zalet. Lepsze dopasowanie treści, pierwsze rekomendacje i opinie czy success stories, będą mocną dźwignią marketingową w kolejnych oknach sprzedażowych.
  3. Po trzecie, sprytnie unikam wygenerowania niepotrzebnie zbyt dużych kosztów w ramach konkursu. Tak jak wspominałem w drugiej części, sporo klocków, które mogę reużyć już aktualnie opłacam.

Pierwsze projekty i inspiracje

Co do samej tematyki kursu. Z osobistymi projektami programistycznymi mam do czynienia od roku 2008, kiedy ja sam byłem na etapie tworzenia pierwszych projektów. Głównie celem zabawy z tworzenia, nauki technologii, ale jak się później okazało, również jako karty dostępowej do pierwszych rekrutacji. Ten ostatni z powodów był o tyle zaskakujący, ze kompletnie się go nie spodziewałem. Dziś nie budzi moich wątpliwości, obserwując takie projekty z fotela rekrutera.

Do dziś pamiętam, co w tamtym czasie sprawiało największy zastrzyk motywacyjny do nauki programowania. Doskonale pamiętam, jak cieszyłem się z wystawionego na świat demo mojej gry Lupin. Możliwość pogrania z własnymi kolegami, dawała podobne uczucie jak tworzone własne mapy do CS’a kilka lat wcześniej. Dziś liczę, że podobne uczucie zbuduje we mnie projekt, nad którym będę pracował w najbliższym czasie.

Wracając do samej gry, projekt budowałem inspirując się takimi tytułami jak

The Crims

https://www.thecrims.com – jedna z popularnych gier przeglądarkowych.

Pierwszy tytuł służył jako inspiracja podstawy silnika. Zrozumiałem, że nawet interaktywna strona, napisana w PHP, może być ciekawą grą i niepotrzebny jest żaden wyszukany silnik, żeby stworzyć coś naprawdę ciekawego. Co więcej, jak pamiętam, był to też projekt bardzo dochodowy jak na tamte czasy, kiedy wszechobecne mikropłatności nie były aż tak rozpropagowane jak dziś i tworzony raptem przez jednego developera.

Tibia

https://www.tibia.com – gra w której bez wątpienia spędziłem więcej czasu, niż we wszystkie inne gry razem wzięte.

Druga, to gra, w której spędziłem ogrom czasu, grając z kolegami. Z czasem odstawiając profesjonalne granie, na rzecz pasji do programowania. Z tej pozycji zaczerpnąłem głównie idee profesji oraz klimatu gry, którą tworzyłem.

Pamiątka po niemal 10 latach gry. Postać, którą pamięta pewnie większość Danubijczyków 😉

Mój pierwszy profesjonalny projekt

Gra bazowała na prostym systemie rzucania wyzwań innym graczom. Takie bardziej zaawansowane papier, kamienie nożyce w wersji asynchronicznej 🙂 W grze zbieraliśmy doświadczenie, podnosiliśmy swoje umiejętności, wydawaliśmy cięzko zarobione pieniądze na lepszy ekwipunek, w planie była budowa mapy, po której docelowo mieliśmy się poruszać.

Ostatnio wygrzebałem mój stary dysk i uchowało się na nim kilka screenshotów z tego projektu z przed 14-letniego projektu.

Główny panel gry z podstawowymi informacjami o naszej postaci i czatem.
Sklep z przedmiotami.
Przedmioty w użyciu oraz depozyt.
Karta rozwoju umiejętności naszej postaci, oraz statystyki przeprowadzonych wyzwań z innymi graczami.

Zalety pierwszego projektu

Gra niewątpliwie była pod pewnymi względami, udanym projektem. Po pierwsze była namacalnym dowodem umiejętności tworzenia pewnych rozwiązań programistycznych i osiągania postawionych przez siebie celów. Pomimo wielu niedociągnięć, była grywalna, i nie została potraktowana jak ciekawostka, a coś, w co dało się pograć i czerpać pewną dozę satysfakcji z rozrywki. Była również elementem, który przed odbyciem praktyk, wpłynął znacznie na moją krzywą uczenia się i rozwoju jako programista.

Co było nie tak z tym projektem?

Nie był to jednak projekt pozbawiony wad, o czym przekonałem się dość boleśnie zostając odrzuconym na pierwszej rekrutacji na stanowisko młodszego programisty PHP. Niestety, ale tworzenie projektu w pełni na własną rękę, wiąże się z ryzykiem, nasiąkania złymi praktykami. Pogoń na ficzerami gry sprawiła również, że poziom samego kodu, była na drugorzędnym planie, co nie umknęło uwadze rekrutera. Dziś wiem, czego zabrakło i jakie elementy powinienem poprawić.

Lista pozytywnych aspektów oraz ewidentnych braków.

Są to na pewno aspekty, które będę chciał zaadresować moim programem. Aspekty, które pomimo upłynięcia ponad 14 lat, nadal są najczęstszymi wyzwaniami podczas realizacji własnych projektów.

Społeczność

Oprócz samego kursu chciałbym zbudować również społeczność. Będzie to element dodatkowy, budowany nieco z boku, ale jak wielokrotnie się przekonywałem, element miejscami ważniejszy od samego kursu. Po pierwszej niezbyt udanej próbie zbudowania takiej społeczności na Facebooku, tym razem wyciągnę kilka rad zaczerpniętych z Kursu o budowie społeczności. To czego zabrakło w pierwszej wersji to na pewno:

  • Nieco losowy skład początkowych członków społeczności, pełniących kluczową rolę w rozkręceniu całej społeczności – dobrze w pierwszym etapie zadbać o wartościowe osoby i samemu niczym bramkarz w klubie robić wstępną selekcję,
  • Zbyt szybkie odpuszczenie po mojej stronie i nienawiązanie intymnej relacji z pierwszymi osobami dołączającymi do klubu – jak przekonałem się z kursu pierwsze miesiące są najtrudniejsze i kluczowe dla rozkręcenia całej inicjatywy. To tutaj jest jednak czas na nawiązywanie bliższych kontaktów, w społeczności liczącej setki osób, jest to już niemożliwe.

Szybki status odnośnie postępu

Wydatki i zyski, wciąż okrągłe 0 PLN

Nic dodać, nic ująć. Brak zarobków, ale i konieczności zainwestowania przydzielonego budżetu. Niedługo jednak się to zmieni. Wiekszość moich prac skupia się na notatkach i układaniu pierwszej wersji agendy.

Discord w trakcie zakładania

Rozpocząłem konfigurację serwera Discord jako lepszej (jak liczę) alternaty dla grup na facebooku.

Agenda kursu

W pierwszej wersji planuję 9 modułów, dotykających 9 obszarów tworzenia własnych projektów:

Plan,

Czyli wyjaśnienie, jak przerabiać ten moduł, jaki efekt możemy dzięki niemu osiągnąć.

Strategia i pomysł,

Ważny moduł, który pozwoli, dopracować pomysł na projekt. Dobrać pod względem zainteresowań oraz umiejętności. To, co kluczowe, ten kurs będzie pozwalał na realizacje swojego autorskiego pomysłu, a nie realizacja projektu, który sam Ci narzucę.

Kontrola wersji,

Kursów na temat GIT’a jest sporo, ale tutaj skupimy się przede wszystkim na dobrym wyjaśnieniu kontekstu użycia tego narzędzia w grupie. Dużo praktyk, które tutaj omówimy będzie gotowe do zaaplikowania w przyszłości w pracy.

Hosting projektu,

To ważny punkt, który pozwoli na uruchomienie projektu w sieci. Wystawienie DEMO w sieci, jest świetnym pomysłem na dobre zaprezentowanie swojego portfolio.

Organizacja pracy,

Wiem, jak wiele z osób ma problemy z organizacją pracy, dlatego w tej części omówimy jak podchodzić do planowania rozbudowy swojego projektu. Kiedy wstrzymywać dalszy rozwój funkcjonalności, a skupić się na refactoringu i poprawie jakości.

Testy,

Czarny koń projektów, które uczestnicy będą realizowali. Nadal niewiele z osób w swoich projektach pisze testy, a jest to dobry sposób aby:

  • wyróżnić się z tłumu na tle innych projektów,
  • poprawić jakość swojego kodu,
  • zdobyć cenne doświadczenie, które przyda Ci się później w pracy.

GUI i warstwa wizualna,

Nawet jeśli twój projekt skupia się na technologii backendowej, ten aspekt nie może zostać pominięty. Co istotne jest wiele sposbów, gdzie nawet bez bogatego doświadczenia w tym obszarze, da się osiągnąć bardzo przyzwoite efekty. Wszyscy jesteśmy wzrokowcami i efekt Sinatry dotyka każdego z nas, warto o tym pamiętać.

Bazy danych i hosting plików,

W tym module omówimy, jak przygotować bazę danych lub inne serwisy, aby realizowały postawione przez nas cele w projekcie. Celowo odwlekam ten moduł jako jeden z ostatnich, ponieważ zbyt wiele osób popełnia błąd budowania projektów w doktrynie „database driven”.

Prezentacja

Na koniec zostanie jeszcze zestaw elementów, jak to wszystko co będziemy tworzyć w ramach tego projektu, efektywnie sprzedać i dobrze zaprezentować swojej grupie docelowej. Mogą to być rekruterzy i użytkownicy naszego systemu.

Czwarty tydzień nadciąga

To w nim spróbuję dokończyć szczegóły mojej agendy, zebrać pierwszy feedback oraz zaplanować działania związane z przedsprzedażą. Być może starczy też czasu na popchnięcie dalej tematu Discorda.

PS. Jeżeli już teraz czujesz, że skorzystałby z tego programu, koniecznie dajcie mi znać w prywatnej wiadomości na Linkedin https://www.linkedin.com/in/towczarek/ lub mailowo: tomek@kodujmy.pl