A Pythonnal kezdem

Korábban volt egy bejegyzésem ahol programozási nyelvek iránt érdeklődtem és a tanácsok (illetve különböző interneten talált írások) alapján úgy döntöttem, hogy a Python megtanulásával kezdem, mivel a kezdők számára az a legjobb.
Egyébként a "Hogyan lesz az emberből Hacker" című írást olvasva egy-két sorban esküszöm magamra ismerek. Néhány mondatnál olyan mintha csak tükörbe néznék... :D

"A hacker problémákat old meg és dolgokat hoz létre, hisz a szabadságban és a kölcsönös önkéntes segítségnyújtásban."
"Ha társadalmilag kirekesztett vagy, az segít abban, hogy az igazán fontos dolgokra koncentrálj, mint pl. az elmélkedés és a hackelés."
"Ezért sok hacker felvállalja a ``kocka'' bélyeget, sőt, büszkén használják a durvább ``geek'' kifejezést is -- így függetlenítik magukat a konvencionális társadalmi elvárásoktól."
"A hacker természeténél fogva hatalomellenes."
"Ha azért vonz a hackelés, mert nincs életed, az is OK -- legalább nem vonja el semmi a figyelmedet. Lehet, hogy később még az is kialakul."

Hozzászólások

szerintem javaval kezdj:
-Objektum orientaltsagot hamar beepitheted a tudasodba
-GUI-t eleg egyszeru tobbi nyelvhez kepest javaban irni

En C-vel kezdtem es nem volt a legkonnyebb megszokni utana a javat

A különböző platformok, futtatókörnyezetek, verziószámok közötti mizéria szerintem kikészíti idegileg, ha most ismerkedik a programozással. python tökéletes ismerkedni.
Szerintem az a jó ha mondjuk egy szakirodalom rávezeti az oop szemléletre egy olyan nyelvvel amivel van lehetőség oop-re de nem követeli meg.

"olyan mintha csak tükörbe néznék"

Ez csak önigazolás.

Eric S. Raymond életfilozófiáját nem érdemes komolyan venni, egy önjelölt, felelőtlen, elfogult és egomániás hacker, ettől függetlenül olvasd el tőle A katedrális és a bazárt.

A Python azonban remek választás, a C++-ot javaslom mellette olyan 2-4 héttel azután, hogy elkezdtél Pythonozni. Meg tudj rendesen angolul.

Ezután már el is felejtheted ESR-t, egy kicsit holdkóros szegény, síkhülye a társadalomtudományokhoz, így jobb híján az anarchista ostobaságaival szórakoztatja a nagyérdeműt (ha nem lennének államok és mindenkinél puska lenne az lenne a legjobb stb.), hab a tortán, hogy még neopaganista (újpogány) is, open source körökben egyébiránt nyilvánvaló okokból népszerű.

Az anarchizmusról annyit, hogy egy olyan világban, ahol már a kereskedelmi- és médiacégek "tevékenysége" is olyan erőszakos, hogy a diktatórikus módszerek közelében jár, könnyű anarchistává válni. Egyébként van benne valami halvány igazság... Valahol.
Újpogány? Az mi? Nem is tudtam, hogy szegénynek ilyen problémája van.
ESR-t pedig addig, amíg a Wesnoth fejlesztője, ne szívassátok, ha lehet!

A hacker filozófiát se vegyük komolyan?

"van benne valami halvány igazság... Valahol."

ESR leginkább fogalom nélkül szakért társadalmi kérdésekben.

"Újpogány?"

Kereszténység előtti hiedelmek és népszokások felelevenítése.

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

ESR igen láthatóan és erősen kötődik a primitívséghez, közel minden téren (pl. szeret másokat halálosan megfenyegetni).

"A hacker filozófiát se vegyük komolyan?"

Tőle még azt se igazán :-)

Hát az biztos, hogy hatásosan tud írni, ha akar. Ezt a dolgot a fegyverekről csak most vettem észre, pedig nem egyszer rágtam át magam rajta.
Így az írásait olvasgatva rá se jöttem volna, milyen bunkó erőszakos és hogy ilyen téves eszmékben hisz. Annyiban igaza van, nem szabad a hatalomnak egy helyre koncentrálódnia, mert "a nagy hatalom nagy felelősséggel jár." Szerintem valahogy úgy kéne, hogy egyik párt sincs "kormányon", hanem mindegyik beleszólhat valamennyire a dolgokba, és lenne még valami rendfenntartó bigyó, hogy ne essenek egymásnak a politikusok. :D De ez már megint az az átkozott politika.

Akár a rekordok könyvébe is bekerülhetne ez a thread. :-) Ilyen rövid idő alatt a programozási nyelv választásától (témaindító bejegyzés) eljutni a maffiáig, a pártokig és a terroristákig, becsülendő teljesítmény.

