Czy brakuje zaawansowanych kursów programowania (clean, real-world, production-ready) ?

1

Hej! Już któryś raz z rzędu, ktoś z mniejszym doświadczeniem w branży, zadaje mi pytanie brzmiące mniej więcej tak:

“Czy mógłbyś polecić jakiś fajny kurs albo nawet samo repo, gdzie znajdę projekt, który jest napisany przejrzyście z fajnie ułożoną architekturą, testami, porządnie zrobionym modułem auth, jakimiś przykładowymi integracjami, itp, itd?"

Wiecie, chodzi o to, żeby to przypominało coś rzeczywistego, production-ready.

Słucham, że większość kursów jest mocno uproszczona, wiele rzeczy jest traktowanych po macoszemu i wszystkie są do siebie podobne i są tylko trochę bardziej złożone niż to-do lista. Nie mówię, że zrobiłem jakiś mega research w tym temacie, ale powiem szczerze, że niestety po przewertowaniu sporej ilości materiałów, nie znalazłem nic co by się jakoś mocno wybijało na plus. Akurat chodziło tutaj o Node, natomiast myślę, że spokojnie ten problem można przełożyć na inne obszary.

Reasumując, zastanawiam się czy jest nisza na tego typu materiały, czyli zaawansowane kursy dobrej jakości, clean, production-ready, gdzie ktoś pisałby aplikację która symuluje komercyjny projekt. Co na ten temat sądzicie?

  1. Czy znacie coś naprawdę wartego uwagi jeśli chodzi o kursy w kontekście clean, real-world, production-ready, które skupiają się na architekturze i dobrych praktykach, a nie na tym, żeby nauczyć funkcjonalności danego frameworka czy biblioteki? Może to być dowolny język programowania czy framework, chodzi o to żeby zobaczyć jaki jest state of the art.
  2. Jeśli doszliście do podobnych wniosków, że ciężko jest o tego typu materiały, to czy moglibyście powiedzieć, czego Wam brakuje w istniejących albo co sprawia, że obecne są dla Was mało użyteczne? Innymi słowy, co chcielibyście koniecznie widzieć w takim kursie i co wniosłoby dużą wartość.
  3. Czy w ogóle robienie tego typu materiałów ma sens? Być może to pytanie retoryczne, ale wydaje mi się, że to nie jest takie oczywiste, patrz poniżej :P

PS: Czekam, aż ktoś mi powie, że “ale przecież real-world, production-ready z czystą, modułową architekturą z dobrymi praktykami i testami to przecież oksymoron" :D

0

Czy znacie coś naprawdę wartego uwagi jeśli chodzi o kursy w kontekście clean, real-world, production-ready, które skupiają się na architekturze i dobrych praktykach

Moim zdaniem ważniejsze jest, kto mówi, a nie temat. Wujek Bob jak powie o architekturze czy dobrych praktykach, to aż chce się słuchać. Jak ten sam temat podejmie random z Mediuma, to będzie to niestrawna kasza, bo poziom autora będzie niższy.

Poza tym dobre praktyki to przeszłość. Teraz modna jest dywersja i odwracanie praktyk. Tylko też przydaje się być Facebookiem albo DHH, wtedy możesz mówić, że od dzisiaj "złe" praktyki są "dobre".

Innymi słowy - autor powinien mieć dobry poziom merytoryczny albo chociaż dobry branding/rozpoznawalność/charyzmę. Bo przeciętnych kursów o architekturze/dobrych praktykach/OOP/wzorach projektowych itp. jest na pęczki.

Czy znacie coś naprawdę wartego uwagi jeśli chodzi o kursy w kontekście clean, real-world, production-ready, które skupiają się na architekturze i dobrych praktykach, a nie na tym, żeby nauczyć funkcjonalności danego frameworka czy biblioteki?

Najwięcej wartości w tym zakresie przekazują niektóre talki z konferencji. Ja oglądam za darmo na Youtube, ale jednak wstęp na takie konferencje na żywo to czasem kupa kasy, więc jest to też pewnie jakiś sposób na zarabianie dla speakerów czy organizatorów. Plus jeśli autorzy wydają jakieś książki, to też mogą się promować w ten sposób. Pytanie tylko co z konferencjami w erze post-covid.

zaawansowane kursy dobrej jakości, clean, production-ready, gdzie ktoś pisałby aplikację która symuluje komercyjny projekt. Co na ten temat sądzicie?

Ja miałem pomysł, żeby zrobić interaktywny kurs, gdzie robisz większą aplikację w React albo modyfikujesz istniejącą. Tylko, żeby to było interaktywne. I może jeszcze wrócę do tego pomysłu kiedyś, jednak zrobienie "silnika tutoriali" do obsługi takiego interaktywnego kursu też by raczej zajęło dużo czasu, więc mi się nie chce.

4

Słucham, że większość kursów jest mocno uproszczona.

Dzieje się tak, ponieważ poprzez kurs nie nauczysz człowieka myśleć.

