Merre, hol kezdjek bele? Érdemes nekem egyáltalán?

 ( Turion | 2014. szeptember 17., szerda - 11:16 )

Sziasztok!

Egy régi vágyam, hogy megtanuljak programozni - azért, hogy az elképzeléseimet meg tudjam valósítani. Korábban vágyam volt, hogy saját játékot készítsek... és bár ez már nem áll fenn (bár ki tudja a jövőben...), de még mindig szívesen programoznék.

Van azonban egy probléma, ami az egészet elhomályosítja... a matematika mindig is a legnagyobb gyengém volt (ahogy a kémia is). Mindig, minden másból jó voltam, de a matematika az, ami egyszerűen kikészít.
Ami azt illeti, a gimit is most estin csinálom, kissé későn elkezdve... de a számítástechnika akkor is vonz.

Szerintetek - figyelembe véve ezeket, van értelme egyáltalán belefognom? Sokan, akik ma jól programoznak, már kiskoruk óta foglalkoznak a dologgal. Bár nem vagyok járatos a programnyelvek világában, a C/C++ -ra gondoltam, mert ha jól tudom, pl a Linux is C-ben lett megírva, meg egyébként is elég elterjedt nyelvek. Általában egyszerűbb nyelveket ajánlanak, de ha már belekezd az ember, miért ne olyannal kezdje, amit használni is akar?

Egyébként nem vagyok sík hülye a számítástechnikához, amolyan "power user" vagyok. Windowson elég sok mindent tudtam és bár linuxra nemrég váltottam át teljesen, nem félek a termináltól, nem félek a config fájloktól, sem attól, hogy valamit "heggeszteni" kell, hogy működjön. Sőt, nagyon tetszik. Forrásból is rengetegszer fordítottam már programokat, tetszett a kihívás. Mindig szerettem mindent "megpiszkálni" egy picit.

Szóval mit gondoltok, ilyen beállítottsággal érdemes elgondolkodni rajta, vagy inkább maradjak meg sima usernek?

Ha érdemes, tudna valaki jól érthető, kezdőknek való irodalmat ajánlani, ami lehetőleg linuxos környezetre épül? (tehát csak semmi Visual Studio és társai!) Nem ragaszkodom magyarhoz, angol is megteszi.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

"Bár nem vagyok járatos a programnyelvek világában, a C/C++ -ra gondoltam, mert ha jól tudom, pl a Linux is C-ben lett megírva"

Ez nem erv.

"de ha már belekezd az ember, miért ne olyannal kezdje, amit használni is akar?"

Nem biztos, hogy hasznalni akarod. :^)

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám

> Nem biztos, hogy hasznalni akarod. :^)

+1

Kezdjük ott, hogy OP, mire akarod használni?

Hát talán annyiban érv, hogy bizonyított már sokszor. :) Továbbá mivel elterjedt, ezért jó eséllyel veszem nagyobb hasznát, mert ha pl megtanulnék programozni és csatlakoznék egy kisebb-nagyobb open source projekthez, ami ezt használja... :) De csak a saját gondolatmenetem...


Linux Mint 17 Cinnamon 64-bit

"Hát talán annyiban érv, hogy bizonyított már sokszor. :)"

Ezt sok nyelvrol el lehetne mondani.

"Továbbá mivel elterjedt, ezért jó eséllyel veszem nagyobb hasznát, mert ha pl megtanulnék programozni és csatlakoznék egy kisebb-nagyobb open source projekthez, ami ezt használja... :) "

nyelvek nepszerusege Github-on

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám

javascript....

Mi ezen a meglepő? Amióta a böngésző a platform, érdekes lenne, ha nem a javascript lenne a fő programozási nyelv. Annak ellenére, hogy van bőven baja,
mi pl. java-s desktop alkalmazást írtunk át GWT alapokon html5+javascript-re, és nagyon meg vagyunk elégedve. Egy csomó mindent biztosítanak a böngészők,
amit kézzel kellett megírnunk, a többit meg workaround-oljuk :)

Nézz bele a cognosba, és fogsz te még bárányt is áldozni a zúr előtt!

Most olvastam el pár JS könyvet, meg Crockford előadásokat néztem. Valóban vannak hülyeségei, de ha megtanulod rendesen használni, mindez kikerülhető. Szerintem igenis jó programozási nyelv, nem beszélve arról, hogy böngésző van minden gépen. De Node is nagyon tetszik.

A Node nem programozási nyelv, hanem egy programozási platform, ahol ECMAScript a nyelv.

Nem is mondtam, hogy programozasi nyelv.

Egy időben dolgoztam egy játék prototípuson a Wintermute Engine-el. (még mindig megvan a prototípus + a forrás is talán) Van egy belső, saját script nyelve, amit a JavaScript mintájára alkottak meg, csak nyilván játékbeli kifejezéseket használt az alkotó a syntaxisban.
pl:
actor.GoTo3D(34,55,0);
Nem vagyok programozó ugye, de mint full hozzá nem értő személy, nagyon szépen boldogultam vele. (igaz, a dokumentáció is remek volt)


Linux Mint 17 Cinnamon 64-bit

Ez nem szintakszis, hanem API.

Imádom, amikor valaki programozási nyelveket említ és keveri azt a libek által nyújtott API-val.
A Node és a böngészők JavaScriptje is ECMAScript, tökugyanaz a nyelv, csak a böngészőkben más API van (DOM és egyebek), mint Node esetén.

Én PHP-val kezdenék, hogy megértsd a változókat, ciklusokat, stb.
Azért PHP, mert van hozzá milliónyi leírás és hasonlít a C++ -hoz, bár annál lazább, könnyebb.
Könnyű felrakni a PHP-s környezetet is.
Aztán ha tetszik, tovább lépsz más nyelvre.
Nem veszítesz semmit. Próbáld meg.

Még annyi, hogy a kitartásodtól függ, hogy megtanulsz-e átlagos szinten programozni, hogy mennyi időt szánsz rá. Pár száz óra programozás után már lesz fogalmad, hogy akarod-e tovább.

Bármit is olvasol, jegyzeteljed le kézzel, dokumentáld magadnak, így jobban rögzül.

Sakk-matt,
KaTT :)

Ésszerűnek hangzik, köszönöm!


Linux Mint 17 Cinnamon 64-bit

Gondold át. Nem akarok egyik nyelv mellett sem kampányolni, mert a mottóm az, hogy célhoz az eszközt, de ne PHP-vel tanulj meg programozni. Azt is megmondom, hogy miért.

Röviden: a PHP szar. Logikátlan, átgondolatlan dolgai vannak, amik más nyelveken baromira nem úgy működnek, tehát ha később esetleg ki akarsz lépni a "webdesigner" phpistike szerepből, szívni fogsz.

Python esetleg? Jókat hallani róla. Az egyetlen ami riaszt ezzel kapcsolatban, hogy futtatókörnyezet kell hozzá... vagy meg tudja valaki cáfolni ezt? Tudtommal a Blender pl pythonban íródott és kell is hozzá a környezet...

Egy olyan nyelvet szeretnék, amivel önálló, kis programok hozhatók létre, hatalmas függőségi fa nélkül... ha értitek mire gondolok. Ezért gondoltam a C-re. Ott megírsz egy hello world-öt és kapsz egy kis exe vagy elf fájlt és annyi. Megírod pythonban és kell hozzá egy egész környezet. Vagy nem így van?
Bocsi, elég kezdő vagyok...


Linux Mint 17 Cinnamon 64-bit

A Java-hoz is kell futtató környezet (jvm) mégis sokan írnak benne programot!
Ez nem ok a Python mellőzésére sem. A logikája meg pont a kiválóak közé tartozik!
Amúgy célszerű lenne úgy nyelvet választani, hogy figyelembe vennéd azt is, hogy mire akarod használni.
Tehát milyen jellegű programot, programokat akarsz írni?
Még itt nem írták ugyan le, de az igaz, hogy "Egy jó programozó bármilyen programnyelven tud Fortran programot írni!", de bizonyos jellegű feladatokra bizonyos programnyelvek alkalmasabbak!
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Háááát mondjuk ha egyszer arra adnám a fejem és írnék egy játékot, mondjuk... valami 2.5D-s kalandjátékot (renderelt hátterek, 3D modellek), ahol mondjuk Blender-el készülnek a modellek, hátterek, átvezetők, de mondjuk OpenGL a valós idejű 3D grafika... valamit ezen a vonalon. Mindig is ez volt a mániám. Talán ha 1x megvalósul, megnyugszik a lelkem végre... :)


