Pasztuhov Dániel

Programozásoktatás

6 legnagyobb hiba, amit programozástanulás közben elkövethetsz

2017. szeptember 19. - Pasztuhov Dániel

Manapság a csapból is az folyik, hogy kevés a programozó, hogy a programozók rengeteget keresnek, mégis alig találni embert. Valószínűleg a te fejedben is megfordult már, hogy programozást kéne tanulnod. Vagy azért, mert kecsegtető mindez, vagy mert unod a munkádat, keveset keresel, vagy éppen a kollégáidtól van tele a hócipőd. A terület, amelyre be kívánsz lépni egy teljesen új világ, és mint ilyen, megvannak a maga játékszabályai. Tizenévnyi programozásoktatási tapasztalatomból álljon itt egy csokorra való azokból a leggyakrabban elkövetett baklövésekből, amelyek jobb esetben idő- és pénzveszteséggel, rosszabb esetben a programozástanulási vállalkozás kudarcával járnak.

1. El sem kezded. Érthető módon programozásoktatóként ezzel az esettel áttételesen találkozom csak, olyan ismerősök formájában, akik gondolkoznak rajta, kacérkodnak vele, aztán elnapolják évekre, évtizedekre vagy életük végéig. Ez nem csak a programozástanulásban van így - az ember alapvető tulajdonsága a halogatás. Ami nem közvetlen életveszély, de hosszú távon hasznos lenne, azt hajlamosak vagyunk a végtelenségig hanyagolni: leszokni a dohányzásról, lefogyni, elkezdeni sportolni, egészségesen étkezni, elkezdeni a nyugdíjcélú megtakarítást,... és tanulni, új karriert megalapozni.

Ahogy a testmozgást is csak elkezdeni nehéz, a programozástanulásban is csak a kezdeti ellenálláson kell átlendülni, aztán mikor már belekezdett az ember, könnyű és megszokott bennemaradni. Ha hajlamos vagy a halogatásra, van számodra egy üzenetem: Nincs tökéletes pillanat az elkezdésre. Vagy átfogalmazva: A legjobb pillanat az elkezdésre a MOST.

2. A nyelvválasztáson töprengesz. A programozásban számos programozási nyelv létezik (Java, C, C++, C#, PHP, Javascript, Python,...). Így ha az ember is szánja magát, máris jöhet a következő döntési helyzet: Mit is tanuljak? És ahogy a tájékozatlan samponvásárló a drogéria hajápolási részlegén, programozást tanulni szándékozó emberünk szembesül a választás paradoxonával. Rengeteg lehetősége van, de nem ért hozzá, hiszen ha értene, nem kéne megtanulnia... Ráadásul számos programozó tolja a számára szimpatikus programozási nyelvet, ahogyan a különböző iskolák, tanfolyamok is hirdetik magukat. Ha csavaros eszű leendő programozóval van dolgunk, rákeres az interneten arra, hogy melyik a legnépszerűbb nyelv. Újabb arculcsapás következik: attól függ, milyen forrást néz. A programozási nyelvek népszerűségét számos mutató szerint lehet mérni, de mindegyik csak áttételes, ami egy másik cikk témája lenne, úgyhogy nem megyek bele. Szóval itt is: ahány forrás, annyi vélemény.
Nekem is megvan a sajátom: azért Java, mert kellően rigorózus ahhoz, hogy a programozótanoncba belenevelje a helyes elveket. Meg mert szeretem. És a nagyvállalati szférában a(z egyik?) legjobban lehet vele keresni.
Valójában annyira nem számít a nyelv. Fogd fel úgy, hogy a legtöbb programozási nyelv olyan, mintha egy emberi nyelv tájszólásai, de legalábbis egy nyelvcsalád közeli tagjai lennének. Bármelyik programozási nyelven meg lehet tanulni programozni. És ehhez sokan hozzáteszik: nem a nyelvet kell megtanulni, hanem programozni. Ez utóbbi 20 éve változatlan, amit a nyelvekről kevésbé lehet elmondani.

3. Végigolvasol egy (vagy több könyvet), és ettől várod, hogy megtanuld a programozást. A kedvenc analógiámmal élve: Hány könyvet kell elolvasnod ahhoz, hogy megtanulj karatézni? Ami egyértelmű egy sportnál, az nem tűnik egyértelműnek a programozástanulásnál. Pedig a sportnak és a programozásnak több köze van egymáshoz, mint hinnéd: rendszeresen, gyakorlatban kell alkalmazni, hogy a tudás leülepedjen, készséggé váljon és elmélyüljön. Szóval a programozás lényege: Gyakorolni, gyakorolni, gyakorolni!

4. Nem megfelelő forrást választasz. Pl. sokszor találkoztam azzal, hogy valaki talál egy régi könyvet a neten, letölti, elolvasgatja, kipróbálja (tehát az első két csapdába nem sétált bele), fejlődik, utána kér egy kis segítséget, hogy befejezzük az képzését. És közben rájövök, hogy egy tíz évvel ezelőtti verziót tanult meg nagyon jól, de ma annak mondjuk 20%-a már elavultnak számít. A számítástechnika egyik nagy fétise, a visszafele kompatibilitás (új programverziók értsék meg a régivel készített adatokat) miatt ez nem is tűnik fel sokszor. És akkor léphetünk vissza, és tanulhatja újra azokat a részeket, amik neki "retro" állapotban vannak meg. A sportban ez különösen megbosszulja magát, mert egy mozgást kijavítani mindig sokkal nehezebb, mint jól megtanulni. A programozás területe szerencsére nem büntet ennyire.
A másik, hogy ha valaki tanfolyamot akar választani, akkor az sem könnyű, hiszen nem ért hozzá, és akkor könnyen visszaléphet az első pontra (el sem kezdi). Ez még akkor is egy kicsit zsákbamacska, ha tisztában van a tanár személyével, mert a klasszikus felállás az, hogy befizet egy szimpatikus cég tanfolyamára, akinek elhiszi, hogy jó lesz a tanára, AZUTÁN lép érintkezésbe az oktatóval, majd mire eltelik egy-két hét megtudja, jó volt-e. A gond az, hogy egyes cégeknél ez tényleg lutri, mert cégen belül sem egy oktató van.
Manapság már egy csomó szolgáltatásnál van ingyenes próba, miért nem jellemző ez a programozásoktatásra?

5. Elmégy egy tanfolyamra, és nem mersz kérdezni. És még csak meg sem tudlak ezért ítélni. A magyar oktatási rendszer 6 éves korunktól kezdve neveli belénk azt, hogy aki valamit nem tud, az hülye, és hogy ha valaki hülye, az rossz. És ezek után tedd fel a kezed 12 másik ember előtt, hogy megkérdezd azt, amit nem értesz, vállalva annak a kockázatát, hogy esetleg "hülye" legyél? Sokan inkább azt választják, hogy nem kérdeznek, eldöntik, hogy majd utánanéznek otthon, ami sokszor persze nem valósul meg, így egyre jobban lemaradnak, végül teljesen elveszítik a fonalat. És tényleg sokkal könnyebb egy-az-egyben a tanártól megkérdezni. Őtőle tudja az ember, mire számíthat, ami biztonságot ad. (Ezért van nálunk privát konzultációs lehetőség is).

6. Önállóság hiánya. Egyik aspektus, hogy elmegy valaki egy gyakorlati tanfolyamra, és azt várja, hogy az oktató megoldja helyette a feladatokat. Bármennyire is folyik a csapból az, hogy a csapatmunka így meg úgy, a programozás az esetek legnagyobb részében magányos műfaj. Ketten a monitorral, szemtől szembe. Ilyen esetben nincs ott a tanár, hogy helyetted dolgozzon (ha ott lenne, akkor a fizetést ő is kaphatná), szóval mindenképp érdemes megtanulni egyedül programozni.
Másik aspektus az önálló utánanézés képességének hiánya. Ki merem jelenteni, hogy nem létezik olyan aktívan dolgozó programozó, aki az elmúlt egy hétben nem kellett, hogy utánajárjon valami szakmai kérdésnek az interneten. Annyira széles az ismeretek tárháza, hogy nem lehet az ismeretek memorizálása a cél. A cél csak az lehet, hogy egyrészt legyen meg a programozási alapkészség, másrészt legyen jó az ember a megfelelő források megtalálásában. Ahogyan az sem lehet cél, hogy az ember memorizálja az Országos Széchényi Könyvtár összes kötetét, elég ha tud olvasni, és tudja használni a katalógust.

Köszönöm, hogy végigolvastad, és nagyon remélem, hogy sikerült némi támpontot nyújtanom arra, hogy te ne ess bele ezekbe a hibákba, és olyan utat, tanfolyamot válassz magadnak, ami eljuttat a programozás tudásához.

Pasztuhov Dániel
StudiCore Kft.

 

A bejegyzés trackback címe:

https://programozasoktatas.blog.hu/api/trackback/id/tr712876504

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Peetee 2017.09.20. 15:07:33

@netnepper: Sületlenség; minden más munkának megvannak a hátrányai; Te most csak ezeket soroltam fel, csak ezeket emelted ki. Ezek bármely munkakörről elmondhatóak a kasszástól a fuvarszervezőn át a pénzügyi osztályvezetőig. Annak aki 15éve öntőüzemben dolgozik, mindennél többet ér, hogy csendben dolgozhat. A közlekedési rendőr végtelenül boldog, hogy télen fűtött, nyáron hűtött szobában dolgozhat, mert eddig fél évig szétfagyott, fél évig meg elolvadt a munkája közben. Egy esztergályos vagy raktári rakodó kiröhögne a gerincproblémáiddal. Egy ovónő inkább bevállalná, hogy szétüli a popóját, minthogy még egyszer lehányja egy túletetett nagycsoportos....végtelenségig sorolhatnám. :)

Fodor Balázs 2017.09.20. 15:20:08

@Kinai cuccok blog: "Én csak olyan helyre mentem, ahol csak egyhez kellett érteni, de ahhoz nagyon."

Igen, ilyen helyek is vannak és projektje válogatja. Meg persze abban is igazad van, hogy kis cégeknél a tendencia afelé mutat, mint amit mondtál. De azért vannak még máshol is másmilyenek. :)

Kinai cuccok blog · http://kinaicuccok.blog.hu 2017.09.20. 15:32:03

@Fodor Balázs: Sajnos olyanról is hallottam, hogy valakinek 3x2 év gyakorlata volt (3 nyelv, mindegyik 2 év) és Juniornak vették fel az egyik területre, mondván nincs meg neki a 3 év tapasztalata...
Cége válogatja a hozzáállást is melyiket értékeli többre.

Fodor Balázs 2017.09.20. 16:07:01

@Kinai cuccok blog: Olyan is van, hogy 15 év gyakorlat után megy az olyan részleteken való rugózás, amit 10mp kigoogle-özni.

FayRodisz 2017.09.20. 17:33:28

@netnepper:

Végre valaki aki érti is azt amit lát a világból.
Tiéd a hónap piros pontja.

midnight coder 2017.09.20. 19:34:40

@Peetee: "Annak aki 15éve öntőüzemben dolgozik, mindennél többet ér, hogy csendben dolgozhat."

Ez annak is sokat ér aki openofficeban melózik. Semmi nem olyan jó, mint amikor egy jó kis nyüzsgő irodában keresgélni a hibát egy több millió soros kódbázisban keresni a bugokat, vagy megbecsülni hogy mennyi emberórát fog igénybe venni egy változtatás.

Emmanuel Goldstein 2017.09.20. 20:09:40

biztos ez a hat pont a legnagyobb hiba, nem az, h az emberiség jórészt mindenhez is túl hülye, a maradék többsége meg csak simán nem érdeklődik a forlúp életmódszerű használata iránt...

Fodor Balázs 2017.09.20. 20:51:45

@FayRodisz: A legtöbb szakmának megvan a maga káros hatása. Aszfaltot önteni kánikulában sem a legjobb buli.

netnepper 2017.09.20. 22:17:18

@Peetee: Lécci, lécci, homályosítsd már fel setét búránkat....
Csak legalább egy ici-pici előnykét is sorolj már fel a programozással kapcsolatban, mert eddig csak azt írtad, hogy vannak rosszabb szakmák is, habár amiket felsoroltál, azok nekem egytől-egyig sokkal jobbnak túnnek.
Amivel viszont én foglalkoztam anno, ahhoz képest egy programozó egy napja a világ legszerencsétlenebb és legnyomorultabb lényének az élete.
Többnyire délelőtt 10-ig megittam a kávémat, elolvastam reggeli lapokat, beszélgettem a kollégákkal, majd kocsiba vágtam magam és lehúzott ablak mellett fütyörészve bejártam az ország legszebb régióját, ahol a megrendelők problémáját pár perc alatt csuklóból megoldva már nyomták is az ajándékokat, borravalót. Volt ahol egész láda tokajit kaptam, máshol a fogorvos a nála levő összes pénzét nekem adta a munkadíjon felül(volt nála rendesen:-D). Mindehhez természetesen a fizetés és a kilométerpénz is hozzájött.
Amikor végül programozási munkára adtam a fejem, se köpni,se nyelni nem tudtam, amikor olyan összeget kínáltak fel,egy napra!!!, amit a korábbi munkámban 5perc, de legfeljebb 15 perc alatt simán összehoztam és még csak nagyon agyalni se kellett hozzá. Mindehhez még aláíratták velem a papírt is, hogy ami szellemi produktumot létrehozok a büdös és zsúfolt irodában az alatt a 8 óra alatt, abból engem még egy árva karakter sem illet meg. Szóval, erősen nézőpont kérdése, hogy ki mit lát jónak...
Ennyit erről...

Peetee 2017.09.21. 08:28:36

@netnepper: Vagdalkozol a végletekkel, ez így nem vezet sehová. Ha olyan sz@r neked, arról nem én, és nem a programozás tehet. Szép napot!

desw 2017.09.21. 09:15:35

@netnepper:

"Csak legalább egy ici-pici előnykét is sorolj már fel a programozással kapcsolatban, mert eddig csak azt írtad, hogy vannak rosszabb szakmák is, habár amiket felsoroltál, azok nekem egytől-egyig sokkal jobbnak túnnek."

pl. dolgozhatsz online egy laptoppal és nettel a világ bármely részéről. Azért nem olyan rossz a téli latyakos szopás helyett egy trópusi szigeten lenni fél évet.

Aztán a magad főnöke vagy, annyit és akkor dolgozol, amikor csak akarsz.

mennyémá 2017.09.21. 10:29:53

@netnepper:
téged melyik tanfolyamról vágtak ki? Vagy csak szimplán elküldtek valahonnan, mert segghülye voltál a programozáshoz és most mindenki más tehet erről. Menj kapálni

Androsz · http://migransozo.blog.hu 2017.09.21. 16:56:06

"A programozásban számos programozási nyelv létezik"

Javítanám: A programozásban sajnos túl sok programozási nyelv létezik. És ez a fejlesztőrendszerek kidolgozóinak a megbocsáthatatlan bűne, kereskedelmi termékké silányították a nyelveket, látszatfejlődéssel, a nyereséget keresve termelnek ki új verziókat. Hogy a bánatba lehetséges, hogy a Visual Basic és a Visual C oktatásakor egykor külön meg kellett tanítani a fejlesztőkörnyezet használatát? Ugyanaz a cég csinálta mindkettőt, ugyanabban a csomagban, és nagyon nem egyforma volt a kettő, még a szövegszerkesztő is másképp működött!

Ha a programozás nagyjából öt évtizedes fejlődésében a józan ész is helyet kaphatott volna, akkor ma talán egyetlen programnyelvet használna a felhasználói programok világméretű fejlesztői tábora. Hiszen ennek semmi technikai akadálya nem lenne, értelmetlen a puszta ízlésbeli apró eltéréseket külön nyelvekké merevíteni, mindenki meg tudná tanulni ugyanazt, és a nyelv képes lehetne minden fontos célra egységesen használható nyelvi struktúrát és rutinkészletet használhatóvá tenni. Persze aztán jönnek a különféle motorok, bővítmények, egyéb termékek, amelyekkel nem lenne baj, ha nem lenne köztük átfedés, és ha megteremtették volna közöttük a kanonikus egységet. De nem, mert a fejlesztőházak versengenek az eladási számokért, szerzői jogok és piaci tekintélyek őrizgetése teszi felhasználhatatlanná mások eredményeit.

Minden programnyelv kedvelői nézzenek magukba, és találjanak olyan nyelvi elemeket, amelyeknél külön vigyázni kell arra, hogy el ne rontsa. Amelyeket egy tanulónak külön gond elmagyarázni. Miért van ilyen? Sikerült, ugye? Miért nem tehető egy nyelv könnyen olvashatóvá, a logikus gondolkozást egyszerűen követővé? Sajnos nem igaz az, hogy elég a programozás elvi gyakorlatát megszerezni, mert aztán meg kell tanulni az adott nyelv rigolyáit és egyedi függvény- vagy tulajdonságneveit, és az sokkal tovább tart, mint magának a programozásnak a megtanulása. A programnyelvek közül ma ajánlani kell a kezdőknek olyat, amelyet viszonylag könnyű megtanulni. MINDNEK olyannak kellene lennie, nincs semmi ésszerű ok a nehézség megtartására. Aki megszokta, annak az tetszik, azt ajánlja, de mindenki tudhatja, hogy mit tanulna meg belőle kezdőként nehezen. Ez egy teljesen értelmetlen dolog, a programozói társadalom mára óriási eredményekkel járna előrébb, ha az egész világot használhatná közös erőforrásul, ha a kiemelkedően hasznos megoldásokat nem transzponálni kellene más nyelvekbe, vagy feltalálni őket újra. Ez nevetséges. Ha az ufók figyelnek bennünket, röhögnek a korlátoltságainkon.

netnepper 2017.09.21. 17:16:32

@mennyémá: A saját tapasztalatodról beszélsz? Sok sikert hozzá balfaszkám!
@desw: Phűűű... egzotikus szigetek és laptop az ölben. Ez lenne a programozók menyországa? Részvétem!
@Peetee: Neked szar barátom, legfeljebb nincs összehasonlítási alapod. De ez már legyen a te problémád.

mennyémá 2017.09.21. 17:20:01

@netnepper: stílus maga az ember. Nem csodálom, hogy nem tudtál megmaradni értelmes emberek között. Szerintem téged még a disznók is kiutáltak, amikor a ganét szedted alóluk.
De mesél, milyen programozási nyelveket ismersz és használsz készség szinten?

Gerusz · http://gerusz.blogspot.com 2017.09.21. 17:39:43

2-höz: azért a programozás se változatlan 20 éve! Persze, már 20 éve is volt funkcionális és párhuzamos programozás, de korántsem olyan hangsúlyosan, mint jelenleg. 20 éve még max. a szerverekben volt több mag, manapság egy mobiltelefonban is van 4, de nem ritkán 8. Népszerű nyelveken (ami 20 éve még leginkább csak a C/C++ volt, a Java akkor még a 15. legnépszerűbb nyelv volt, nem a 1.) funkcionális programozás max. függvénypointereken keresztül volt lehetséges, ami egy kicsit macera. Manapság (1.8 óta) már a Java is támogatja a lambdákat és a funkcionális típusokat natívan, Scala nélkül. Stb...

Nyelvet én a tanuló korának és céljainak a függvényében javasolnék. Kismillió könyv / netes tanfolyam / egyéb van, ami nulláról egy egyszerűbb grafikus játékig megtanítja a JavaScriptet, 14-16 éves kor alatt mindenféleképp valami ilyesmivel kezdeném. Afölött lehet szárazabb adatfeldolgozást is tanítani, esetleg valami szerveroldali webfejlesztést, stb...

jacint70 · http://jacint.blog.hu 2017.09.22. 05:40:55

@Kinai cuccok blog: Szerintem ez nem igaz... Programnyelvek jönnek-mennek, nem abban van a tudomány, hanem ezekben:
1. A programozás általános szemlélete. Hogyan építem fel a programot, hogyan tagolom, milyen módszert alkalmazok.
2. Az adott nyelv - pontosabban az adott eszközrendszer, környezet - filozófiája, működése.

Az 1. szerintem "örök érvényű" azt kell először megérteni (pl. hogy mi a prepared statement, és miért előnyös azt használni)), a 2. akkor, amikor az adott eszközt kezded alkalmazni.
Az, hogy a szöveget dátummá alakító függvény szintaxisa pontosan micsoda, szinte "fölösleges" is megjegyezni, a neten kb. 1 perc alatt megtalálható... ;-)

jacint70 · http://jacint.blog.hu 2017.09.22. 06:02:37

@netnepper: És mi volt, amit csináltál? Ha jól sejtem, akkor valami informatikai hibaelhárítósdi...
No, egyszer nekem is "volt egy nőgyógyászpm", akinek lelassult a gépe, mert a lánya az utorrentet automatikusan indulóra telepítette... No, az tényleg az "öt perc munka, fél óra duma, majd az egynapi átlagkereset zsebrerakása" volt. Aztán volt olyan, hogy egy kis "rakd már fel lécci a mobilnetet" sztori vége a gép totális újrahúzása lett, mert nem jött ki a "drájverrmatek"...
De volt már olyan programozóként is, hogy egy máshová fejlesztett alkalmazás egyhetes átpofozásával leszakítottam egyhavi átlagjövedelmet...

Ja, és azért lettem programozó, mert anno "hobbistaként" ez érdekelt, még 30 éve, és amikor jött a pályaválasztósdi, akkor miért ne a hobbimat... Szívás meg mindenhol van, ha neked csak ilyen eseteid voltak, amiket leírtál, akkor nagyon tudsz valamit... ;-)

A "büdös, zsúfolt irodába bagóért" jellegű helyeket csak akkor kell elfogadni, ha nincs más...
Manapság elég erős a munkaerőhiány, megszűnt a "ha nem tetszik, jön tíz másik a helyedre..." ;-)

2017.09.22. 07:34:23

@Kinai cuccok blog: Nekem a hobbim volt, úgy gondoltam jó lesz ez nekem, és még jól is kereshetek vele. 3 év után megutáltam az egészet, ami addig jó heccnek és hobbinak tűnt, az egy unalmas, monoton szar lett. Utána elmentem rendszergazdának egy iskolába, és az agyamra mentek a userek is, akiknek a legtöbb problémája abból adódott, hogy nem voltak képesek alap szinten sem használni a Windózt. Több diplomás, matek-fizika-INFO(!!!!) szakos tanárok nem voltak képesek annyira, alapvető user hibákat elhárítsanak. Amikor csörgött a mobilom és kiírta egy-két tanár számát, már rángatóztam. Utána átmentem számítógép karbantartónak egy pénzügyi multihoz... na ott is jöttek az ostoba userek.

2017.09.22. 07:43:26

@Kinai cuccok blog: Uncsitesóm (nő) pl. pont a jó fizetés miatt ment nőgyógyásznak. Nem érdekli, utálja, kettessel végigcsinálta az orvosit, leszakvizsgázott... osztályos orvos, de mivel szar nem bíznak rá semmi komoly nőgyógyászati műtétet (van annyi önkritikája, nem is vállalja), egésznap bájolog az osztályon a a betegekkel, kiváltja a szimpátiát, csúszik a boríték rendesen... betársult egy magán rendelébe, ahonnan összeszedi a szülésre a nőket, amiért elkér százezreket.
Csinál 1-2 császármetszést 1 hónapban... azt 32 évesen, most vette meg a legújabb full extrás Mondeot, meg 2 éve Budán a XII.kerületben egy 40 millás lakást.... csak azért csinálja. Utálja a panaszkodós betegeket, herótja van a gőgös orvos kollégáitól, a hierarchiától meg úgy általában az eü.állapotával.
Ezek között a jobban keresek kicsit, multinál vagyok, csinibaba HR-es/könyvelő/pénzügyes/marketinges stb nőcikék kifejezetten keresik a NŐI nőgyógyászokat.... több paciense van mint annak a fődokinak aki 30 éve a pályán van...

2017.09.22. 07:48:53

@desw: Hogyne. Magyarisztánban ez úgy néz ki, van egy prjocet amire felvesznek, nyílt terű irodába 7-8-10- stb munkaállomás, azt toljad. A tyúkól közepén, a ganéj domb tetején pedig ül a project vezető manager vagy a kisfőnök aki árgus szemekkel nézi mit csinálsz. Fél percre mással foglalkozol, vagy nem a billentyűt vered "mi a probléma, ott ketteske?".
Vannak még ilyenek helyek, nem?

desw 2017.09.22. 09:30:14

@BRF915:

Miért ne?? IT-ben azért elég könnyű szabaduszóként dolgozni. Választhatsz, hogy langymeleg és biztonságos alkalmazotti lét hülye fönökkel, vagy -- adott esetben -- bizonytalanabb vállalkozói lét teljes szabadságban. Én utóbbit tolom programozóként. És ha JÓ vagy és KREATÍV, akkor simán megélhetsz így is.

endike · http://barathendre.wordpress.com/ 2017.09.22. 09:51:27

ha azt hiszed hogy iskolában vagy tanfolyamon meg lehet tanulni programozni, akkor szívni fogsz. és még a legrosszabb az lesz, ha valamennyire siker itt megtanulnod, mert akkor elmész dolgozni és egész életedben utálni fogod, mert nem leszel jó programozó.

egyébként programozni mindenkinek meg kéne tanulnia, és méghozzá asm-ot, és nem azért hogy programozó legyen, hanem egészen más okból...

Mérges 1234 2017.09.23. 19:26:56

Én azzal viatakoznék, hogy aki tud egy nyelvet, az nem előny a többinél. Én c++-ben voltam mid levelem (van c++ ben egyáltalán valaki fullon, egy élet is kevés hozzá... :D), aztán most c# is kell használnom, néha Javaba is bele kell turni, és minimálisan java scriptbe.

Ha az ember elkapja az OOP alapjait, mindegy lesz neki a nyelv, szórja az absztrakt osztályokat, mintha muszáj volna.

A lényeg ha a szemléletmód megvan, akkor nem olyan nehéz váltani. + A nyelvekkel együtt jön egy csomó techológia, amik ráadásul sokszor nyelv függetlenek (webservice, soap, stb...), szóval ezzel is haladsz előre. Szerintem annyi, hogy szeretni kell, nekem bent a munkahelyen nem kell megszakadni, így aztán otthon is tolom, sokszor éjfélig csinálgatok saját projekteket, csak mert szeretem, és közben mindig tapasztalok valami újat is, ami később még jó lesz ezen a területen.

Mondjuk a monitor mögött rohadsz el, ez sajnos igaz, de hosszú távon én az ipar felé hajtok, ahol inkább gépsorok mögött fogok elrohadni, hátha az jobb.

Anyád! 2017.09.23. 19:35:18

Én csak hobbiból tanuktam meg, na meg szorosan összefondódik az elektronikával. Nagyon jó dolgokat lehet csinálni, ha tudsz programozni

Anyád! 2017.09.23. 19:42:58

Egyébként nagyon szívesen lennék programozó. Megy az, hogy végzettség nélkül, de értékelhető tudással elhelyezkedjek? (Akár külföldön pl Németország mert azt beszélem és ott is élek)

Köldök_szösz 2017.09.23. 19:48:12

Lehet hogy könyvből nem lehet megtanulni de ha nem vesznek fel sehova akkor a gyakorlat által sem fejlődök. Itthon magamnak meg nincs mit programozgatnom ...

Mérges 1234 2017.09.23. 19:51:45

Köldök_szösz

Amikor még nem főllású programózoként dologztam, már otthon összeraktam opengl-es augmented realityt, aztán Unity-s projekteket, aztán opencv-t, qt, android stb.

Mert szeretem, mert érdekel a dolog. Mondjuk ezért vettek fel, de amit a munkahelyen csinálok, az nem túl izgalmas, lehet vele tanulni, de amúgy izgalmasnak nem nevezhető.

Szóval lehet otthon is, sok mindent csinálni.

McKinney 2017.09.23. 20:02:05

anno tanultam az alapokat, és azóta tudom hogy nem lennék jó programozó, amikor láttam hogy mások 50 sorral megoldják amit én 150-nel

Mérges 1234 2017.09.23. 20:10:59

@McKinney:

Ez általában a tapasztalatból adódik. Hogy egy kező még sok kódot, és túlbonylít dolgokat az szerintem normális.

Más kérdés, hogy acégek is megérik a pénzüket, mindenki kabaszott tehetséget keres, miköben a legtöbb meló olyan, hogy egy kellően idomított majom is megxcsinálja... :D

FayRodisz 2017.09.23. 20:11:08

Ezek az ulibuli programozói tanfolyamok arra jók, hogy egy év tökölődés után kibasszam az ilyen helyen tanult csúcsprogramozót, újratervezzem az elektronikát és egy hét alatt megírjam a programot ami a "profinak" nem sikerült.

midnight coder 2017.09.23. 20:12:31

@McKinney: Nem feltétlenül mindig a rövidebb kód a jobb. Néha a hosszabb kód jobban olvasható, vagy épp hatékonyabb.

midnight coder 2017.09.23. 20:13:27

@FayRodisz: Na most akkor az elektronika volt szar amit újra kellett tervezni, vagy a kód ?

Anyád! 2017.09.23. 20:23:16

@midnight coder: Na most akkor az elektronika volt szar amit újra kellett tervezni, vagy a kód ?

Csak akart mondani egy nagyot.

halaloszto 2017.09.23. 20:27:54

@Kinai cuccok blog: a programozás nagyobbik része az, ami nyelvfüggetlen. nyelvek jönnek és mennek, a gondolkozni tudás az örök.

Bolshevik 2017.09.23. 20:38:22

@Androsz: nyugtass meg hogy te időnként a kommunizmus mellett is szoktál érvelni. kb annyira naiv idealista faszság amit előadsz, hogy mire képesek ezek a fránya cégek a profitért

Behajtó70 2017.09.23. 21:04:24

Aki nem tud megcsinálni egy szoftvert önallóan úgy, hogy kikérdwzi keresztjérdésekkel a megrendelőt, hogy mit is akar valójában, aki nem képes ebből egy rendszertervet csinálni, ütemezéssel, erőforrásbecsléssel, aki ebből nem képes megcsinálni egy SQL adatbáziskezelővel együttműködő alkalmazást, az nem programozó. Fenti sorokban fontos szó a "képes"!

qwertzu 2017.09.23. 21:08:27

@Androsz: Ez akkora baromság mint ide lacháza. Én pl egy web apit programozok c#-ban és tök jó dolog, hogy magasról szarhatok a memória managementre, mert a -net framework elintézi helyettem, hogy faszán olvasható tömör kódot írhatok, van linq, ami nem túl gyors, de nem számít. Az olvashatóság és a karbantarthatóság fontosabb a sebességnél.

Na most ha valaki grafikai motort akar írni, arra a c# szar. Egy egészen picit se alkalmas rá, muszáj hogy szarakodj a memóriával és optimaizálj amíg tudsz.

Szóval egy nyelv rohadtul nem alkalmas.

Fuzy 2017.09.23. 21:12:15

Vissza az eredeti témához...
Valóban bárki képes megtanulni programozni? (Úgy értem átlagos intelligenciával)
Ha igen, mégis hogyan érdemes nekikezdeni?

Gézus2013 2017.09.23. 21:18:42

Azért ennek jelentős része marhaság. Azért a programozásnak is vannak szintjei. Mert ma "programozásnak" nevezik azt is amikor valaki lekódolja az 1543. gyakorlatilag teljesen azonos weblapot, de az is programozás amikor valaki valami egészen új eljárással programoz le valamit. És igen a legfontosabb a gondolkodás mód lenne. De erre nagyon sokan nem képesek.

Androsz 2017.09.21. 16:56:06: Nem tudom követted-e az informatika utolsó kb. 100 évének a történetét? De amit írtal az nagyon nagy sületlenség.

A rengeteg programnyelv pont a programozók lustasága miatt alakult ki. Az egész káosz kiteljesedése a teljesen értelmetlen C és a Unix (amelyek édestestvérek) kialakulásában tetőzött, és ma ezt a határtalan ökörséget szívja szinte az egész IT világ.
Hogyan alakultak ki a programnyelvek? Mindig jött egy ügyeteles zseni aki kitalálta, hogy ő tud egy mégjöbbat egy X feladatra. Aztán ez vagy jobb lett mint az elődje vagy sem. Ha elég sok idiótát maga mögé tudott állítani elterjedt (ld. Unix és C), ha meg nem sikerült akkor egy idő után az adott nyelv teljesen elhalt (pl. Algol, Cobol, PL/1), vagy a végnapjait látjuk (pl. Fortran, Basic). Aztán ott van a másik része (ezt sajnos nem én találtam ki, egyik tanítomtól hallottam, őt ismerve valahol ő is olvasta), hogy "a hardver az a mai napig procedurális, majd ha valaki megmutatja az első olyan nem mikroprogramozott processzort amelyik támogatja az OOP-t akkor elhiszem, hogy hatékony". Az OOP tök hatékony a lusta programozónak. Egyszer volt erről valamelyik forúmon egy vita, hogy egy ma elkészülő programot ki ír? Az a programozó aki X nyelvű utasításokat egymás után bepötyög egy fejleszőtrendszerbe, vagy azok a programozók írják akik a fejlesztő rendszert írták (ld. optimalizáció)? Tudom ez már totál messzire vezet, de amikor arról beszélünk, hogy hogyan kéne programozást tanúlnu erről is kéne beszélni! 10-en pár éve még néhány 100MByte memóriával szerelt számítógépek több száz! felhasználót, több tucat alkalmazást ki tudtak szolgálni, ma ahhoz, hogy be tudjuk kapcsolni a számítógépet kell egy legalább 4 magos processzor, 4-8 GB RAM, és 1 TByte diszk? Egyik ismerősőm egyszer megírta a "Hello Word!" programot legalább 20 féle programnyelven, több különböző fejlesztőrendszerrel, lefordította és kipróbálta. Volt amelyik exe fájlja elérte az 1MByte-ot.
Mára oda jutottunk, hogy a programozók annyira lusták lettek, hogy olyan hardver igénye van egy tök egyszerű programnak amelyikért kb. 20-25 éve "virtuális főbelövés" járt volna. Erre nyilván megvolt a hardver gyártók válasza, hogy egyre erősebb és erősebb hardvert tudnak gyártani. De mi lenne ha végre a tisztelt programozók megtanulnának programozni (bele értve azokat akik az ún. operációs rendszereket fejlesztik), én pl. megnézném, hogy egy mai korszerű PC mire lenne képes! Még tanulmányaim folyamán találkoztam VMS-sel és MVS-el (vagy OS azoknak akik úgy ismerik), na azok az adott hardveren optimálisan tudtak működni. Nyilván "bonyolultabb" volt, precíz programozói munkát igényelt, a felhasználónak is valamivel bonyolultabb volt, ha egy program rosszul volt megírva nagyvalószínűség szerint vagy el se indult, vagy eldobta "erőforrás limit"-el. Történelmileg erre volt a válasz a Unix (valójában a DECSys-helyett amelyik a VMS egyik elődje) nevű szörnyszülőtt, hogy nesze nektek egy egyszerűen használható operációs rendszernek látszó valami, cserébe nem lesz hatékony, nem lesz biztonságos de könnyen tudjátok használni, és "garantáljuk", hogy ezt bármilyen hardveren fogjátok tudni használni. Mára kb. oda jutott a világ, hogy ami nem Unix az nem használható (mert a T. programozó urak nem hajlandóak megtanulni), az operációs rendszer nicsn ráoptimalizával a hardverre, a kód nincs ráoptimalizálva az operendszerre (mert a unix esetén nem is kell, mert bármit hajlandó végrehajtani), így nem létezik optimalizált program. És mivel nem kell semmit optimalizálni (majd izzadjon a hardver gyártó, hogy legyen olyan hardver amin elfut a szemét), így a programnyelvek evolúciójának motorja és gátja a programozók lustasága. És ezzel lehet vitatkozni, de ha valaki végignézi az IT történelmét 1969 óta nagyon más következtetést nem tud levonni.

Jossarian 2017.09.23. 21:19:42

Jo iras, ritkasag manapsag, foleg index blogon... Koszi!

qwertzu 2017.09.23. 21:19:54

@netnepper: És miért hagytad abba ezt a szupermunkát? Kiöregedtél a selyemfiúskodából?

Gézus2013 2017.09.23. 21:24:30

@qwertzu: Azért amit írtál az is baromság. ÉS ez a rohadt nagy baj a mai IT világgal. Oldja meg a HW gyártó, hogy a programozók nem hajlandóak megtanulni programozni.

Jossarian 2017.09.23. 21:27:44

@Kinai cuccok blog: "Sok mindenhez értő emberrel dolgoztam, állandóan kókányoltak és meg voltak róla győződve, hogy jól csinálják. Több munka volt kijavítani a melójukat, mintha ott sem lettek volna." Es megfizetted rendesen oket? A blogodbol itelve occoe' akartal minoseget, hat, ez kinaban sem jon ossze... Ha ez meg nem tunt fel, sajnallak

Mérges 1234 2017.09.23. 21:28:28

Nagyon nem értek egyet. A programozó lusta, ez igaz.

De amúgy a c++, nagy előrelépés, és továbbra is hatékony, de áttekinthető kódot is lehet írni.
És a c# is igen kurva jó, java elég tré.

Igenis van fejlődés, meg van sok vadhajtás is.

Amúgy meg a világ leképzi az igényeket, a feladatok 90 % nem kell semmiféle optimalizáció, elég lenne ha robosztus lenne a kód. A maradékban azért valódi programozók mg optimalizálgatnak, bár már ez is egyre inkább gépi feladat.

Való igaz, hogy irdatlan mennyiségű szar kód va körülöttünk, autóinkban, már a repülökben is, de szerintem lassan tisztul a kép.

Gézus2013 2017.09.23. 21:28:35

@Fuzy: Szrerintem egy bizonyos szintig igen, de nagyon sokan nem képesek rá. Igazán még komoly kutatások sincsenek arra, hogy melyik életkorban a legngyitottabb az agy arra, hogy ezt megtanulja. Több kutatás van arra, hogy pl. a matek melyik részét melyik életkorban kéne tanítani, úgyanígy az írás-olvasás stb. de a programozáshoz szükséges algoritmikus gondolkodásmód tanítása melyik életkorban a legegyszerűbb nem láttam kutatást. (Más kérdés, hogy az iskola rendszer nem veszi figyelembe ezeket a kutatásokat, mert már a nagyanyáink is így tanultak). Alapvetően a tapasztalatom, hogy talán valahol 10 osztály körül lehet ezt elkezdeni tanítani. De a mély összefüggéseket csak valahol az egyetem környékén lehetne, ott is inkább 2. 3. évtől felfelé.

qwertzu 2017.09.23. 21:28:39

@Gézus2013:
"The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming."

Donald Knuth

qwertzu 2017.09.23. 21:29:23

@Gézus2013:
"The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming."
Donald Knuth

Gézus2013 2017.09.23. 21:37:09

@Mérges 1234: A kép nem tisztul, egyre rosszabb. Egyre inkább az oktatásban is azt sugalják "tömör, karbantartható, egységes kódot kell írni". Holott a hardver ami alatt van az kurvára nem erről szól (már bocs a kifejezésért). És amíg ma már nagyítóval nem lehet találni olyan programozót aki látott még közelrelő pl. egy assembly kódot, és el tudja képzelni, hogy annak a szerencsétlen procinak mit kell csinálni egy-egy feladatért nem lesz hatékony. És pont azon a területen van a legnagyobb gáz amit írtál, amikor egy programnak nem az a célja, hogy a weben tudjál rendelni zoknit az asszonynak. Amikor egy autó, repülő, atomerőmű fedélzeti (automatika) rendszerét kell leprogramozni (Én magam ipari automatizálással foglalkozom, és célhw-kat programozok, fejlesztek) ott nem jó az a szemlélet, "hogy legfeljebb, majd jön egy exception és eldobjuk a taszkot, legfeljebb újra rendel a paraszt". Itt ami jön a fal szembe, és ki kéne kerülni. Ami nincs az a memória és nincs idő, programoztunk olyan vegyipari automatikát ahol bizonyos üzemzavar esetén néhány másodperc volt a beavatkozásra (nem a programnak kellett néhány másodperc alatt dönteni, hanem ebbe a néhány másodpercbe a kémiai rekació ideje is beleszámított, azon kívül, hogy a tartályba beömlött 40tonna közömbösítő anyag), és ott nem lehetett kiírni: "ha a link nem vált automatikusan próbálja újra". Nem tudom mit szólnál ha a hírek arról szólnának, hogy 200 emberrel a fedélzeten lezúhant egy repülőgép, mert újra kellett indítani a számítógépet mert "végzetes kivétel történt".

Alick 2017.09.23. 21:41:29

"A programozásban számos programozási nyelv létezik "

Hát még hányféle fejlesztői környezet, könyvtárakkal, objektum szerkezettel és mindezek furcsaságaival, bugjaival, etcetera. Ezek között váltani néha olyan, mint az új asszonnyal való összeköltözés. :)

Mérges 1234 2017.09.23. 21:52:09

Gézus2013

Ezt én mind értem pláne, hogy jó magam is c++ párti vagyok.

De akkor sem értek egyet, egy jó kód nem attól jó, hogy hatékony, ez nagyon kis helyen számít, attól jó, hogy átekinthető, karbantartható, moduláris, bővíthető. És ez a rendszerek 90%-ra igaz. Az igaz, hogy embeded-es embert nehéz találni, de a világnak nem arra van igénye.

És mivel én magam embedded területről, kerültem át más világba, én tudom, hogy az embedded szemlélet egyrszt tök jó, de amúgy meg irtó kevés a nagy rendszerekhez.

A két dolog nem összehasonlítható, eltérő igények eltérő megoldások. A piac digtál.
És én szerintem van tisztulás, most kezd majd kihullani a férgesse, és megint kezdik megbecsülni majd a normálisan összerakott jó rendeszereket, de szerintem még csak a folyamat elején vagyunk.

Én értem, hogy embeddben kurvára számít, hogy a szerencsétlen ember még a hívási konvenciók pontos eredményével is tisztában legyen, de máshol meg az a probléma, hogy össze kell hangolni 10.000 kliens működést, és kurvára senkit nem érdekel, hogy egy hívás majd 10 byte-al többet igényel a stacken.

Sőt mi egy projektben eljutottunk már nem egyszer oda, hogy optimalizáljuk az adatbázist, vagy bedugunk még pár szervert. Manager számol, 10 új szerver 5 milla, 10 embernek egy hónapnyi munka 12 millió, el is dőlt és jó döntés született, mert a tíz ember olyannal foglalkozhatot, amit több hardwerel nem lehetett volna megoldani.

Ha végtelen erőforrások állnának rendelkezésre, lehetne jó kódot írni mindenütt, de ez nincs így és emberek dolgoznak mindehol, akik szintén nem tökéletesek.

FapadOS 2017.09.23. 21:59:32

@Gézus2013: Üdvös lenne, ha a saját részterületed követelményeit nem vetítenéd ki mindenkire.

Sparhelt 2017.09.23. 21:59:46

@GGy: Ezt így kimondani, hogy a Pascal a legjobb, szerintem téves. Én pl soha nem tanultam Pascalt és nem is kellett ahhoz, hogy megtanuljak programozni. A programozás az egy gondolkodásmód, hogy ezt te melyik nyelven keresztül fogod fel, az rád van bízva.

2017.09.23. 22:02:16

A programot alkotni tudás/képesség és a programnyelv(ek) ismerete-használata két külön dolog!
Aki erre még nem jött rá, az nem is programozó... még, max sablonok alapján kódoló.

Aki tud programozni, az önállóan
- tud problémát felmérni/analizálni
- elvi megoldást kitalálni, megtervezni
- aztán a gyakorlatba átültetni..

Mindeközben nem gondolkodik programnyelvekben/nyelveken!!!
A program kódolási nyelve kb. az utolsó szempont... az alkotási folyamat során.

Alkotni tudó programozóvá/informatikussá válni
több éves, kiterjedt/széleskörű ismerteket adó oktatással/tanulással lehet.
Aztán pedig non-stop önképzéssel/továbbképzéssel lehet képben maradni...

----

Egy-egy területhez betanított munkás szinten értő kóderré válni
persze lehet akár párhét-párhónap alat is, csak
ne tévesszük össze a szinteket!!!!

Az önállóan és komplex feladatokat megoldani tudó programozó-informatikus, ritka madár.
Pont mint minden más jó szakember...

2017.09.23. 22:08:24

@Behajtó70:

Jól mondja kend.... az csak betanított kódoló.

Gézus2013 2017.09.23. 22:13:11

@Mérges 1234: "Sőt mi egy projektben eljutottunk már nem egyszer oda, hogy optimalizáljuk az adatbázist, vagy bedugunk még pár szervert. Manager számol, 10 új szerver 5 milla, 10 embernek egy hónapnyi munka 12 millió, el is dőlt és jó döntés született, mert a tíz ember olyannal foglalkozhatot, amit több hardwerel nem lehetett volna megoldani."

Ez is egyfajta optimalizáció:)

"de máshol meg az a probléma, hogy össze kell hangolni 10.000 kliens működést, és kurvára senkit nem érdekel, hogy egy hívás majd 10 byte-al többet igényel a stacken."

Igen, ez is az optimalizáció. És pont ezzel van bajom, hogy ma az optimalizáció egyetlen célja, hogy a programozónak kényelmes legyen. Én nekem úgy tanították: "optimalizálhatsz futás időre VAGY memóriára VAGY TCO-ra" VAGY! mindháromra nem. Ma ezzel szemben: "legyen kényelmes a programozónak" ha az elég kényelmes nézzük meg a TCO-t... És ez az általános szemlélet. Nyilván nálunk is volt, hogy betettünk +2-3 processzort egy rendszerbe, mert úgy egyszerűbb volt. De ez (Ahogy te is írtad a tök jó példában) egy tudatos elemzés volt, hogy mi az olcsóbb, görcsölni még 1-2 hetet, vagy azt mondani gyerekek tegyünk be +2-3 procit. De amikor ma azt látom, hogy "vegyél 2x akkora hardvert mint ami elég volt 2 éve, mert az oprendszer felfalja az erőforrások nagy részét", vagy "hát ez OOP és ez ilyen, vegyél erősebb hardwert" azzal nem tudok azonosulni.

Mérges 1234 2017.09.23. 22:19:55

Gézus2013

"hát ez OOP és ez ilyen, vegyél erősebb hardwert" Az oop nem ilyen, oop jobb, gyorsabb kisebb kódot is lehet írni.

Az élet ilyen, nincs idő mindenre, és nem ezek a hangsúlyosak. És nincs idő mindent kioptimalizálni, és értelme sincs, jobb ma egy szar kód, mint 2 hónap múlva egy jó. Ilyen a világ ezt el kell fogadni.

Aki pedig 1-2 év alatt képes átállítania az agyát a strukturális programozásról az oop-re később már vissza sem köp. Amúgy az újabb programnyelvek egy része pl. pont a rossz programozói szokásokat küszöböli ki. A te területed 10%-ot fedd le, máshol tök más igények vannak.

És megint mondom, oop-ben is lehet nagyon jó és tömör kódot írn, és sima c-ben is kotvány szart. Lásd. Toyota gázpedál mizéria.

Gézus2013 2017.09.23. 22:20:28

@FapadOS: Nem tudom miért elfogadható, hogy 2 évente új HW-t vegyek ugyanahhoz a feladathoz? Mert a régi gépen már az oprendszer sem indul el belátható időn belül? Miért elfogadható, hogy egy fapados weblap betöltéséhez lassan gigabites sebesség kell, mert a legegyszerűbb weblap is tele van hányva js-el? Pont ettől a szemlélettől, hogy "hw erőforrás elvileg végtelen, ha mégse majd kimagyarázzuk, és a felhasználó vesz nagyobb vasat, nagyobb sávszélességet de a mi kódunk legyen robosztus, könnyen áttekinthető, öndukmentáló, sőt a legjobb lenne ha megírná saját magát". És az, hogy ez nálunk totál kiütközik mert alig találunk olyan programozót aki képes egy emb-et megcsinálni az meg az ilyen hozzá állású oktatásnak az eredménye. Tudom ma az emb programozás az marginális terület, de ez a szemlélet végigmegy az egész IT-n. Nem hiszem, hogy bárki aki IT-vel foglalkozik nem látja, hogy merre halad ez a szakma? Komolyan nem értem az egészet.

Kinai cuccok blog · http://kinaicuccok.blog.hu 2017.09.23. 22:21:11

@Jossarian: Akkor olvass figyelmesen, tök jó cuccok vannak olcsón is...
Sokan meg drágán veszik a gagyit! És azt hiszik, milyen jól csinálják. Dettó ugyanaz, mint amit korábban említettem. Előre hoznak ítéletet, aztán hozzá igazítják az észleléseiket.

meggyes alfonz 2017.09.23. 22:25:10

Codemonkey-t sem lehet bárkiből csinálni, nemhogy programozót! Kell hozzá tehetség, szorgalom.

Nem is tudom hogy gondolja valaki, hogy néhány hónap tanulás után 4-500e Ft-os fizetést fog kapni. Pillanatok alatt kiderül a munkahelyen a kamu.

Jossarian 2017.09.23. 22:25:46

@Kinai cuccok blog: nem kell a reklam a gagyinak. Ami jo az kinaban is draga a szart meg te probalod lenyomni a balkani soherek torkan. Lelked rajta...

Gézus2013 2017.09.23. 22:29:31

@Mérges 1234: Alapvetően értem és egyetértek azzal amit írsz. Viszont ott van a TCO (pont az IT találta ki). Lehet, hogy el tudom magyarázni egy megrendelőnek, hogy most várjon még 2 hetet, hónapot, évet stb. de utána az neki TCO-ban 5-6 év alatt visszajön. Nyilván ezek nehéz dolgok, és nehéz meghúzni a határt. És nem állítom, hogy az én összes rendszerem tökéletes, ismert vicc: "jól, gyorsan, olcsón ebből kettőt választhatsz". Én azt látom, hogy ma az IT-ben a programozók diktálnak. Minden területen. És ha be merünk szólni, hogy te öreg ez így nagyon nem lesz jó akkor mi vagyunk a hülyék. Mert ma a programozók egy olyan felsőbb kasztnak hiszik magukat, mint az istenek. "Mi tudjuk a frankót, ti hülyék vagytok, hogy forrasztgattok". Nem egy egyeztetést ültem végig, több nagy projektet cswináltunk végig és mindig az volt a végkifejlette a dolgonak, hogy a T. programozó urak (és kisebb részt hölgyek) istenek, nem szabad nekik beszólni mert akkor megsértődnek, egyszer elhangzott: "ez így lesz és kész, ha nem tetszik keress mást". És itt is ez látszik ebben a vitában. "Hát mi iylen meg olyan szuper kódot tudunk írni, de kell hozzá a föld összes hw-e". És alapvetően Knuthal egyetértek, de a korábban valaki által beidézett mondása szerintem az unix világ általános problémája. "Ne optimalizálj mert elveszi az időt attól amivel tényleg kéne foglalkozni".

Powerslave 2017.09.23. 22:31:21

"... azért Java, mert kellően rigorózus ahhoz, hogy a programozótanoncba belenevelje a helyes elveket."

Szerintem meg sajnos nem, ezért találkozom a mindennapi munkám során is iszonyatos gányolásokkal. Ha valóban elég szigorú volna ahhoz, hogy ne lehessen vele takony módon kódolni, nem születtek volna meg olyan művek, mint Robert C. Martin "Clean Code", vagy épp a "Working Effectively with Legacy Code" Michael C. Feathers tollából (stílszerűen).

2017.09.23. 22:36:25

@meggyes alfonz:

"Nem is tudom hogy gondolja valaki, hogy néhány hónap tanulás után 4-500e Ft-os fizetést fog kapni. Pillanatok alatt kiderül a munkahelyen a kamu."

Simán!, hisz sok helyen megkapja.
Máshol,. meg a valódi alkotni is képes programozó gályázik 130 nettórt....

A tudás/képesség és érte kapott jövedelem egymástól független!!! dolgok a való világban.

