Könyvfordítás: Hogyan gondolkozz úgy, mint egy informatikus? Tanulás Python3 segítségével

A Debreceni Egyetemen elkészült Peter Wentworth, Jeffrey Elkner, Allen B. Downey és Chris Meyers könyvének magyar nyelvű fordítása.

A munkát egy MTMI felé orientáló pályázat támogatta, ezért a könyv a pályázat szerverén érhető el. A fordítás szabadon hozzáférhető, letölthető. Viszont a projekt indikátorainak teljesülése érdekében azt kérem, hogy ez legyen az elsődleges letöltési lehetőség, ne rakja fel senki más -- akár gyakrabban látogatott -- helyre, inkább linkelje be ott ezt az URL-t!

A könyvet felhasználjuk az egyetemi képzésben is, de akár már általános iskolás kortól, esetleg önképzéssel is fel lehet dolgozni. Teljesen kezdők részére is ajánlott, a 370 oldalnyi anyag két szemesztert is kitölthetne.

Noha a könyv 2012-es, de nem találtam jobb bevezető könyvet Python3 tekintetében, ezért is esett rá a választás. Természetesen nincsenek benne a 3.7 verzió újdonságai, ám a programozással ismerkedés szempontjából szerintem tökéletes. Másrészt hiánypótló, mert magyar nyelven inkább csak Python2 könyvek érhetőek el ingyenesen.

Hozzászólások

köszi!

"I'd rather be hated for who I am, than loved for who I am not."

Nagyon köszönjük! Van rá esetleg terv, hogy a pdf mellett egy ebook-barát epub/mobi formátumban is kirakjátok?

Ha lesz rá egy belső emberünk, akkor nem kizárt.
Miután jelentősen átalakítottuk a korábbi képzéseinket (új KKK), rengeteg új óránk van, melyen szinkronban mennek a régiekkel, így hatalmas a leterheltség a karon. Már annak is örülök, hogy egyáltalán a fordításra sikerült kollégákat találnom. Ha nem lesz más, talán a vizsgaidőszakban megpróbálkozom vele.

Én is mondtam már az asszonynak, hogy az csak egy tízperces munka lesz, de sose annyi lett :-)
Ha csak epub-ot generálnék, akkor talán beleférnék az időkeretbe. A pandoc több mint öt éve napi társam, könyvek, prezentációk, honlapok generálója -- rendszerint Markdown-ból--, a sphinx viszont még új eszköz számomra, és lehet, hogy itt most azzal indulnék el.
Viszont ha sorra átnézem, hogy a programlisták nem-e lógnak túl a margón, nem kell más betűtípust használni, akkor már több munkát kell beletenni, és én rászánnám azt az időt.
Mivel van pár közeli határidős feladatom is, most azok élveznek elsőbbséget.

Hello

a) Királyság és köszönönet.

b) Mi az az "MTMI felé orientáló pályázat" ?

KKV szintjén csak az van, egy embernek kell érteni szoftverhez, hardverhez, meg minden máshoz.

Viszont épp most írunk a leendő első generációs informatikusok szüleinek egy ismertetőt a kari honlapon, hogy mennyire szerteágazó ez a szakma, a nálunk oktatott programtervező, mérnök és gazdaságinformatikusok számára milyen kifutási lehetőséges vannak, és mire lehet elég egy BSc, egy MSc és egy PhD. Az viszont sokat segít az indulásnál, ha már alapvető szinten tud programozni a hallgató. Ezért is fordítottuk le a könyvet. (Ha nem olyan szülőkkel, informatika tanárokkal áldotta meg a sors, de érdekli a téma, legyen lehetősége ennek elsajátítására határon belül és kívül.)

Másrészt úgy gondolom, hogy még pár év, és a valamilyen szintű programozási/algoritmizálási képességgel minden szakembernek rendelkeznie kell, legyen geológus, kereskedő, vagy akár sofőr. Nem kell feltétlenül C++ kódot írnia, de akár Excel képlet/makró, vagy egy grafikusan összehúzott workflow kikerülhetetlen lesz.

Utolsó bekezdésre sokáig kérdőjel nélkül bólogattam. Leírnád röviden kérlek, egyetemközeli szemmel nézve miért hiszel benne?
Mire kell majd egy _átlagembernek_ STEM-féle gondolkodásmód, "józan ész", algoritmizálás? Nem lesz elég multifunkciós vagy épp céleszköz, vagy túl sok lesz a választási lehetőség?
(önkiszolgáló BI, AI támogatott keresés, ajánlók stb.)

