( tygryss | 2019. 03. 09., szo – 23:07 )

Nem csak a kérdésedre válaszolok, mert gondol amit most az elején leírok, azt nagyjából sejted, de mivel még a topic indító nem rendelkezik ezekkel az infókkal azért kifejtem. Meghát a topic címe sok hasonlót is vonzhat.

Szóval a köznyelvben a programozó=fejlesztő. Ez nem teljesen igaz, habár az tény, hogy a junior fejlesztő simán progtamozó, vagy az angol terminológia alapján coder. A programozó elboldogul egy nyelvel, valamint ismeri az alapvető algoritmusokat, ezeket esetleg kombinálni is tudja, valamint minimális szinten sajátot is képes felállítani. Azért valjuk be ez nem kevés, szóval senki ne gondolja, hogy easy. Mondjuk az lesz, de a tanulása kicsit hosszadalmas. Szóval elvileg elképzelhető, hogy egy arc aki nem gyengén nincs megáldva értelmi képességekkel, mondjuk hisz az ufo-kban, talán el is rabolták és látta, hogy a föld lapos, de a háttérhatalom ezt eltitkolja...stb nem fokozom, szóval még ő is lehet nagyon jó coder, mert ha beleteszi az időt és ez a része nem nehéz, meg tudja tanulni. Mondhatjuk azt is, hogy a programozás egy skill amit érdemes Computer Science környékén elsajátítani. Ha ezen a szinten maradunk akkor kb az nyer aki a legtöbb algoritmust ismeri. De igazából ez a story egyik fele. Van egy hozzá lazábban kapcsolódo skillek, mint a clean code, meg fejlesztési módszertanok, prezentációs képesség, nyelvtudás (emberi nyelvek mint angol). Ezek azért kellenek, és nem árt ha a junior ismeri, mert ez a team munka alapja. Sokat lehet hallani, hogy ezen a részen vitatkoznak, hogy pl melyik módszertant kövesség, hogy clean code, vagy nem clean code. Igazából mindegy, hogy mit érdemes használni a csapat összetétele valamint a project jellege határozza meg, abszolút győztest hirdetni és azt propagálni a dolog félreértése.

Van egy nagyon nagy része, ami talán nagyobb mint maga a programozás része ami viszont nem nagyon jelenik meg. Ennek oka, hogy ezek azért a pontos miként és hogyanok sok esetben üzleti titkok, ezért nem is hozzák szóba, másik oka, hogy ezek komolyabban nem a junioroknál merülnek fel, akik viszont többen vannak. (ez alól kivétel a PhD-s pályakezdő de arra majd a végén kitérek). Sokan elfelejtik, hogy a mögöttes algoritmusok és ezek gyártása, ezek feladathoz aktualizálása egy sokkal komolyabb probléma. Ezt profánabbúl úgy kell érteni, hogy értsél ahhoz a területhez, ahol fejlesztő vagy. Pl ha biztonsági rendszereket írsz ismerd a titkosítási algoritmusokat, az authentikációs módokat...stb. Ez persze nem azt jelenti, hogy minden egyes projektnél le kell kódolnod egy RSA-t. Lehet egyszer megcsináltad mert nem bízol a gyáriban és a sajátodat hívod. Viszont van az, hogy mondjuk sokat fizet az ügyfél és értelmes követelmény egy saját biztonságos kódolás bevezetése. Ekkor jön jól az információ és kódelmélet és annak matematikája ami diszkrét matekra épűl. Vannak módszerek amiket ha követsz, akkor egész jót fogsz csinálni, még meg is tudod mutatni hitelt érdemlően, hogy király amit csináltál. Valamint vannak módszerek mint pl a petri hálók amik az ebből készített algoritmusról is meg tudod mutatni, hogy az is jó. Mindenki örül, és sokat keresel.
Kb ebbe a story-ba minden egyes irányt be lehet helyetesíteni.

Szóval van matematika a táblán, ami leírja és meg is oldja az adott problémát. Ez van lebontva a programozási nyelv által meghatározott block-okra ez az algoritmus, amit a junior megír.

Teljesen mindegy mi a terület a történet hátterében a matematika áll, csak az a kérdés mennyi idő után jön a felszinre. Jellemzően az új technológiáknál hamarabb, mijt mondjuk gépi tanulásnál, data science-nél viszonylag hamar. Az ilyen pozikba igazából nem véletlenül kölföldön az MSc a beugró, de mostanában már a PhD ajánlott, de az egy nagyon nem várt fejlemény miatt van így. Szóval ha tudod a matekot hamarabb megérted az új technológiát, tehát egy junior-nak nice to have a matek skill. Viszont a későbbiekben nagyon is kelleni fog.

Akkor most a teljesség igénye nélkül a lista ami a főbb területeken kellhet.

Logika: pl hardware, de fuzzy logikával akár szakértői rendszerek meg amit el tudsz képzeli.
pl 8-bites computer építése matekkal együtt : https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU

Analízis nagyon sokmindenhez kellhet
MIT egyváltozós analízis:
https://www.youtube.com/playlist?list=PL590CCC2BC5AF3BC1
MIT többváltozós analízis:
https://www.youtube.com/playlist?list=PL4C4C8A7D06566F38
Differenciál egyenletek (pl robotika alapja):
https://www.youtube.com/playlist?list=PLEC88901EBADDD980
a furrier analízis ami elektronika alapja, de képfeldolgozáshoz is kell, a stanford-os óra eléggé jó a témában:
https://www.youtube.com/playlist?list=PLB24BC7956EE040CD

Lineáris algebra mindenhez is :)
MIT Gilbert Strang (nagyon nagy forma az öreg egyik kedvencem):
https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8

Mérnöki számítások:
https://www.youtube.com/playlist?list=PLF706B428FB7BD52C

Kicsi szórakozásnak egy nagyon jópofa beszélgetés vele:
https://www.youtube.com/watch?v=gGYcSjrqbjc

A progarmozási nyelv aminek a konferenciáján dumálnak vele a Julia. Ezt is tudom ajánlani, de nem kezdő nyelvnek, mert nem igazán van hozzá tutorial. De nagyon jól jön amikor a matekot akarod kiprobálni. Mint a kezdetekkor az alap aloritmusokat. Azért is tanítják valami nyelvel együtt: https://julialang.org/

Egyéb matekok amik még előfordulhatnak (ezek igazából megmutatják az alapokat) :
https://www.youtube.com/playlist?list=PLUl4u3cNGP60UlabZBeeqOuoLuj_KNphQ

Valószínűség számítás:
https://www.youtube.com/playlist?list=PLUl4u3cNGP60hI9ATjSFgLZpbNJ7myAg6

Data Science-ba bevezető:
https://www.youtube.com/playlist?list=PLUl4u3cNGP619EG1wp0kT-7rDE_Az5TNd

Valamint a végére hagytam egy nagyon érdekeset. C-vel is lehet kezdeni. Egy nagyon jó kezdő programozói kurzus, csak hogy valami más is legyen mint matek, és tényleg nagyon jó.
https://www.youtube.com/playlist?list=PLcaMDiz5aflOQ_5EI1PTBJj6XL2nZV-nj

Pár gondolat még a végére. Az USA-ban az a trend, hogy több PhD-t veszünk fel mint MSc-t.
Ennek az az alapja, hogy minden felgyorsúlt. Nincs idő megírni az oktatóanyagot, és leoktatni. Gyakorlatban csak az irányt kapják meg és a legújabb tudományos eredményekből rakják össze a megoldást a cég problémájára. Ezt akár one-man show-ként is képes a PhD-s elkezdeni, és mikor rátalál a nyomra, lehet mellé rakni a team-et. Ha megnézed Google és társai az újabb dolgoknál mint pl Data Science ezt a vonalat kezdték el. Ez Európába most fog bejönni. Itt nagyon nagy fejvakarások lesznek, ugyanis az USA oktatási rendszere alapjaiban más mint az európai. Mint ahogy nálunk is hagyományosan a BSc-MSc van együtt és ezen felül van a PhD. Az USA-ban van a BSc és az MSc-PhD van együtt. Ott könnyebben alkalmazkodnak ehhez. Másik nagyon lényeges különbség, hogy USA-ban a PhD inkább tantárgy alapú ami jobban illeszkedik az ipar igényeihez. Az európai, meg mondjuk az Ausztrál is inkább tézis alapú, kevés tárgy, vagy egyáltalán nincs tantárgy, a főszerep az akadémiai kutatásé. Ez nem azt jelenti, hogy az USA-ban végzettek nem jó kutatók, csak más a szocializálásuk, ami jobban illeszkedik az iparba. Mind a kettőnek megvannak az ipar szempontjából az előnyei és hátrányai, az lesz majd a döntő, hogyan használják ki ezt a cégek. Én azt tudom mindenkinek javasolni, hogy MSc a minimum, de ezt lehet már estin tolni meló mellett. És erősen vizsgálja meg a PhD lehetőségét. Fontos tudni, hogy az iparban nem a konkrét témád lesz érdekes, hanem az, hogy megtanultál kutatni, kb bármit meg tudsz tanulni, tudod továbbfejleszteni, valamint eléggé jó soft skilleket is kapsz mellé. Ezek egyébként fejleszthető dolgok, akár cégek is finanszírozhatják. Már itthon is létezik olyan, hogy egy cég fizeti a doktoranduszokat. Kb erre lehet számítani itt Európában az elkövetkezendő 5-8 évben. Ez tudom nagy időnek tűnik. De kb 5-5.5 év az MSc, ha a PhD 4 évét is ide vesszük, aki most kezdi az nagyon hamar beleesik már ebbe. Persze mindenki magának hozza meg a saját döntését, lesznek nyilván alacsonyabb pozik is, nem az összes munkavállaló lesz PhD-s, de lesznek jópáran, és a nagy lóvét ők fogják leakasztani. Munkaerő hiány meg van és lesz is, viszont ez a megfelelően képzett szakember hiányát jelenti. Az meg, hogy mi a megfelelően képzett, az folyamatosan változik.