Linux Mint 17 Cinnamon 64-bit

Speciel a Blender is Pythonban íródott! Szóval nem kell elkapkodni a dolgot. :-)
Vannak a Pythonhoz is játékfejlesztéshez könyvtárak, például: http://www.pygame.org/news.html
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Nem, nem Pythonban íródott.

Ok. Lehet, de valami köze van a Pythonhoz, mert ha bármelyik oldalon a Blenderről van szó szinte mindegyik tele van Python kóddal.
Esetleg ha jobban van rálátásod elmondhatnád nekünk!
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

L. az általad linkelt oldalt...

http://www.blender.org/bf/codelayout.jpg
_____________________________
Powered by 1,3,7-trimetilxantin

marminthogy pythonban lehet extensionoket irni hozza
_____________________________
Powered by 1,3,7-trimetilxantin

Ezek szerint tévedtem és elkapkodtam a választ.
De az biztos, hogy Pythonhoz vannak játékfejlesztéshez használatos könyvtárak.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Teljesen mindegy, hobbi projektet csinálsz, azért, hogy tanulj. De ha ez zavar, akkor kódolj javascript-ben, webgl-lel, aztán az mindenhol megy. Jóskapista exe-jét
én biztosan nem indítanám el saját gépen...

> Ott megírsz egy hello world-öt és kapsz egy kis exe vagy elf fájlt és annyi. Megírod pythonban és kell hozzá egy egész környezet. Vagy nem így van?

Technikailag igazad van, gyakorlatilag nem (ez a) baj. Egy Java pl. jó eséllyel meglesz a gépek nagy részén. A .NET Framework különösen, ez évek óta a Windows beépített része, tehát iszonyat nagy a penetrációja.

A Python pedig a linux disztrókban szokott gyakran előfordulni "gyárilag", ez viszont - mondjuk egy Javához, vagy .NET-hez képest - elég kevés.

Amúgy meg majdnem mindegy, mert nagyobb alkalmazások mérete mellett a framework eltörpül. Nyilván, ez már nem a hello world, és talán nem is az egyszemélyes hadsereg kategória.

Röviden: minden nyelvnek vannak hibái. A PHP nem szar, de ha igen, akkor csak annyira mint bármelyik másik nyelv. Van aki képes benne nagyon szép és nagyon jól működő dolgokat írni, van aki nem. De az más nyelvben sem fog tudni.
Mondom ezt 20+ (jól működő) ügyviteli, számlázó, nagycéges, stb rendszer megalkotása után PHP-ban. Félreértés elkerülése végett: nem védem a PHP-t (nincs is miért), de leszarozni valamit teljesen értelmetlen, mindennek megvannak az előnyei és hátrányai, amik alkalmassá/alkalmatlanná teszik őket bizonyos célokra. Viszont ez pont jó így, mert lehet válogatni az eszközökben.

Én is csináltam már sok dolgot PHP-ben, pont ezek után tartom szarnak. A PHP-nek nem hiányosságai vannak, hanem egy teherautónyi inkonzisztens agymenése. Egyébként bizonyos feladatokra ettől függetlenül kitűnő választás lehet, viszont programozni nem ezzel tanulnék meg. Túl sok rossz beidegződést építhet fel.

gelei: egyezik a véleményünk, csak mások a céljaink. Én azért javasoltam neki a PHP-t, mert bár tényleg nem egy hibátlan nyelv, gyorsan lehet vele sikerélményt elérni, tud hasznos dolgot csinálni akár pár óra alatt is. Tud játszani a változókkal, konstansokkal, akár az objektumokkal, még az adatbázis használatába is bele tud kóstolni pillanatok alatt.

Letölti a www.wampserver.com -ról a web szerver + adatbázis szerver + php csomagot, ami pár 10 mbyte, oda kattint, hogy indítás, akkor máris van apache webszerver+ php + mysql adatbázisa. Ha Linuxot használ még egyszerűbb a dolga, millió helyen leírják, hogy kell felraknia.
Van például ingyenes Netbeans + PHP, ami segíti a programozást, ha elkezded beírni a funkciót, felajánlja, hogy mik vannak, és miket írtál, stb.

Gyorsan létrehozza a www könyvtárba a turion_programozik.php -t, beleírja, hogy

<?php

// ez a komment

/*
de ez is, csak több soros
*/

$valtozo = 1;

echo strtoupper("Turion ") . $valtozo . ". programja!"; // a sor végén HTML sortörés
$valtozo++; // ez vajon mi? Csak nem növeli az értékét eggyel?

$proba = "mos" . "t"; // ebből mi lesz? string műveletek? wow!

echo "A változó értéke ". $proba . ": " . $valtozo;

// és itt kezdődik az igazi kaland!

?>

És már érzi, hogy csinált valamit, ami látható.
Fel is töltheti bármilyen tárhelyre.

Mondjuk az tény, hogy az igazi férfi assembly nyelven programozik, de azért szerintem ne ezzel kezdjen... :-)

Én a Commodore BASIC nyelvvel kezdtem, aztán PASCAL és assembly...
A PHP a BASIC és PASCAL-hoz képest maga az űrtechnika! Bárcsak lett volna olyan nyelv akkor, mint a PHP!

Sakk-matt,
KaTT :)

Kontra javascript: elindít egy böngészőt, megnyomja az f12-t, és beírja: console.log('hello world')

A PHP-t felejtsd el!
Ha letisztult dologgal akarsz kezdeni, akkor Java vagy valamelyik rendezettebb szkriptnyelv (talán Python).
Az én érveim az egyes nyelvek mellett/ellen:
- C: ha ezzel kezded, akkor megismered alaposan a pointerek világát, ami nem haszontalan. Magas szintű nyelv, de meghagyja a rendszerközeliséget. Meg kell próbálni, kezdésnek lehet bejön, lehet túl kemény dió.
- C++: szeretik együtt emlegetni a C-vel, de ez egy másik nyelv, csak a C alapjain indult el és a C nyelvvel elég szorosan kompatibilis felülről. Szerintem egy nagyon kemény dió, az egyik legeldurvultabb nyelv. Persze elsőnek tud lágynak tűnni, aztán egyszer csak szétáll a két fülled amikor már mindenféle kacifántos dolog jön (operátor felülírás, többszörös öröklődés, mindenféle objektum létrehozási és felszabadítási lehetőségek, template-ek, Standard Template Library stb.)
- Java: egy igazi szószátyár nyelv. Viszont valamennyire minimalista alapokon kialakított objektumorientált nyelv. Kezdőknek jó szívvel tudom ajánlani. Egyik nagy előnye, hogy nem kell a változók/objektumok felszabadításával bajlódni (automatikus szemétgyűjtőt használ. Ez innen már minden nyelvre igaz.). Bár desktop oldalról nézve nem látszik, de nagyon elterjedt nyelv az üzleti világban (meg merem kockáztatni, hogy az első helyen áll). Rengeteg függvénykönyvtár van hozzá, szinte bármilyen feladatra.
- Scala: ez már funkciónális nyelv, nagyon sokat tud, de a teljes érthetetlenségig el lehet benne mindent rejteni.
- PHP: khm... nem merem kezdőnek ajánlani, mert sajnos beidegződik tőle egy rossz szemléletmód. És amúgy is szopóroller az egész PHP-s világ. Szerintem csak azért van életben, mert kis dolgokhoz kis erőforrással is beéri és kb. bármelyik webhosztingban alapból van. A legfontosabb, amit tudni kell róla, hogy egy olyan ember alkotta, aki maga bevallottan nem ért a programozási nyelvekhez és az egész csak annak indult, hogy html forráskódba be lehessen műveleteket szúrni. Gányolás az egész és bár ezt igyekeztek megszüntetni benne, szerintem kudarcot vallottak vele.
- Perl: csak ha igazán szopatni akarod magad.
- Ruby: nem ismerem, de amennyit tudok róla, az alapján még kezdőknek is jó lehetne. Ami miatt mégse merem ajánlani az az, hogy sok mindent agyon egyszerűsít és így egy kezdő pillanatok alatt elveszhet benne.
- Python: számomra egy picit zavaros nyelv (ebben is vannak automatikus változók, automatikus visszatérési érték és hasonló faszságok, amikkel picit rövidebbé, de sokkal átláthatatlanabbá lehet tenni a kódot). Ami jó benne, hogy azért mégis egy átgondolt nyelv és megköveteli a rendezett forráskódot.