Elég idős vagyok ahhoz, hogy megtanuljam, hogy ami mindenre jó (multifunkciós), az semmire sem. Mesterséges intelligenciát oktatok (aki tudja csinálja, ...), de itt már megéltünk jó pár hullámvölgyet (AI winter is coming: 60-as évek közepe, 80-as évek vége), és közte volt persze fellángolás is.
A Deep learning például gyönyörű buzzword, sok-sok számolás útján meg tudjuk közelíteni azt, amit más statisztikai módszerrel is el lehetne érni (viszont azon gondolkodni kellene, hogy melyiket kellene egyébként használni). Látható, hogy a gépi tanulással fel lehet erősíteni a prekoncepciókat, így lehet például rasszista ajánlókat készíteni a rendőrségnek. Ennek ellenére a DL nem fog eltűnni a süllyesztőben, csak meg kell találni a helyét, mint ahogy minden más eszköznek.
Ha használunk egy eszközt/rendszert, az akkor lesz kényelmes, ha hozzánk idomul, s nem mi idomulunk hozzá. Ahogy az eszközeink egyre bonyolultabbak, egyre bonyolultabb a beállításuk is, lassan már programokat kell írnunk. Lehet rajta vitázni, hogy az https://ifttt.com/ használata már programozás?
Most az ember a mobilján beállítja, hogy mely napokon mikor kell fel, mikor kell ébreszteni. Ha extra programja van, akkor külön ébresztőt állít be. De milyen kellemes egy ünnepnapon reggel hatkor kelni, mert még péntek van, és akkor ekkor kell kelni. Nem lenne egyszerűbb, ha a naptárban lévő események (vagy azok hiánya) határozná meg az ébresztést? Lehet, hogy ez csak az én nyűgöm, de akkor nekem kell megoldanom, nekem kell "leprogramoznom".

Másrészt merem hinni, hogy az információs társadalom felé haladunk, egyre több adatunk lesz, amit a munkánkban használni kell, pontosabban fel kell dolgozni. Lehet az Excel előtt ülve a számológépen kapott eredményeket bepötyögni, de nem hatékonyabb, ha mindezt az Excel-en belül oldanánk meg, esetleg egy saját magunk által írt, vagy általunk az igényeinkre formált programocskával? A GTD apostolai arról értekeznek, hogy 5 napi munkát megfelelő szervezéssel (és szerintem kézreálló eszközökkel) 4 munkanapra be tudnak zsúfolni. Úgy gondolom, hogy mindenki számára kecsegtető lehet.
A "józan ész" most épp vesztésre áll. Várom már, hogy a társadalom -- mint egy hatalmas inga -- átlendüljön a holtponton, és újra az értékek -- közte a tudás -- legyen az értékes.

Van benne igazság, hogy programozással mindenki egyszerűbbé tudná tenni az életét, csak éppen azzal nem számol ez az elmélet, hogy az emberek nagyobb része nem tud programozni. És simán kiderülhet, hogy ez képesség kérdése, tehát akinek nincs rá hajlama, annak nem lehet megtanítani. Akkor mi lesz?

A munka összezsúfolása meg azért értelmetlen, mert már most is ott tartunk, hogy a legtöbb munka eleve felesleges adminisztráció, vagy pedig értelmetlen luxuscikk előállítása. A legtöbb ember azért dolgozik, hogy a saját életét ne kelljen élnie: kajarendelés, óvoda, bébiszitter, TV sorozatok. Mind arról szólnak, hogy ne a saját életedet éld.

Vagy nézzük a gépek és kütyük piacát: szándékosan elavulósra vannak tervezve, hogy ki kelljen cserélni adott időn belül. Ha tovább nő a hatékonyság, mi lesz a reakció? Még hamarabb elavuló kütyü. Véletlenül sem marad meg a mai gyártási volumen, és amellett lesz rövidebb munkahét. Ha a tervezett elavulás problémáját varázsütésre meg tudnánk oldani, és kb 20%-os plusz áron kétszer annyit bírnának az autók és az elektronikus kütyük (ami simán reális becslés), akkor már holnaptól ezekben az iparágakban be lehetne vezetni a __3__ napos munkahetet is. És ugyanott lennénk, ahol most vagyunk.