Kursy są proste ponieważ one nie próbują uczyć myślenia, a tylko zwracają uwagę na to co warto zobaczyć. Ktoś kto jest inteligenty będzie wiedział co z tym zrobić, a masy i tak będą błądzić.

Postęp jaki idzie wraz z rozwojem, jest efektem dostrzegania problemów, świadomości bólu jaki z pewnym problemem się wiąże. Wtedy myślimy o problemie i próbujemy go jakoś zrozumieć, rozwiązać idąc na różne kompromisy.

Jak zrobisz kurs, który pokazuje clean way itp to pomijasz ten element myślenia jaki w całym procesie nauki jest istotny.

1

Poprzez chociażby ukazanie pewnych problemów, pokazania alternatyw i uzasadnienia swojego wyboru + jakie to ma wady i zalety.

Byś mnie źle nie zrozumiał, jeśli takie rzeczy potafisz przekazać ciekawie, koncentrując się wyłącznie na tym co ma znaczenie to będziesz tym jednookim pośród ślepych.

Poza tym to nie jest tak, że podobnych akcji się nie robi, dwa przykłady, które znam. Pierwszej książki nie kupiłem bo, przejrzałem materiał na githubie, wiało nudą i odpuściłem.

https://pragprog.com/titles/egmicro/practical-microservices/

A druga książka była ciekawsza i kupiłem:

https://helion.pl/ksiazki/architektura-aplikacji-w-pythonie-tdd-ddd-i-rozwoj-mikrouslug-reaktywnych-harry-percival-bob-gregory,arappy.htm#format/d

Realizacja tej tej książki opiera się na przedstawianiu atutów i wad kolejno omawianej techniki. By wykład nie był suchy jakiś tam drobny przykład jest przytaczany. Książka jest taka sobie, ale autor przynajmniej nie ściemnia i mówi, że częściej opłaca się użyć django niż tych technik o których mowa w książce.

Natomiat jeśli chodzi o samo projektowe podejście to weź pomyśl chwilę. Kiedy ma sens użycie jakieś dobrej techniki? No z perspektywy pracy to raczej unikałbym bajerowania technikam do momentu aż rzeczywiście jest dobry problem, by wybrana technika się zwróciła.

Jeśli chcesz zrobić kurs w postaci wycieczki rollercoaster bez trzymanki to zwyczajnie zabraknie Ci szyn (ciekawych problemów), byś mógł nabrać odpowiedniego tempa. Inaczej zaczniesz pompować formę nad treść.

Ja odnoszę wrażenie, że to co jest w kursach znajduje potem odzwierciedlenie w pracy, ale to tylko moja opinia.

I to jest jednocześnie odpowiedź dlaczego mamy tak dużo słabych ludzi w pracy, bo oni właśnie pompują formę nad treść.

Dla mnie mistrzu to gość, który ujmuje złożoność tematom - który kurs o tym mówi? Ja jedynie mógłbym wskazać parę książek, które do dziś robią na mnie niezwykłe wrażenie:

  • CouchDB: The Definitive Guide
  • ZeroMQ: Messaging for Many Applications
  • Effective awk Programming

Weź jeszcze jedną poprawkę na cały mój wywód. Pamiętaj, że: tworzysz coś dla ludzi, a nie firm więc treść musi bardziej cieszyć niż boleć. Kiedyś prowadziłem zajęcia parę spotkań nic szczególnego, spróbowałem bo w pracy nie raz mówiili mi, że pewne rzeczy nieźle tłumaczę. Motyw z ludźmi na zajęciach jest taki, że oni nie są gotowi na przyjęcie odgórnej koncepcji od kogoś, Ci ludzie chcą trochę jak dzieci poznawać (to nic złego!), cieszyć się tym co robią. Natomiast jak zaczniesz komuś mówić jak ma programować to tak jak z uczeniem rysowania, pisania powieści. Zabijesz w kimś radość nim ta w ogóle zacznie kwitnieć.

EDIT:

Poza tym ten fragment też daje do myślenia (pochodzi z SICP) sam bym lepiej tego nie ujął:

1617643074.png

2
  1. Nie ma takich materiałów tak samo jak nie ma bootcampa dla seniora. Wielu rzeczy nie da się nauczyć z książki i tyle. Nawet głupie wzorce projektowe trudno ludziom ogarnąć bez praktyki. Ilu znam ludzi którzy potrafili wyrecytować książkową definicje Buildera a postawieni przed problemem który aż się prosił zeby go zastosować, nie potrafili na to wpaść ;)
  2. Oczywiście że są takie repozytoria, z całymi projektami. Tylko ze zwykle są o wiele za duże żeby dało się z nich czegoś nauczyć, bo przebicie się przez kod zajęłoby wiele tygodni. A programiści zwykle jednak potrzebują zobaczyć tylko jakiś mały wycinek którego im brakuje, np. konfiguracje tego oautha.
0

Tak, bo zaawansowana wiedza jest zdobywana znacznie trudniej niż zwykła wieża o podstawach z c++

1 użytkowników online, w tym zalogowanych: 0, gości: 1