-----
"Én vagyok a hülye, hogy leállok magával vitatkozni."

http://hu.wikipedia.org/wiki/Argumentum_ad_hominem

"A gyalázkodó vagy sértegető típusú érv (más néven argumentum ad personam) azt jelenti, hogy egy személy tulajdonságainak vagy cselekedeteinek hibái miatt nem fogadjuk el, amit mond, függetlenül állításainak tartalmától.

Példa:
„János téved, mikor azt állítja, hogy Isten nem létezik, mert ő egy elítélt bűnöző.”"

Óvatosan.

kétértelmű az a "kezdők számára a legjobb"
ha az a lényeg hogy egy adott problémát gyorsan megoldj úgy hogy nem tudsz programozni, az a legjobb, ha viszont programozni akarsz megtanulni, szerintem hülyeség, de tényleg

c, aztán java (vagy ízlés szerint c++ vagy c#), utána lehet python

egyetemen is c-vel kezdik (ez így most magyarázat nélkül)

a számítógépek nem változnak olyan nagyon gyorsan hogy a programozás evolúciójában lehetne csak úgy ugrálni (nem tartunk még valami neurális vagy kvantumszámítógépeknél, még mindig őskövület architektúrák maradványait használjuk), kb ahogy az embrió is végig megy gyorsított ütemben a teljes evolúción, a programozóak sem jó ha egy mostani viszonylag kész rendszert betanul, ha később változik a világ nem tudja követni, és nem ismeri a számítógép belső működését*

tanítani kezdőket? valóban kényelmesebb pyhtonnal, mert lesz sikerélménye és így te is örülni fogsz, de biztos hogy ez így jó?

kellenek a pointerek, mert így működik a gép, aztán majd lehet rá építeni.. röviden legalábbis, most nem mennék bele olyan hosszú indoklásokba amit linkeltél, pl hogy egyesek nem ismerik a gépet és ahelyett hogy elolvasnák a manualt nem úgy próbálják meg kitalálni hogy működhet hogy ismerik nagyjából a rendszert, hanem hogy ők mit szeretnének... pl természetesnek veszik a "pythonnal kezdők" hogy sqrt(4)-2==0

(((*ps: igen, a pyhton kicsit olyan mint a betanított munkás az egyetemistával szemben, az első év után a betanított művészi könnyedséggel gyárt valódi tárgyakat, kezeli a bonyolult gépet, az egyetemistát a közelébe se engedném, jobbik esetben csak lehányja, rosszabb esetben felrobbantja... aztán telnek az évek, elavul a gép, had ne folytassam hogy nagyobb befektetett munka hosszabb távon térül meg, nem úgy mint a python sikerélménye)))

pps: ezt az előbbit persze erős költői túlzásnak szántam, de a lényeg hogy a python túl jó, egy/a kész programozás, nem az oda vezető út :)

A C kezdőnek még csak-csak, de a java szerintem szörnyű arra hogy programozást tanuljon az ember.

Jobb helyeken (CMU) azért érzik már hogy nem jó ötlet az OO oktatás, itthon még szinte most jön be igazán :(

"Object-oriented programming is eliminated entirely from the introductory curriculum, because it is both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum."
http://existentialtype.wordpress.com/2011/03/15/teaching-fp-to-freshmen/

ez az oo egy kicsit erős, de nem mennék bele mert most nem ez a kérdés hogy folytassa hanem hogy hogy kezdje, tehát az sem kérdés hogy az oo _párhuzamosan_ mehet nyugodtan már szinte az összessel, beleértve a deklaratívakat is, és az is más kérdés hogy a java csak nagy ugrás-e jó oktatás nélkül vagy csak mennyiségre nagy (de fejtágításnak minél fiatalabban nagyon jó)

Python és a betanított munkás. Mondok én is egy hasonlatot, hátha az jobban megvilágítja a lényeget. A fúvós hangszerek oktatását szinte mindenütt furulyával kezdik. Azért mert egyszerű, hamar ad sikerélményt, mégis alkalmas az alap dolgok elsajátítására. Légzés, kottaolvasás, ujjmozzgások, stb. Ugyanígy a Python is alkalmas az alapok oktatására. Algoritmusok, adatstruktúrák, stb. Aztán meg jöhetnek a "komolyabb" nyelvek meg a gép ismertet, meg a többi. Persze akadnak olyanok is akik furulyán is művészi szinten tudnak zenélni :)

mindegy, a python magas szintű, és sokak szerint az alapoknál kell kezdeni, bitkergetéssel, logoteknőc irányítással, pitypangfújással..

alapvető algoritmikus ismeret ugyanúgy megszerezhető c-ben mint pythonban, de előbbivel közelebb van ahhoz ahogy a gép működik

