SP#016 i #017 – 29 wniosków po nagraniu 458 lekcji kursu dla programistów.

Cześć!

Witaj w kolejnym odcinku podcastu Sprawny Programista!

Dzisiejszy temat to 29 wniosków po nagraniu 458 lekcji kursu dla programistów.

Z tego materiału dowiesz się:

  1. Jak powinien wyglądać naprawdę dobry kurs programowania.
  2. Jak pracować, żeby pogodzić pracę na kontrakcie, własną firmę oraz życie prywatne i rodzinne?
  3. Czego nauczyłem się po przygotowaniu blisko pięciuset materiałów.

Stosunkowo niedawno, bo kilka dni temu skończyłem pracę nad swoim trzecim kursem programowania. Osobiście nie do końca lubię określenie kurs” w kontekście moich materiałów, dlatego że kursy kojarzą się z czymś stosunkowo niedużym. Natomiast tutaj mamy nie tylko lekcje w formie nagrań wideo, ale też całą wielką otoczkę – dodatkowe materiały, często jakąś grupę, także jest to zdecydowanie coś więcej niż kurs. No i właśnie skończyłem pracę nad trzecim programem.

Pierwszy program to Kierunek Programista”, mój pierwszy autorski program. Można powiedzieć, że był to swego rodzaju poligon doświadczalny, dlatego że od niego zaczynałem i na nim się uczyłem. Obecnie ten program nie jest już dostępny w sprzedaży, gdyż zdjąłem go z rynku. Program miał, nazwijmy to, kilka takich grzechów młodości – przede wszystkim był bardzo rozbudowany, zdecydowanie zbyt rozbudowany jak na początek. Drugi, bardzo duży problem to połączenie dwóch tematów w jednym programie: typowo technicznych jak np. podstawy Javy, podstawy Dockera oraz miękkich, jak szukanie pracy.

Moim zdaniem w ramach dobrego kursu powinniśmy dojść do transformacji naszego słuchacza: od osoby nieumiejącej do umiejącej. W drugim programie – Java Od Podstaw” mamy już konkretną transformację. Uczymy podstaw programowania w Javie, a całość kończymy pierwszą aplikacją Javową. Ten program został bardzo dobrze przyjęty przez rynek. Z punktu widzenia kursanta jest to świetny początek dalszej przygody z programowaniem. Warto zacząć właśnie od niego, jeżeli już jesteśmy zdecydowani na naukę Javy.

Natomiast sama Java Od Podstaw” to jeszcze za mało, żeby zostać programistą. Dlatego właśnie powstał trzeci program, na którym dzisiaj się skupimy, czyli Efektywne Aplikacje Internetowe”. Bierzemy całą wiedzę, zdobytą w programie Java Od Podstaw” i ją rozbudowujemy. Cała idea polega na tym, żeby przeprowadzić naszego kursanta od początkowej wiedzy do momentu, w którym zna podstawy na tyle, aby być w stanie samodzielnie pracować na stanowisku Junior Java Developera. Program kończy się podsumowaniem w formie większego projektu – tworzymy aplikację 100 Ideas.

Każdy z trzech programów to naprawdę bardzo duży projekt – łącznie 458 lekcji, czyli ta nasza tytułowa liczba. Jak to rozkłada się w kontekście poszczególnych jednostek?

Kierunek Programista: 202, Java Od Podstaw i Efektywne Aplikacje Internetowe odpowiednio: 122 i 134.

Natomiast nie sugerowałbym się tutaj samą ilością lekcji, dlatego, że tematy, które poruszamy w EAI są zdecydowanie trudniejsze, a co za tym idzie, niektóre z tematów po prostu wymagały tego, żeby lekcje były odpowiednio dłuższe. Mówimy też tylko o głównych materiałach – w tych obliczeniach pominąłem dodatkowe nagrania, materiały rozszerzające oraz bonusowe spotkania, których też jest bardzo dużo. Tego jest naprawdę bardzo dużo. Samo zebranie materiałów, późniejsze ich opracowanie np. w formie prezentacji, przygotowanie się do nagrania, nagranie, montaż, publikacja materiałów i promocja to jest naprawdę bardzo dużo czasu i bardzo dużo pracy.

Jako twórca programów bardzo dużo nauczyłem się przy ich przygotowywaniu. Dzisiaj chciałbym się z Tobą podzielić kilkoma ciekawymi wnioskami.

Wniosków jest całkiem sporo, dlatego że mamy ich aż 29, więc zdecydowałem się podzielić je na 4 główne kategorie:

  • Umiejętności – czego się nauczyłem?
  • Organizacja pracy
  • Ogólne wnioski
  • Program oraz sama współpraca z kursantami, czyli dobre praktyki w kontekście przygotowania konkretnych materiałów dla kursantów.

Spis treści

Umiejętności

Zacznijmy od pierwszej kategorii, czyli: moje umiejętności – czego się tutaj nauczyłem?

1. Umiejętność wysławiania się i składne wyrażania własnych myśli.