Jómagam (szabadúszóként) pl. ugyanazzal a képességgel és ugyanazért a feladatért
cirka
1:15 arányban találkozom a megrendelő szemében elfogadható értékkel a munkámért.

Értsd:
van aki szerint még 1000 Ft/órát sem ér amit kap(na) tőlem
van aki szerint a 15000 Ft/óra se drága azért, amit kap tőlem

Alick 2017.09.23. 22:38:08

@Mérges 1234: "A piac diktál."

Touché! :)
Ezért kerülnek a piacra gyakorlatilag (jó ha..) béta állapotú bughalmazok a MS-tól és társaitóll, amit jó esetben hónapokkal később foltozgatnak (legalábbis megpróbálják), rossz esetben majd a következő fizetős upgrade-ben ki lesz javítva, ami persze majd újabb hibákat fog bevezetni a régiek helyett
:/

qwertzu 2017.09.23. 22:38:58

@Gézus2013: Hát akkor hajrá, próbálj meg összerakni egy webshopot javascript nélkül, processzorra optimalizált backenddel. Majd szólj hogy mire jutottál.

2017.09.23. 22:40:12

@Powerslave:

A jó programzó a helyes elvék mentén tervez és alkot már eleve!!!!
Nem kel l a kódoló nyelvnek nevelnie.

Tudod....

Úri ember nem köp a padlóra.
A többiknek meg tilos!

Akit a kódoló nyelv nevel az többiek közé tartozó, bunkó.

dunántúli gyerek 2017.09.23. 22:46:20

nem sok dolog van ami egy hangyafasznyit se érdekel, de a programozás az biztos hogy egy közülük

Mérges 1234 2017.09.23. 22:49:27

@Gézus2013: Szerintem nem jó helyen vagy, nálunk a projekt managment diktál, tudnánk jobb kódot írni, de nem lehet, mert nincs arra idő, meg életciklus, meg sunset, meg tudja a fenne, de nem annyira a jó minőség inkább a funkcionalitás van a előtérben.

De más a terület. Én nem találkozom, ezzel az isten vasa sem elég problémával, igaz nem is javazunk, akik meg igen a cégnél, azok folyamatosan ezzel szívnak.

Pl. én nem vagyok managed nyelv práti, de a c# nagyon jó és nem egy erőforrás zabáló valami.

És a korai optimalizáció tényleg tömény szívás tud lenni. Na de zárjuk rövidre más a terület és szerintem tisztul a kép csak lassan. Szerintem ezek maradnak: Java, c#, c/c++, javascipt, a többi csak töltelék. Tecnológiák száma is lassan csökkenő pályára áll, web miatt volt, van felfutás, de kezd már kiforrottá válni, aztán elérjük a csúcsot. Nem olyan tragikus a helyzet.

felső határ nincs 2017.09.23. 22:58:43

Annyit szeretnék kérdezni, laikusként, hogy a Terminatort fel lehetne-e pogramozni. Ma már. Mármint hogy nem-e lehetne-e felpogramozni.

A T800-ast mondjuk. Illetve azt is kérdezném hogy elvállalná-e valaki és mennyiért.

Powerslave 2017.09.23. 23:00:01

@tamarisk: Nem is állítottam, hogy másképpen gondolnám, csupán az idézett gondolatra reflektáltam, mert azt sugallja, hogy "Javában csak jól lehet".

Mindazonáltal hiába nem köpünk a padlóra, ha közben - bár a többieknek ugye tilos - mások turháján kell csúszkálni. Az erkölcsi fölény, hogy én nem köptem oda, nem sokban segít ki, úgyhogy én biz' tudom értékelni a csulagátló eszközöket.

Euscorpius Hungaricus 2017.09.23. 23:04:57

@netnepper: Ez mennyire így van!! Reggel nyolctól kezdődik a munkaidő, a főnök csak 10-re esik be és délre az értekezleten eldől, hogy mit kéne megcsinálnod még ma. Ja és ne menj haza addig, amíg be nem fejezted a mai mai napra előírt munkát, mert holnap reggel éles teszt. Amikor egy 2000 soros kódot este nyolckor még nézel, mert kimaradt belőle egy loop, de már annyira fáradt vagy, hogy gondolkodni nem tudsz, csak a fejedből nézel ki. Csoportmunka? Amikor órák hosszán keresztül nézed, hogy mi a fenéért nem működik a kód, amit tegnap írtál és a végén kiderül, hogy átírták egy picit a tárolt eljárást, de elfelejtettek szólni és persze nem is dokumentálták...Észre sem veszed, de a nyakad megfeszül folyamatosan, a vállad felhúzva, egy év múlva , ahogy írod gerincprobléma...a többiről nem is beszélve. Állandó kávé, nasi, cigi. Egy-két étkezés kimarad, viszont éjszaka is pörög az agyad... A fizetés? Most egyelőre ennyi, de feldobva, hogy a projekt végén, mikor fizet a megrendelő, dől majd a lé... Aha. Meg létezik a jeti és a loch nessi szörny is. Ma már nem is csinálom, csak saját szórakoztatásomra, vagy a jelenlegi munkám megkönnyítésére megírok pár sor kódot.
Azon kívül nem szabad elfelejteni, hogy folyamatosan kell tanulni, újabb és újabb technika jön ki, ami újabb dolgok megtanulását indukálja. 25 évvel ezelőtt, mikor kezdtem, dos 5.0 és turbo pascal, ma android vagy windows 10 és java. persze az alapok változatlanok, de ez nem azt jelenti, hogy a többi nem esett át iszonyatos változáson.
Hát ezért is kevés a programozó. A jó programozó meg még kevesebb. És a munkáltató vegye tudomásul, hogy meg kell fizetnie!

Mérges 1234 2017.09.23. 23:09:22

Euscorpius Hungaricus

Ezért is van megfizetve, mert ez egy nehéz szakma, és nem mindenki képes rá, jól van ez így, a másik, hogy mostmár nem többet fiezetnek sok, helyen, hanem könyítenek, nem szopatnak halálra, távmunka, nálunk deklaráltan, csak 5 órát kell termelni a 8 ból stb.

Alick 2017.09.23. 23:10:20

@Gézus2013: Nekem inkább az jön le, hogy az embedded világban nem is a sebességre való optimalizálás az alapkérdés, hanem hogy a folyamatok véletlenül se kerüljenek egymáshoz képest nehezen definiálható állapotokba. Itt nem merülhet fel, hogy "legfeljebb a jövő hónapban majd kiadunk hozzá némi foltozást", mert ha felmerülne, az esetleg emberéletekben és millió dolláros károk szintjén fejeződik ki.

ogli dzsí 2017.09.23. 23:12:03

@Euscorpius Hungaricus: a progrmozó az informatikusok legalja, négere. Én fülöp szigetekieknek adom ki a kódolást, annyi van mint a nyü magyar fizetés feléért elketyegnek csak cserébe rendesen dolgoznak.

Pórolható kicserélhető órabéres majmok én vagyok az aki gondolkodik és az üzletet megcsinálja így a pénz is mind az enyém. Ennyi.

Ki az a barom aki európaiakkal kódoltat? Bár ukránok jól nyomják azok is dolgoznak kajáért, ahogy szeretem.

2017.09.23. 23:20:21

@Euscorpius Hungaricus:

Ahol egy tárolt eljárást átlehet írni, "észrevétlenül" ott még van mit fejleszteni a céges munkaszisztémán...

Androsz · http://migransozo.blog.hu 2017.09.23. 23:20:32

@Bolshevik: Igazad van, a kommunizmus mellett is érveltem már. Hozzátéve, hogy a gyakorlatban megvalósíthatatlan, mert az ember egy buta állat, márpedig a kommunizmushoz közösségi emberre lenne szükség.

Idealista? Egy ideálisról beszéltem. Megvalósítani talán nem lehet, de eléggé megközelíteni szerintem lehetne.

@qwertzu: " tök jó dolog, hogy magasról szarhatok a memória managementre, mert a -net framework elintézi helyettem"

Miért is kellene egy átlagos desktop programozásnál a memóriakezeléssel foglalkozni? Szerintem is jó, hogy nem kell olyamivel bíbelődni, ami ősidőktől kezdve az oprendszer és a linker dolga, és amit a legközelebbi viselkedésfigyelő blokkol vagy amitől a legközelebbi, még fejlettebb oprendszer lába összeakad. Te állításod szerint éppen egy újabb réteget készítesz a már meglévő rétegekre, amelyen keresztül bármilyen nyelvből elérhetők összetett funkciók, ez az API. Bármilyen nyelvből. Akkor ez miért magyarázná, hogy kell húsz nyelv?

"Na most ha valaki grafikai motort akar írni, arra a c# szar. Egy egészen picit se alkalmas rá, muszáj hogy szarakodj a memóriával és optimaizálj amíg tudsz."

A szokásosan téves érvelés. A programozói feladatok zöme nem ilyesmi. Nem is ilyen feladatokról beszéltem.

Miért kellett a Javának eltávolodnia a Javascripttől, és miért kellett egyáltalán írni egy majdnem ugyanolyan nyelvet a Java motor használatához, mint amilyen a C? A Java bűzlik az avítt megoldásoktól, és fölösleges korlátok vannak benne. Nem hiszem, hogy mércének kellene tekintenünk. A platformfüggetlenség egy éppolyan idealista elképzelés lett, mint a kommunizmus, hiszen a hardverek közötti inkompatibilitások száma hetente nő, ma már szinte lehetetlen két teljesen egyforma gépet összerakni. Maga a Java sem tudja ezt lekövetni, annak ellenére, hogy már naponta kell frissíteni.

A C# a Microsoft nagy üzleti vállalkozása volt, amellyel a saját Javájukat tették ismertté és használandóvá, és amelyben koncepciótlanul összekeverték a saját Basicjüket és C-jüket valami régi szkriptnyelvükkel. Több gigabyte a telepítési igénye. C++-ban írták meg, az assemblyhez valószínűleg nem volt elég kedvük. A platformfüggetlenségről azok tudnának mesélni, akiknek 32 bites kódot kellett transzponálniuk 64 bites rendszerre.

Egyébként Knuth azt a dolgot, ha jól tudom, kábé ötven éve írta. A megfelelő időben elvégzett optimalizálást támogatja a kijelentésében.

@Gézus2013: Lehet, hogy sületlenségnek tartod, pedig én teljesen egyetértek azzal, amit te írsz. A kapcsolat az, hogy az általad bemutatott lustaság a nagy házak ra is jellemző, és a mezei fejlesztők által használt fejlesztőrendszerek íróira is. Amiket felsoroltál, pontos tünetei annak a sorvadásnak, amit én is veled együtt látok, legfeljebb más irányból.