Mit hagytam ki? Ja, a JavaScript: menekülj ha valaki azt akarja, hogy ebben dolgozz! Bár pillanatok alatt tudsz vele dolgozni, mert minden böngésző támogatja, van benne néhány oltári faszság, ami még az ősidőkből maradt vissza. Elég nyakatekerten kell gondolkodni. Nem funkcionális nyelv, de kb. úgy kifacsarja pár ponton az OOP-t, mintha funkcionális nyelv lenne. Mindemellett teljesítményben és tudásban már nagyon feljött. Ha php és javascript között kellene választanod, akkor inkább ez.

Csak annyit tennék hozzá, hogy a perl nem brainfuck vagy whitespace - lehet benne nehezen olvasható kódot írni, de nem kötelező.
Akinek nem ismeretlen a sztring/szám/lista/assz. tömb fogalma, és nem akar rövidítésekkel villogni, kezdőként se fog sokat ríni vele.

Miért ne? A matek sosem volt a kedvencem (annak ellenére hogy menegetett), de a programozást élveztem. A világ nagyobbik része így van ezzel szerintem.

Ez épp fut: https://www.class-central.com/mooc/1341/edx-6-00-1x-introduction-to-computer-science-and-programming-using-python

Ezek jönnek hamarosan:
https://www.coursera.org/course/pythonlearn
http://mechanicalmooc.org/

Ja, C és C++-al inkább útálni tanulod meg a programozást. Szvsz. Első nyelvnek tessék mást választani.

Matematikai érzék, logika nélkül nem fog menni, akármennyire is nem a kedvence valakinek.

Ezt viszonylag hamar ki fogja deríteni magának. Ha kínlódik nyilván nem fogja tovább csinálni.

Nem akarom túlmisztifikálni a programozást, de szerintem alapból olyan gondolkodásmód kell hozzá, amit még akkor is nehéz elsajátítani, ha valaki jó matekból, nemhogy akkor, ha az egyik legnagyobb gyengesége. Kell logikai készség, absztrakciós készség, el kell tudntudni sajátítani többféle módszert és egy nagy adag türelem és stressztűrőképesség sem árt. Nem azt mondom, hogy ne fogjon hozzá, mert dehogy nem, de azért érdemes résen lenni.

1992-ben érettségiztem, anno 2-esre, végig 3-as, 4-es voltam belőle, mert nem igazán láttam a magasabbszintű dolgok gyakorlati hasznát (függvények, koordináta rendszerek ...stb). Aztán bekerültem egy agrártudományi egyetemre, a mateknak elég elvont oldalait tanultuk, meg közben elég gyakorlatiast is (vektorok, mátrixok, valószínűség, függvények, sőt talán nekikezdtünk valami lineáris programozásnak is), aztán lám-lám, ez érdekelt, mindjárt 4-es 5-ös jegyek jöttek össze (persze gondolom egy prog.mat-hoz elég gyenge volt az anyag)

Én személy szerint nem hiszek abban, hogy valaki brilliáns logikai érzékkel rendelkezik, és nem bírja a matekot (ami kb. színtiszta alkalmazott logika).

Ezt mondjuk lehet vitatni abból a szempontból, hogy a matematika egy bizonyos fajta logika... és van sok ember, akinek ez a típusú logika egyszerűen nem fekszik... míg más területen teljesen logikusan gondolkodik. Nem vagyok cseppet sem briliáns, ne értsd félre... de ettől még nem vagyunk mi matekhez annyira nem konyítók sík hülyék... csak másképp gondolkodunk. Mondjuk nekem gyanítom azért nem ment soha, mert túl gyors volt a tempó és mire felfogtam volna, már a következő feladatnál voltunk... aztán elvesztettem mindig a fonalat és így jutottam oda, hogy még a kérdéseimet sem volt idő feltenni...
(Zárójelben teszem csak hozzá, hogy egy IQ teszten 130-at kaptam - ÉS ennek ellenére megy rettenetesen a matek... az utolsó feladat pont egy matematikai logikai kérdés volt... azon agyaltam a legtöbbet és a végén feladtam... :D A többi logikai feladat meg jól ment. Mindezek ellenére én nagyon-nagyon irigylem a jó matematikai képességekkel megáldott embereket, mert nekem ez kínszenvedés volt mindig és most is az. Ebből is az jön le, hogy az IQ semmit sem jelent...)


Linux Mint 17 Cinnamon 64-bit

Ne haragudj, de amit leírtál, abból pont az jön le, hogy nem a tartalommal volt a gondod, hanem azzal, ahogy/aki ezt próbálta megetetni veled. Szóval gyakorlatilag nem mondtál ellent annak, amit én írtam.

Egyébként szerintem a másfajta logikák létezésében igazad van, abban viszont nem, hogy azt gondolod, a matekhoz másmilyen kell, mint a programozáshoz. Az, amit általában az iq-teszteken mérnek, az pont ugyanez a logika.

Ja nem, félreértettél! Azt elismerem, hogy a matematikai logika kell a programozáshoz. Pont ez maga a kérdésem apropója. Csak arra akartam rávilágítani, hogy sok embernek nem megy... tényleg nagyon sok embertől hallottam már. Ezen emberek közt pedig rengeteg nagyon értelmes, tehetséges ember van!


Linux Mint 17 Cinnamon 64-bit

Hogyne, azért érettségiztél kettesre, mert nem láttad a gyakorlati hasznát. Altass még kérlek. Én nem voltam egy kimondottan jó matekos, sőt jó programozó sem vagyok, de azért ötösre én is letoltam a központit. "Elvont" matek, az... hagyjuk.

Tessék, itt egy példa, miért kell matematikai érzék a programozáshoz: http://www.cs.utexas.edu/users/EWD/

C# / .NET / Visual Studio az én javaslatom. Java-hoz sokban hasonlít, de szerintem kevesebb vele a szívás, cserébe nem annyira platform független. A Visual Studio pedig simán a világ legjobb IDE-je, és ez nagyban növeli az esélyeidet, hogy megszeresd a programozást.

--

Épp csak el akarok szakadni a Windows világtól, nem építeni azt... ezért írtam, hogy csak semmi VS. Tudom, hogy jó, csak sajnos Microsoft.


Linux Mint 17 Cinnamon 64-bit

Van konkrét indok erre, vagy csak nem szimpatikus?

Inkább ideológiai... utálom, hogy a Windows nem úgy táncol, ahogy én fütyülök... hogy zárt, megszabott dolgokkal van tele, pl a kinézetet, kezelést illetően. Linuxon megvan a szabadság, amire mindig is vágytam: úgy szabom testre, alakítom át, hogy nekem jó és ha nem tetszik pl a grafikus felület, átváltok másikra.

Sok hiányossága van nem mondom, de bizonyos dolgokban meg sokkal logikusabb, jobb mint a Windows... na meg ahogy elnézem, gyorsabb is. Sok-sok évig vártam (2005 óta ismerem, mindig próbálgattam az újabb és újabb disztrókat), hogy fejlődjön és eljutott arra a pontra, hogy {számomra} is elfogadható minőséget ért el, így mikor megjelent a Windows 8, eldöntöttem, hogy váltok - főleg, mert az a vonal amin elindult az MS, nem tetszik. Szóval ha már így elszakadtam a Windowsos világtól (mivel már csak ritkán játszok), inkább szeretnék Linuxos környezetben programozni, ha úgy döntök esetleg, hogy megtanulom - elvégre minek fejlesszek olyan rendszerre, amit még csak nem is szerettem soha?
(Azért a Photoshop hiányzik...)


Linux Mint 17 Cinnamon 64-bit

> Inkább ideológiai...
Oké, ez sem gond, nyilván nem erőszak a disznótor. Csak azért érdekelt, mert sokan fals előítéletekkel kukázzák reflexből a MS-ökoszisztémát, amit nem is próbáltak.

Programozás szempontból viszont továbbra is azt javaslom, hogy gondold újra. Amiatt mondom ezt, mert programozástanuláshoz a C#/VisualStudio nagyon jó - ez persze szubjektív.