Czym innym jest coś wiedzieć, mieć jakieś techniczne, konkretne umiejętności, a czym innym jest wiedzieć, jak je przekazać innym. To szczególnie jest widoczne w rozmowie z technicznymi osobami. Mamy wielu programistów, którzy dokładnie wiedzą, jak usiąść przed komputerem, jak coś zaprogramować. Natomiast jeżeli postawimy ich na scenie, by przekazali wiedzę innym osobom, to raz, że zaczyna się dukanie, dwa: nie do końca wiedzą, jak odpowiednio zebrać myśli, jak ubrać je w słowa. Trudno się z takimi osobami później skomunikować. Nie ukrywam, że też miałem na początku bardzo duże trudności, ale to, że sobie uświadomimy, w czym jest problem, to już jest bardzo dobry pierwszy krok do tego, żeby nad tym pracować. Zacząłem świadomie nad tym pracować i kilka lat temu podjąłem pracę jako trener programowania na lokalnych bootcampach. Było to pod wieloma względami otwierające oczy doświadczenie, bo nie tylko musiałem wyjść na scenę, rozmawiać z ludźmi, przekazywać wiedzę. Wcześniej musiałem też zebrać wszystkie myśli, przygotować materiały, a później miałem okazję zderzyć wszystkie moje wcześniejsze założenia z konkretnymi osobami, problemami, czyli w tym wypadku nauczyć ich programowania. No i dochodzimy wtedy do takiego problemu, że to, co sobie na początku wymyśliłem, niekoniecznie było zgodne z tym, jak odbierali to inni. Oczywiście po jakimś czasie, po kilku takich spotkaniach zaczęło się wszystko układać. Kolejna rzecz, którą zrobiłem, żeby zapanować nad przekazywaniem myśli, to dołączenie do lokalnej grupy Toastmasters. Jest to bardzo fajna inicjatywa, polegająca na spotkaniach raz w tygodniu grupy osób, które chcą popracować nad wystąpieniami publicznymi. Wybieramy sobie temat prezentacji, wychodzimy na scenę i prezentujemy przed wszystkimi zgromadzonymi. Co bardzo ważne: dostajemy informację zwrotną, więc bardzo szybko jesteśmy w stanie poprawić sposób wypowiadania.

2. Umiejętność występowania przed kamerą.

Kolejna problematyczna rzecz, na którą tutaj natrafiłem. Czym innym jest posiadanie wiedzy, czym innym jest ubrać ją w słowa, a jeszcze czym innym jest przekazanie tego przed kamerą. I tutaj też rzeczywiście miałem na początku bardzo duży problem, dlatego że kamera totalnie mnie blokowała. O ile w rozmowie w cztery oczy nie miałem większego problemu, później przepracowałem wystąpienia publiczne na scenie. Natomiast w momencie, w którym odpaliliśmy kamerę, nastąpiła totalna blokada. Na pierwszych nagraniach dosłownie brakowało mi tchu. Wniosek z tego jest taki, że wszystkie, nawet takie trudne sytuacje jesteśmy w stanie przepracować. Zacząłem od krótkich nagrywek przed telefonem, miałem po prostu telefon przed sobą, widziałem swoją twarz i mówiłem.

Nagrywałem sam siebie, dzięki czemu od razu miałem szybką informację zwrotną: jak wyglądam, jak to się nagrało i czy w ogóle miało sens to, co mówię. Ustawiłem sobie przypomnienie, żeby codziennie usiąść przed telefonem i zacząć mówić. W pewnym momencie zacząłem losowo wybierać tematy, np. otwierasz książkę na jakimś losowym fragmencie i zaczynasz opowiadać na dany temat, więc jesteś na takim gorącym krześle. Nie wiesz, o czym będziesz mówił, nie możesz się do tego przygotować, co powoduje, że musisz improwizować i po prostu mówić, mówić i jeszcze raz mówić. Kiedy zakończyłem ten etap, wszedłem w kolejny, czyli zacząłem nagrywać podcasty. Właśnie w tamtym okresie wystartował pierwszy podcast Sprawny Programista”, czyli ten, którego teraz masz okazję słuchać, a trochę później Programista Robi Biznes”. To było bardzo cenne doświadczenie, dzięki któremu miałem okazję dłużej mówić nie tylko krótkie, kilkuminutowe wstawki, ale półgodzinne, a często nawet półtoragodzinne wypowiedzi, które wymagają składnego wyrażania myśli przez cały czas.

Jeżeli chcesz pobawić się w ten sposób i usprawnić to, w jaki sposób się wypowiadasz, to bardzo dobrym sposobem jest również rozpoczęcie nagrywania relacji na Instagramie. To jest o tyle fajne rozwiązanie, że możemy szybko dostać informację zwrotną od innych ludzi, ale również relacje stosunkowo krótko żyją, czyli po 24 godzinach po prostu znikają. Szczególnie na początku jest to bardzo wygodne rozwiązanie.

3. Pierwsze wersje nie będą idealne, choćbyśmy nie wiem, jak się starali.

Tak samo pierwsza wersja materiałów, slajdów, które przygotujemy, nagrań, nad którymi będziemy pracowali. One też nie będą idealne. Ale wiesz, co Ci powiem? One nie muszą być idealne, dlatego że będziemy mieli później możliwość ich poprawienia. Dlatego też na początku bardzo mocno ceniłem sobie przygotowywanie artykułów, a nie samych nagrań zacząłem od formy pisanej, bo później mogłem to przeczytać i nanieść poprawki.

Patrzyłem, co mi się podoba, co mi się nie podoba i mogłem jeszcze raz, i jeszcze raz i jeszcze raz to poprawiać. Prawda jest taka, że na początku musimy pogodzić się z tym, że pierwsze wersje po prostu nie będą idealne.

4. Niektóre umiejętności po prostu przyjdą do nas z czasem.

U mnie to było bardzo mocno widoczne. Pierwsze nagrania, naprawdę nie przesadzając, bywało, że nagrywałem po 20, czy 30 razy, czasami nawet więcej. Ostatecznie nagrywałem po małym kawałeczku, czasami dosłownie po jednym akapicie, czy nawet jeszcze mniej. Czytałem coś, ćwiczyłem, nagrywałem ten fragment i później dopiero montowałem. Strasznie karkołomna praca, ale kamera była na początku totalnym blokerem. Natomiast po iluś tam próbach rzeczywiście zaczęło to wyglądać lepiej i obecnie mój proces wygląda w ten sposób, że kiedy mam już przygotowane wszystkie materiały, mapę myśli tego, co chcę przekazać, bardzo często nagrywam to na dwa, ewentualnie do trzech razy, ale raczej nie więcej.