nem, nem azt mondom hogy lyukkártyával meg assemblyvel kezdjen, de legalább egy kis bemelegítő pár hónap c után ugorjon a kígyónak (amikor már vele párhuzamosan mehet a perl, szkriptnyelvek mellett az oo és a deklaratív nyelvekkel való ismerkedés.. de ez már a folytatás, nem pedig a kezdés)

"bemelegítő pár hónap c után ugorjon a kígyónak"
Erről meg eszembe jutott egy másik hasonlat. Az úszás oktatását azzal kellene kezdeni, hogy egy ideig minden nap bedobjuk a tanoncot a hullámzó Tiszába. Aztán majd pár hónap után már mehet a kismedencébe, hogy megtanítsuk neki a kartempót, lábtempót, meg a levegővételt. Kicsit biztonságosabb körülmények között. Már ha első nap bele nem fulladt a Balatonba :)

Olyan szempontból nem hülyeség pythonnal kezdeni, hogy legalább az indent jelentőségét megtanulja. Hány, meg hány olyan lelkes kezdő forrását javítgattam anno progmat beadandókban, akiknek teljes sötétség volt az indentálás lényege...
Viszont hosszabb távon elég hamarosan a pythonnal való ismerkedés után már mindenképpen ajánlanék egy C-jellegű nyelvet (C, C++, C#, Java, stb.)
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods

(((nagyon halkan, lehet inkább magánba kellene írnom, de van különbség hogy beadandóról van-e szó vagy valaki azt kérdi mivel kezdjen.. előbbinél magadat (is) kell kímélni (más a didaktika is), utóbbinál nem kell hamar sikerélményt kapnia, van elég programozó, ne ottragadjanak hanem akit nem riaszt el a c elsőre azok maradjanak meg)))

:)

Első sorban nem a nyelv a lényeg. Olyan mélyen úgyse fogsz belemenni (első pár hónapban), hogy befolyásoljon. (azért ajánlott c, c++, java, python, de javascript, php se elvetendő ötlet, gyorsan tudsz benne látványos dolgot írni, egyszóval könnyen jutsz siker élményhez)
Olyan nyelvet válasz, amihez sok dokumentációt és segítséget találsz. Java és python elég felkapott nyelv, de ha van ismerősöd, aki c++ -t jobban ismeri, nem hátrány, ha azzal kezdesz.
Összegzés:
Ezek a nyelvek elég jól dokumentáltak, sok howto -t, manualt lelsz hozzájuk. Buborék rendezés és egyéb algoritmusok implementálását nem befolyásolja a nyelv, ott úgyis maga a gondolkodás mód a lényeg.

Bar a Python nem rossz valasztas (ESR mint peldakepp annal inkabb), en erosen Perl parti vagyok, mert aki Perlben tud programozni, mindenben tud. Raadasul hany olyan nyelv van, ahol van ->is_perfect?, vagy olyan modul, ami megmondja mennyire vagy reszeg, vagy amely kepes az unalmas szavakat keppe formalni, es az igy kapott kod is futtathato lesz (raadasul ekvivalens az eredetivel!)?

Tovabba: http://xkcd.com/224/ mindent elmond, amit Perlrol tudni kell.

--
|8]

A Python jó kezdésnek, mellé a PHP-t javaslom.

-nagyonsok

A PHP nem jo. Python, Ruby (a kozosseget & fejlesztoket kifejezetten nem szeretem, de a nyelv maga nem rossz), Perl, Java, C, C++, Haskell, Erlang mind mind tobbet er, mint akarmelyik PHP.

Kiveve ha PHPisti akar lenni az ember, akkor viszont felejtse el a tobbit, mert semmi szuksege ra.

--
|8]

Az embernek mindig szüksége lehet rá, hogy össze tudjon rakni egy működő sitetot, meg az sem baj, ha az adatbázis kezeléssel megismerkedik.
>mind tobbet er, mint akarmelyik PHP.
(Írod ezt egy PHP-ben megírt fórumban :D)
Elég sok tehetségtelen, dilettáns java "programozóval" találkoztam már, akik képtelenek voltak bármiféle hasznos produktum előállítására. Szerintem abban is megegyezhetünk, hogy a _jó_ PHP programozónak _mindig_ van állása.

> Az embernek mindig szüksége lehet rá, hogy össze tudjon rakni egy működő sitetot, meg az sem baj, ha az adatbázis kezeléssel megismerkedik.

Es ehhez miert kell PHP? Mind Rubyban, mind Pythonban ossze lehet rakni egy mukodo siteot, sokkal hamarabb, mint PHP-ban, es meg jobb is lesz. Raadasul az utobbi ket nyelvhez irt ORM-ek messze jobbak, mint barmely PHPs ORM amivel eddig talalkzotam.

> (Írod ezt egy PHP-ben megírt fórumban :D)

