Skip to content

Instantly share code, notes, and snippets.

@hdf
Last active September 19, 2018 13:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hdf/ba43708a742d11a025f34893ff9b8301 to your computer and use it in GitHub Desktop.
Save hdf/ba43708a742d11a025f34893ff9b8301 to your computer and use it in GitHub Desktop.
Előadás terv javaslat
Mi a programozás?
Megmondani a gépnek hogy mit csináljon. Nagyon szájbarágósan. (Angol tudás elengedhetetlen.)
Számomra a programozás olyan mint a legózás, csak olcsóbb, nem megy tönkre a kezed tőle és sose fogysz ki a darabokból.
Engem azért vonzott a programozás, mert olyan volt mint a varázslás. Mintha pár varázs szó beírásával életet lehelnél az élettelenbe. Viselkedést adhatsz egy tárgynak. És érdekelt, hogy a játékok, meg egyéb programok, amiket használtam hogyan működnek. Illetve az automatizáció is mindig vonzott, mert olyan mint a csalás. Ráveszed a világot, hogy dolgozzon helyetted.
Mihez van szükség hozzá?
Kell egy feladat.
A feladat határozza meg, hogy melyik a megfelelő eszköz (program nyelv) hozzá.
Számítógép internet eléréssel, Google, program nyelv dokumentáció/referencia, fejlesztői környezet: Visual Studio (Code) / Notepad++, idő, érdeklődés.
Eszközök ismerése és a megfelelő eszköz kiválasztása.
HTML, CSS, JavaScript(ECMA Script) ha azt akarjuk bárhol működjön és ne kelljen neki privilegizált hozzáférés a felhasználó gépéhez. Könnyű felhasználói felületet csinálni.
Python (Anaconda) ha gyorsan akarunk valami parancssorosat csinálni, ami nem kell hogy gyors legyen. Linuxon valószínűleg alapból működne, különben telepíteni kell a futtató környezetet. Tudósok szeretik.
C# ha ablakos programot akarunk csinálni.
C++ ha a sebesség a legfontosabb. (Ez nagyon ritkán van manapság. A programozó ideje értékesebb mint a gépé.)
Assembly ha érteni akarjuk, hogy működik a számítógép és minden programhoz hozzá akarunk tudni férni. (fasm/Fresh/Cheat Engine)
Java ha mobilos (Android/iOS) natív program kell, noha kikerülhető (ionic/Flutter/Cordova).
Node.js(express)/nginx+PHP/Elixir(Python)/Go ha szerver kell.
Az eszköz megismerése.
Érdemes a dokumentációt elolvasni egyszer, hogy tudd mik a lehetőségeid, mi az eszköz készleted.
Nem kell mindent megjegyezni, a referencia mindíg ott lesz, nem fut el sehova, csak tudd mik a lehetőségeid.
A jó dokumentációban mindíg van példakód is, lehetőleg teljes (van kontextus) és hasznos (lehet át fogod másolni, ahogy van).
HTML/CSS/JavaScript: https://www.w3schools.com/
Python: https://docs.python.org/3/
C#: https://docs.microsoft.com/en-gb/dotnet/csharp/language-reference/
Node.js: https://nodejs.org/dist/latest/docs/api/
Assembly: https://wiki.skullsecurity.org/Simple_Instructions
https://en.wikipedia.org/wiki/X86_instruction_listings
http://ref.x86asm.net/coder.html
Kitalálni, hogy hogyan lehet megoldani a problémát az adott eszközökkel.
Ez a legfontosabb rész. Jó esetben ezzel tölti az ember a legtöbb idejét. Ezt tanítják egyetemen, nekem se ártana, ha meghallgatnék pár előadást ebből... :P
Írjuk le egészen pontosan mit kell hogy teljesítsen a programunk, hogy nézzen ki, hogy viselkedjen, mik a követelmények.
Majd bontsuk le egyre részletesebben, hogy az egyes követelmények hogyan valósíthatóak meg.
Mindig gondoljunk a biztonságra, és a jól átláthatóságra. (Különben később nagyon megbánjuk.) A jó kód a könnyen átlátható kód!
A kommunikáció nagyon fontos. A csapaton belül és a klienssel(megbízó/célcsoport) is. Nem baj, ha az idő felét egyeztetéssel és ötleteléssel töltjük.
Ha már létezik, használjuk.
Nem kell folyton újra feltalálni a kereket. A legtöbb problémára vagy részproblémára már van megoldás, nyugodtan használjuk. Google, stackoverflow, github sokat segíthet ebben.
Optimalizálni mindig ráérünk később.
A programozó ideje értékesebb mint a gépé!
Minél később optimalizálj és csak ha szükséges!
Ne akarjál okosabb lenni mint a fordító(compiler), nem fog sikerülni.
Ha optimalizálsz, fókuszálj azokra a részekre, ahol a legtöbbet tudsz nyerni ezzel. (A profilozó megmondja ez hol van.)
Hogyan működik a számítógép?
https://www.youtube.com/watch?v=LN0ucKNX0hc&index=3&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo
Félvezetőből logikai kapu, logikai kapuból memória és utasításkészlet.
Fordítók és értelmezők (compiler/interpreter). Előnyeik és hátrányaik.
(Operációs rendszerek és a különbségek köztük.)
Nincs tökéletes program. Tehát egy program sincs soha teljesen "kész". Az egyetlen tökéletes program, az amit sose írnak meg. (Nagyon Zen gondolat, de ha belegondolsz nagyon igaz.)
Gyakorlat teszi a jó programozót. Keress problémákat. Dolgozz rajtuk szórakozásként szabadidődben is. Töltsd fel a github -ra. Manapság főleg az ott látott munkásság alapján keresik meg az embert a munkáltatók.
---
Ezt mind aközben mondjuk el, hogy bemutatásként csinálunk egy html oldalt, amiben egy legnagyobb közös osztó/legkisebb közös többszörös kiszámoló applikációt készítünk. Nem fejből. Mindent copy pastelgetünk különféle helyekről, amiket Google használatával találunk. Annak bemutatásaként, hogy nem az számít mit tudsz, hanem hogy milyen gyorsan tudod megtudni azt amire szükséged van.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment