Wątek przeniesiony 2022-09-16 09:31 z Off-Topic przez cerrato.

Wykładowca uczący z błędem

2
piotrpo napisał(a):

Wersja pełna. Żeby pisać dobry kod, trzeba go pisać dużo, sprawdzać czy działa, analizować swoje błędy i wyciągać wnioski. Będąc "profesorem" na polibudzie, nie piszesz dużo kodu, nie sprawdzasz czy działa, testerzy, klienci nie dostarczają ci informacji zwrotnej, nie masz czego analizować i nie wyciągasz wniosków - w rezultacie jesteś kiepskim programistą w rozumieniu rynku komercyjnego. Nie znaczy to, że jesteś kiepskim profesorem, bo akurat na studiach programowania w znaczenia pisania programów, robiących to co powinny robić się nie uczy.

Może powinny istnieć studia informatyczne, w którym od początku do końca programujesz. Gdzie programowanie nie jest dodatkiem, tylko głównym elementem.

I wcale nie musiałaby to być wyższa szkoła klepania kodu. Po prostu koncepcje teoretyczne powinno się sprawdzać w praktyce.

Przez pierwsze pół semestru (czyli z 2 miesiące?) piszesz np. grę i w międzyczasie się uczysz teorii, która może ci się przydać, czyli:

  • podstaw matematycznych (macierze, wektory, trygonometria, geometria)
  • algorytmów i struktur danych potrzebnych do gry (np. A*, quad-tree, maszyny stanów)
  • wybranego paradygmatu w jakim gra będzie zrobiona (OOP, funkcyjny itp.)
  • jeśli to gra multiplayer, to można wprowadzić też elementy networkingu, pouczyć o protokołach, gniazdach itp.

I żeby tak wyglądały może nie całe studia, ale z połowa. Przez połowę każdego semestru robiłoby się projekt praktyczny, w którym się również człowiek uczy teorii, ale tylko tej, która będzie mu potrzebna. Czyli np. macierze tak, ale całek nie, jeśli nie będą potrzebne do projektu (chyba, że robisz projekt, w którym będzie się ich używać)

A przez drugą połowę każdego semestru by się odbywała tradycyjna nauka podstaw informatyki i matematyki (+ studenci mieliby czas na skończenie i oddanie projektów), bo pewne usystematyzowanie wiedzy też jest potrzebne.

6

Pracuję na pewnej uczelni w Polsce. Przygotowuję obecnie przedmiot, który będzie się skupiał na pewnej technologii. Jakoś wątpię, że 30 godzin zajęć nauczy studentów pracy komercyjnej w tej technologii. Będą pokazane pewne podstawy, cechy, koncepcje (obecne tu, ale i gdzie indziej), więc jak pewnego dnia absolwent dostanie za zadanie pracować w tej technologii, to przynajmniej będzie się orientował. Albo może zostanie zachęcony na tyle, aby w pewnym momencie sięgnąć samemu i spróbować się pobawić. Albo zostanie zniechęcony ;)

Na zajęciach będzie w paru miejscach, powiedziane, że robimy coś w pewien sposób, i będzie jawnie zaznaczone, że w aplikacjach komercyjnych nie powinno się tak robić – ale do pokazania przykładu, czy szybkiego prototypu będzie "niezgodnie ze sztuką".

Jeżeli coś mówię źle, to oczekuję, że ktoś mi to powie. Nie jestem wszechwiedzący. Jeżeli ktoś pracuje komercyjnie i ma swoją wiedzę czy inne podejście, chętnie usłyszę, będziemy mogli porozmawiać, nawet publicznie podyskutować, skomentować, porównać, sprawdzić. Wiele razy na wykładzie/laboratorium po prostu otworzyłem dokumentację, żeby sprawdzić coś czy odpowiedzieć na pytanie. Koduję na żywo, czasami coś nie działa i potem muszę debugować przez chwilę, nie ukrywam, że nie działa ;)

0
LukeJL napisał(a):

Może powinny istnieć studia informatyczne, w którym od początku do końca programujesz. Gdzie programowanie nie jest dodatkiem, tylko głównym elementem.

Zabrzmiało trochę jak bootcamp :-D

Z gwarancją pracy XD

Przy czym sama idea bootcampów nie jest taka zła, tylko czasami wykonanie średnie, a często dochodzi zawiść tych, którzy zmarnowali kilka lat na beznadziejne studia i nie umieją programować na poziomie absolwentów bootcampów.

W sumie to lepsza gwarancja jakiejś tam pracy juniorskiej po rocznym bootcampie niż 5 lat harówki na studiach za darmo i puste uczelniane deklaracje "będą was chcieli wszędzie", "najpierw trzeba napisać pracę magisterską, później zająć się zarabianiem pieniędzy".

0
uczony2 napisał(a):
LukeJL napisał(a):

Może powinny istnieć studia informatyczne, w którym od początku do końca programujesz. Gdzie programowanie nie jest dodatkiem, tylko głównym elementem.

Zabrzmiało trochę jak bootcamp :-D

No nie wiem, na bootcampach raczej uczą ludzi pod to, żeby jak najszybciej nauczyć się technologii poszukiwanych przez pracodawców, a tu byłby jednak nacisk na to, żeby poznać informatykę, algorytmy, matematykę, teorię, ale cały czas mając odniesienie praktyczne.

0
LukeJL napisał(a):

No nie wiem, na bootcampach raczej uczą ludzi pod to, żeby jak najszybciej nauczyć się technologii poszukiwanych przez pracodawców, a tu byłby jednak nacisk na to, żeby poznać informatykę, algorytmy, matematykę, teorię, ale cały czas mając odniesienie praktyczne.

Trochę jak bootcamp :-D

Ktos napisał(a):

Pracuję na pewnej uczelni w Polsce. Przygotowuję obecnie przedmiot, który będzie się skupiał na pewnej technologii. Jakoś wątpię, że 30 godzin zajęć nauczy studentów pracy komercyjnej w tej technologii. Będą pokazane pewne podstawy, cechy, koncepcje (obecne tu, ale i gdzie indziej), więc jak pewnego dnia absolwent dostanie za zadanie pracować w tej technologii, to przynajmniej będzie się orientował. Albo może zostanie zachęcony na tyle, aby w pewnym momencie sięgnąć samemu i spróbować się pobawić. Albo zostanie zniechęcony ;)

Na zajęciach będzie w paru miejscach, powiedziane, że robimy coś w pewien sposób, i będzie jawnie zaznaczone, że w aplikacjach komercyjnych nie powinno się tak robić – ale do pokazania przykładu, czy szybkiego prototypu będzie "niezgodnie ze sztuką".

To jaki jest sens takiej nauki, skoro nie dowiedzą się jak robić poprawnie?
Bezproduktywne marnowanie czasu studentów?

Co z tego, że przekażesz im, że nie należy wbijać gwoździ śrubokrętem, skoro nie będą wiedzieli, że należy użyć młotka?

Niemniej, tamten wykładowca niczego jawnie nie zaznaczał że tak się nie robi, bo najpewniej sam nie wie, że jest źle.
Nie chodzi tu o złą praktykę lub prototypowanie. Tamten błąd prowadzi do niszczenia plików, a jak zamiast pliku trafi się np. socket sieciowy, to dane idą w świat.

0

To jaki jest sens takiej nauki, skoro nie dowiedzą się jak robić poprawnie?
Bezproduktywne marnowanie czasu studentów?

Tego nie powiedziałem. Będzie pokazane "tak jak należy". Ale będzie co najmniej jeden przykład, który jest niezgodny z dobrymi praktykami, dla uproszczenia prototypu.

Chodzi mi o to, że często na zajęciach się pokazuje przykład, który nie jest całkowicie poprawny, choćby po to, aby uprościć przykłady i dopiero później opowiada, że w zasadzie to jest nie do końca prawda. Naprawdę jestem w stanie sobie wyobrazić, że dwa wykłady później profesor uruchamia ten przykład i mówi, że "tutaj się niszczy pliki, państwo nie zauważyliście" i pokazuje gdzie jest błąd i dlaczego i z czego wynika.

Ale jeżeli twierdzisz, że to nie jest taka sytuacja – to może napisz to profesorowi, aby nie uczył błędnie? Rozsądni ludzie nie obrażą się, jak się ich poprawia (chociaż przyjmowanie krytyki jest trudne).

0
Ktos napisał(a):

Ale jeżeli twierdzisz, że to nie jest taka sytuacja – to może napisz to profesorowi, aby nie uczył błędnie? Rozsądni ludzie nie obrażą się, jak się ich poprawia (chociaż przyjmowanie krytyki jest trudne).

Nie jestem już studentem.

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