Ha hatékonyabbá tesszük a munkavégzést, azzal sosem azt érjük el, hogy kevesebbet kell dolgozni, hanem helyette még több (feleseleges) szolgáltatást kapunk, és még nagyobb stresszt munka közben. És hogy a több szolgáltatást ki tudjuk fizetni, még többet kell doglozni. Igazából már régen átléptük a gazdaság hatékonyságnövelésének értelmes szintjét már régen csak a luxus látszatáért dolgozunk. De ez is fals, mert a valódi luxus az volna, ha munka _helyett_ csak simán jól éreznénk magunkat.

A kütyü-kérdésre meg az a megoldás, hogy kevesebb kütyü kell, annyi amennyit képesek vagyunk kikapcsolni éjszakára. Nekem például csak a telefonom van bekapcsolva éjjel, az is csak a családtagok miatt, ha valakivel baj lenne, akkor el tudjon érni. Be tudnám állítani, hogy másoknak néma legyen, de szerencsére más úgysem hív alvásidőben, úgyhogy felesleges. Az ébresztőt mindig csak este állítom be - ahogy az analóg órák is működtek, ha nem állítod be, nincs ébresztés. Emailről, csetprogram üzenetről meg nem kapok értesítést, ha akarok ránézek, ha nem akarok nem nézek rá. És így nincs probléma, amit az iftt megoldhatna. A megoldás tehát mindig az egyszerűsítés volna, a technika fejlődésével úgyis csak újabb problémát generálunk, nem valódi megoldást.

...a technika fejlődésével úgyis csak újabb problémát generálunk, nem valódi megoldást.

Sajnos, én is így érzem. Csak egyet emeltem ki az általad leírtak közül, de a többi probléma gyökere is ugyanaz: kapitalizmus.
E rendszer elsődleges mozgatórugója a pénz, a profit, a GDP növelése; az észszerűség és az emberiesség csak másodlagos.

--
eutlantis

Köszönöm! Pont ott érzem én is döcögősnek a dolgot, hogy a józan ész vesztésre áll (csak most? :)). Ha a "szakember" valami jóindulatú, motivált dolgozni akarót jelent, akkor reméljük nem is lesz gond.

Én jelenleg kb. minden szinten fogyasztásra ösztönzést látok inkább.. Ill. az se mindegy, hogy pl. az újabb generációknak az aktív gondolkodás/programozás pl. ugyanolyan mumus lesz-e, mint a régebbieknek volt az idegen nyelv.
Lehet, hogy később rájönnek, de jó is lenne vagy lett volna - akkor viszont már nehezített pályán kell haladniuk.

Az ifttt-s példa kicsit olyan, mint a Scratch: egy egyszerűsített eszköz, de a józan észt az ember teszi bele. Úgyis divat mindenféle vizuális segédeszközön összekattingatni dolgokat, de ész nélkül szétesik - vagy még rosszabb: ahogy írod épp manipuláció felé is vihet.
Amit kevésbé látok (még?): egy Excelt pl. még elkezd használni egy asztalos nyilvántartásra, számításra - max.pivot szintig, de makrózni már nem fog.

Nagyon örülök és köszönet érte. Én is ezzel a könyvvel kezdtem a Pythonnal való ismerkedést.

Hibákat hol lehet jelenteni?

FSF.hu Fordítási útmutató szabad szoftverek magyarításához
http://forditas.fsf.hu/html/node3.html

csak belenéztem, tényleg jó kis könyv. A pythonnal mint első nyelvel az a gondom, hogy C-t vagy asm-ot utána nagyon nehezen veszi be a gyomor.
Sztem még mindig C-t kellene először oktatni. Utána python vagy js.

--
GPLv3-as hozzászólás.

A kezdő programozási nyelvről már igen különböző teóriákat hallottam. Szerintem ez attól is függ, hogy kinek oktatjuk.

Nem tudtam elérni, hogy a mérnök informatikusaink a NAND2Tetris alapján tanuljanak meg programozni. A kolozsvári kollégák mindenkinek a torkán lenyomják az asm-t. Szerintem egy gazdaságinformatikust (főleg ha azért jött erre a szakra, mert a közgáz fizetős lenne) ezzel lehet világgá üldözni. Számára gyakran annyi elég, hogy a matematikai modellt meg tudja fogalmazni, és ki tudja próbálni adott paraméterek mentén.

