Donald Knuth: kezeket le, az egyik legnagyobb számítógépes tudós, akit a terület valaha látott. ebben a részben három dolgot kell megtanulnod. Először is, meg fogja tanulni a C++, mint egy második nyelv, amely közelebb van a gép szintű leírások, mint a Python. A Python közelebb áll a sima angol nyelv spektrumához, míg a C++ közelebb áll a 0s és 1s spektrum végéhez. a C++ tanulása több programozási konstrukciót, például mutatót ismer meg. Másodszor, javítani fogja a kódolási sebességet az intenzív gyakorlás, a dokumentáció olvasása és a hibakeresési készségek további finomhangolása révén. Végül megtanulod a rekurziót, amely a mágikus programozók és számítógépes tudósok használják a számítás erejét.
Tanuld meg a C++ – t és kezdj el egyszerű programokat írni
már megtanultad a Pythont az előző részben. A Python programozóbarát nyelv, mivel sok alacsony szintű részletet rejt el a programozótól a könnyű használat érdekében. Azonban, ha azt szeretnénk, hogy a haladás, ez feltétlenül szükséges, hogy megtanulják az alapokat a programozás C++.
mire kell összpontosítani: A C++ kód írása programozóbbnak érzi magát, mert inkább a gépi szintű leírások felé halad. Ismerje meg a szintaxis és a szemantika közötti különbséget. Töltsön időt statikus és dinamikus gépelés, memóriamenedzsment és mutatók tanulásával. Tanuld meg újra implementálni a feltételeket, a hurkokat, a függvényeket, az adattípusokat és a Pythonban megtanult dolgokat a C++-ban. Ha mindez görögnek és latinnak tűnik, ne aggódj. Az erőforrások szakasz mindent egyértelművé tesz az Ön számára.
kezelési hibák: amikor hibát kap, ne csüggedjen. Még a legtapasztaltabb programozóknak is vannak hibái és hibái a programjaikban. Csak annyit kell tennie, hogy elolvassa a hibát, gyors Google-keresést végez, és megoldja a problémát a kódban. Amíg ezt teszed, értsd meg, hol hibáztál, javítsd ki a megértésedet és folytasd. Néha előfordulhat, hogy el kell olvasnia egy kis dokumentációt. Ellenőrizze a következő részt.
A dokumentáció olvasásának második természetűnek kell lennie
csakúgy, mint a Google-Keresés, a programozó készségét az határozza meg, hogy mennyire tudja megérteni a dokumentációt és hasznos programokat írni. Ahogy megtanulod olvasni a dokumentációt, megtanulod kommentálni a kódodat, írni Az olvasható kódot, és írni a dokumentációt az írott kódhoz.
miért kell ezt megtanulnod? Sok ember küzd az új technológiák elsajátításával, és kész tanfolyamokat keres, amelyekből tanulhat. Bár ez a kezdeti szakaszban rendben van, mivel tudása elmélyül, nem talál kész oktatóanyagokat, amelyekkel kanállal etetheti magát. Át kell olvasnia a dokumentációt, és fel kell vennie, amire szüksége van. Ismét tanulja meg kiszűrni az információkat, és pontosan vegye be, amire szüksége van a munka elvégzéséhez.
gyakorlat. Ismétlem. Gyakorold.
most már csak gyakorolnod kell. Menjen át a Hackerrankba, és oldja meg az összes egyszerű problémát a bemelegítés és a megvalósítás részben. Ha van olyan probléma, amelyet nem tud megoldani, olvassa el a megbeszéléseket, olvassa el a szerkesztőséget, és nézze meg, hogyan oldhatja meg saját maga. Ha van valami, amit nem ért, használja a Google-t.
Ha elvégezte az előző rész olvasmányait, itt nem lehet problémája. Ha küszködsz, azt javaslom, menj vissza, és nézd meg újra azokat a részeket. Jónak kell lennie a kód írásában, ezért ne hagyja ki ezt a részt. Az ötlet az, hogy folyékonyan fejezze ki egyszerű angol megoldásait programozási megfelelőikbe. Ha már nem leragadt a nyelv sajátosságait, akkor folytassa. Vegye ki az összes programot, amelyet Pythonban írt, és kódolja őket C++ – ban.
a versenyképes programozás körüli hype-vel találkozhat, azt javaslom, hogy ebben a szakaszban maradjon távol tőle, mert több kárt okoz, mint hasznot. Miután befejezte a III. részt, kísérletezhet vele, és ha jól végzi, akkor óriási mértékben javíthatja problémamegoldó készségeit.
jól értsd meg a rekurziót
ez segít jobban megérteni a rekurziót. Haha. a számítógépes tudós szíve a rekurzió megértésének képességében rejlik. A rekurzálás azt jelenti, hogy valamit önmagával fejez ki. Minden, amit a hurkok használatával megtehetsz, rekurzív módon és nagyon elegáns módon történhet. Próbáld megérteni ezt intuitív módon, és nézd meg a videókat adtam a források. Ha olyan szoftverfejlesztő vagy, aki nem érti elég jól a rekurziót, azt javaslom, hogy azonnal tegye meg.
Összegzés
eddig ismer egy alacsony és magas szintű nyelvet, és kellően fel tudja mérni a programok feletti “irányítás” különbségeit. Mostanra képesnek kell lennie arra, hogy egyszerű programokat írjon Python és C++ használatával, és értékelje a két nyelv közötti különbséget.
innen, sokan bemegy a rut több nyelvet tanulni, ami nem más, mint egy haszontalan gyakorlat önmagában. Az egyik leggyakoribb kérdés, amelyet a kezdők feltesznek: “hány nyelvet ismersz?”, ami ráébreszt, hogy a kezdők általában milyen félrevezetőek, mivel a programozási képességeket több nyelv ismeretéhez kapcsolják. A programozás nem arról szól, hogy sok nyelvet ismerünk. Az Ön által használt nyelv csak egy módja annak, hogy hatékonyan kifejezze és megoldja problémáját. Ebben a szakaszban “programozó” vagy, de ez nem elég. Most meg kell tanulnia a számítástechnikát, hogy készségeit a következő szintre emelje.
III. rész: A találka Computer Science
a szilárd megértése a források ebben a szakaszban fog neked jobb, mint a legtöbb programozó a szakértői csoport. Lehet, hogy még jobb lesz, mint a legtöbb 2./3. év mérnöki hallgatók Indiában. A haladás innen függ a szomjúság az anyag ebben a szakaszban. Szóval koncentrálj.
hogy adjunk néhány filozófiai érintés, delving a számítógép a tudomány olyan, mint PANDORA szelencéjének megnyitása. Az ebben a szakaszban szereplő témák nagy részét az egyetemi számítógépes mérnöki tanfolyam 2.éve tárgyalja. Kicsit másképp közelítettem meg őket, hogy a legjobban megfeleljenek az útmutató céljainak.
hogyan különbözik ez a szokásos egyetemi tantervtől? A rendszeres egyetemi tantervek erősen tele vannak elmélettel. A kurzusok javasoltam a források részben van egy jó mix az elmélet és a gyakorlat. Bár ez jó dolog lehet a törekvő mérnökök számára, a laikusok számára, ez nem túl hasznos. Nem tudod, hol ér véget az elmélet és hol kezdődik a gyakorlat. Pontosan rámutatok arra, hogy mit kell megtanulnod elméletileg, hogy egyenesen haladhass és gyakorolhass. Az elmélet csak egy eszköz, amely segít jobb kód írásában ebben a szakaszban, ezért ne akadjon el túl erősen.
szórakoztató tény: a mérnöki 2.félévemben volt egy DBMS (adatbázis-kezelő rendszerek) nevű témánk. Meglepődtem, hogy olyan embereket találtam, akik a legjobb ER-diagramokat rajzolják az adatbázis-terveikhez, de amikor a gyakorlati alkalmazásokhoz való adatbázis tervezéséről volt szó, szerencsétlenül kudarcot vallottak. Annyira koncentráltak arra, hogy a diagram részleteit helyesen kapják meg, hogy elfelejtik az okot, amiért először csinálják. Nem hibáztatom őket, mert soha nem tanították meg nekik, hogy a diagram azért van, hogy jobb adatbázisokat építsenek, nem pedig a vázlatkészítési képességeik fejlesztése.
Diszkrét matematika
már tudatlanul is használod a diszkrét matematikát. A diszkrét matematika az alkalmazott matematika olyan területeinek kombinációja, amelyeket többször használtak a számítástechnikában. A terület szakértői úgy döntöttek, hogy az egészet összekapcsolják, és nevet adnak neki — amit most diszkrét matematikának nevezünk.
ne aggódj lányok, ő írta az első programot a diszkrét matematika tanulásakor kövesse ugyanazt az elvet, amelyet az I. részben vázoltam. A diszkrét matematika egyszerűen növeli a problémák kezeléséhez rendelkezésre álló eszközök számát. Ha legyőzte a matematikától való félelmét, alaposan élvezni fogja azt a tanfolyamot, amelyet az erőforrások részben összekapcsoltam.
adatstruktúrák és algoritmusok
Ez az egész utazás gerince. Valójában már eddig is adatstruktúrákat és algoritmusokat használtál-ismét tudatlanul. Most formalizáljuk és részletesebben tanulmányozzuk.
Torvalds építette a Linux kernelt — valami, ami nélkül az Android nem lett volna az, ami ma
tapasztalt programozóként mindenhol adatstruktúrákat és algoritmusokat fogsz használni. Ha elég jól megérti, kiterjeszti matematikai készségeit és eszközeit, hogy hatékony számítási struktúrákat építsen ki a közös problémák kezelésére. Azt is megtanulják a különböző algoritmus tervezési technikák, amelyek olyanok, mint tervrajzok megoldására egyes témák Számítástechnika.
sok oktatóanyag megmondja, hogy kezdje el az algoritmusok és az adatstruktúrák tanulását. Azért nem tettem meg ezt, mert bekerültél az Einstellungba, ami fix mentalitással és problémamegoldással rendelkezik. Bízz bennem, ez megbénítja a gondolkodásodat, mert nem gondolkodsz a dobozon kívül. Ennek végére nagyszerű problémamegoldó és kódoló lesz.
legjobb gyakorlatok
Az író szoftver nem csak arról szól, hogy véletlenszerűen összerakja a kódot a dolgok elvégzéséhez. A legtöbb professzionális környezetben nem Ön lesz az egyetlen programozó, aki kódbázison dolgozik. Fontos, hogy kövesse bizonyos irányelveket és konvenciókat, hogy megkönnyítse a kódbázis programozását a csapat minden tagja számára. Ez megkönnyíti a valaki más által írt kód megértését, később pedig mások számára is megkönnyíti a kód megértését. Ha Ön junior szoftverfejlesztő, összpontosítson erre a szakaszra.
mit tehetsz? Töltsön időt a száraz (ne ismételje meg magát) elv megértésével és gyakorlatba helyezésével. Ne írjon ismétlődő kódot, mert ez lelassítja és hajlamosabbá teszi a hibákat. Írj hasznos megjegyzéseket és dokumentációt, ahol csak tudsz. Amikor elkezdtem, azt hittem, hogy ez egy hülyeség, amíg egy nap megnyitottam egy régi projektet, és rájöttem, hogy az összes kódom érthetetlen. Programozóként nem kell sokat memorizálnod. Megtanulod, mi a fontos, és megkeresed, mi szükséges.
Version Control (Git)
ezt már korán elkezdtem csinálni, és óriási segítséget nyújt a kód szervezésében. Nyomon követheti a változásokat, és pontosan tudja, milyen változtatásokra van szüksége bizonyos funkciók megvalósításához. Azt is megtanulják, hogyan lehet megelőzni és kijavítani a hibákat gyorsan. Sok fiatal mérnököt látok, akik még azt sem tudják, mi az a Git, és ez rendkívül szomorú. Egész karrierjüket verzióvezérléssel fogják tölteni-ha közéjük tartozol, menj egyenesen az alábbi erőforrásokhoz.
objektumorientált programozás
bevezetés egy teljesen új programozási módba. Eddig eljárási programozást végeztünk. Most áttérünk az objektum-orientált programozásra, amely teljesen új paradigma. Az adatok beágyazásának és absztrakciójának bemutatása tovább segít értékelni az útmutató kialakításának módját. Az OOP – ban minden objektum, és az ötlet az, hogy egyértelműen elkülönítse a felületet és a megvalósítást. Tanulhatsz osztályokat és örökséget is. Végül elkezdesz objektumorientált megoldásokat tervezni, és megtanulod, hogyan kell okos fekete dobozokat építeni a problémák megoldására. A Java tanulása jó módja annak, hogy elkezdjük ezt az új programozási paradigmát. A Python támogatja az OOP-t is, ezért próbálja meg felfedezni ezt!
Gyakorold keményen
gyakorolj minden készséget/koncepciót/algoritmust ebben a szakaszban kódrészletek írásával. Írja át a régi kódot a megszerzett új ismeretekkel. Folytasd a kis programok írását, és tanulj valami újat minden szakaszban.
Bruce Lee: a szuper-emberi ember. R. I.P legend
tanulj tovább, ahogy haladsz. Számos különböző módon építettem számológépeket, könyvtárkezelő rendszereket, numerikus számítási szkripteket, és minden egyes alkalommal valami mást tanultam. Végül rájössz, hogy nincs arany golyó, amely mindent megjavítana. Az élet tele van kompromisszumokkal. Ez a tökéletlenség szépsége.
Összefoglalás
többet tudsz, mint elég ahhoz, hogy játékváltó szoftvert építs. A következő lépéshez mindent be kell internalizálnia. Innentől kezdve, több elmélet nem segít. Csak időt kell fordítania a hasznos projektek gyakorlására és építésére. A programozás egy alkalmazott tudomány-kövesse a 80/20 szabályt, ami azt jelenti, hogy az idő 80% – át gyakorlással, az idő 20% – át pedig olvasási elmélettel tölti.
rész IV: itt az ideje, hogy építeni néhány jó dolog
Ha már követte az útmutatót, amíg itt a T, akkor jól felszerelt, hogy menjen előre, és építsenek néhány nagy projektek, hogy akkor tegye az önéletrajzát, show-off a barátok, vagy akár bevételt a munka. Ebben a szakaszban meg akarom tanítani, hogyan kell megtanulni a dolgokat az út mentén. Minden új projekt, amelyet felvesz vagy hozzárendel, valami újat fog tanulni. Fontos, hogy ezt a megfelelő hozzáállással közelítse meg.