Ami viszont objektív, hogy ha megtanulsz egy .NET-es nyelvet, mondjuk a C#-ot, akkor gyakorlatilag nulla továbbképzéssel képes leszel asztali alkalmazásokat (WinForms, WPF), weboldalakat (ASP.NET), mobilalkalmazásokat, konzolos alkalmazásokat, játékokat (akár konzolra is), beágyazott alkalmazásokat (.NET CE), stb. fejleszteni. Mindezt úgy, hogy a létező kódod nagy része (kb. minden, a UI-t kivéve) újrahasznosítható.

Ráadásul nagyon jó a VS beépített debuggere és nem kell móricka megoldásokkal összegányolni egy debuggert (és itt meg is dőlt a 2. comment, hogy PHP-t egyszerű telepíteni).

-----------
"Pontban 0:00-kor nem nagyon szoktak véletlen dolgok történni"

Ja, és amúgy a Visual Studioban van PHP, Java és Python támogatás is. :)

Vagy akar valtani Java-ra, mert C#-rol annyira nem nehez. (Bar szvsz a Java kb. 10 evvel el van maradva a C# mogott. Plusz, az igazan vicces az, hogy azt, ami tenyleg nagyon jo a Java-ban - Hotswap - azt se nagyon hasznaljak ki a Java devek. Mondjuk az MS-t se ertem, hogy miert nem koppintja le, infrastruktura szvsz elvben adott hozza).

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Minimális utánajárás után úgy tűnik, ez a Java hotswap dolog elég menő!

Gyakorlatilag kb. ugyanazt tudja, mint az edit&continue, csak nem kell hozza aktiv torespont, hanem folyamatosan lehet irni a kodot. Ez sokkal produktivabb ott, ahol mondjuk aktiv halozati kommunikacio van. Utobbi miatt sokkal hasznalhatobb, mint a VS fele E&C.

Persze, ennek is megvannak a limitacioi (uj metodus, uj adattag nuku - bar hupon allitott valaki itt olyat a JetBrains fele Java IDE kepes erre is, csak nem neztem utana, mert annyira sokat nem Javazok, arra meg eleg az Eclipse nekem.)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

http://zeroturnaround.com/software/jrebel/

ez nem valami ilyesmi?

--
NetBSD - Simplicity is prerequisite for reliability

Ha fejlesztő szeretnél lenni, akkor érdemes ennél azért nyíltabban gondolkodni, mert ideológiai alapon nem lehet dolgozni, akkor válts szakmát, ezt komolyan mondom.

Vedd úgy, hogy kifejezetten Linuxos fejlesztő akar lenni! Vagy a Microsoft konkurenciájánál akar dolgozni ahol minden MS termék használata tilos!
Most próbálj meg válaszolni a kérdésére!
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Nem érted. Ahhoz, hogy "Linuxos" fejlesztő legyen (akármit is jelentsen ez), ahhoz valahol el kell kezdenie és felesleges már az elején bezárni egy csomó kaput, de lelke rajta.
Nincs új a Nap alatt, nálunk okosabb emberek elmondták már, hogy valami szkriptnyelvvel kell kezdeni (lásd pl Python), megtanulni az algoritmusokat, adatszerkezeteket, rutint szerezni strukturális / oop gondolkodásban és majd utána lehet gondolkodni azon, hogy merre (C/C++ nyilván).

Nem csak windowsra van C#.

Fuszenecker_Róbert

"A Visual Studio pedig simán a világ legjobb IDE-je"

Hasznaltal-e mar Jetbrains IDE-ket? (IDEA, PyCharm, RubyMine, stb?) En nem ismerem a legubabb VS-eket, erdekelne, hogy hogyan viszonyulnak ezekhez.

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám

Én előbb találkoztam Jetbrains IDE-vel (Idea, PyCharm), s mikor egyetemen előjött a C# + VS2013, a falnak tudtam volna menni tőle.

De ismerek olyanokat, akik fordítva kezdték, s nekik a VS fekszik jobban...
Valószínűleg csak megszokás kérdése ilyen szinten már.
--
blogom

/flame on
"A Visual Studio pedig simán a világ legjobb IDE-je" ...
öööö... miért is?
Azért van ott még pár versenyző.

Mondjuk inkább, hogy "A világ egyik legjobb IDE-je", vagy hogy "Microsoft-környezetben, Microsoft-technológiákhoz a lehető legjobb", vagy hogy "Ha nincs más lehetőséged, végül is a VS -ben is be lehet írni a kódokat." vagy valami. De azért ilyet csak így leírni olyan mintha a Microsoft ingyen adna Office-t a diákoknak, hogy azt szokják meg, és esély se legyen később másra váltaniuk. Oh, wait...

szerk: Uh, látom megelőztek páran. Egyébként én is a JetBrains-vonalat ajánlanám.

Amúgy a VS ingyen van, a fizetős változatok kevés olyan funkcionalitást adnak, ami egyszemélyes hobbiprojekthez kellene.

Programozz C -ben mert:

  • empirikus gondolkodást igényel -> emberközeli, nincs elvont hókusz-pókusz
  • mindent magadnak kell -> tudni fogod később mit csinálnak a fejeltebb dolgok a háttérben
  • "bármire" írhatsz programot, pl.: mikrokontrollereket is programozhatsz (házi riasztó, vonalkövető robot, italtöltő robot, stb...)
  • érteni fogod később miért alakult ki az OOP, illetve más modern szemlélet

Ha a szkriptnyelvek kényelmi funkcióit igényelnéd, nézd meg ezt: https://www.softintegration.com/

> C
> emberközeli

Azt aláírom, hogy a C baromi sok mindenre "a" megoldás, nálunk is van a melóban elég sok C kód, na de emberközeli?! :D

Seriously, guys. Guys. Srsly.

+sok

programozás alapjait ne C-ben tanulja meg.

"emberközeli, nincs elvont hókusz-pókusz"

Emberközeli gondolkodás számomra az, hogy ha van egy gyűjteményem a kismacskákról és azt szeretném, hogy mindegyik nyávogjon hármat, akkor azt mondom, hogy

foreach (var macska in macskak) macska.Nyavog();

(Magyarul a macskak gyűjteményben (legyen az bármi) minden macska nyávogjon egyet) és nem azt, hogy

for (int i = 0; i < cats_count; i++)
{
nyavogtat_macskat(cats[i]);
}

Azaz,
- számoljam, hogy hány macska van
- tudjam milyen kupacban vannak a macskák
- indítsak egy számlálót és számoljam meg egyesével
- adjam át a macskákat egy függvénynek

"mindent magadnak kell"

Magyarul 0 szabványosság, minden projekt teljesen egyedi, ha két dolgot össze kell integrálni, ugyanazokra a funkciókra lesz n féle megoldás a projektben.

"tudni fogod később mit csinálnak a fejeltebb dolgok a háttérben"

Ugyanúgy nem fogod tudni, cserébe egy csomó, számodra lényegtelen dologgal kell foglalkoznod.

""bármire" írhatsz programot"

http://en.wikipedia.org/wiki/No_Silver_Bullet

"érteni fogod később miért alakult ki az OOP, illetve más modern szemlélet"

Nem fogod.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Majdnem +1, de:
Emberközeli gondolkodás számomra az, hogy (...)
Valamiért ezt a BME-n is így tanítják. Ettől függetlenül én sem tudnám a Java-C#-stb.-nél „emberközelibbnek” nevezni.

"tudni fogod később mit csinálnak a fejeltebb dolgok a háttérben"
Ugyanúgy nem fogod tudni, cserébe egy csomó, számodra lényegtelen dologgal kell foglalkoznod.

Azért az érték-, vagy referencia-szerinti átadást magyarázhatták volna egy darabig, ha előtte nem malloc-oztatnak egy fél éven át.

"érteni fogod később miért alakult ki az OOP, illetve más modern szemlélet"
Nem fogod.

Lásd az előzőt. Én nem tudnám valakinek elmagyarázni rendesen, mi az az objektum, mi az az osztály, ha előtte nem sz*pja végig a C-s struktúrák minden nyűgjét a nyavogtat_macskat(cats[i]); gyönyörökkel.
--
blogom

> Valamiért ezt a BME-n is így tanítják.

