I mam to, mój pierwszy kurs.
Udało mi się zrobić, można powiedzieć, całkiem nietypowe rozwiązanie do nauczania, może nie do końca programowania, ale raczej wprowadzenia do pierwszej pracy, jeżeli chodzi o stanowisko Java Junior Developera.
Ale od początku poświęciłem jeden cały dzień, całą sobotę, na założenie kont i przygotowanie automatyzacji dla mojego kursu, ale o automatyzacji jeszcze chwila, gdyż napotkałem małe problemy, z których nie zdawałem sobie sprawy, jednak wracając do sklepu i mojego koszyka, który udało mi się zrobić, wykorzystałem narzędzia Easy Tools. Gdzieś, nie pamiętam na którym podcaście, usłyszałem o tych narzędziach, że bardzo szybko pozwalają wejść do sprzedaży online, czy to wystawiając produkty fizyczne, koszulki, kubki, czy inne rzeczy, czy też właśnie robiąc kursy online, więc skorzystałem z tego narzędzia i okazało się, że jest dosyć intuicyjne, przejrzyste, może ma kilka braków, jednak one mi nie przeszkadzają, jestem w stanie całkiem dobrze sobie radzić z tym narzędziem, ale zobaczymy jak to wyjdzie w tak zwanym praniu.
Na chwilę obecną, tak jak wspomniałem, wystawiłem mój pierwszy kurs i teraz czekam na pierwsze zakupy, żeby zobaczyć co i jak. Jeżeli chodzi o samą konfigurację tego narzędzia, to połączyłem to z moją księgową, aby można było wystawiać automatycznie faktury. Dodatkowo przygotowałem opis kursu i tutaj chyba spędziłem najwięcej czasu, dopracowywałem i cały czas dopracowuję ten opis, który jest podany przy produkcie, więc za każdym razem on się zmienia co kilka dni, aby jak najlepiej podkreślić atuty tego kursu i wyszczególnić dlaczego warto się nim zainteresować.
Ale o tym będę mówił za chwilkę.
Wracając do automatyzacji, z którą miałem problem, musiałem wybrać narzędzie, udało mi się przefiltrować i wybrałem dwa, które przetestowałem, które sprawdziłem, Make.com i Zapier. Wybrałem te pierwsze do mojej automatyzacji, to znaczy wykonania czynności, które ja bym musiał wykonać, wykonuje za mnie zdalne narzędzie i umożliwia automatyczne wysłanie maili do osób, które zakupiły mój kurs. Tutaj zajęło mi trochę skonfigurowanie tego narzędzia, nie jest aż tak intuicyjne, jakby w pierwszej kolejności można było sądzić, ale mimo wszystko udało mi się to zrobić i teraz pełna automatyzacja już działa. Na to straciłem dwa dni, czyli prócz założenia sklepu w sobotę poświęciłem niedzielę i trochę poniedziałku. Na przygotowanie tej automatyzacji.
A teraz wracając do samego kursu, właściwie czym jest ten kurs?
Jest to coś, czego mi zawsze brakowało w szkoleniach IT, a mianowicie przejście przez realne problemy w prawdziwym oprogramowaniu, w prawdziwej aplikacji, która jest gdzieś rozwijana, więc mój kurs przewiduje pobranie gotowej aplikacji, która została napisana przez kogoś i dorzucanie nowych feature'ów. Ktoś mógłby teraz powiedzieć, ale przecież są aplikacje open source'owe, do których można coś dorzucać, można coś sprawdzić i samemu można dewelopować.
Odpowiedź brzmi tak, sam kiedyś się tym interesowałem, gdy podejmowałem moją pierwszą pracę i chciałem nauczyć się jak najszybciej kodować, zacząć rozwijać realne problemy programistyczne, ale okazało się, że wejście do open source'u nie jest wcale takie trywialne, jakby można było się tego spodziewać. Nie wystarczy tylko znajomość jakiegoś języka programowania, jakiejś biblioteki.
Trzeba już tutaj mieć doświadczenie i pewne zdolności programistyczne, które nabywa się z biegiem czasu w projektach programistycznych. Więc mój kurs jest symulacją pracy w prawdziwym projekcie, w prawdziwej aplikacji biznesowej, gdzie jako kursant każdy dostaje wyzwanie, to znaczy zadanie do zakodowania, i też dostaje je w postaci dokładnie takiego samego scenariusza, jak dostają je programiści pracujący przy autentycznych projektach.
Jest opis co zakodować i jaka jest spodziewana akcja po zakodowaniu danej rzeczy. Jednak zauważyłem, że w tym kursie zabrakło jednego małego szczegółu, który, jeżeli chodzi o całość, nie ma większego znaczenia. Jednak dla, można powiedzieć, ułatwienia pracy z tą aplikacją przygotuję zestaw pewnych wpisów do bazy danych, aby użytkownicy mogli pracować na realnych danych, może nie do końca realnych, ale aby już posiadali jakieś wpisy w bazie danych i nie musieli się zastanawiać jak coś dodać. Ale w czym ma pomóc ten kursi czemu mi brakowało takiego kursu? Zawsze ludzie ucząc się, jeżeli chodzi o kodowanie, uczą się tylko podstaw.
Nawet przechodząc przez najprostsze wzorce projektowe jest pokazany wzorzec projektowy, jest opis tego wzorca jak go zakodować, ale nigdzie nie jest pokazane jak go wykorzystać w praktyce, jak go dostosować do już istniejącej aplikacji, jak go wszczepić w te trzewia działającej aplikacji. Więc mój kurs przewiduje coś takiego, gdzie programista, czy to junior, czy trochę starszy, chociaż starałem się, żeby te zadania były w miarę przystępne dla osób, które skończyły chociażby kursy na YouTubie czy Udemy i jeszcze nie miały do czynienia z tak rozbudowanym programem, tak rozbudowaną aplikacją.
Więc sądzę, że same zadania są dosyć proste, ale pozwalają w praktyczny sposób wykorzystać zdobytą wiedzę, bo trzeba połączyć się z istniejącą bazą danych, a nie tworzyć bazę od podstaw. Też trzeba zacząć dorzucać wzorce projektowe do aplikacji, która działa, bo gdy była rozwijana, nikt nie myślał, że można byłoby iść w danym kierunku i aplikacja w ogóle będzie się rozwijała w tym kierunku. Mój kurs również przedstawia praktyczne zastosowanie testów, czy to integracyjnych, czy unitowych. Ludzie zwykle po bootcampach czy innych kursach na YouTubie czy Udemy wiedzą czym są testy jednostkowe, potrafią je w miarę dobrze napisać,ale, no właśnie, w miarę dobrze napisać.
Najczęściej juniorzy testują jakieś rzeczy, które nie powinny być testowane, jak gettery i settery, bo przecież trzeba test napisać, albo stosują wzorce projektowe w niewłaściwy sposób. Więc mój kurs w jakiś tam sposób stara się przewidzieć takie sytuacje, takie rozwiązania i pokazać kursantom, w którym kierunku należałoby iść, jakie testy dopisać i też co powinno być testowane. I też te zadania wykorzystują tablicę kanbanową, gdzie użytkownik, jeżeli będzie miał ochotę, może połączyć się z Trello czy Asaną i przekierować swoją pocztę, to znaczy te maile z zadaniami, które ja podsyłam,właśnie na Trello czy Asanę i tam przeciągać te zadania.
Będzie dzięki temu widział postęp swojej pracy, będzie czuł małą presję tego, że cały czas wpadają nowe zadania do backloga, które trzeba jednak zacząć rozwijać, trzeba zacząć implementować i zadania są zrobione w taki sposób, aby dochodziły przyrostowo, czyli zrobienie zadania wcześniejszego jest niezbędne, aby zacząć zadanie późniejsze. Co symuluje zmienność aplikacji, w której porusza się programista, gdyż za każdym razem aplikacja musi działać po skończeniu jakiejś części, jakiegoś zadania, a nie zostawić rozgrzebaną i nie będzie działać, więc mój kurs przewiduje również wrzucanie tak małych mikro-zadań, aby zmieniać implementację, zmieniać funkcjonalność całej aplikacji, całego programu, ale zachowując stabilność tego programu i aby cały czas istniała możliwość korzystania z zasobów, które są udostępnione w bazie danych właśnie przez tą aplikację.
I teraz jakie wyzwanie mam?
Stworzyć reklamę, zacząć pokazywać ludziom to, że jest taki kurs, że mogą się zapisać na ten kurs i mogą zacząć z niego korzystać. Muszę jeszcze pomyśleć jak zareklamować te benefity, o których tutaj wspomniałem, o tym w jaki sposób pokazać ludziom, że ten kurs daje im naprawdę bardzo dużą wartość i że dla mnie brakowało takiego kursu, gdy ja zaczynałem swoją przygodę z programowanie mi też dostaję feedback od osób, które już przerabiały część tych rzeczy, które udostępniłe mi te osoby są zachwycone tym kursem, że w końcu mają realne problemy do rozwiązania, a nie jakieś tutoriale i przepisanie z tutoriala kodu i wszystko działa.
Tutaj uczą się na własnych błędach, na własnych niedoskonałościach czy na tym, więc mój kurs pozwala również na zapoznanie się z jakimiś brakami kursanta. Ale reklama na razie mam na Facebooku, post, który jest reklamowany. Zobaczymy czy z tego posta ktoś przyjdzie, się zapisze chociażby na newsletter, ale chcę jeszcze zrobić reklamę na YouTube i zobaczyć jak to będzie działać na YouTube. I to tyle w tym podkaście, w tym odcinku podcastu i do usłyszenia przy jakiejś, mam nadzieję, niedalekiej okazji.
Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online
Strona www stworzona w kreatorze WebWave.