Versenyfeladatok megoldása során a C++ verzióhoz képest harmada, negyede a Python-ban írt megoldás (ahol gyakran 5 hosszabb sor [max 80 karakter!] is elég a középiskolai verseny országos döntőjén!). A map/dict, vector/list mindkettőben rendesen fel van használva, azaz nem C++-ban írt C programokról van szó, ami gyakori a középiskolákban. A Python verzió megírása gyakran tizedannyi időbe telik a dict of sets vagy list of dicts, stb szerkezeteknek köszönhetően. Ha már olyan a verseny, hogy a futási idő is számít (lásd BME), a Python könnyen elvérezhet. De gyakran még akkor is megéri az Python-ban megírt és tesztelt algoritmust átírni C++-ba, mint C++-ban írosgatni és eldobni a prototípusokat.

Ha valaki még egyáltalán nem tud programozni, akkor neki meg kellene tanítani az alapokat: elágazások, különféle ciklusok, adattípusok, adatszerkezetek, input/output, stb.
C-ben ez jóval bonyolultabb, mint Python-ban. Nem kell megtanítani a referenciakönyvet az első oldaltól az utolsóig, arra akkor lesz szükség, ha valaki az adott nyelvből fog megélni.

Szívem szerint én az ABC-t tanítanám, tanterembe ideális lett volna, de én sem tettem rá a kezem 25 éve.

A programtervező informatikus képzés (pl. ELTE) esetén a középiskolában vagy az egyetemen a Prog0 keretében addig kell eljutni, hogy a Prog1 során rendszerezett információkat fel tudja fogni, tudja már az általa tanultakhoz kapcsolni, és pár hét alatt képes legyen bármilyen programozási nyelvet megtanulni, abban elkezdeni dolgozni. Nagyjából ez érvényes a mérnök informatikus (lásd BME) képzésnél is, bár itt az IoT esetén alapvetően a C++ és néhány speciális esetben a C-re lesz jellemzően szükség. (De miért kell kínozni a scanf-fel az embereket, amikor C++-ban az jóval kulturáltabban megoldható? Mert történetileg ez volt a sorrend? Főleg, hogy a beágyazott rendszereknél is a C++ egyre inkább lenyomja a C-t. De nekem akkor is az xs=[int(x) for x in input().split()] tetszik, ahol nem kell azzal foglalkozni, hogy hány adat várható a sorban.)

Fizikus, vegyész, társadalomtudós esetén az adatait kell feldolgoznia, minél egyszerűbb módon. Őket nem igazán fogja érdekelni, hogy a duplapontos valósai hogyan és hol tárolódnak. Nekik egy script-nyelv (vagy valami annak látszó, mint például a Matlab konkurrens Julia) tökéletes választás lehet.

Én csak kolozsvári statisztikus fizikusokkal állok kapcsolatban. Az oktatásban valóban megjelenik a C++, illetve a hozzá kapcsolódó GUI programozás is. Viszont a prototípus gyakran Numpy segítségével íródik. Sőt időnként a Fortran is előkerül, mert ebben körben erre teljesül a "battery included", és rendszerint az ebben írt programok futnak a leggyorsabban.

Ám ez a könyv nem a profikat, hanem a kezdőket célozza meg.

Ha én nekem C-vel kellett volna kezdenem, nem lennék ma ott ahol.

Nekem anno a Programozás alapjai Visual Basicben volt az, ami elindított az úton. Egyszer szüleimmel elmentünk Pécsre nézelődni, betértünk egy könyvesboltba és ott akadt kezembe. Nagyon megtetszett, hogy le volt írva, hogy hogyan tudok olyan programot csinálni, amivel tudok olyan felületet készíteni, mint amilyeneket látok magam előtt (checkbox, gomb, stb.). Ugyanis addig előtte mindig csak a comenius logo meg a turbo pascal volt a suliban, ahol a "roppant izgalmas" ilyen-olyan gyakorlatilag matekfeladatokat kellett csinálni, perszer egyből belevágva a ciklusokba és rekurzióba. Na ebben nulla sikerélmény volt, míg a könyv ezt nekem megadta és elindított a programozás irányába. Persze utána megtanulja az ember azokat is, amiket az imént írtam, mert rájön, hogy hohó ez is megold valamit, amikor egy olyan problémához ér.

Szerintem ahhoz, hogy az ember megszeresse ezt és el tudjon mélyedni benne az a legfontosabb, hogy meglegyen a sikerélmény már az elején. Ha ez egy html fájlban pár betű átírása és rácsodálkozás arra, hogy jé megváltozott az oldal, akkor az. Ha meg tudok villogtatni egy ledet arduinon, akkor az: kinek-mi.