Persze, csak a BME-n jobban megy a C nyelv, mint a magyar. "emberközeli: összetett feladatok oldhatók meg röviden" - most tekintsünk el attól, hogy ez az állítás szimplán hazugság, még mindig ott van, hogy az 'emberközeli' szó nem ezt jelenti...

Haha, jo ez a jegyzet.

"Ez emberközeli: összetett feladatok oldhatók meg röviden"

Ez egyreszt nem igaz. Maximum az assemblyhez kepest.

"Az imperatív tudás sokszor hasznosabb."

WTF??? Ilyet hogy lehet leirni, mikor minden a legtobb minden afele halad, hogy deklarativan, minel kevesebb kodbol megoldjuk a feladatot es dolgozzon helyettunk a gep? (Foleg, hogy valamivel jovobiztosabb is, hiszen a mogottes modszert lehet egy hatekonyabbra cserelni vagy az architekturahoz jobban igazodora).

Ez meg kulon fun, amikor az egyetemi jegyzet mossa ossze az eros/gyengen tipusossagot a statikus tipusossaggal: "A C nyelv erősen típusos: minden változót definiálnunk kell, előre meg kell mondanunk a típusát és a nevét."

Ugyanis amit itt leir az a statikus tipusossag. Ezzel szemben a C gyengen tipusos.

De semmi gond, volt egy idoszak, amikor bennem is megvolt az, hogy huuu, C. Aztan rajottem, hogy rengeteg, feladattol fuggoen sokkal-sokkal jobb nyelv letezik a vilagon es a C egyaltalan nem egy jo nyelv. Maximum bizonyos dolgokra, de ott is leginkabb azert, mert meg nem csinaltak jobbat.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Azt ne feledd, hogy a BME-n mérnök informatikán végzettek közül sokan embedded területre mennek. Nem véletlenül megy nálunk a C.
Azt látom, hogy itt a HUP-on erről a területről nagyon könnyen elfeledkezik mindenki. Nem csak webfejlesztés meg business logic a világ :-).

Bár borsódzik a szőr a hátamon minden embedded dologtól, de így sem lehet okom a panaszra a progos vonal felépítését illetően. (Najó, én néhány tárgyamat lecserélném +progos dolgokra, de ez személyes ízlés)
--
blogom

Semmi nem a világ.

Konkrétabban: tizenegykét éve az ország első öt exportőrének egyike a piacelső termékeit Tcl/Tk-val meghajtott programmal/felületen tesztelte/követte, illetve ami nem az volt, az rexx.

Mindkettő Turing-teljes, mégsem javasolnám bárkinek, hogy ezekkel nyisson.

Az remek, de attol meg nem kellene fals dolgokat tanítani.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

ez azert vicces, mert a beagyazott rendszerek 99%-ra teljesen alkalmatlan nyelv a C...

--
NetBSD - Simplicity is prerequisite for reliability

Megjártam asm-et és C-t is, mire C#-nál kötöttem ki. Pontosan tudom, mi történik a háttérben, a nagyon magas szintű programnyelv mögött. De most belegondoltam, hogy ez szinte semmit sem számít. Nyelvtől függetlenül igaz, hogy 2 listát nem beágyazott for ciklussal joinolok, hanem pl. hashtáblával, mert O(N^2) vs O(N) futásidő. De az egyáltalán nem érdekel, hogy a GC mit csinál. Azért ülnek az okos emberek az MS-nél, hogy jóra megcsinálják, és nekem ne kelljen vele foglalkozni. Annyi előnyöm van, hogy ha komoly számításigényes algoritmust kell írni, akkor azt meg tudom írni rögtön C-ben is. C-ben még egy Windowsos messagebox-ot sem tennék ki, meg minek írjak message loopot, ettől érdekesebb dolgokra kell az idő.

--

Ezt mind értem, meg szép, s jó. S hidd el, én sem akarom feltalálni a spanyolviaszt, ha nem muszáj.

De igazán kíváncsi lennék, hogy mennyire másképp hatna a „primitív típusokat érték szerint, az összetett (?) típusokat pedig referencia szerint adja át” mondat, ha nem kell előtte egy kicsit márpedig kézzel játszani ezekkel. Szerintem az ilyen ujjgyakorlatok (írj saját láncolt listát, annak mély, meg sekély másolatot, stb.) ebben kifejezetten sokat segítettek ezeknek a megértésében, még ha soha többet nem fogok magamnak láncolt listát építgetni, rendezgetni, mert nálam matekosabb mérnökök kitalálták. Ugyancsak ha nem kell legalább néhányszor eljátszanom a „dinamikus tömb mellé mindig tároljuk a méretét, s akkor már struktúrában” dolgot, akkor sokkal nehezebben érteném, miért úgy, ahogy, s egyáltalán miért van igényünk az oop-re...

Szóval nem, nem arra szerettem volna utalni, hogy majd kurvanagy projektjében mindenki agyon-optimalizált, utolsó bitekig faszarágizott rendezést ír, csak mert „tudja mi megy a háttérben”. Egyszerűen, szerintem erre kényelmesebb tanulni a magas szintű nyelveket.

De lazán lehet, hogy nincs igazam. Én nem Javaval/Pythonnal/C#pal/stbvel kezdtem, így ezt sosem fogom megtudni...

--
blogom

Processing: vizuális, alapokra jó, néhány grafikus algoritmust kitanulhatsz. Vagy valamilyen script nyelv: Python például (van magyar doksi stb.)., itt is legyenek meg az algoritmusok. Aztán majd kialakul.

Szerintem egy erős matematikai alap nélküli "programozás" csak legózás.
De ez csak az én szubjektív véleményem.

Majd ha odaér a hídhoz, akkor átmegy rajta.

"csak legózás."

Lehet.
A legózás javítja a képzelőerőt, a mikromotoros képességeket, a számfogalmat és alapvető statikai tapasztalatokat ad.

Programozáshoz nem kell matematika, csak logikai érzék!
Matek max akkor jön képbe, ha valami műveletet akarsz leprogramozni.

Saját tapasztalatból mondom.
Nálam rosszabb matekos aligha van a világon, mindig úgy rugdostak át belőle. Ennek ellenére, mivel nagyon jó logikai érzékem van (nem nagyképűségből mondom), a programozás nagyon jól megy.
Szinte gondolkodnom sem kell az adott probléma megoldásán, már írom is a kódot rá. Mint egy rutinos autóversenyző, akit kevés dolog tud meglepni :)

Szóval a lényeg, a matek nem tudás ne tántorítson el, köze nincs annak a programozáshoz! :)

>nem kell matematika, csak logikai érzék!
>matek nem tudás ne tántorítson el, köze nincs annak a programozáshoz!

OMFG
_____________________________
Powered by 1,3,7-trimetilxantin

Semmi isten.
Akad, amit csak (erős) matekkal lehet leprogramozni.
Akad, amit (erős) matekkal lehet gyorsan(-ra)/elegánsan/általánosan leprogramozni.
Minden egyébben pont annyi a matekigény, mint az írni-olvasni tudásé - itt a logika is inkább józan paraszti, mint a nagykönyvi.

<confession text="Szeretem a matematikát." />

+1

Én is így tapasztalom. Idejét sem tudom, mikor kellett egyáltalán gondolnom deriválásra meg hasonlóakra... Még az "egy nap hány másodperc"-et is úgy írom hogy "(60 * 60 * 24)". Majd biztos kiszámolom, ha már egyszer számítógép. :)

Bocs, de a példák, amiket hoztál, egyáltalán nem matematikaiak. A deriválás, amit kézzel csinálsz, nem matek, hanem program végrehajtása, ugyanígy a
60 * 60 *24. Matek az, amikor bebizonyítod, hogy a derivált létezik, vagy hogy (60*60)*24 = 60*(60*24). Vagy egy teljes indukció, amivel belátod, hogy a programod futásideje O(N^2 * log N).
A matek sokkal inkább jó intuíció és logika, mint számolás.

+1

nem szállnék be a "milyen nyelvet a kezdőnek" vitába, mert úgyis megkapom, hogy "Pascal, hülye vagy? miért nem javascript/php?" :)

Én a helyedben először kiválasztanám mit akarok, és inkább a hozzávaló szakirodalom/online doc keresésében kérnék segítséget. Annak ugyanis nagy szerepe van, hogy ne ilyen "tegnap megtanultam egy nyelvet, ma tutorialt írok belőle" cuccokból tanulj, kezdőként meg nehéz eldönteni, hogy mi a használható.