Raz, żeby wszystko przećwiczyć, dlatego że czym innym jest mieć mapę myśli, a czym innym później na podstawie tej mapy myśli nagrać materiał. Czasami dojdziemy do wniosku, że jednak coś jest za bardzo przegadane, trzeba to odrobinę skondensować, albo zorientujemy się, że czegoś jednak brakuje. Stąd ta pierwsza próba. Lubię mówić, że to jest „na brudno”. Wtedy też właśnie układam sobie w głowie wszystkie konkretne zwroty, których chcę użyć i dopiero wtedy nagrywam na czysto. I to powoduje, że jakość ostatecznych materiałów jest na naprawdę wysokim poziomie.

5. Najlepszym sposobem, żeby zrozumieć dane zagadnienie, jest wytłumaczenie go komuś innemu.

W momencie, w którym chcemy przekazać wiedzę komuś innemu, to sami musimy bardzo dobrze ją zgłębić, więc musimy ułożyć sobie wszystko dokładnie w głowie. Jest nawet taka sztuczka, nazwijmy to programistyczna, jak rozmowa z żółtą kaczuszką.

Gdy masz jakiś problem, nie do końca rozumiesz jak coś zrobić, to warto wybrać taką kaczuszkę lub cokolwiek innego. Chodzi o to, żeby komuś lub czemuś wytłumaczyć, w czym tkwi Twój problem. Musimy dobrze go zrozumieć, żeby przekazać wiedzę dalej. I bardzo często, jak się nad tym zastanowić, sami jesteśmy w stanie znaleźć rozwiązanie naszego problemu. W przypadku przekazywania wiedzy mamy dokładnie taki sam mechanizm. Żeby przekazać ją komuś innemu, musimy sami najpierw bardzo dobrze zrozumieć, w czym rzecz. Mimo że nagrywam materiały głównie na tematy, które bardzo dobrze znam, często też pracuję z nimi komercyjnie od wielu lat, to pracując nad nimi i tak musiałem wszystkie zagadnienia bardzo dobrze ułożyć sobie w głowie, często też gdzieś doczytać, poszukać informacji, gdyż znowu jedno to jest znać dane zagadnienie, nawet pracować z nim komercyjnie, drugie to przekazać komuś tę wiedzę, a jeszcze trzecie, w tym wypadku najtrudniejsze, nagrać materiał, kurs na podstawie danego zagadnienia. Dlatego, że ja zwyczajnie nie mogę sobie pozwolić na błędy merytoryczne.

Mam pełną świadomość, że to, co później nagram, będzie oglądane przez wiele osób, które będą bazowały na tym niejako jak na jakimś śpiewniku, będą z tego korzystały i często też będą sprawdzały. Nie zawsze będą to tylko i wyłącznie osoby początkujące, ale czasami będą to oglądały też osoby z większym doświadczeniem. Jeżeli coś tutaj nie będzie się zgadzało, to po prostu zostanie mi wetknięty błąd. Nie chciałbym podważać swojego autorytetu i to wszystko powodowało, że musiałem się do materiałów naprawdę bardzo, bardzo dokładnie przygotować. Także wszystkie rzeczy, które przedstawiałem, były po kilka razy sprawdzane. Często też spędzałem dużo czasu, czytając dokumentację, szukając malutkich kruczków, żeby mieć pewność, czy rzeczywiście w taki sposób to działa. I np. przygotowując się do ​​Efektywnych aplikacji internetowych” przeczytałem całą dokumentację Springa dla wszystkich modułów, które wykorzystywałem w aplikacji. To było kilka tysięcy stron, co zajęło rzeczywiście dużo czasu, a do niektórych rzeczy trzeba było wracać po kilka razy, żeby rzeczywiście dobrze je zrozumieć.

Realizuję jeszcze jedną rzecz – w momencie, w którym przygotowuję przykłady, bardzo często piszę do tego testy, dlatego że sam chcę bardzo dobrze zrozumieć, jak dane zagadnienie działa, więc niejako testuję je z każdej możliwej strony. To jest weryfikacja niektórych założeń, jak dana technologia działa, ale później często też wykorzystuję niektóre z testów jako ćwiczenia dla kursantów i dzięki temu oni też dostają dodatkowe materiały, do sprawdzania siebie.

Tutaj kończymy pierwszą kategorię naszych wniosków, czyli moje umiejętności – czego się nauczyłem? I przejdziemy do drugiej kategorii, czyli do organizacji pracy.

Organizacja pracy

6. Umiejętności są ważne, ale proces jest ważniejszy.

Kolejna duża rzecz, której nauczyłem się przy przygotowywaniu wszystkich materiałów to właśnie organizacja pracy, dlatego,że aby nagrać taki ogrom materiałów i jednocześnie dzielić swój czas na pracę zawodową, na kontrakcie, rodzinę i życie prywatne, trzeba się całkiem nieźle uwijać.

Dlatego wniosek jest taki, że proces, proces i jeszcze raz proces. Wszystko trzeba procesować, bardzo mocno pilnować siebie, żeby zoptymalizować czas pracy. Przejdziemy teraz przez kilka punktów, które pomogą mi lepiej zorganizować pracę.

7. Duże zadania można i powinno dzielić się na mniejsze.

Jest takie śmieszne powiedzenie: jak zjeść słonia? Po kawałku 🙂 W praktyce oznacza to, że jak mamy jakieś bardzo duże zadanie, które potrafi być dla nas przytłaczające, trzeba to zadanie podzielić na mniejsze fragmenty. Podzieliłem duży program na 12 modułów i już mamy 12 mniejszych projektów, każdy moduł to średnio około kilkunastu lekcji, pojedynczą lekcję też jesteśmy w stanie podzielić na mniejsze elementy: zebranie materiałów, opracowanie do nich slajdów, weryfikację i później nagranie. Po zastosowaniu podziału nie wydaje się to zadanie aż takie straszne, szczególnie jeżeli porównamy je do projektu, który realizujemy przez pół roku czy dłużej. Tutaj szczególnie to jest przytłaczające, jeżeli sobie uświadomimy, że będziemy pracowali nad tym przez kilka miesięcy, a jeszcze życie często pokazuje, że czegoś się nie da. Zakładamy, że po drodze pojawiają się problemy, co bardzo często powoduje, że motywacja bardzo mocno spada. Dlatego właśnie tak kluczowym jest podział dużego projektu na mniejsze etapy. W moim wypadku był to przynajmniej jeden moduł, po którego zrealizowaniu przekazywałem materiały dla kursantów. Można powiedzieć, że był to taki moment, w którym można trochę poświętować, pocieszyć się, ale bardzo często też odrobinę odpocząć. Podział dużego projektu na mniejsze etapy ma jeszcze kilka plusów.