Attol meg nem lesz jo, hogy irok ra. ENNYIRE azert meg nem nagy az egom, hogy igy gondoljam (bar kozelitek hozza, neha :P).

> Szerintem abban is megegyezhetünk, hogy a _jó_ PHP programozónak _mindig_ van állása.

A jo programozonak mindig van allasa, nyelvtol fuggetlenul. De ha az ember most kezd tanulni, esetleg erdemes lenne olyan nyelvet valasztani, amibol nem akkora a tulkinalat, mint PHPistikbol. Egyreszt egyszerubb kitunni, masreszt nem skatulyazzak be az embert annyira, harmadreszt csak. Python es Ruby programozora is mindig van igeny, es kevesbe szivatjak oket agyba fobe a magamfajta emberek. :P

--
|8]

>Mind Rubyban, mind Pythonban ossze lehet rakni egy mukodo siteot, sokkal hamarabb, mint PHP-ban, es meg jobb is lesz.
ÖÖÖ, nem is értem, akkor miért elterjedtebb sokkal(Talán a te véleményedet nem kérdezték az ügyben?)? Mitől lesz jobb?

>De ha az ember most kezd tanulni, esetleg erdemes lenne olyan nyelvet valasztani, amibol nem akkora a tulkinalat, mint PHPistikbol.
Jól kell csinálni, akkor nem érdekes, hogy sokan vannak abban szakmában.

> ÖÖÖ, nem is értem, akkor miért elterjedtebb sokkal(Talán a te véleményedet nem kérdezték az ügyben?)? Mitől lesz jobb?

Sok esetben nem a jobb terjed el. A PHP egy nagyon jo pelda erre. Egyebkent valoszinuleg azert, mert rettento hamar ossze lehet dobni benne valami szutykot.

Ellenben amikor olyan jopofasagok vannak benne, mint pl ez a bug, es ez csak egy icipici kis problema, akkor nem tudom komolyan venni a nyelvet. (Ajanlanam minden PHP fannak, hogy probaljon meg belenezni a php interpreter kodjaba, tegye a szivere a kezet, es mondja el rola, hogy mit gondol, oszinten)

> Jól kell csinálni, akkor nem érdekes, hogy sokan vannak abban szakmában.

Ez igaz. Viszont nehez ugy jol csinalni, hogy az alap az egy ingovany szarkupac ;)

Persze van par kiveteles tehetseg aki szarbol is egesz jo varat epitett, de azert kevesen vannak ilyenek. A magam reszerol en inkabb teglat hasznalnek, praktikusabb, es kevesbe budos.

--
|8]

Mindent meg lehet csinalni PHP-ban, mert turing complete. Brainfuckban is mindent meg lehet csinalni. Ettol meg egyik sem lesz jo.

Azert nezd meg azokat a nagyon nagy oldalakat, mindenhol eleg csunya hakok vannak PHP korul, hogy az tenyleg megbizhatoan es nagy rendelkezesre allassal menjen. Nem veletlenul.

--
|8]

Korbehakolni a szar alapot? Nem.

De, hamar itt vagyok, mondok egy peldat, ami - szerintem - pythonnal merfoldekkel konnyebb, mint PHP-ban: https://github.com/algernon/mojology

Kivancsi vagyok, hogy PHP-ban ez mennyi kod lenne (a hasznalt egyeb kiegeszitesekkel egyutt), es mennyi ido alatt lehetne osszehozni, es mennyire lenne olvashato a kod. mod_rewrite nem hasznalhato (se egyeb apacsos megoldas).

--
|8]

Nem mysql. Latom nem sikerult meg a leirast sem elolvasni.

Es nem az zavar, hogy at kell lepni a szabalyokat (megteszem azt mas nyelven is, ha ugy talalom jobbnak, elvegre a szabalyok azert vannak hogy az ember athagja oket :P), hanem az, hogy mind az interpreter meglehetosen bugos (lasd pl a bugot amit linkeltem - lassuk be, az kb hasznalhatatlanna teszi a PDO-t rengeteg celra, es ez csak a sok hasonlo kozul), a neten fellelheto php kodok meg annal inkabb.

A nyelv maga annyira nem zavar, bar a \ mint namespace separator, hat finoman szolva is nevetseges, dehat izlesek es pofonok.

--
|8]

Eselytelen, ilyen bugokkal. Es igen, van doksi. Nem is a mongodbs resz a lenyeg, mert az kb mindenhol ugyanaz, hanem a tobbi.

Na, ha a tobbit megirod nekem PHP-ban kevesebb koddal (beleertve a felhasznalt modulokat is), mint a pythonos kodom, akkor megigerem, hogy felere veszem a PHP elleni kirohanasaim.

--
|8]

Mennyinél is tart a felajánlók száma?

----------------
Lvl86 Troll