"ma már nagyítóval nem lehet találni olyan programozót aki látott még közelrelő pl. egy assembly kódot, és el tudja képzelni, hogy annak a szerencsétlen procinak mit kell csinálni egy-egy feladatért"

Így van. Én is assemblyn kezdtem a komolyabb programok írását, harminc éve, és néha számolgattuk a processzorciklusokat, hogy minden faszán ütemezve legyen, kihasználva az akkori gépek erejének utolsó cseppjeit is. Persze erre ma semmi szükség nincs, a programozás a feladatait és módszereit tekintve is kinőtt a gyerekkorból, de én azt hinném, hogy azok, akik azt a néhány manapság használt fejlesztőprogramot és motort megírják, hajlandóak egy gondosan optimalizált rendszert megépíteni, ha már ezekre alapul majdnem az egész mai világ.

Nem azt mondom, hogy a mindenféle alkalmazásokat kellene reszelgetni, hanem azokat a kódokat, amelyekre ezek épülnek.

Az pedig független téma ezektől, hogy miért írják meg az ikszedik Photoshopot is, amikor már öttel ezelőtt beletettek mindent, amit egy ilyen programtól elvárunk.

"Nem tudom mit szólnál ha a hírek arról szólnának, hogy 200 emberrel a fedélzeten lezuhant egy repülőgép, mert újra kellett indítani a számítógépet mert »végzetes kivétel történt«."

Nem hittem a fülemnek, amikor pár éve kiderült, hogy az utasszállító gépek számítógépeiben is használnak Windowst.

@Mérges 1234: "a feladatok 90 % nem kell semmiféle optimalizáció, elég lenne ha robosztus lenne a kód."

Miért elég? Szerinted normális dolog az, hogy ma ugyanúgy másodpercekig indul el egy program, mint húsz éve? Igaz, ennek a gyökere a lustán és slamposan megírt operációs rendszertől indul.

Mérges 1234 2017.09.23. 23:20:45

@ogli dzsí: Boldoggá tesz, hogy a tesztelők lejebb vannak... :D

De igazad van, kék galléros meló ez.

ogli dzsí 2017.09.23. 23:25:39

@Mérges 1234: minek csinál bárki ilyen baromságot az életével?

Mindenkinek 1 élete van. Felmegyek a netre veszek 10 pogramozót 1 órán belül olcsóbban mint amennyiért eljönnek lemosni az ablakot.

Utána eladpm 10xeséért amit megírtak, aztán meg őket is eladom. Ennyi.

Nem becsülik ezek a négerek az idejüket. Szakmát tanulni időpazarlás, szolgáknak való.

Mérges 1234 2017.09.23. 23:29:37

@Androsz:

Qt.-ben vagy MFC-ben összerakott program, szerintem pikk pakk elindul hacsak nincs 1000 dll-nyi függősége, a mai programok többet is tudnak. Bár funkcionalitás nem sokat változott legfeljebb csicsásabbak....

Amúgy nem normális, de ez van.

igazi hős 2017.09.23. 23:46:53

@Androsz: Érdekes gondolat, hogy minden problémára egyetlen programnyelv lenne az optimális. Házi barkácsoláshoz is egyetlen eszközt használsz? Melyiket? Van itthon láncfűrész is, mert néha szükség van rá, de többnyire nem azzal vágunk.

igazi hős 2017.09.24. 00:00:32

@Behajtó70: Ez legalább 3 munkakör (+a tesztelőt kihagytad a felsorolásból) és csak egyik a programozóé. Ha a feladat mérete indokolja, akkor célszerűbb, külön emberrel megcsináltatni a felmérést, rendszertervet, programozást és tesztelést, mert hosszú távon olcsóbb.

Fuzy 2017.09.24. 03:12:26

@Gézus2013: mivel érdemes kezdeni? Gondolok itt könyvre, dokumentaciora, akar oktatoprogramra, nyelvre stb
Köszi

qwertzu 2017.09.24. 08:21:45

@Androsz:

""Na most ha valaki grafikai motort akar írni, arra a c# szar. Egy egészen picit se alkalmas rá, muszáj hogy szarakodj a memóriával és optimaizálj amíg tudsz."

A szokásosan téves érvelés. A programozói feladatok zöme nem ilyesmi. Nem is ilyen feladatokról beszéltem."

Jahogy. Persze ha szépen leszedegeted az üzleti progikon kívül az összes feladatot, akkor elég lehetne 1 nyelv.

" és amelyben koncepciótlanul összekeverték a saját Basicjüket és C-jüket valami régi szkriptnyelvükkel. "

Hát a c#-ban kevés basic vagy scriptnyelv beütés van.

"Több gigabyte a telepítési igénye."
Másfél giga..

"C++-ban írták meg, az assemblyhez valószínűleg nem volt elég kedvük."
A .net es könytárak nagy része c#-ban van megírva. Assamblyben megírni elég méretes öngól lett volna, tekintve hogy processzor függetlenség cél volt,

" Szerinted normális dolog az, hogy ma ugyanúgy másodpercekig indul el egy program, mint húsz éve? "
Semmi sem bootol be gyorsabban, mint a mostani win7-em, vírusirtóval, torrent klienssel, minden szarral együtt.

qwertzu 2017.09.24. 09:28:30

@Fuzy: Attól függ mi a cél. Ha meg akarsz jelenni az app storeban vagy a google playban valami komoly cuccal, akkor nincs mese, az adott dolgot kell elkezdeni.

Ha valami általánosat, akkor én a c#-ot ajánlom, bár tény hogy elfogult vagyok.
Előnyök: Egy windowsos géped már biztos van arra a egy visual studio 2017 community edition-t lehet telepíteni. Teljesen ingyenes és legális, le lehet kapni a microsofttól.

Könyvek
c # 6 in nutshell ha ügyes az ember PDF formátumban meg lehet szerezni. Kezdeti tanulásra mondjuk pont nem alkalmas, de minden téma ki van benne fejtve részletesen.

Kezdéshez én oktatóvideókat javasolnék, pl:
www.youtube.com/watch?v=STw363BHviY

vagy a pluralsighton kezdesz egy ingyenes trialt és van 10 napod megnézni pár kezdőknek szóló videót.

Az egyedüli tanulásnak van hátránya:
1: Megakadsz valami teljesen banális problémával, és nem tudsz továbblépni, amit egy tanár azonnal megoldana.
2:Valahogy gyakorlatot kell szerezni, ennek az egyetlen módja, hogy értelmetlen alapfeladatokat oldasz meg mert csak. Csinálj programot, ami bekér egy n természetes számot, majd kiírja az összes prímet 1..n között. És ez egy rakat variációban. Ezt sajnos a rövidebb tanfolyamokon is kihagyják. Vagy főiskolákon. De speciel láttam már végzett elte programozót, aki a fenti feladatot nem tudta volna megoldani. Sokkal nehezebb így elvégezni, mintha tudná, de megoldotta.

Illetve vannak páran, akik nem tudják megérteni az értékadást.
Erre van egy teszt?
X=10;
Y=20;
Z=30;
X =Y;
Y=Z;
Z = X;

Mennyi a kód végén az X, Y és Z értéke? Asszem az MIT-n kísérletezték ki, hogy egy ehhez hasonló feladatnak a megoldása egy éles határvonalat jelent, és aki egy nap után nem volt rá képes, az 30 nap után sem.

Alick 2017.09.24. 11:25:44

@ogli dzsí: Az outsourcing komolyabb referenciák nélkül kockázatos műfaj.

Androsz · http://migransozo.blog.hu 2017.09.24. 14:56:16

@igazi hős: "Házi barkácsoláshoz is egyetlen eszközt használsz?"

Érdekes ellenpélda. Annyiban mindenképpen helytálló is, hogy én a szokottnál is jobban szeretem, ha a különféle alkalmazói vagy karbantartói feladatok megoldására különféle, viszonylag önálló programok állnak rendelkezésemre. Azért mert azokat egy-egy feladat megoldására csinálták, és nem tudják feltűnés nélkül elsumákolni azokat a rengeteg más funkció között. Most mégis az az érzésem, hogy az egyetlen nyelv, mint fejlődési eredmény, nem eléggé hasonlít a helyzetre. Most nem állok neki kibontani, de gondolkodok rajta.

@qwertzu: "A .net es könytárak nagy része c#-ban van megírva."

Ezt igazán nem vehetjük optimalizált megoldásnak. A .Netnek az alapnak kellene lennie, nem néhány emeletnek a házban.

"Assamblyben megírni elég méretes öngól lett volna, tekintve hogy processzor függetlenség cél volt,"

A platformfüggetlenséget nekik nem élvezniük, hanem megteremteniük kellene, hogy aztán én majd élvezhessem. Ők írnák meg a motorokat a mindenféle hardverekre, ideális esetben a oprendszer magasabb szintű funkciói is azonos módon lennének elérhetők minden kódból, és tényleg megtehetném azt, hogy egy programot elég egyszer megírnom Javában, mondjuk. Ez lenne az eredeti álom. Abban mi a platformfüggetlen, hogy a program vásárlásakor meg kell néznem, hogy működik-e az én gépemen is?

Hogy nehéz megcsinálni, mert a hardver ezerféle? Hát ezt magyarázom. Ezért bullshit a platformfüggetlenséget emlegetni.

"Semmi sem bootol be gyorsabban, mint a mostani win7-em..."

Hát én marhára nem tudom izgatni magamat amiatt, hogy naponta egyszer hány másodperc alatt indul el a rendszerem. Az jobban izgat, hogy a hardver ma kétszázszor gyorsabb, mint húsz évvel ezelőtt, és a nagy programok kábé ugyanannyi idő alatt állnak fel, mint manapság. Az okot nagyjából ki tudom találni, csak éppen ez lankasztja a fejlődésbe vetett hitemet, amelyet a honlapokon látható rengeteg "még fejlettebb" ígéret olvasása ébresztett. (Azt hiszem, a gyártói termékhonlapok terén az utóbbi időben eljutottunk minden idők legidegesítőbb és legundorítóbb állapotáig.)

qwertzu 2017.09.24. 15:49:06

@Androsz: Neked kicsit beakadt az assembly. Tudsz mondani bármi komolyat, amit assemblyben írtak, az elmúlt 50 évben, aminek 2 különböző processzoron típuson is futnia kellett? Mert szerintem teljesen nonszensz lenne megírni x86, x64, ARM procikra külön-külön a rendezés algoritmust minden primitív típusra, ahelyett hogy 1 db c++ templatet fordítanának amire akarnak.

Nem mellesleg biztos vagy benne, hogy jobb kódot tudsz írni, mint amit egy c++ fordító generál?