És nem, az elméleti hátterét (algoritmusok, kombinatorika/gráfok, stb) nem lehet kihagyni, az pedig bizony javarészt matek.
Ezekhez pár link (a teljesség igénye nélkül):
http://web.engr.illinois.edu/~jeffe/teaching/algorithms/
http://infolab.stanford.edu/~ullman/focs.html
http://algs4.cs.princeton.edu/home/
az Aszalós féle Algoritmusok könyv
stb

_____________________________
Powered by 1,3,7-trimetilxantin

"És nem, az elméleti hátterét (algoritmusok, kombinatorika/gráfok, stb) nem lehet kihagyni, az pedig bizony javarészt matek."

Ezen a ponton visszamennék a "mit akarokhoz", mert ha nem olyat akar, akkor igenis ki lehet hagyni; vagy a legrosszabb esetben 1-2 algoritmust, vagy boole-azonosságot újrafeltalál magának - ami nem is egy kimondottan rossz eset.

Első lépés: keress egy célt, amin dolgozni akarsz.

Amúgy sose késő belekezdeni semmibe, és célhoz választunk eszközt.

"bár linuxra nemrég váltottam át teljesen, nem félek a termináltól"

Akkor kezdd a héjprogramozással. Konkrétan a bash, amivel érdemes kezdeni.
Bár ez "csak" egy szkriptnyelv, de azért nagyon hasznos tud lenni.
És ha már jól megy, akkor lesz alapod, hogy "továbblépj": python, perl, php, C/C++, meg amiket még írtak itt.

--

nTOMasz
"The hardest thing in this world is to live in it!"

Vigyazz az elso programozasi nyelvre, ugyanis nagyon erosen formalja a gondolkodast, amit kesobb nem vagy csak nagyon nehezen lehet javitani.

"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

http://programmingisterrible.com/post/40132515169/dijkstra-basic

ez mindenre igaz, egy pontig, ezt a pontot pedig úgy hívják, hogy tanulóképesség. meg lehet tanulni tanulni, csakhogy legtöbb helyen ezzel nem foglalkoznak.

én azt vettem észre, hogy a programozás abban az értelemben egy friss tudományág, hogy még több irány domináns lehet egy-egy nyelv körében is, és nagyon erősen más tud lenni egy-egy könyv gondolkodásmódja az adott nyelvről, és ami még fontosabb, magáról a probléma megoldásáról. aki fentebb azt írta, hogy a programozás nem matek, az valószínűleg nem tanult olyan matematikai módszereket, amik pont ezt képesek segíteni, a probléma felbontását, elemzését

Elmeletileg az egesz oktatasi rendszer a tanulasi kepessegek kore epul(ne). Az agy nagyon plasztikus, joforman korlatlan lehetosegekkel. A vegeredmenyt viszont sokszor a "lenyegtelennek" tuno "aprosagok" jelentosen befolyasoljak.

pl.:
http://web.stanford.edu/~niederle/BNO.QJE.pdf
http://faculty.chicagobooth.edu/marianne.bertrand/research/papers/elsbs-hesV4b-b17.pdf

Janet Siegmund, Christian Kästner, Sven Apel, Chris Parnin, Anja Bethmann, Thomas Leich , Gunter Saake ,André Brechmann: Understanding Understanding Source Code with Functional Magnetic Resonance Imaging

"We found a clear, distinct activation pattern of five brain regions, which are related to working memory, attention, and language processing all processes that fit well to our understanding of program comprehension. Our results encourage us and, hopefully, other researchers to use fMRI in future studies to measure program comprehension and, in the long run, answer questions, such as: Can we predict whether someone will be an excellent programmer? How effective are new languages and tools for program understanding? How should we train programmers?"

http://www.infosun.fim.uni-passau.de/cl/publications/docs/SKA+14.pdf

http://www.huffingtonpost.com/chris-parnin/scientists-begin-looking-_b_4829981.html

Látom remek kis véleménycsere alakult ki a kérdésemből, nagyon köszönöm az eddigi válaszokat!
Elég vegyes véleményekkel találkoztam, szóval most semmivel sem vagyok előrébb... :D Azt eddig is tudtam, hogy nincs univerzális programnyelv... ez kb olyan, mint megkérdezni, milyen fájlrendszert használjak. :D

Igazából azért tettem le a saját játék fejlesztésének ötletéről, mert:
Eredetileg egy klasszikus Resident Evil-féle túlélő-horror játékot szerettem volna csináln, fix kameraállásokkal, előre renderelt hátterekkel és szerettem volna azt is, hogy ha egyszer elkészül, akkor mint open source programot, ingyenesen, forráskóddal együtt elérhetővé tegyem. Próbálkoztam sok fajta játékmotorral, de nem volt igazán olyan engine, ami kifejezetten erre a stílusra koncentrált volna. Voltak jók és rosszabbak is, de a renderelt-hátteres már nem módi manapság... ami hasonló volt stílusban, az a WinterMute, de az Point & Click játékokhoz van, nincs benne fegyver kezelés, meg matematikai dolgok (mint tárgyak, lőszerek számolása, életerő stb).
A poén az, hogy tudok:
Cinema 4D-vel modellezni környezetet (ergo háttereket), tudok még ha 90-es évek színvonalán is, de karaktereket modellezni és animálni és tudok bizonyos szinten hangokat szerkeszteni Sound Forge-al, illetve videókat vágni Sony Vegas-al. Szóval majdnem minden tudok, ami kellhet hozzá... tudok textúrákat is hegeszteni Photoshop-al, vagy GIMP-el és igazából csak két dolog hiányzott:
1) forgatóköny - elkezdtem megírni, de fejben most is előttem van az egész vízió. Szerintem érdekes játék lenne, még ha csak 1 végigjátszás erejéig is.
2) úgy éreztem, hogy ha meg akarom valósítani, mert nincs megfelelő motor, meg kell tanulnom programozni - és itt feladtam, mert nagyon komplexnek tűnt a dolog, nem tudtam, merre induljak el. Azt szeretném, ha a 3 nagy platformon: Windows, Linux és OS X - futna majd a jövőben, tehát valami nem MS-specifikus dolog kéne.

Bár jelenleg a "mi lenne ha...?" kategória ez nálam, azért megkérdezem így:
Ezen dolgok ismeretében milyen nyelvet ajánlanátok?

Mondjuk Python + OpenGL + SDL?

Pythonos meg SDL-es programokkal volt már dologom Windows alatt, de mindig olyan "fapados", "majd szétesik" és "vacak" érzést keltett a dolog. Pl... Frets on Fire... tök jó Guitar Hero klón, de mindig olyan bugos volt nekem, hogy össze-vissza fagyott... Na most ezek után...? Persze lehet, hogy ez nem a nyelvek hibája, hanem a program maga hulladék. Nem értek hozzá, nem tudom. Csak az első benyomásom nem lett jó. Másrészt a kedvenc zenelejátszóm, a deadbeef pont Python.


Linux Mint 17 Cinnamon 64-bit

Jót fog tenni ha valamilyen, bármilyen programozási nyelvben végigrágod az alap algoritmusokat. Ez a programozóképzés alapja.

Persze lehet, hogy ez nem a nyelvek hibája

Nem lehet. Biztos. Erősen valószínű (csak nem akarok nagypofájú megmondóember lenni).

Azok listája akik sikerrel használják a Pythont. Szerintem ess neki, használd néhány hónapig, aztán alkoss róla véleményt.

skip this

Ez egy kifejezetten jó kurzus szerintem(lehet ingyen csinálni):
https://www.udacity.com/course/cs101

Kötelező olvasmány.

Én először C-vel próbálkoztam a főiskolán, az kissé megfeküdte a gyomromat. Aztán valamivel később Pythonnal nekifutottam még egyszer (mármint a programozás tanulásának) és akkor már sikerült venni az akadályt. C-t is sikerült azóta megtanulni, de nem használtam, nem volt rá szükségem. Nyilván ez nálad alakulhat másként.

A coursera.org-ot tudom ajánlani, jó oldal és sok hasznos képzésük is van programozás témakörben. Python tanuláshoz pedig Gérard Swinnen: Tanuljunk meg programozni Python nyelven című könyvét.