Przede wszystkim po zakończeniu każdego z etapów odnawia nam się motywacja: zaczynamy kolejny, niejako nowy projekt. Dużo łatwiej jest nam wykorzystać cząstkowe elementy naszej pracy, czyli na ostateczny wynik nie musimy czekać bardzo długo, tylko po każdym fragmencie mamy jakiś element pracy, który możemy wykorzystać dodatkowo np. w formie wpisów na blogu o podobnej tematyce. Na przykład, gdy chciałem przygotować moduł na temat Springa, najpierw przygotowałem kilka wpisów na temat Springa, przez co musiałem przygotować się do tematu, zebrać myśli i miałem już część notatek, które mogłem wykorzystać na blogu, a później jeszcze dodatkowo wracałem do materiału i opracowałem go w formie samego programu.

8. Skupienie.

W danym momencie pracujemy nad jednym zadaniem, żeby nie przytłoczyć się nawałem wszystkich zadań do wykonania. Dlatego, że jak pomyślimy o tym, że mamy nagrać 500 lekcji jednocześnie, do każdej z nich się przygotować, a mamy kłopoty, żeby zrobić tylko i wyłącznie jedno, to może być to rzeczywiście bardzo, bardzo przytłaczające. W danym momencie nie pracujemy przecież nad 500 lekcjami, tylko nad jednym, konkretnym zadaniem i skupić się właśnie na nim, przynajmniej na ten moment odłożyć inne rzeczy na potem. Na przykład pracuję tylko i wyłącznie nad przygotowaniem slajdów do konkretnej lekcji. Nie martwię się tym, że nie mam jeszcze notatek do innej lekcji, czyli jedno zadanie w jednym czasie.

9. Nauczyłem się pracy w blokach czasu.

Najczęściej wykorzystuję w tym celu technikę Pomodoro. Najczęściej mówi się o 25 minutach pracy. U mnie to różnie bywa: od 20 do 45 minut. Staram się poświęcić określony przedział czasowy na czystą, głęboką pracę. Najczęściej właśnie to jest jedno konkretne zadanie. Odcinamy się od wszystkich rzeczy wyłączam wszelkiego rodzaju powiadomienia, mówię domownikom, że mnie nie ma i po prostu przez ten czas skupiam się na pracy. Często dodatkowo mam też zatyczki w uszach czy słuchawki, żeby całkowicie odciąć się od świata zewnętrznego. Po tym ustalonym czasie następuje chwila przerwy: można przejść się, przewietrzyć, ale też nie za długo, żeby się nie rozpraszać, a następnie zaczynamy kolejny blok czasowy. Staram się łączyć je w ciągu dnia w dwie grupy bloków, czyli zaczynam pracę stosunkowo rano, około południa jest dłuższa przerwa. Często tutaj też zmieniam kontekst, czyli np. jeśli rano pracowałem nad programem, nad przygotowaniem tych materiałów, to od południa biorę się za inne zadania właśnie, żeby zmienić kontekst, żeby głowa lepiej pracowała.

10. Systematyczność.

Czy tego chcemy, czy nie systematyczność jest bardzo ważna. Nie zrobimy dużego projektu na raz, choćbyśmy nie wiem, jak się bardzo starali, natomiast jeśli codziennie będziemy go tak po troszeczku, po kawałeczku podgryzać, to zacznie się nam po pewnym czasie kumulować. Szczególnie to jest trudne, gdy nam się nie chce, gdy mamy trudniejszy dzień, ale warto wtedy sobie uświadomić, że w dłuższej perspektywie pojedyncze decyzje danego dnia się kumulują. Jak sobie dzisiaj odpuszczę, to za miesiąc po prostu nie będę miał wyników pracy.

Nie ukrywam – było to dla mnie bardzo trudne. Trudne dlatego, że bardzo lubię zaczynać nowe tematy, ale jeżeli chodzi o ich kończenie, bywa już różnie. Natomiast od kiedy uświadomiłem sobie, że mam tendencję do brania coraz to nowych zobowiązań na siebie, już mi odrobinę łatwiej to u siebie przepracować, co nie zmienia faktu, że cały czas muszę się pilnować, żeby nie zaczynać nowych rzeczy, jeżeli jeszcze nie skończyłem poprzednich. Nowe tematy z mojego punktu widzenia bardzo często są dużo bardziej pociągające, bo zaczynamy coś nowego. Natomiast te stare tematy leżą odłogiem i jeżeli ich nie dokończymy, to tak naprawdę nie czerpiemy z nich żadnych korzyści. Przekładając to na sytuację z życia codziennego: jeżeli raz pójdziemy na siłownie, to nie spodziewajmy się, że zdobędziemy formę życia, ale jeśli wprowadzimy ten nawyk 3 do 5 razy w tygodniu, rzeczywiście po pewnym czasie, jeżeli będziemy sumiennie wykonywać ćwiczenia, możemy liczyć na efekty. I tę zasadę można przełożyć na wiele aspektów naszego życia. Systematyczność również przy realizacji programów kursów ma bardzo duże znaczenie.

11.Wszystko jest i może być projektem.

