Hogyan tanuljak meg programozni? és hol?
18 éves végzős gimnazista vagyok. Eddig front end fejlesztést tanulgattam szabadidőmben -> HTML, CSS, (jS és Jquery gyengén megy, még csak a syntax-ot tanulom ) és bootstrap.
Nincsenek infós ismereteim(nem rakom le az Info érettségit), de kinéztem pár külföldi egyetemet ahol az nem elvárás programozó szakon. Most ne azon veszekedjünk, hogy ebben a szakmában mennyire éri meg egyetemet végezni.
És tudom hogy azért megyek oda, hogy megtanuljak programozni :D, de ott gondolom egy hagyományos tanmenetet fogok követni amiben az alapokat tanítják meg és még hozzá kell tanulnom a modern technológiát magamtól. Ezért nem hülyeség, ha elkezdem legalább a syntaxot tanulni pár nyelvnek és megismerkedni pár frameworkkel.
Az a kérdésem, hogy hogyan tudok addig is tanulni? Milyen oldalt ajánlotok (nyelvtudás nem akadály, 16 évesen leraktam a c1-et angolbol), ahol kifejezettem java-t vagy Node.js-t tudok tanulni?
(tudom hogy a 2 teljesen eltérő csak még nem döntöttem el mit akarok pontosan)
Már körbekérdeztem pár külföldi oldalon és sokan írják a Teamtreehouse-t, freecode camp-et és a Code school-t. Ti már használtátok bármelyiket?És milyen?
Magyar alternatívákat is láttam pl.:CodeBerry: [link]
Erről tudtok valamit?
Menj csak egyetemre nyugodtan.
Meg fognak ott tanítani programozni. Ahogy másokkal is tették.
Az egy lila legenda, hogy a programfejlesztőknek nem kell diploma, meg hogy az egyetemen hülyeségekkel tömik a fejüket.
Köszönöm a hozzászólásokat de eggyik komment sem válaszolt a kérdéseimre, az egyetemmel csak felvezettem a kérdésemeimet.
#1 rengeteg könyv van a témában, ez olyan mint ha azt mondtad volna hogy "mennyek fel az internetre, ott csak van valami". Ha tudnám melyik könyv/weboldal jó akkor nem írtam volna ki ezt a kérdést....
"Szóval ha valaki el akar helyezkedni programozóként, abban az egyetem nem nyújt túl sok segítséget."
Kérlek ne hangoztass ilyen butaságokat. Ezek idióta, falmelléki legendák. Az egyetemen, már ha kibírja egyáltalán, megtanítják számolni, megtanítják a programfejesztés módszertanára, megtanítják tanulni és igen, programozni is.
Mindez azt eredményezi, hogy a mezítlábasokkal ellentétben kisujjból vágja majd azokat a dolgokat, amiket azok vérrel-verejtékkel csinálnak meg csak, ha egyáltalán megcsinálnak, ráadásul sokszor annyi idő alatt, mint ő.
A kérdezőnek:
Jó könyv nem létezik. Mindenki más, így kinek ez, kinek az fekszik, ki ezt, ki pedig azt érti meg jobban. Neked kell eldöntened, hogy számodra melyik könyv a megfelelő.
Bár pen-dragon is erősen sarkított, de van abban igazság amit mond.
Igen, igaz, hogy amint kikerülsz az iskola padból nem lesz halál profi programozó. De legalább lesz fogalmad a dolgokról és az "összkép" meglesz, amivel el tudsz indulni tovább arra, ami érdekel. (Na meg halom plusz ismeretet is szerzel. Olyat, amit sok-sok évnyi munka után sem biztos, hogy megkapnál önmagában.)
Nem hülyeség az egyetem sem. Persze, lehet magadtól is tanulni, de sokkal-sokkal több energiát igényel és jó sokáig még arról sem lesz fogalmad (sok-sok évig), hogy mit nem tudsz. Úgy pedig nehéz tanulni.
(Mondjuk persze, van aki attól programozónak tartja magát, hogy egy HTML-es weboldalt összerakott bootstrappel, ami csak közepesen lett sz*r. :) )
A kérdésre válaszolva:
Mivel úgyis az a célod, hogy egyetemre menj, teljesen mindegy, hogy mit tanulsz. Az elejétől indulnak mindenhol. A matematika és az informatika együtt fog kelleni, mind a kettőt elkezdheted átnézni.
(Amúgy ne gondold, hogy egy infó érettségi annyira sokat segítene. Persze, érdemes pl a tételsort átnézni, hogy legyen fogalmad az alapokról, de semmi olyan nélkülözhetetlen extrát nem ad az infó érettségi.)
#5 Akkor én része voltam ezeknek a legendáknak. Még egyszer elmondom, nem haszontalan az egyetem, de teljes mértékben kihagyható kellő önfejlesztés mellett. Mivel a gyakorlati ismereteket (nyelvek, technológiák, keretrendszerek, úgy általában egy projekt folyamata) úgysem ott sajátítod el. Amit ott elsajátítasz, az túlnyomórészt nyers elméleti háttér. Ami tök jó, tök hasznos tudás az is, de:
1. Az a tudás, amivel konkrétan munkát szerzel az elején nem az, amit az egyetemen megtanulsz. Tapasztalat.
2. Az a tudás, amivel a későbbiekben sikeres programozó lehetsz, túlnyomórészt a munka során ragad rád.
3. Az a tudás, amit az egyetem ad át neked túlnyomórészt ugyanúgy rögzül a munka első pár éve alatt, egy sokkal gyakorlatibb megközelítésből, sok egyéb mellett. Olyasmi, amit az egyetem, és csak az egyetem ad át neked túlnyomórészt az a tudás, aminek vagy nemigen veszed hasznát, vagy nincs nagy befolyása a karrieredre. Nem haszontalan, de a hasznossága nem feltétlen kompenzál egy 3 éves képzésért.
"Akkor én része voltam ezeknek a legendáknak."
Dehogy voltál te része!
Ha lettél volna, tudnád, hogy ott is megszabott programnyelvek (c, cpp, Java mostanság) vannak, ezen várják el a beadandókat, mint ahogy tudnád, van gépterem is, csak nem arra, hogy a számítógépet korábban nem látott hülyőkéket ott tanítsák meg 10 ujjal gépelni. Tudnád, hogy a programfejlesztés alapja az algoritmizálás, a programtervezés, amit egyetemen kívül egy mezitlábas elég keservesen tanul meg, ha megtanulja egyáltalán és tudnád, hogy oktatnak módszertant, oktatnak matematikát, s mindez ahhoz kell, hogy a diplomás ne a fejét vakarja ha egy problémát meg kell oldania a majdani munkahelyén, hanem hatékonyan meg is tudja oldani. Ahogy tudnod kellene, hogy nem 'elméleti' ismereteket oktatnak, hanem nagyon is gyakorlatiakat, mert az elemi algoritmusok, az adattípusok, az egyszerű és összetett adatszerkezetek, a gép hardver oldali ismerete elengedhetetlenek, hogy valaki megállja a helyét a piacon, és ez még akkor is így van, ha akad jó néhány olyan értelmes, tehetséges fejlesztő, aki mindezen ismeretanyagot, vagy legalább ennek eszenciáját önerőből sajátította el, egyetemi képzés keretein kívül.
Itt egy csepp a tengerből.
Olvasgass:
Mérnök-infó. A tárgy célja párhuzamos és elosztott rendszerek alkalmazási lehetőségeinek megismerése, elemi párhuzamos programozási készségek megszerzése. Programozási feladatokat fogalmazunk meg párhuzamos programok relációs programozási modelljében. A megoldást a specifikáció lépésenkénti finomításával állítjuk elő. Nevezetes feladatokat oldunk meg (asszociatív művelet eredménye, atadcsatorna tétele, párhuzamos elemenkénti feldolgozás, stb.). A kapott absztrakt programokat párhuzamos és elosztott programozást támogató magas szintű nyelvi eszközök felhasználásával implementáljuk.
Párhuzamos programok reláció alapú modellje: feladat, specifikációs feltételek.
Folyamat, absztrakt program, pártatlan ütemezés, összefésüléses szemantika.
Absztrakt program viselkedési relációja. A leggyengébb előfeltétel általánosításai.
Elérhető állapotok. A megoldás definíciója.
Levezetési szabályok: haladási tulajdonságokra vonatkozó tételek, variánsfüggvény alkalmazása. Struktúrális indukció,csoda kizárásának elve.
Asszociatív művelet eredményének kiszámítása, maximumkeresés, párhuzamos bináris összeadás.
Programkonstrukciók: unió, szuperpozíció, szekvencia. Programkonstrukciós tételek. Lokalitás tétel.
Kommunikáció (aszinkron,szinkron). Üzenettovábbítás. Csatornaváltozók.
Elágazás (fork), multiplexer, Adatcsatorna.
Tantárgyi adatok
Előfeltétel:
IP-08bPROGEG : Programozás
IP-08bPNY1EG : Programozási nyelvek C++
A gyakorlat látogatása kötelező, 3-nál több hiányzás esetén a jegy megtagadható.
zárthelyi dolgozatok: A tárgyból a félév során két zárthelyi dolgozat lesz. Az első zárhelyi a gyakorlat első részéből az őszi szünet utáni hetekben, a második pedig második részből a szorgalmi időszak utolsó hetén. A zárthelyik az előadás időpontjában és helyszínén lesznek megtartva és 90 perc áll rendelkezésre a megírásához. Mindkét zárthelyiből legalább elégséges eredményt kell elérni. A zárthelyik javítására/pótlására a pótzárthelyi alkalmával nyílik lehetőség (akár mindkét zárthelyi javítható, de ebben az esetben is csak 90 perc áll rendelkezésre). A pótzárthelyi a vizsgaidőszak első hetében lesz megtartva.
+/- feladatok: Az órán tanult definíciókból, tételekből és egyszerűbb feladatokból +/- dolgozatok lesznek. Az értékelése helyes válasz esetén +1, helytelen válasz esetén értelemszerűen -1. A félév végén az összesített eredménynek legalább 0-nak kell lennie.
beadandók: A félév során a tárgyól három beadandó kerül kiírásra. A beadandók értékelése százalékosan történik (0-100%). Mindegyik beadandóból külön-külön legalább 50% a minimális követelmény, de a három beadandó átlagának legalább 60%-nak kell lennie. Az első két beadandó egyszerűbb párhuzamos programozási feladatok megvalósítása lesz, a harmadik beadandót a gyakorlaton és előadáson tárgyalt párhuzamosítási mintával (adatcsatorna/pipeline) kell megoldani. A beadandókhoz rövid dokumentációt kell készíteni.
géptermi zárthelyi: A szorgalmi időszak utolsó hetében géptermi zárthelyit kell írni, ahol a harmadik beadandóhoz hasonló feladatot (adatcsatorna tételére visszavezethető) kell megoldani. A géptermin 120 perc áll rendelkezésre. Amennyiben a géptermi zárthelyi sikertelen, úgy pót géptermi zárthelyit kell sikeresen teljesíteni, amely a vizsgaidőszak első hetében lesz. A beadandóknál kiemelkedő eredményt elérő diákoknak nem kell géptermi zárthelyit írniuk.
Komolyan mondom, ökölbe szorul a kezem az olyan agyjánosoktól, mint te, akik annyira fenn vannak a saját seggükben, hogy még azt is megengedik maguknak, hogy jobban tudják a másiknál, járt-e egyetemre. És mindezt alátámasztják egy tematikával, amit úgy másoltak valahonnan. Hát gratulálok.
Akkor itt egy szemelvény, mi mindent vártak el tőlem a legelső munkahelyemen, amivel az egyetemen nem találkoztam:
- .Net keretrendszer mélyebb ismerete
- Ebből fakadóan intenzívebb C# ismeret
- Entity framework ismerete
- MSSQL jártasság és Transact SQL ismerete
- Angular 1.x, Underscore, Jquery és gulp ismerete
- SVN hogyan működik, miben más mint a Git.
Amit nem kérdeztek
- Tudom-e mi a B+ fa
- Le tudom-e implementálni a Quicksortot
- Tudom-e az általános műveletigényét a keresésnek AVL fában
- Meg tudom-e határozni a görbe alatti területét egy függvénynek
- LZW kódoljam már le ezt a szöveget
- Helyességbizonyítással hogy állok
- És így tovább.
Az elején a munkáltatót rohadtul nem fogja érdekelni az elméleti ismereted (mert igen, az algoritmusok, adatszerkezetek, programozási módszertan MIND elméleti ismeretek) a munkáltatót az fogja érdekelni, hogy otthonosan mozogsz-e az adott nyelvben és technológiákban, mennyi tapasztalatod van az adott framework-el, és magabiztosan használod-e a projektben használt egyéb eszközöket (pl verziókövető rendszer). Ezeket az egyetem nem tanítja meg, vagy ha tanítja is, csak betekintést nyújt. Ennek megvan az oka, hiszen a technológiák, keretrendszerek folyamatosan változnak, és elavulnak, újak kerülnek a helyükre, egy egyetemi képzés meg tartós tudást akar átadni. Ennek viszont az az ára, hogy amit TÉNYLEG keres egy junior fejlesztőben a munkáltató, azt ígyis-úgyis az egyetemen kívül tanulod meg. A megannyi elméleti anyag pedig az évek során ugyanúgy rádragad, ha foglalkozol magaddal (márpedig, ha jövőt akarsz a szakmában, akkor egyetem ide vagy oda, foglalkozni kell magaddal). Az egyetemen a legtöbb programozással kapcsolatos tárgya vagy olyan szinten absztrakt volt, hogy nehéz volt meglátni az értelmét (állítom, hogy a Horváth Zoltán-féle párhuzamos programozási módszertannak minimális, tán annyi hasznát sem vettem) vagy unott arccal toltuk végig, mert az anyag elméleti síkon rettentően redundáns volt, a gyakorlati sík meg kevés volt mint a lepkefing. Nem véletlen, hogy a beadandóim jelentős részét a végletekig felturbóztam, mert az elvárt szint röhejesen alacsony volt ezen az ágon. Amiből volt is gyakorlatias megközelítés (Qt keretrendszer, .Net keretrendszer, kis SVN ismeret, azt hiszem Javasok Springet is tanulgattak) az olyan szinten ismertető jellegű volt, hogy majdnem ugyanott voltál, mintha nem is ismernéd. És ne felejtsük el, hogy ezekre az ismertetésekre elment egy-egy félév. Ha valaki leül, és abban a fél évben egyetem helyett inkább intenzíven rááll a tanulásra magától, akkor olyan technológiai ismerete lesz, hogy bármelyik állásinterjúról kitúr. Mert nekem az egyetem órája szerint kellett tanulnom, neki meg nem. Sajnálom, de akárhogy vergődsz, egy kezdő programozótól TECHNIKAI ismeretet várnak el, amit nem az egyetemen fog megtanulni, viszont az egyetem miatt nem is lesz sok ideje megtanulni. Pláne ha azt fogják csinálni, mint amit az ELTE Informatika Kar talált ki mostanában, és bebörtönzik a hallgatókat jóformán.
Felhívnám a figyelmedet, hogy veled ellentétben egy betűt nem kellett sehonnan ide kopipasztáznom, én képes vagyok a saját tapasztalataim alapján önerőből is ideírni egy féloldalnyi érvelést. Neked milyen saját tapasztalatod van?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!