Köszi!
Jót mosolyogtam, mert tőled függetlenül véletlenül pont arra bukkantam rá Python programozás kapcsán. Azt hiszem a Python lesz a megfelelő kezdés... aztán ha megy, akkor elmélyítem, ha meg nem, hát legalább megpróbáltam.

Hálás köszönet mindenkinek!


Linux Mint 17 Cinnamon 64-bit

Python sem rossz választás... ha belejössz, mehetsz ki a Google-höz programozni... :)

Még ezt próbáld ki, több ismerősöm végigcsinálta, aki soha nem programozott:

http://code.org/

Bill Gates és M. Zuckerberg segít. Nem vicc! Kapsz a végén egy szép oklevelet névre szólóan, hogy tudsz programozni.
Jó a szándék, tetszik az ötlet. Arra például jó, hogy megértse valaki a ciklusok lényegét.

Sakk-matt,
KaTT :)

Lelkes C++ és C rajongóként javaslom a Pythont. Rengeteg barátságos, pedagógiailag korrekt oktatóanyag fellelhető hozzá a neten, ami szerintem nem mondható el C-ről meg C++ról. Ettől függetlenül az Pythonos alapok után mindenképp érdemes még ránézni majd ezekre, akár egy "Learn C the hard way"-t végigpörgetni (ebből talán van Pythonos változat is, de azt nem ismerem és nem is merem úgy ajánlani, de ha olyan jó mint a C-s verzió akkor nem is kell tovább keresned :-) )

feliratkozás

Lisp/Erlang/Haskell. Érdemes ezek közül valamelyikkel kezdeni?

Nem erdemes funkcionalissal kezdeni, amig a mainstream nyelvek imperativ-proceduralis-oop-sek. Ha komolyan gondolja a fejlesztoi szakmat es van par eve tanulasra, akkor erdemes ezek egyikere is sort keriteni elobb-utobb latokor tagitas/agytorna celjabol.

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám

már bocs, de ez hülyeség. pont hogy azért, mert még nincs befolyásolva a procedurális és imperatív paradigmával, relativ gyorsan meg tudná érteni a funkcionális nyelvet. volt itt erröl egy szál nem olyan régen: http://hup.hu/szavazasok/20140320/milyen_a_kapcsolatod_a_funkcionalis_programozasi_nyelvekkel_paradigmaval

itt egy link megnézni, egyáltalán szimpatikus-e a dolog: http://learnyouahaskell.com/
--------
HOWTO: Zentyal+Zarafa+Setup+Outlook+Thunderbird+mobilephone sync

Ha rögtön rendkívül hatékony/tömör módszert akarsz tanulni, és nem sajnálod magad (legjobb egy kis mazochizmus), akkor igen.
Ha inkább kicsi, de fájdalommentes lépésekre szánod magad, ezeket írd fel egy cetlire, és majd akkor vedd elő, ha már nem elkezdeni, hanem haladni szeretnél.

A C/C++ elég bátor kezdő nyelvnek. Erről nem is akarlak lebeszélni, de a saját életed lenne egyszerűbb + több eredménnyel és sikerélménnyel járna, ha mondjuk egy pythonnal kezdenél. Funkcionális nyelvet (erlang, haskell, ...) meg inkább csak akkor javasolnék, ha már van egy kis gyakorlatod a programozásban. Pythonnal is lehet játékot írni, mmo-t is.

De a C is egy jó választás; C++-t viszont nem javaslom első nyelvnek, mint ahogy a C#/Java párost sem. PHP-t meg úgy egyáltalán nem javaslom, .js-t meg tényleg csak akkor ha böngészős cuccokkal akarsz foglalkozni. Igazából a C és a python párost javasolnám, mindkettőt, de főleg a python-ra koncentrálva.

A matek meg valószínűleg akkor lesz hátrány, ha épp olyan területre tévedsz. Pld. Machine Learning, AI, statisztikák, Computer Vision, és sok sok stb stb...

De arra a kérdésre, hogy "Érdemes nekem egyáltalán?" egyértelmű a válasz: igen. :) Ha ez egy régi vágyad, akkor kezdj neki már ma, minek halogatnád?

Én C-t nem javasolnám, főleg arra nem, amire neki kell (játékfejlesztés). Használjon egy magas szintű programnyelvet, jó kis könyvtárakkal, hogy tényleg a feladat megoldásán tudjon dolgozni, és ne a nyelvvel küzdjön. Amióta van OPENGL támogatás a böngészőben, én simán azt mondanám, hogy javascript + html5-tel essen neki a dolognak, hamarabb is lesz sikerélménye, és nem a nyelvvel kell küzdenie.

A C-t én sem a játékfejlesztésre javasolnám, hanem azért, mert szeretne megtanulni programozni. Véleményem szerint hasznos - még akkor is, ha később nem fog C-ben írogatni programokat.

Amellett, hogy kisteherautót vezetni is nagyon hasznos, önlábonlövésnek éreztem volna hajdan azzal indulni az úrvezetői jogsiért.

Itt érdemes kezdened: https://learn.code.org/
Nem vicc, szerintem nagyon jó. :)

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
Szerinted…

Ha "csak" programoz(gat)ni szeretnél, akkor tökmindegy, hogy miben tanulsz, arra, hogy kiírd, "Hello World", meg kiszámolj ezt-azt, bármi képes, vagyis ahogy szerintem jól is érzed, kell egy cél (nálad: Resident Evil játék készítése), és ahhoz eszközt választani.

Más kérdés, hogy egy full 3D játék készítése vagy 1) baromi nagy cél, sok matekkal 2) nagy cél, sok gányolással és "mástól-lopok"-kal (és közepes sok matekkal, legfőképp lineáris algebrával).

Én azt javasolnám -- ahogy azt mások is előttem --, a programnyelvek alapvetéseit (változók, eljárások, függvények, programszerkezet, szekvencia/ciklus/elágazás , stb.) a környezetednek (Linux) megfelelő nyelven sajátítsd el, tudj megírni pszeudo kódban pár alap dolgot (pl. kávéautomata működése), vess pár pillantást az algoritmusok és adatszerkezetek témakörre, s ha ezek az alapok biztosak, kezdhetsz felfele lépegetni.

Ha kifejezetten 3D játékkészítés marad a meghágandó hegy, akkor a Unity 3D game engine-t javaslom, ebben pikk-pakk össze lehet dobni játékokat (UnityScript = JavaScript, C# v. Boo), de ha az előbb említett alapokat kihagyod, akkor még azt se fogod tudni, hogy milyen adatszerkezetben tárold el a játékosod értékeit.

Fontos, hogy amit magadról leírtál, azt úgy hívják: dilettáns, kicsit mindannyian ezek vagyunk (a nagyokos dilettánsok a polihisztorok ;) ), és ha te programozni akarsz, akkor hagyd az artista munkákat másra (vagy rosszabb esetben vásárolj be (pl. a Unity-nek is van store-ja ilyen célra)), te pedig képezd ki magad rendes kódernek.

Ha pedig igazán meg szeretnéd szeretni a programozást, akkor valamelyik virtuális világban való szkriptelést próbáld ki (istennek lenni jó).

Kicsit elgondolkodtam azon, amit írtál, de valamelyik ponton hibádzik. :)
Lehet ugyanis, hogy az "artista" munka közelebb áll hozzám, mint a programozás, sőt!
(mivel saját szakállamra tanulgattam, szerintem azért nem rossz, amit tudok produkálni - ezen tudnék csiszolni még bőőőőőőőven)
Ami azt illeti, lehet a programozást kellett volna másra bízni... épp csak akkor állandóan meg kellene beszélni a programozó(kk)(-+)val, hogy mit, hogyan szeretnék... és aztán az vagy olyan, vagy nem... és féltem belevágni egy projektbe úgy, hogy nincs meg hozzá a kellő tudás, ami szerintem érthető. Így viszont, saját szakállra, az egész kockázat nélküli, hisz ha nem sikerül, legfeljebb a saját időm/munkám veszik kárba, nem rabolom más idejét. Vagy rosszul látom?


Linux Mint 17 Cinnamon 64-bit

Biztosan találsz olyan fazont a nagy merítésben, aki a frusztrációját rajtad verné le, de nagy általánosságban el merem mondani, hogy ezt a bizniszt EGYÜTT, EGYMÁSTÓL tanulni akkor is szórakoztató, ha rövid távon nem születik belőle nagy mű vagy nagy profit.