Az már persze más kérdés, hogy ez egyetemi informatikus oktatási oldalon -ahol ezek a lépések már elvárható, hogy megtörténtek korábban, mielőtt az ember odamegy- mivel érdemes oktatni.

Csak az utolsó mondatodra reagálva. Fentebb volt, hogy a célközönség a következő hallgatók: "programtervező, mérnök és gazdaságinformatikusok".
Ők azok akik nem operációs rendszer modulokat meg eszköz-drivereket fognak írni, inkább a gazdasági folyamatok matematikai modellezését kutatják és nem árt ha az eredményt látványosan bemutatható formában állítják elő.
Nekik mind igaz amit érvként te is felsoroltál. A Python pont jó nekik.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Rosszul vagyok a python-tól, nem tudom mi az etvasz benne. Egy nyelv aminek része az indentálás....
Másik a self...
Magánvéleményt hallottak, eképp értelmezzék, köszönöm :)

Szerencsére része. Annyi sok csúnyán, össze-vissza formázott kódot láttam már életemben, hogy legszívesebben erővel kényszerítenék ki egy stílust.

A fordításért köszönet, hasznos könyv! :)

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

Nem vagyok evangelista, nem akarom senkire ráerőltetni ezt a nyelvet.
A fiamat azzal gyötröm, hogy a feladathoz válasszon eszközt, ezért megy nála párhuzamosan a Python és C++. (Középiskolában ennyi talán elég is.) Mivel lusta és szeret minél gyorsabban végezni, ha rá van bízva, az elsőt választja. Igaz azzal kezdtük valaha (http://inventwithpython.com/pygame/), és ebben voltak az első sikerélményei is.

Mi az, amiért nekem tetszik ez a nyelv?

  1. "batteries included" - középiskolás szinten jellemzően nincs szükség semmilyen include/import utasításra, kéznél van minden. Ha pedig extra kell, akkor szinte minden van: https://pypi.org/
  2. REPL és interpreter. Egy kívülállónak nehéz elmagyarázni, de el lehet szakadni az IDE-ben történő fejlesztéstől. Hasonlatos ez ahhoz, amikor a zenész elindít egy magnót és elkezd mellette improvizálni. Ha megtetszik neki, akkor visszateker, meghallgatja, lejátszik egy variáns, aztán majd elveti, vagy zárul a ciklus.
    A REPL időtlen idők óta velünk van: LISP, BASIC, Forth. Jobb leírást most nem találtam, mint a Racket workflow, de hasonlóképpen lehet dolgozni a Python-ban is.
    Emiatt a kedvenc fejlesztőeszközöm desktop-on a spyder, míg terminálon a tmux+nvim kombináció.
  3. http://jupyter.org/ - talán a legszélesebb körben használható irodalmi programozási eszköz, ami akár az oktatásban, akár a kutatásban (eredmények megosztásában). Erre példa: https://norvig.com/ipython/README.html
    (Ha valaki nem ismerné: https://norvig.com/bio.html)

"Egy nyelv aminek része az indentálás...."

nekem meg pont ezért tetszik. :-) legalább rákényszerít, hogy ne úgy írj egy programot, mint az ökörhugyozás. valamint korábban volt szó róla és mások mondták, azóta egyre jobban látom igazuk van, ehhez még nem ártana egy blokk kezdő és vég jel, mert csak az ident néha szopacs. lehet van fényévekkel jobb nyelv, de a másik előnye, hogy az alap telepítések nagy része tartalmazza, így minden további telepítés nélkül tudod használni a programodat más gépen. ahol korlátozottan tudsz telepíteni, ott ez sokat jelent.

"I'd rather be hated for who I am, than loved for who I am not."

Nem olvastam a könyvet ez igaz de 15+ éve dolgozok a szakmában és nagyon különbözően gondolkodó (és ide most az informatikai gondolkodást értem) emberrel dolgoztam együtt. A közös az esetek 95%-ban a tanított vagy tanult alapok voltak. Egy autodidakta ember pl nagyon ki tud lógni ebből a sorból. De a korosztályok is másként látják. Más eszközkészletben látják a megváltást. Pl legutóbbi munkahelyeben a 80% a nyers erőt részesítette előnyben a gondolkodásnál kompletten. Az ilyen egészen máshogy közelíti meg a problémákat és nem volt nyitott az egyszerűbb megoldásra mert ahhoz gondolkodni kellett volna. Egy könyv hogy tudná ezt összefoglalni?

Oké látom, definíciós félreértés volt. Én mást értek az informatikus alatt mint a szerző. EZ a harmadik értelmezése. :-P Olvasva izgalmas bár hemzseg a magyartalan kifejezésektől és a helyesírási hibáktól. A munkáért köszönet mert egy tankönyv amiből lehet tanulni és nem csak jegyzet létezik.

A sok gratuláció mellet legyen pár kritika is:
- Ez megint egy Python könyv kezdőknek. Ilyenekből Dunát lehet rekeszteni. Igaz magyarul tényleg kevés van. Python 3 meg csak a Summerfield féle könyv, ami - nekem megvan - oktatásra alkalmatlan.
- Ez a könyv nem tűnik jobbnak, mint a Gérard Swinnen féle könyv (vagy bármelyik másik Python2 könyv). Egyszerűbb és gyorsabb (meg olcsóbb) lett volna szerintem azt Python3-ra átírni, mint egy teljes könyvet lefordítani. Bár gondolom ennek vannak pl: jogi akadályai.
- Ahogy elnéztem, tartalmilag sem tökéletes a könyv, ezért az oktatásban biztos lesz pár dolog, amivel ki kell egészíteni. Érdemes lett volna beleírni a könyvbe nemcsak lefordítani. Ráadásul szerintem 2 nagyon fontos dolog is hiányzik:
1. Python alaptelepítés bemutatása: python.org, telepítés, python konzol bemutatása, program futtatás python konzolban, IDLE, .py kiterjesztés futtatása ilyesmik. Ez kb. a minimum. Lehet benne van, de én nem találtam meg. Mert így aki ebből akar tanulni, el se tud indulni a könyvből.
2. Nevezzük prezentáció hiányának, vagy hívhatnám úgy is, hogy a tudás által létrehozott eredmény (kész program) továbbadásának a problémája. Összefoglalva legalább egy alapszintű GUI jó lett volna.
- Értem én, hogy az alapok a fontosak, de külső szemlélő (mondjuk szülő) ebből (konzolos program) semmit sem lát. Mondhatnám úgy, hogy a szponzort is meg kell győzni. Ennek a legegyszerűbb módja a GUI.
- A könyv által szerzett tudással nem lehet másnak működő programot átadni. Azért egy átlagos felhasználónak ne konzolos szkripteket adjunk már tovább. Ha valaki nem akar a Pythonnal(programozással) tovább foglalkozni, akkor ez így gyakorlatilag haszontalan tudás lesz. (Ebbe nem vettem bele a programozási szemléletet.)

Ízlésekről nem érdemes vitatkozni. Az, hogy kinek melyik könyv tetszik, melyikben van olyan rész, ami számára fontos, személyfüggő. De örüljünk annak, ha van választási lehetőség! Nekem csak a BASIC volt, és még ahhoz sem igazán akadt könyv, csak innen-onnan elcsípett dolgok.
Én könyvfordításra találtam embert, könyv újraírására valószínűleg már nem találtam volna. Ha valaki kiegészítést szeretne mellé írni, akkor azt senki nem akadályozza. Ha tetszik amit csinált, kirakom a könyv mellé.
A fiam a cél-korosztályba tartozik. Itt rendszerint nem okoz gondot egy Windows-os program telepítése, ahogy egy Google vagy Youtube keresés sem. Aki ezt a szintet nem üti meg, ott egyrészt nincs is meg az igény a programozásra, másrészt nem is érdemes rákényszeríteni a szülő által. Bár még lehet próbálkozni a https://interactivepython.org/runestone/static/thinkcspy/index.html oldalon, itt nem kell telepíteni semmit.
Nincsenek statisztikáim az összes program között a desktop fejlesztések arányára. Talán nem túl nagy. A környékemen szinte minden fejlesztés web-es. Egy ilyen fejlesztésben a GUI fontos, de a munka piciny részét jelenti, és kliensoldalon pedig már nem Python lesz, hanem HTML/CSS/JS.
Meg kell vallani a Python nem erős GUI tekintetében. A PyQt remek eszköz, de talán nem a kezdőknek. Náluk még a tkinter is sok lehet, főleg ha valami komolyabbat szeretne összerakni.
Ha a szülőt kell győzködni, akkor arra ott vannak a középiskolás programozói versenyek, ahol jellemzően az stdin-re érkező adatokat kell feldolgozottan az stdout-re kinyomni. Így dolgozik a http://mester.inf.elte.hu/ valamint a https://progcont.hu/progcont/ is. (Ez utóbbinál tervezünk több fejlesztést, hogy az iskolai info-szakkörök is profitálhassanak belőle.) Ezeknél pillanatok alatt kiderül, hogy a megírt program átment az egységteszteken, vagy sem, vagy hogy hányat teljesített. Ha a szülőt ezzel nem lehet meggyőzni, át kell állni a http://scratch.elte.hu/ -re
Ne higgyük azt, hogy nyelvenként megveszünk egy-egy könyvet, és miénk a programozók összes tudása. Ez a könyv (illetve a C++, Java, Julia és ki tudja még milyen verziói) alapvetően egy látásmódot próbálnak átadni. Én szeretném ha minden informatika szakra jelentkező még a jelentkezés előtt végiglapozná a könyvet, és eldöntené, hogy ő ilyen lovat akart-e, vagy sem. Ez a könyv csak az elindulást segíti. Ha valaki programozásból akar megélni, akkor még pár tucat másik könyvet is illene elolvasnia, és rengeteget gyakorolnia.

A GUI-t elfogadom (részben). Amúgy lehet Python-ra egyszerű GUI-t csinálni. Én a Tkinter után a wxPython-ra váltottam. Van hozzá normális GUI tervező (wxFormBuilder). Legalább a GUI alapok szerintem fontosak, legalábbis nekem nagyon hiányzott.

Hogy őszinte legyek néztem több érettségis pythonos videót.A konklúzióm az volt, hogy
1. Az a része, hogy segít a diákoknak a gondolkodásban, probléma megoldásban ez rendben.
2. A másik oldalról viszont az érettségi szint önmagában semmire nem alkalmas. Ha valaki nem tanul tovább, ez a tudás csak arra jó, hogy elfelejtse.

Viszont a telepítést nem tudom elfogadni.
Egy tankönyvnél ezt a részt kihagyni, hogy hol és hogyan tudja telepíteni a Pythont az fatális hiba. Sok pythonos videót néztem, az első lecke eleje mindig ez, pl:
https://www.youtube.com/watch?v=D48iCw3WWpI

Egy teoretikus kérdésem volna.

Sokak véleménye szerint az informatika nyelve az angol. Ti mégis fontosnak tartottátok, hogy magyarra fordítsátok ezt a könyvet.

Miért?

---
Science for fun...

"A könyvet felhasználjuk az egyetemi képzésben is, de akár már általános iskolás kortól, esetleg önképzéssel is fel lehet dolgozni."

Szakembernek angolul tudnia _kell_, viszont ez nem szakembereknek szolo konyv.
Szerintem kiemelten fontos, hogy az ilyen konyvek magyarul megjelenjenek, legalabbis Magyarorszagon. A vilag tobbi reszen valoban kevesbe fontos.

Nem világos, hogy te részese voltál ennek a projektnek, vagy ez egyszerűen a magánvéleményed. (Amúgy érteni értem.)

A kérdés lényege tulajdonképpen az lett volna, hogy az egyetemi képzésben mennyire tartják fontosnak a magyar nyelvű irodalmat a projekt gazdái.

---
Science for fun...

A fentebb hivatkozott projekt célja, hogy minél több diák menjen a MTMI szakokra, azaz a célközönség a középiskolás réteg. Emiatt van a jelzett portálon szakkör, tanfolyam, tábor, valamint ez a könyv is.
(Van egy másik projekt is: ha már ott vannak, akkor nem hulljanak ki. Ott mást tervezünk, ha évek múlva kész lesz, azt is bejelentem itt.)

A soron következőek már a magánvéleményem.
tltr: fontos, hogy legyen magyar nyelvű anyag is

  • "Minden nemzet a maga nyelvén lett tudós, de idegenen sohasem.
    Lehet látni, hogy mekkora nyelvi akadályt jelent más nyelven elsajátítani ismereteket. Sokan mennek külföldre egyetemre. Ezzel nincs is baj. Valószínű, hogy nagy részük felsőfokú nyelvismerettel rendelkezik. Viszont a szaknyelv ismerete hiányzik, és ezt az anyanyelvi tanár nem fogja figyelembe venni. Egy teszt (szigorúan Google nélkül): hogyan mondják a magasság talppontját angolul, csak hogy ne nyilvánvaló analízisbeli fogalmakat kérdezzek? Lineáris algebrában ez a fogalom könnyen felmerülhet, ha a tanár el akar valamit magyarázni, és analógiát vesz a geometriából.
    A szaknyelvi hiányosságok miatt a nem anyanyelvű diákok nagy általánosságban közepes szinten teljesítenek, és ennek csak a nyelvi probléma az oka, nem pedig a matematikai, informatikai előismereteik.
    Sokkal egyszerűbb anyanyelven valamit elsajátítani, mint idegen nyelveken. Amikor 3 év alatt teljesen át akarjuk formálni a gondolkodásmódot/látásmódot, problémamegoldó képességeket, amikor 6-8 nyelvvel meg kívánjuk ismertetni a diákokat (C/C++/Java/a fentebb említett asm/R/SAS/SPSS/Matlab/Python/SQL/HTML/CSS/XML/XSLT/stb), valamint ezek elméleti hátterével, akkor ezek angol nyelvű átadása egyenértékű a KO-val. Már így is magas a lemorzsolódás, hátha még ezt angolul is tartanánk!
  • Nem véletlenül van diplomamentő program. Nagyon sok diploma ott parkol a TO-n, mert hibádzik a nyelvvizsga. Persze lehet, hogy valaki tökéletesen érti a szakirodalmat, csak a nyelvtani tesztek nem mennek neki. De nem ezt tartom általánosnak.
  • A könyvtáros és tanár képzéseink kivételével angolul is oktatunk mindent. Persze nem indiai vagy pakisztáni diákjaink vannak, akik kvázi anyanyelvűek lennének, hanem Oroszországtól Afrikán, Közel és Távol-Keletig mindenki előfordul (közel az informatikus hallgatók 20% százalékát márr ők teszik ki). A különböző tudásszintű diákok is jelentenek problémát, de ennél talán még többet, hogy sokuknak az angol nyelvvel is gondjuk van, és emiatt gyakran a megértés helyét a magolás veszi át. Arra pedig nem nagyon lehet építeni, pedig több oldalas példaprogramokat vissza tudnak idézni karakterhiba nélkül, de egy kicsit módosítani már nem.
  • Szerencsére időnként támogatja az állam a magyar nyelvű jegyzetek készítését, ennek eredményeként elkészült az általam gondozott tananyagtár: https://www.inf.unideb.hu/hu/node/68
    Persze ennek is megvannak a hátulütői: míg Szovjetunióban elég volt egy egyetemi algebrakönyv, és mindenki azt használta, nálunk minden egyetemen van egy saját is.
    Most a megújult képzések elindulásával presszionáljuk az oktatókat, hogy készítsék el a feladatgyűjteményeiket, órai fóliáikat, stb. a kurzustól függően angol illetve magyar nyelven. Viszont ezek rendszerint a Moodle csoportokon belül kapnak helyet és csak az adott tárgy hallgatói érik el. Tehát nem nyilvánosak.
  • Persze a magyar nyelv támogatása nem szoríthatja háttérbe az angol megtanulását. Az új képzésünkben előírtuk egyes tárgyak angol nyelvű teljesítését (angol nyelvű előadások és gyakorlatok látogatását, és az angol nyelvű vizsgát, legyen az szóbeli vagy írásbeli). Még eddig nem jutottunk el, kíváncsi leszek az eredményekre.
  • Személy szerint BSc-n nem merek angol nyelvű kötelező "irodalmat", azaz cikket, könyvet, mintaprogramot kiadni a diákoknak.
    Viszont MSc-n meg szinte csak ilyenekkel élek, a magyar nyelvű fólia/jegyzet mellett. Ott már biztosan van egy nyelvvizsga. MSc-n diákok nem ragaszkodnának a magyar fóliákhoz, de én fontosnak tartom azok elkészítését, többek között azért is, hogy mindennek találjunk magyar elnevezést is. (Ami vagy bejön és elterjed, vagy sem.)

    Gratulálok, jó kezdeményezés!

    A Python egy nagyon jó választás első nyelvnek.

    Amatőr szinten programozgatok. Van értelme 40 évesen elkezdeni komolyabban megtanulni a programozást? Hülye kérdés persze tanulni mindig jó.

    --
    honlapom http://dyra.eu/

    Ha szeretsz programozni és van időd rá, akkor miért ne?
    A programozás nemcsak kereseti lehetőséget jelent, hanem egyben kreatív elfoglaltság és művészet is. Van aki ennél idősebb korban kezd el fényképezni, könyvet írni, festeni stb.
    A Python3-ban akár egy év tanulás után profi lehetsz. (Persze más nyelvekben is; a ráfordított időtől függően:-)

    --
    eutlantis