magyar nyelvű szemfelnyitó, mélyelemző és tájékoztató média

Programozásról megint

Mivel már írtam programozási tanulmányaimról, íme a fejlemények.

Rájöttem, eddig azért nem értem el eredményt, mert siettem. Túl gyors eredményt akartam. Ez pedig azzal jár, hogy az ember elveszti a fonalat.

Fontos tapasztalat: a programnyelv tanulása olyan, mint egy emberi nyelv tanulása. Komoly gyakorlás nélkül semmit se ér. Ugyanis hiába tud az ember dolgokat elméletben, ha azokat nem képes használni hatékonyan.

Szóval egyszerre 4 helyen tanulom az anyagot: az említett tankönyv mellett beiratkoztam 3 internetes tanfolyamra. Ill. van egy negyedik is, de az pénzes, ott csak a magyarázó videóikat nézegetem, nem lehet fizetés nélkül feladatot megoldani, de a magyarázatok jók. Ezek új dolgok. S ami jó: szinte mind ingyenes. Mármint ha az ember akarna hivatalos igazolást az elvégzésről, akkor nem ingyenes, de nekem az nem kell, viszont a feladatokat így is be lehet küldeni, azok ellenőrzésre kerülnek.

A több helyen való tanulás előnye, hogy egymást kiegészítik.

S ami jó hír: eddig a feladatok 99 %-át egyedül megoldottam, csak az 1 % esetében kellett a megoldáshoz segítséget keresnem, de ott is csak részben.

Az internetnek köszönhetően a téma könnyedén tanulható, csak akarni kell. Pont mint az emberi idegen nyelv tanulása: tele van a net ingyenes anyagokkal.

Szóval most lassú vagyok, ez sikeresebb taktika.

Címkék: közélet
27 komment

A bejegyzés trackback címe:

https://bircahang.blog.hu/api/trackback/id/18131578

Kommentek:

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

ZorróAszter 2023.05.27. 06:54:11

Én már mondtam a véleményemet: szerintem így nem lehet megtanulni programozni.

1. A tankönyvek teljességre törekednek, ezért a tananyag feleslegesen és követhetetlenül sok
2. A programozás egy sajátságos logikát követel, ami nem sajátítható el a példafeladatok megoldásával

Erre a kettőre csak egy megoldás van: találjon ki saját magának valami feladatot, ami tetszik, és próbálja azt illetve azokat megoldani.

Például oldja meg a Monty Hallt és mutassa meg vele hogy tényleg többször nyer aki cserél. Vagy csináljon egy bolgár névátíró programot magyarra vagy ilyeneket.

2023.05.27. 08:12:31

a legtöbb programozó rendesen úgy tanul meg programozni (vagy régen legalább is ez volt az alapvető munkamódszer), hogy előveszi a programnyelvek alkotói által írt gépkönyvet és azt elovassa. aki alkotta a nyelvet az valószínűleg értett hozzá. kernighan és richie valószínűleg érették az c-t. hiszen ők alkották. bjarne valószínűleg értette a c++-t. ugyanezért. ez autentikus tanulás.

de nem feltétlen ezek a legjobb tutoriálok. és lehet sok forrásból is tanulni.

2023.05.27. 08:18:08

mármint bjarne stroustrup

Wildhunt 2023.05.27. 09:08:56

@cvsvrs: mikor azt hiszem nem tudsz nagyobb hülyeséget írni, valahogy mindig meglesz.
Rekurzív névátírás. Ettől még a bitcoin működése a Debreceni piac alapján elemzésed is értelmesebb volt.

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.27. 09:34:02

@ZorróAszter:

"mutassa meg vele hogy tényleg többször nyer aki cserél"

Ezer ilyen program van, minek még 1?

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.27. 09:42:59

@ZorróAszter:

Bolgár névátíráshoz elég egy Excel-makró. Ilyet csináltam sokszor.

lobaszopiatej 2023.05.27. 11:01:03

Hajrá, megindultál a lipsisedés útján!
(programozók mind libsik, mert hosszú időn keresztül rá vannak kényszerítve a logikus gondolkodásra...)

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.27. 13:25:40

@lobaszopiatej:

Nincs kapcsolat a liberalizmus és a logika között.

A programozás és a liberalizmus között sincs. Itt ismerek nagynevű programozókat, nem is egyet. Köztük van liberális, van kommunista, van populista, van mindenféle.

ZorróAszter 2023.05.27. 13:40:59

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró:

Én csak példákat rögtönöztem.

Ha nincs semmi, amit le szeretne programozni, akkor miért akar megtanulni?

ZorróAszter 2023.05.27. 13:45:57

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró:

Ilyen alapon mindent megírtak már.

De egyébként mi a véleménye arról, hogy a teljességre törekvő tananyag áttekinthetetlenül és feleslegesen sok, és hogy el kell sajátítani egy sajátos logikát a feladatok részekre bontásához és programnyelvi megvalósításához?

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.27. 18:41:01

@ZorróAszter:

1. Szeretek tanulni.
2. Mindig érdekelt a programozás.
3. Vannak egyes ötleteim is.

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.27. 19:04:46

@ZorróAszter:

Én azt csinálom, hogy egyszerre nézek 4 különböző videóleckét, ebből 3 feladatokat is ad, s a rendszer ellenőrzi jó-e a megoldás.

Alapvetően gyakorlat kell. Az ember néha órák alatt jön rá a megoldásra.

A múltkor egy olyan csináltam, hogy egy szót kellett átalakítani, hogy adott számú karakter legyen az új szó, s adott karakternél kezdődjön. Ez persze így szuper könnyű, de a csavar: ha szó végéig nincs elég karakter, akkor kezdje újra az elején.

Példa: PANDA - 3 karakter - kezdődjön a negyediknél. Azaz a kívánt eredmény: DAP.

Na, bevallom, ezzel 3 órát szenvedtem. Csináltam listet, aztán elkezdtem slice módszert alkalmazni.

De sehogy se ment, nem lehet sehogy se így rávenni a programot, hogy kezdje újra a szó elején. Szóval a fenti feladatra mindig a DA eredmény lett a DAP helyett. Végig olvastam a teljes list dokumentációt, meg minden string módszert, csakhát ez nem old meg semmit.

Aztán rádöbbentem: egyszerűen el kell osztani a kezdő karakter számát a szó hosszával, s a maradékot kell nézni, majd egyszerűen karakterösszeadás és kész.

Szóval semmi list, semmi össze-vissza átalakítás, egy egyszerű ciklussal meg lehet csinálni 10 sorban.

Mert értem én az összes alapvető módszert, de nincs gyakorlatom, ezért kell a feladatmegoldás.

Arra büszle vagyok: eddig csak 1 alkalommal nem tudtam rájönni mi van. S ott is majdnem megcsináltam.

ZorróAszter 2023.05.27. 22:44:21

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró:

Az a probléma, hogy ezekkel a feladatokkal vagy hasonlókkal az ember a gyakorlatban sosem találkozik. Tehát mint általában az iskolák egy nem létező valóságot tanítanak, aminek 95%-ban semmi köze az igazi valósághoz, konkrétan itt a valóságos programozáshoz.

A valóságban például én olyan feladatokkal találkoztam ilyen szinten (stringreszelés), hogy például egy program kifos magából követhetetlen szintaktikával 10 millió soros outputot, és abból ki kell szedni és emészthető formára kell hozni a nekem hasznos 50 ezer sort.

ZorróAszter 2023.05.28. 12:54:28

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró:

Pedig érdekelne a véleménye.

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.29. 08:21:03

@cvsvrs:

Persze, de az nem egyértelmű mikor kell használni.

Itt ugye a baj az volt, hogy a szóhossztól függően kell a karaktereket egymáshoz illeszteni. S mindenféle if meg for meg while meg izéket csináltam, de nem lehet, mert hát változik a hossz.

S az egyetlen megoldás a %. CSak hát erre rá kellett jönni.

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.29. 08:22:09

@ZorróAszter:

Meg kell először alapozni a tudást. Ezt csinálom. Amíg nem biztos valami, addig nem megyek tovább.

Wildhunt 2023.05.29. 08:43:40

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró: vagy azzal kezded hogy letrehozol egy stringet amiben akár 5-10x egymás után fűzöd a megadott szót, majd egy for-next ciklussal kivágod belőle a megoldást.

ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró · http://bircahang.org 2023.05.29. 08:51:32

@Wildhunt:

Persze, de % nélkül nem megy, mert nélküle képtelenség megadni a karakter számát.

Amikor rájössz, hogy % kell, onnan már könnyű: tmc.mooc.fi/submissions/17081727#files

Wildhunt 2023.05.29. 09:00:17

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró: nyugodtan bonyolíthatod, de felesleges. A 3 karakteres szóból is csinálhatsz 40 karakterest akár a 8. karakterből kezdve is, % nélkül. Pythonban még felső korlátja sincs a stringnek, ha jól emlékszem.
Mindegy, jó gyakorlást, később meglesz.

ZorróAszter 2023.05.29. 13:35:08

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró:

Azért érdekelt volna ha válaszol a két felvetésemre.

Most olyan tudást alapoz meg, aminek a 95%-ára a gyakorlatban nincs szükség. Ha egy programozó tudta is valaha, mára elfelejtette, és akkor néz utána, ha nagyritkán mégis szükség lenne rá.

Valójában ez a rengeteg információ elrejti azt ami fontos.

ZorróAszter 2023.05.29. 16:24:49

@ⲘⲁⲭѴⲁl ⲂⲓrⲥⲁⲘⲁⲛ ⲔöⲍÍró:

Szerintem rengeteg felesleges információ, ami eltereli a figyelmet a lényegről. A lényeg a programozói gondolkodás a nagy és bonyolult feladatok részekre bontásánál, azok megvalósítása és összeállítása, illetve ha kell valami különleges, azt hogy lehet megkeresni a neten és beilleszteni a saját programba.

És nem olyan feladatok megoldása tömegesen, amiket csak az iskolások oldanak meg mert a napi gyakorlatban senki nem használja őket.

Ha mégis nagyritkán szükség van rá, akkor megkeresi a neten és ész nélkül beteszi a saját programjába. Ez a gyakorlat.
magyar nyelvű szemfelnyitó, mélyelemző és tájékoztató média
süti beállítások módosítása