Hehe, én mikor rá voltam pörögve a 3D-s játék témára, akkor utáltam azokat a részeket, mikor a 3D objektumokat kellett összevadásznom meg konvertálgatnom meg blenderrel matatnom, inkább foglalkoztam volna csak a programozás részével - akkor jól jött volna egy "artista" mellém. Nyugodtan rabold csak az idejét másnak, nem gond az :)

Nagyon fontos, hogy ne akarjunk túl nagyot, nekünk anno (nekem is), rengeteg behalt kis próbálkozásunk volt; semmi komolyra nem kell gondolni, ilyen gimis próbálkozások.

Ami tuti dolog, és most hadd koncentráljak a fun részre (nekem a legfontosabb! :) ), az az Adventure Game Studio (Wintermute-hoz hasonló engine) fóruma.
Az AGS-sel a hőskorszak point n click játékait lehet könnyűszerrel (hah...) leprogramozni, sierrás, lucasarts-os kalandjátékok ezek, és mai napig aktív fóruma van, rengeteg letölthető játékkal.

Az AGS remek szemléletet tud adni, és ha járatos leszel benne némiképp, kis bátorság és részt vehetsz a különböző házi versenyeken. (Óriási díjakért - fórum badge ;.)

Legjobb ezekből az OROW - One Room One Week -> 1 heted van egy egy szobás játék elkészítésére.
MAGS - eh.. ez egy havi verseny, itt rendes játékot kell készíteni.

A témát az előző verseny győztese adja, MAGS-ban most ez:

Is this a sporting event or a road trip? It's not clear. What is clear, though, is that somebody is going somewhere with some sense of urgency.

Basically, create a game focused on a journey and a physical destination. Maybe it's a high-speed race, or maybe just a vacation. Pick a place to be and let your imagination fill in the details. The location could be modest and personal, such as a favorite childhood hangout, or it could be something on a larger scale, like the moon. The character doesn't even have to ultimately arrive at their goal, as long as they try to get there.

Nem bírok mindent végigolvasni, lehet, hogy más is írt hasonlót.

Szóval: marhára szubjektív (=tudom, hogy tévedhetek, nem akarok róla vitatkozni) véleményem a következő.

1) Első nyelvnek semmiképp ne válassz olyat, ami csak objektumorientált módon használható. Pl. Java, C#, C++
2) Első nyelvnek igenis jó az, ha van parancsértelmezős módja is, pl. a Python-nak: jól lehet próbálkozgatni.
3) Valamikor az elején (ha nem is az elsőnek) mindenképp tanulj C-t. A generált kód hatékonyságában nehéz vele versenyezni, sok helyen használják, stb.
4) Ne gondold, hogy nem kell legalább 5 nyelvet legalább alapszinten megtanulnod, amire megtalálod a stílusodhoz/problémádhoz illőt.

Ha valami konkrétabb kell:
a) Elsőre Python. Sok ismerősöm ebben tudott megtanulni programozni a C, Pascal, stb. kudarcai után.
b) Másodikra C. Primitív, de hatékony és alapvető.
c) Utána jöhet Java, C++, vagy bármi.

Po mójemu.

> és alapvető.

Dehogy is, te jó ég. Akkor alapvető, ha egy adott feladathoz az a legjobb.

A szopassuk magunkat hónapokig, de csak az íze kedvéért... hát, ez a történet nekem annyira nem fekszik.

Jó programozónak illetve mérnöknek annál inkább C is és assembly is kötelező.

lock

Az assembly főleg. ;)

Hát ja. Amikor mán a pointer szó hallatán is lassan szégyen lesz nem köpni.

Nem is ez a lényeg, hanem eleve mi az, hogy mérnök? Milyen mérnök? Mondjuk a légiközlekedési szakirányú közlekedésmérnöknek (NYF-en = pilótaképzés) szüksége van assembly tudásra? Faipari mérnöknek kell a C? Az építőmérnököknek az assembly melyik dialektusát érdemes először megtanulni? Stb.

Pedig ez nem akkora baromság. Érdemes azért tudni, mitől megy a mosógép.

> Érdemes azért tudni, mitől megy a mosógép.

Nem. Baromira nem érdemes, hacsak nem konkrétan az a munkád, hogy mosógépeket programozz.

De, érdemes, mert mosógépprogramozással foglalkozol.

De nem, nem érdemes, mert nem minden mérnök foglalkozik mosógépprogramozással. (Nem, a mosógép rendeltetésszerű használata (pl. mosás elindítása) nem programozás.)

Nekem elég az, hogy ezzel Árpi / ESP is egyetért. A további vitát vele intézd :P

"Akkor alapvető, ha egy adott feladathoz az a legjobb."

Jellemzően, de azért azt ne felejtsük el, hogy - főleg *xos környezetben - a C legalább passzív ismerete (értsd: olvasni tudni a kód lényegét) egy rakás egyéb nyelv és adatleíró passzív vagy aktív olvasásához nyitja szélesebbre az ajtót; meg az olyan finomságokra, mint az strace/ltrace/truss kimenetéből kisz[úű]rni azt, hogy milyen dokumentálatlan alapfeltétel nem teljesülése miatt megy valami a nirvánába, vagy Helen Keller-módba.

Első nyelvnek semmiképp ne válassz olyat, ami csak objektumorientált módon használható. Pl. Java, C#, C++

Habár az első mondattal egyetértek, de a C++-t annyira lehet **csak objektumorientált módon használni**, mint amennyire a python-t.

Ettől függetlenül a C++ nem kezdő nyelv.

Én is, én is, én is akarok véleményt mondani!

Java/C#/Python - mert általánosak, mert webre és nem webre is megfelelőek és mert eléggé különböznek.

sub

+1
Érdekes flame újra.

F@szom!
Logo.
Azt még nem mondta senki.

LOGO jó nyelv.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
Szerinted…

Miért is nem gondoltam erre... :D


Linux Mint 17 Cinnamon 64-bit

Sajnos sokszor csak úgy merül fel a LOGO, mint „a nyelv, amiben vonalakat lehet húzkodni”, pedig a LOGO jóval többről szól ennél. Ha nem programoztál még, akkor mégis ezt javaslom kezdésnek, mert programnyelvektől függetlenül ad egy szilárd alapot.
(Ui.: Érdemes Google Chrome-ban használni, mert régebben összeakadt FF-ben)

Aztán itt van még a Python és hozzá ez a remek könyv: http://mek.oszk.hu/08400/08435/08435.pdf

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
Szerinted…

Általánosban, egész kis koromban már tanultunk Comenius Logo-t.
(23 vagyok)


Linux Mint 17 Cinnamon 64-bit

Na látod, akkor tutira azzal kezdenék, amihez már van alapom. Utána lehet más nyelvekre és eszközökre váltani, de alapozáshoz ideális.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
Szerinted…

Ha már Python, ne feledkezzünk meg a Full Circle csapat remek munkájáról sem:
http://fullcircle.hu/category/sorozatok/python-sorozatok/

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
Szerinted…

Write in C

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

TouchDevelop

Alapvetően gyerekeknek szóló programozástanító eszköz, de szerintem elég ötletes. A gondolkodáson van benne a lényeg, nem a tényleges kódon. A tutorial végére eljutsz oda, hogy tudsz flappy birdöt csinálni.

Persze, ez is Microsoft termék, az meg ugye maga az űrdög. Viszont legalább mobilon is lehet nyomkodni, miközben vársz a buszra.

+1 látatlanban MOOC és Python miatt (programozni - gondolkodásmód, algoritmusok, összetevők, háttérben mi megy, pattern stb. - próbálj előbb megtanulni, a nyelv nem a legfontosabb még ilyenkor.)
És akkor már ha ráérsz: How to Learn Math: For Students - hátha több kedved lesz matekhoz is. Amerikai szemlélet amúgy is más (szájbarágósabb tananyag, visszamegy korábbra stb.), ha "csak" az nem passzolt stílusodhoz, logikádhoz, akkor még összejöhet. Ezért is működnek a Head First programozásos sorozatok egyeseknél, mások pedig megőrülnek a bőbeszédű magyarázataiktól.

Sztem feltétlen foglalkozz vele. legalább egy kicsit, hogy lásd miről is van szó....
Aztán ha úgy látod h nem megy legfeljebb abbahagyod.