"és a nagy programok kábé ugyanannyi idő alatt állnak fel, mint manapság"
Tegyél magadnak egy szívességet, és vegyél egy SSD-t. Az op rendszert azért hoztam fel példának, mert az a legnagyobb és leglassabban felálló progi a gépen. Amúgy nem tudom mi a lassú nálad, de a visual studio 2015 nálam 3 másodperc alatt megvan. Egy kissebb projekt betöltésével együtt 9, a nagy 60 projektes munkahelyi cuccal 20 másodperc alatt végez. Excel, world 2 másodpercen belül.

Alick 2017.09.24. 16:53:19

@qwertzu: "Nem mellesleg biztos vagy benne, hogy jobb kódot tudsz írni, mint amit egy c++ fordító generál?"

Modern achitektúrán egy jobb fordító (pl. Intel C++) hatékonyabban optimalizál - pláne profiling-gal együtt - , mint egy gyakorlott assembly kézi kódoló. Nyilván nem pár soros inline esetekre gondolok, hanem a teljes kódra.
Az időráfordításban mutatkozó különbséget pedig nem is kell ragozni...

Androsz · http://migransozo.blog.hu 2017.09.24. 21:10:39

@qwertzu: "Mert szerintem teljesen nonszensz lenne megírni x86, x64, ARM procikra külön-külön a rendezés algoritmust..."

Biztos vagy abban, hogy a processzorok, a gépi kódú utasításkészlet annyira inkompatibilis, hogy egy rendezést is háromféle kóddal kellene megírni? Akkor talán egy natív kódba fordítást is aszerint kell megcsinálni, hogy milyen típusú processzor lesz a felhasználók gépeiben? Én eddig nem ezt tapasztaltam. Írtam egy programot, lefordítottam natívba, aztán olyan gépeken futott, amilyet alá toltak. Nem atomrakétát vezérlő programokról van szó, de a programok zöme sem az, és az inkompatibilitás mégiscsak feltűnt volna.

Nem volna ám akkora mutatvány akár assemblyben is megírni egy teljes oprendszert, GUI-val, tekintve, hogy régebben erre még képesek voltak. Egyszerűen szarnak bele, vegyen a paraszt erősebb gépet, ha futtatni akarja rajta a Windowst. Pedig a Windows elméletileg csak egy háttérben lapuló rendszer lenne az erőforrásokat kiaknázó alkalmazások alatt, ezt hívják operációs rendszernek. Ezt mára mintha mindenki elfelejtette volna.

Az assemblyt egyébként másodszorra nem én hoztam szóba, csak idéztem.

Még egyszer mondom, véletlenül sem hiszem azt, hogy mindent assemblyben kellene megírni. De az egész világon használt PC-s programok óriási részét írják .Net-es nyelveken, hát akkor legalább a .Net legyen úgy megreszelve, ahogy az a programozás jó ötven évnyi fejlődése után elvárható lenne. Ez, ha másért nem is, elvből lenne elvárás.

"Nem mellesleg biztos vagy benne, hogy jobb kódot tudsz írni, mint amit egy c++ fordító generál?"

Lehet, hogy tudnék, de természetesen nem fog kiderülni, mert ostobaság volna tőlem, ha egy érdemleges méretű programot ma assemblyben kezdenék összerakni. Mondjuk azt, hogy nem tudok. Ettől még a fordító által generált kód, különös tekintettel a befordított könyvtárakra, legyen kellően optimalizálva. Úgy látszik, nem érted, hogy a temérdek ma használt program matricájáról, kliséjéről beszélünk, ezekre alapul az össze többi alkalmazói program, ez igazán megérdemelné a kitüntetett törődést.

Mellesleg hadd hívjam fel a figyelmet arra, hogy végső soron minden program gépi kódra fordul, vagyis az összes program, kivétel nélkül, megírható volna assemblyben. Az, hogy gyorsabb megoldást szoktunk használni, nem jelenti azt, hogy a lassabb kivitelezhetetlen volna.

"Amúgy nem tudom mi a lassú nálad, de a visual studio 2015 nálam 3 másodperc alatt megvan. Egy kissebb projekt betöltésével együtt 9, a nagy 60 projektes munkahelyi cuccal 20 másodperc alatt végez."

Egy AT-n, 12 MHz-es órajelen az akkori CorelDraw kb. 14 másodperc alatt indult el. Tudom, mert referenciaértékként használtuk sebességmérésekhez. Egy nagy méretű, az akkori lehetőségeket kimaxoló játék kb. 20 másodperc alatt kicsomagolta magát a memóriában és elindult az 1 MHz-es Commodore 64-en. Vajon ma miért kell a mostani (előtti) CorelDrawnak egymás utáni második, azaz kellően pufferelt indításához 5,2 másodperc egy 2666 MHz-es gépen? (És 14 mp első indításkor.) Itt nagyságrendi eltévedés van, és egymást győzködjük, hogy ez így normális.

qwertzu 2017.09.24. 22:08:21

@Androsz: A progi betöltéseknél a CPU majdnem lényegtelen. A disk számít.

A játékoknál különösen nincs mit csinálni, ha 8 gigányi textúrát kell fölnyalni a diskről, akkor azt nincs hova optimalizáni.

Alick 2017.09.25. 10:00:42

@Androsz: Corel Draw: érthető a kérdés az indítási idővel kapcsolatban, viszont az oka valószínűleg nem a fordítási optimalizáció hiányában keresendő, hanem a kiterjedt rendszer, különféle modulok és eszközbevezérlők állapotvizsgálatai és a betöltéseik miatt van. Ha mindehhez még rendszeres netes update vagy jogosultság check is járul, ne csodálkozzunk a lassú betöltésen.

Androsz · http://migransozo.blog.hu 2017.09.25. 16:25:54

@Alick: Biztos, hogy sokféle oka van annak, hogy az indítási idő ekkora és nem a tizede. Nem is akarnám egyetlen tényezőre tolni az egész felelősséget. Csak ha egyszerű józan ésszel elkezdünk gondolkodni azon, hogy miközben a hardver effektív sebessége bő két nagyságrendet nőtt, a szoftverek felhasználói oldalról látott sebessége úgyszólván semmit, akkor nem szűnik az az érzés, hogy valami félrement. Ahogy @Gézus2013: írta: "nagyítóval nem lehet találni olyan programozót aki látott még közelrelő pl. egy assembly kódot, és el tudja képzelni, hogy annak a szerencsétlen procinak mit kell csinálni egy-egy feladatért..." Én el tudom képzelni, és nem értem, hogy mi telik a mai, villámcsapásszerű sebességgel működő hardveren ennyi munkába. Csak a program indításakor is, maradjunk ennél, amikor még nincs semmi szükség a mindenféle kunsztokra. A böngészőmben rákattintottam a Save Page As menüpontra, és 3,5 másodperc múlva jelent meg az ablak, ahol a fájlnevet megadhatom. Huszadszorra is. Persze a kiterjedt rendszer az egyik oka, de miért olyan kiterjedt? Mi az a rengeteg fontos dolog, amit ehhez a rendszernek el kell végeznie? Ez az idő durván 1 milliárd gépi utasítás végrehajtására volt elég. Várakoznia kell a hálózatra, esetleges pendrive-okra? Lehet. Nem érne rá később? Nekem csak az aktuális alkönyvtár kell nem több.

Aprócska példa, csak jelzésül, találhatnánk ezer jobbat is. Őrült pazarlás, nemtörődömség van az ilyen jelenségek mögött, és láthatod a kommentekből most is, máshol is, sokan támogatják ezt a szemléletet. Ha a program ma élne a hardver lehetőségeivel, és nem csak kihasználná azt a saját lassúságának kompenzálására, akkor a gépek képességei bizonyos területeken vetekednének az emberrel. Lehet, hogy a cél ennek a hátráltatása? Szerintem akkor egyszerűbb magyarázat, hogy így könnyebb lesz eladni a következő iPhone-t is meg minden szart azzal a vigécdumával, hogy az még gyorsabb, mint az előző. Mi, akik tudjuk, hogy mit csinál egy számítógép, azt is tudjuk, hogy mikor megy a pofátlan kábítás a hipergyors internet-előfizetési csomaggal meg a sok-sok-sok magos telefonnal. Ez a világ, de én szégyellem ezt. Régen, amikor kezdtem ezt a szakmát, nem így képzeltük.

Indie Crawford · http://indiecrawford.blog.hu 2017.09.25. 20:00:43

Köszi a posztot, hasonló tanulságokra jutottam én is, bár azért a kezdő programnyelv megválasztása nem könnyű, még ha utólagosan nem is tűnik úgy, hogy sok jelentősége lenne...

indiecrawford.blog.hu/2016/10/28/melyik-programnyelvet-tanuljam

Alick 2017.09.26. 11:35:11

@Androsz: "A böngészőmben rákattintottam a Save Page As menüpontra, és 3,5 másodperc múlva jelent meg az ablak, ahol a fájlnevet megadhatom."

Hálózati vagy USB meghajtók keresése, könyvtár beolvasás... tehát a CPU-hoz képes sokkal lassúbb komponensek végignézése. Persze lehetne az ilyesmiken gyorsítani, ugyanakkor ha kimaradnak a folyamatból rendszerkomponensek, akkor meg az a probléma.
Pl. a netről le lehet szedni alaposan karcsúsított Windows Lite verziókat vagy spec telepítőket, ezekkel sokkal gyorsabb a Windows, ugyanakkor számos funkció nem fog rműködni, bizonyos programok nem fognak rendesen futni. De még egy normál telepítésű Windows-on is le lehet tiltani a szolgáltatások nagyrészét (ld. Black Viper) vagy pl. a roaming profile a legtöbb esetben nyugodtan kigyomlálható.

Az is igaz, hogy sok újabb program verzió úgy van "felfújva", hogy az újdonságokat az átlagos júzer nem is használja ki. Én például képek szerkesztésére többnyire a PaintShop Pro kb. 15 éves verzióját használom (1 mp alatt betöltődik).

Gézus2013 2017.10.01. 22:01:10

Most egy pár napig dolgoztam+család és csak most tudok reagálni ezért bocs.
"Alick
2017.09.23. 23:10:20
@Gézus2013: Nekem inkább az jön le, hogy az embedded világban nem is a sebességre való optimalizálás az alapkérdés, hanem hogy a folyamatok véletlenül se kerüljenek egymáshoz képest nehezen definiálható állapotokba." Ezt úgy gondolom, hogy ez "alapfunkcionalitás", de igazad van, igazán fel se tételezem, hogy ez más rendszerek esetén nem így van (bár láttam már olyan programot ami saját magával került dead lockba).