Tutaj zachęcam Cię do rozważenia takiej pracy przy podejściu projektowym. Ja to testuję u siebie już od pewnego czasu i zauważyłem, że naprawdę ma to bardzo dużo plusów. W dużym uproszczeniu polega to na tym, że większość moich aktywności staram się realizować właśnie jako jakiś projekt. Czyli np. pracuję nad modułem do naszego kursu, realizuję go, jako niezależny projekt. Planuję wyjazd na urlop? Myślę o zorganizowaniu wyjazdu i o wyjeździe z perspektywy projektu.

Jeśli myślimy o aktywnościach z perspektywy projektu, to taki projekt powinien mieć swoje założenia, cele, powinien mieć też wymagania, to, co na początku ustalimy. I dobrze by było, gdybym miał z góry założony czas trwania. Jeżeli powiemy sobie np., że będę więcej biegał, jest to bardzo abstrakcyjne i nie ma założonego czasu trwania, więc mamy dużo mniejszą motywację, żeby w tym założeniu wytrwać, ale jeżeli na przykład założymy, że będę to robił przez miesiąc, trzy razy w tygodniu, no to już wiem, że cokolwiek by się nie stało, to po miesiącu to się skończy, więc dużo łatwiej jest mi to ułożyć sobie w głowie, a kiedy ten czas się skończy, można się na chwilę zatrzymać, zrobić sobie podsumowanie, właśnie takie retro i podjąć decyzję, czy chcemy to kontynuować.

Jeżeli interesuje Cię ten temat, to odsyłam Cię do szóstego odcinku podcastu Programista Robi Biznes”, tam bardziej rozwijam ten temat.

12. Warto łączyć podobne rzeczy, podobne aktywności w grupy.

Przykładowo: dużo łatwiej jest nagrać nam trzy lekcje programu jedna po drugiej, niż gdybyśmy mieli trzy razy podchodzić do tego zadania i za każdym razem nagrywać tylko i wyłącznie po jednej lekcji. Przy podejściu grupowania aktywności zmniejszamy przede wszystkim koszty całego przygotowywania się do zadania. Łatwiej jest nam dzięki temu optymalizować drobne rzeczy, wprowadzać usprawnienia, które właśnie przy takim procesie po pewnym czasie dają nam więcej korzyści. I tutaj taki typowy klasyk związany z odbieraniem maili. Reagowanie za każdym razem na maile, na powiadomienia, odrywanie się od naszej innej aktywności. Niby przeczytamy maila w 30 sekund, ale zanim wrócimy do tego, co robiliśmy wcześniej, mija bardzo dużo czasu. Gdybyśmy to połączyli w grupy, czyli odbieranie maila dwa, trzy razy w ciągu dnia, to nie jesteśmy tak często rozproszeni i zyskamy bardzo dużo czasu.

13. Nie musisz wszystkiego robić samodzielnie, czyli zespół jest naprawdę bardzo ważny.

To było coś, czego musiałem się nauczyć i co było na początku również dla mnie bardzo trudne. Przy pierwszym programie robiłem wszystkie rzeczy z kursu samodzielnie. Pod koniec zacząłem delegować montaż, natomiast na początku również i to robiłem samodzielnie, co powodowało, że ogrom pracy był bardzo przytłaczający. Nie jestem specjalistą we wszystkich dziedzinach, co powodowało, że montaż był czymś, czego musiałem się nauczyć, a gdybym od razu przekazał go komuś, kto zajmuje się tym na co dzień, to też jakość montażu po prostu byłaby wyższa. Obecnie wiele rzeczy udało mi się również usprawnić i wspomniany już montaż został delegowany. Publikacją materiałów na platformie i korektą też się już nie zajmuję. Warto, żeby inna osoba spojrzała na materiał, bo unikniemy dzięki temu niedomówień. Też możemy wyłapać jakieś błędy. W tym momencie też mam tutaj pomoc, ale również jest kilka takich mniej oczywistych rzeczy, jak na przykład zebranie wstępnych notatek, kiedy przygotowuję jakieś materiały. Nie muszę też wszystkich rzeczy na początku sam gromadzić, tylko też mam pomoc. No i nie oszukujmy się, jest to naprawdę bardzo duża oszczędność czasu. Oczywiście ja na koniec i tak, i tak muszę to wszystko zweryfikować, bo to ja się pod tym podpisuje. Też muszę doczytać, sprawdzić, ale jeżeli mamy przynajmniej częściowo to zebrane, to na pewno jest to usprawnienie.

14. Niektórych rzeczy zwyczajnie nie da się przyspieszyć.

Jest bardzo mocno związane właśnie z pracą w grupie, z pracą w zespole, bo gdy sami pracujemy nad zadaniem, to sami jesteśmy od siebie zależni. Natomiast, kiedy niektóre rzeczy zaczynamy delegować, nie robimy tego samodzielnie, trzeba uwzględnić to przy realizacji projektu, dlatego że na kogoś może trzeba będzie poczekać, ktoś może mieć gorszy dzień, może mieć urlop i my musimy to uwzględnić przy naszej pracy.

To nie tylko wpływa bezpośrednio na naszą pracę, ale też później na to, jak dostarczamy materiały i np. trzeba takie opóźnienia, odpowiednio zakomunikować kursantom, bo oni też czekają na materiały lub zaplanować pracę z jakimś wyprzedzeniem. Trzeba tutaj odrobinę zmienić sposób pracy i sposób myślenia.

15. Deadline i publiczna deklaracja to bardzo potężne narzędzia.

Nic tak nie motywuje jak sztywny deadline, którego nie możemy przekroczyć i czekający ludzie, którym obiecało się, że te konkretne materiały będą dostarczone na czas. Wchodzisz na grupę i widzisz pytania od kursantów na temat materiałów. Jest to naprawdę bardzo dobra motywacja, żeby po prostu siąść i dokończyć pracę. Wtedy inne problemy, czy wątpliwości schodzą na drugi plan, bo tutaj ludzie czekają, więc trzeba to po prostu bardzo mocno docisnąć.

To jest mocno związane z tym, że jak jeszcze dodatkowo zadeklarujemy, szczególnie publicznie, że dotrzymamy danego zobowiązania, mamy motywację podwójną. Niektórzy nie decydują się na publiczną deklarację, ale można zrobić ją również tylko i wyłącznie przed samym sobą. Na mnie to też działa. Natomiast, jeżeli połączę te wszystkie rzeczy, czyli deklarację przed samym sobą, deklarację publiczną przed innymi osobami i jeszcze sztywny czas, to rzeczywiście takie połączenie powoduje, że nie ma siły, żebyśmy nie dokończyli zadania. Ten temat rozwijałem w ósmym odcinku Programista Robi Biznes”, on również będzie podlinkowany, także zachęcam do jego wysłuchania.

Podsumowanie pierwszej części

Myślę, że tutaj możemy zrobić przerwę. Przeszliśmy przez 15 pierwszych wniosków, została nam jeszcze druga połowa, natomiast podzielimy ten materiał na dwie części, tak, żeby wnioski miały chwilę na ułożenie w głowie.

Dziękuję Ci za dzisiaj i za wspólnie spędzony czas. Życzę Ci wszystkiego dobrego i do usłyszenia już niedługo w drugiej części naszego spotkania, gdzie skończymy rozważania na temat wniosków.

Trzymaj się! Cześć, do usłyszenia!

29 wniosków po nagraniu 458 lekcji kursu dla programistów – część 2.

16. Warto robić dodatkowe rzeczy i warto robić je publicznie.

I to przede wszystkim dlatego, że robiąc coś, nie do końca wiemy, jakie to później będzie miało pozytywne konsekwencje. Nie warto zastanawiać się, czy coś z tego będę miał, czy nie, bo jeżeli będziemy tak to rozpatrywali, to z dużym prawdopodobieństwem dojdziemy do wniosku, że może w tym momencie rzeczywiście nie do końca się to opłaca.

Natomiast pamiętajmy, że w dłuższej perspektywie często po prostu nie wiemy, jak to się skończy i o ile idziemy w dobrym kierunku, to istnieje duża szansa, że coś dobrego do nas wróci. Tutaj jeszcze dodam, żeby takie rzeczy robić publicznie. Ja staram się od jakiegoś czasu też dokumentować wiele tych moich aktywności, żeby właśnie w ten sposób wyjść w świat, pokazać innym ludziom coś, co robię tutaj w ramach naszej firmy. Słyszałam kiedyś takie zdanie, żeby żyć tak, jakbyśmy byli głównym bohaterem w filmie. Łatwo powiedzieć, łatwo dać taką radę, natomiast zdecydowanie trudniej gdzieś tam wdrożyć ją w życie. Szczególnie jest to trudne dla takich urodzonych introwertyków jak ja, którzy nas zdecydowanie nie lubią gdzieś tam wychodzić na świat z tym swoim prywatnym życiem, a tym bardziej dokumentować tego typu rzeczy.

Jakiś czas temu uświadomiłem sobie, że takie działania są po prostu skuteczne i to pod wieloma względami. Sama taka publiczna deklaracja, że coś robisz, jest już naprawdę świetną motywacją, bo mamy świadomość, że inni mogą po prostu to zweryfikować. Kolejna rzecz, która doszła do mnie dopiero po pewnym czasie, to fakt, że w tym naszym otoczeniu, bliższym i dalszym jest bardzo dużo przychylnych nam osób, które chętnie w jakiś sposób by nam pomogły, ale niekoniecznie te osoby w ogóle mają świadomość, że my potrzebujemy jakiegoś wsparcia. Od kiedy zacząłem tutaj publicznie dzielić się tym, co robię, odezwało się do mnie naprawdę bardzo dużo osób z różnymi propozycjami współpracy.

17. Materiały i wiedza, którą posiadasz, z czasem zaczynają się kumulować.

Dlatego warto zbierać różnego rodzaju materiały i doświadczenia, bo ta baza z czasem zaczyna rosnąć. Ona jest coraz większa i w pewnym momencie to samo zaczyna się nakręcać. Jeżeli realizujemy już jakiś kolejny projekt i poruszamy się cały czas mniej więcej w tej tematyce, to nie musimy robić tego wszystkiego od nowa. Ja bardzo mocno odczułam to przy pracach nad ostatnim programem i cały materiał nie był aż tak duży, jak mogłoby się wydawać na samym początku, dlatego że moja baza materiałów jest całkiem spora.

W tym miejscu też wykorzystałem dużo materiałów z pierwszego programu KierunekProgramista. Mimo że ten program nie jest już w sprzedaży, to udało mi się w ten sposób wykorzystać przynajmniej częściowo te materiały. Co prawda nie same nagrania, ale wszystkie notatki, które miałem wcześniej, mogłem tutaj wykorzystać, dopracować i przebudować w tej nowej, lepszej formie. No i właśnie dzięki temu dużo łatwiej to wszystko było zrobić.

18. Przygotowanie produktu, marketing, sprzedaż to wszystko są naprawdę bardzo duże, ale też niezależne tematy i nawet najlepszy produkt sam się nie sprzeda.

Nasi potencjalni klienci po prostu nie będą wiedzieli, że my coś takiego zrobiliśmy – sam produkt nie będzie chodził po ludziach i nie będzie zachęcał. To jest coś, czym my musimy się zająć i w dużej mierze też jest niezależna praca. Jako właściciel firmy musiałem doszkolić się z innych, początkowo nie do końca znanych mi tematów, takich jak sprzedaż i marketing. No i trzeba przyznać, że też na samym starcie nie do końca doceniłem, jak duże są to tematy.

Tutaj nie będę rozwijał tego tematu. Natomiast jeżeli interesuje Cię ta tematyka, to zachęcam do odwiedzenia strony – Programista Robi Biznes.

19. Pomysł to za mało, liczy się realizacja.

Dlatego, że jeżeli nic z nim nie zrobimy, to dalej zostanie tylko i wyłącznie w formie jakiegoś pomysłu w naszej głowie, ewentualnie w naszych notatkach. Osobiście mam taką bazę różnego rodzaju pomysłów, które spisuję i raz na tydzień siadam i weryfikuję, jakie pomysły miałam w tym tygodniu. Jeżeli coś jest rzeczywiście ciekawszego, to wkładam większej bazy pomysłów, projektów do zrealizowania kiedyś lub obecnie. W tej mojej bazie jest naprawdę całkiem sporo pomysłów – myślę, że to będą spokojnie setki. Natomiast jest tam też kilkadziesiąt takich wybranych, ciekawszych pomysłów, które zostały rozpisane. Często poświęciłem np. cały weekend, zastanawiając się jak rozbudować dany projekt. I to wcale nie znaczy, że ja zrealizuję je wszystkie. Także podsumowując pomysł to zdecydowanie za mało, póki nie podejmiemy tego wysiłku, żeby go zrealizować.

W tym miejscu kończymy tą kategorię wniosków i przechodzimy do kolejnej – trzeciej, a zarazem ostatniej 🙂

Można powiedzieć, że ta kategoria to jest takie trochę podsumowanie, Jakie wysiłki włożyłem tutaj, żeby ten program Efektywne Aplikacje Internetowe był jak najlepszy dla naszych kursantów.

Wszystkie wnioski związane z samym programem oraz już ze współpracą z naszymi kursantami.

20. Klient na pierwszym miejscu.

Pierwszy program, czyli KierunekProgramista pisałem w totalnie innym podejściu. Miałem jeszcze wtedy bardzo nieduże doświadczenie w tej kwestii i pisałem go w zaciszu domowym bez współpracy z klientami, czy współpracownikami. Co prawda był już wtedy blog i było też trochę osób na blogu.

I rzeczywiście przez program przeszło około stu osób. Natomiast nie było to to, czego oczekiwałem. Wniosek jest taki, że już od samego początku powinniśmy współpracować z ludźmi, dlatego że ten program będzie dla nich. I dlatego przy kolejnych programach bardzo mocno zmieniłem już podejście. Tutaj zdecydowanie odrobiłem tę pracę domową i od samego początku staram się angażować jak najwięcej ludzi w cały ten proces przygotowania programu.

21. Nie zawsze to, co chce klient, jest tym, czego on potrzebuje.

Z moich doświadczeń wynika w kontekście naszych programów, że ludzie oczywiście bardzo chętnie chcą się uczyć takich technicznych tematów jak składnia Javy, jak Docker, jak bazy danych. To typowo twarde, techniczne umiejętności i chcą się tym zajmować w dużej mierze dlatego, że wydaje im się, że tego im najbardziej brakuje, żeby znaleźć pracę. Natomiast jednocześnie te same osoby totalnie ignorują inne kwestie, jak na przykład wybór odpowiedniej technologii.

Mając świadomość, jak ważne są umiejętności miękkie, zmieniłem podejście. Można powiedzieć, że przemycam te dobre praktyki i różnego rodzaju rady (jak przygotować CV) w swoich programach, czyli skupiamy się na całym procesie (np. jak zostać programistą Java). I po czasie widzę, że to podejście bardzo mocno się sprawdza, bo kiedy mam już takie osoby u siebie, na grupie czy u siebie w programie, one po pewnym czasie po prostu zaczynają doceniać, że w ten sposób otrzymały te informacje.

22. Ludzie potrzebują czasu na przyswojenie materiału, a z czasem opada też motywacja.

Programowanie nie jest łatwe. Nie jest to coś, czego możemy się nauczyć w jedno popołudnie, w weekend czy nawet w cały tydzień. Tutaj trzeba czasu.

Swoje programy podzieliłam na 12 modułów, każdy z tych modułów to kilkanaście lekcji. Czasami te pojedyncze moduły nazywane są też tygodniami. Natomiast to nie do końca odzwierciedla czas, jaki trzeba poświęcić na przepracowanie tych materiałów. Praktyka pokazuje, że ludzie, którzy chcą wejść do branży, chcą zostać programistami, średnio potrzebują od pół do półtora roku intencjonalnej pracy. Natomiast jeżeli ten czas zaczyna się wydłużać, to bardzo często pojawiają się jakieś problemy, ta nasza motywacja związana z dalszą nauką bardzo, bardzo mocno spada i trudno jest wtedy już wrócić znowu do tego reżimu, takiej codziennej, czy nawet kilka razy w tygodniu pracy. I kiedy zauważyłem, że rzeczywiście to jest bardzo częsty problem, to zacząłem sobie zadawać pytania co można tutaj zrobić, jak można pomóc tym osobom przejść przez ten proces?

Jest kilka rzeczy, które pomagają nam przejść na kolejny etap tego procesu i np. na samym starcie, kiedy nowe osoby dołączają do grupy proszę je o deklarację – jak chcą uczyć się programowania, jak często, w jaki sposób i kiedy chcą rozpocząć szukanie tej pierwszej pracy.

To proste ćwiczenie, ale kiedy ułożymy sobie w głowie ile razy w tygodniu chcemy rzeczywiście usiąść do tego komputera i programować, albo kiedy chcemy szukać tej pracy, to powoduje, że jest dużo większa szansa, że że pójdziemy dalej. Co jakiś czas staram się również dopytywać kursantów, jak idzie im z tymi materiałami.

23. Polskie słownictwo bywa problematyczne, szczególnie w momencie, kiedy uczymy się właśnie podstaw programowania podstaw IT.

I tutaj nie ma co się oszukiwać, ale angielski jest totalną podstawą, jeżeli chodzi o większej zagadnień związanych z programowaniem, a wiele słów z języka angielskiego trudno jest przetłumaczyć na język polski. Tutaj rozwiązałem tę trudność w ten sposób, że wszędzie gdzie to jest możliwe, starałem się wykorzystywać obie wersje językowe.

24. Potrzebujemy różnych narzędzi i różnych metod, żeby przekazać wiedzę.

Uczymy różnych zagadnień, od tych typowo technicznych, jak podstawy składni, Docker, bazy danych, po bardziej miękkie – np. jak przygotowanie CV. Wszystkie te zagadnienia wymagają od nas trochę innego podejścia do tematu. Stąd też w programach pojawiło się wiele różnych sposobów na przekazywanie tej wiedzy. Mamy te lekcje z teorią, z wprowadzeniem, z pokazaniem przykładów. Mamy też grupę lekcji, gdzie jest typowa praktyka, ale mamy też lekcje bonusowe. To są różnego rodzaju rozszerzenia o jakieś dodatkowe rzeczy.

25. Praktyka to podstawa nauki.

W kontekście nauki programowania ma to szczególnie znaczenie, bo jak pomyślimy o kimś, kto chciałby nauczyć się np. pływać czytając o tym książki, to raczej pomyślimy o tym z przymrużeniem oka 🙂

Jeżeli już myślimy o programowaniu, to widzimy bardzo dużo osób, które starają się nauczyć programowania czysto teoretycznie, tylko czytając o tym, a to totalnie nie tędy droga. Nie da się po prostu nauczyć się tego typu umiejętności, jeżeli nie siądziemy do komputera i nie zaczniemy programować. Lubię mówić o tym, że musimy sobie po prostu pobrudzić ręce w kodzie i zacząć pisać. I dlatego też w programie pojawia się bardzo dużo różnego rodzaju ćwiczeń, są też większe zadania, prace domowe. Mamy również duży projekt, który realizujemy przez większość naszego programu. Jest to aplikacja 100 Ideas, taka aplikacja, która grupuje nam, zbiera nam różnego rodzaju pytania.

26. Więcej nie znaczy lepiej.

Szczególnie w kontekście przekazywania naszej wiedzy. Na początku łapałem się na tym, że skoro coś umiem i to jest fajne, ciekawe, to chętnie przekazałbym wszystko, co tylko wiem. A takie podejście sprawia, że ta wiedza potrafi być bardzo przytłaczająca dla naszych kursantów i bardzo często w ogóle niepotrzebna.

27. Transformacja z punktu A do punktu B.

Musimy przeprowadzić naszego kursanta możliwie jak najbardziej optymalną drogą z punktu A do punktu B jest bardzo ważne. Powiedzmy, że tym naszym punktem A w przypadku programu Javy Od Podstaw był totalny brak świadomości, jak działa programowanie. Wiemy po prostu, że chcemy iść w tym kierunku, chcemy uczyć się Javy, ale nie bardzo wiemy, z czym w ogóle wiąże się programowanie, a punktem B jest taka podstawowa umiejętność programowania.

Naszą Java Od Podstaw przeprowadza nas z punktu A do B, natomiast w przypadku programu Efektywne Aplikacje Internetowe ten punkt B jest już dużo bardziej wymagający, dlatego, że jest to znalezienie pracy jako Junior Java Developer.

28. Trzeba uważać na klątwę wiedzy.

Klątwa Wiedza polega na tym, że nam się wydaje, że przecież coś jest takie oczywiste. My to wiemy – dla nas to jest bardzo proste, ale prawda jest taka, że to nie ja będę przechodził ten program, tylko kursant, a on ma całkowicie inny kontekst. On nie ma takiej wiedzy, on od kilkunastu lat nie programuje, nie zajmuje się tym codziennie, stąd trzeba też przygotować tę wiedzę w innej formie.

29. Automatyzacja to klucz do sukcesu.

Jest to temat, który od pewnego czasu bardzo mocno mnie interesuje i staram się wprowadzać automatyzację w wielu aspektach mojego życia.

No i oczywiście nie mogło też zabraknąć różnego rodzaju automatyzacji przy całym tym procesie przygotowania programu, ale również w samym programie.

Kiedyś zastanawiałem się ile tego wszystkiego jest i okazało się, że aż około 80% tych wszystkich interakcji, które są związane z komunikacją, z kursantami, z przekazywaniem wiedzy i z całą obsługą udało się zautomatyzować. Natomiast my też jako ludzie potrzebujemy trochę podejścia indywidualnego i dlatego zostaje te 20%. To jest najczęściej taka komunikacja jeden na jeden, kiedy pojawią się jakieś bardzo niestandardowe problemy. Może jakaś z automatyzacji nie zadziała, więc trzeba to zweryfikować. Czasami pojawiają się jakieś rzadziej występujące problemy, wtedy mamy komunikację standardowo na grupie czy nagranie jakichś nowych materiałów.

Podsumowanie

Wniosków jest oczywiście dużo więcej – to tylko pewien wycinek tego, jak podchodzę do retrospektywy po tego typu większych projektach. Niektóre z tych wniosków są prywatne, więc nie chciałem też ich ujawniać. Niektóre nie są na tyle ciekawe, że warto je omawiać w szerszym gronie.

Z mojej strony bardzo mocno zachęcam Ciebie do spróbowania takiego podejścia. Czyli jeżeli realizujesz jakiś większy projekt, po jego zakończeniu zatrzymaj się, poddaj się chwilowej refleksji i zastanów się:

  • Jak ja się z tym czuję?
  • Co poszło dobrze, a co może nie do końca?
  • Jakie są wnioski?

Tak, abyś mógł wyciągnąć te pozytywne rzeczy na przyszłość i wszystko usprawnić.

Bardzo dziękuję Ci za wspólnie spędzony czas – tyle z mojej strony.

Trzymaj się ciepło i do usłyszenia! Cześć!


Jak zostać programistą

8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista.

Jak zostać programistą
No comments
Share:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *