Hogyan lehetnek az öntanuló programozók megértésének (vagy logikájának) ugyanolyan szintje, mint azoknak a számítástechnikai hallgatóknak, akik továbbtanultak főiskolai kurzusokat?


Válasz 1:

Manapság minden információ elárasztódik. Még neves főiskolai / egyetemi oktatók is ingyenesen elérhetők, amint megfigyelhetjük az edx.org-ban, a coursera-ban és sok másban. Még a fizetés is érdemes, mivel rövidebb idő alatt befejezhetjük és pontosan megkövetelhetjük a készségeket.

Kérjük, ne hagyja ki az első lépést.

1. Tanulja meg és javítsa először a programozási logikát. Minden programozó számára kötelező. A programozási problémák megoldásának valódi bizalma a programozási logika javításával jár. Kérjük, ellenőrizze a következő bejegyzést további részletekért.

2. Ha a programozási logika javul, akkor az adatszerkezetekre és az algoritmusra vonatkozó tanulás eredményes lesz.

Algoritmusok - Sedwick, CLRS

Gyakorlat a versenyképes programozó weboldalakon

3. Tanulja meg az OOP-kat és az általánosan használt tervezési mintákat.

Head first OOAD, Head First tervezési minták.

Bob bácsi összes könyve.

4. Vegyünk esettanulmányt és építjük meg tervezési minták alkalmazásával.

Tiszta építészet, Bob bácsi.

Nyújtsa be a projektet a github-ban és a kirakat interjúkban.


Válasz 2:

Két egyszerű módszert találom ...

Az egyik a tanfolyamon használt könyvek megvásárlása, elolvasása és a gyakorlatok elvégzése. (Gyakran átveheti ezeket a tanév végén használt könyveket)

A második az, hogy barátokba kerülnek azokkal az emberekkel, akik CS-t vásároltak, és technikai megbeszéléseket folytatnak velük.

Megértésünk nagy része inkább a cselekedetekből és az interakcióból származik, mint amikor valami elmondásra kerül nekünk.


Válasz 3:

Vannak előnyei és hátrányai is az öntanulásnak és a CS-nek az emberek tanulásának szempontjából. A CS hallgatók sok elméleti tudással rendelkeznek, de hiányoznak a gyakorlati tapasztalatok. Az öntanuló programozók gyakran rengeteg gyakorlati tapasztalattal rendelkeznek, de nem hiányzik a magas szintű, átfogó áttekintés.

Ha vannak olyan dolgok, amelyekről hiányzik, és szeretne lenni, akkor kezdjen el forrásokat keresni, hogy segítsen nekik öntanulni őket. Nincs jó oka annak, hogy valaki, aki megtanította magát a programozásra, nem tudja kitalálni, hogyan lehet más dolgokat megtanulni a CS-ről.


Válasz 4:

Ezt már mondtam, de minden programozó önálló. Néhányan egy-két osztályba vitték a tanulásukat, de a tanulást maguknak kell elvégezniük. A felsőfokú főiskolai tanfolyamok olyan dolgokat tanulhat el, amelyek önmaga nem lennének, de ők nem tesznek okosabbá vagy jobbá a „logikát”. Mindent meg kell tennie egyedül.


Válasz 5:

Válaszolva:

Hogyan lehetnek az öntanuló programozók megértésének (vagy logikájának) ugyanolyan szintje, mint azoknak a számítástechnikai hallgatóknak, akik továbbtanultak főiskolai kurzusokat?

A rövid és szinte kísérteties válasz: néhány dolgot el kell végezni, például el kell olvasnia az elismert könyveket, mint például őrült, és meg kell tennie a gyakorlatokat [1], kipróbálhat különféle dolgokat egyedül, gyakorolhat, olvassa el a legjobb kódot [2], és légy a saját legerősebb kritikus, de találjon egy igazán jó tapasztalt mentort, aki segít megtanulni a „jó ízlés” megtanulását.

A hosszabb válasz az, hogy az egyetemi tanfolyamok, különösen olyan helyekről, mint például a CMU, MIT, Stanford, UCB az USA-ban, vagy olyan helyekre, mint például a Vrije Universiteit Amszterdam vagy Cambridge Európában, az UNSW Ausztráliában és az IIT Indiában, lesznek a legjobb módszerek a legtöbb ember számára. Ezek a helyek a világ legjobb / leginkább toborzott mérnökeit és programozóit állítják elő, mivel nehéz őket befogadni, és kurzusaik rendkívül szigorúak / igényesek. Ez nem azt jelenti, hogy önmagában nem tanulhat, de azt mondom, hogy a legjobb öntanuló programozóknak volt egy mentoruk, akit ismerek, akinek olyan oktatója volt, akit egy szilárd egyetemen találhat.

Őszintén szólva, a CMU vagy a MIT OS kurzus tapasztalatainak megismétlése otthon nem valószínű, hogy annyira értékes, mintha valódi lenne; de ez nem azt jelenti, hogy megnézné anyagát, és ugyanazokat a gyakorlatokat kipróbálja önmagában is rossz lesz. A probléma az, hogy szüksége van valakire, aki átnézné és javaslatot tehet. A régi időkben ezt „szakmai gyakorlatnak” neveztük.

A trükk az, hogy igazán nagyszerű mérnök legyen, mindannyian mentorokkal rendelkeztek, mind az egyetemi napokban, mind a munka világába való belépéskor. Igen, néhány tartós kódom a húszas éveimben írt dolgok voltak, de mindig volt valaki, aki kihívott és tanított. Őszintén szólva, ma még mindig tanulok. Miközben számos fiatal mérnököt tanácsolok a csapatomban, hallgatom őket. Például ma nagy vita zajlott az IDE használatáról vagy sem. Személy szerint utálom őket, de az összes fiatal mérnököm először rájuk tanult (mint a gyerekeim a főiskolai kurzusukon). Ma azonban érdekes volt, hogy egy ember számára mind azt mondták, hogy nem használják őket, miután megtanultak a vi / emacs, a UNIX eszközkészlet használatát,

stb.

.

De mindenekelőtt kérjük, keressen egy mentort, és hallgassa meg őket. Néhányan olyan roppant öreg fiúk, mint én, létrehozták az Ön által használt hűvös rendszereket, mint például az Internet, UNIX, C, C ++ stb. ... Lehet, hogy meglepődhet, amit néhányan tanulhatnak. Őszintén szólva, munkám legszórakoztatóbb része az, hogy mentor vagyok a fiatalabb mérnökök számára, és figyeltem, hogyan növekszik.

1] Néhány kiváló könyv kezdődik:

  • Fontolja meg a The Unix Programming Environment ISBN 978–0139376818 példányának beszerzését, és legalább olvassa el a 3. fejezetet: „A héj használata”. De ha megnézzük az egész könyvet, és meg tudjuk csinálni az összes gyakorlatot, akkor sokat tettél. Nyilvánvalóan továbbra is online vagy a helyi könyvesboltban vásárol másolatot, vagy pedig letöltheti és kinyomtathatja a http://cs.uwec.edu/~buipj/teaching/cs.388.s14/static/pdf/upe.pdf webhelyről.
  • Mindent, amiről Brian és Rob beszél a könyvében - >> még a szövegszerkesztő használatáról is. << ma hasznos - függetlenül attól, hogy milyen disztrot használsz. Például, ha megérti, hogy az ed működik, a vi egyszerű (vi volt a VIsual parancs az ed szerkesztő UCB kibővített verziójához). Emellett megtanulja / megérti, hogy a sed, grep stb. Hogyan működnek minden, és ami még fontosabb, miért működnek úgy, ahogy vannak, és miért akarod Ön, mint felhasználó, megtanulni használni őket. Erről hiányzik a legtöbb „XXX megtanulásáról” szóló könyv. A Brian (és Rob) könyvei nagyon könnyen hozzáférhetők. Csak kövesse, amit (nekik) mondani kell, és gondolkodjon azon, amit írt. Sokan sok-sok éven át ezt tették. Amikor befejezte a könyv elolvasását - lépjen vissza és >> wow << Azt hiszem, rájössz, hogy „megkapod”.
  • Meg kell tanulnia programozni. Érdekes módon nincs sok jó bevezető programozókönyv, amelyek valóban azt célozzák meg, hogyan gondoljunk a programozásra. Úgy gondolom, hogy kezdő vagy szakértő is sokat tanulhat; különösen, ha ki tudja húzni a nyelvről és a programozásról szóló kiváló könyvek egyik példányát, mint például a Clancy és a Réz „Oh Pascal”, és kipróbálhatja a benne található feladatokat. Mindent, amit megtanulsz arra, hogy hogyan gondolkodj úgy, hogyan kell programozni általában, az megfelel a mai nyelveknek, például C, C ++, Java, Rust vagy Go; és Pascal ad egy kicsit egy biztonsági hevedert, amelyet a többiek nem fognak mondani [mint mondjuk más válaszokban, nem helyezzünk új pilótakat egy sugárhajtású vadászgépbe, hanem a Piper Cubba vagy a Cessna 150be helyezzük]. Nagyon javasolnám, hogy látogasson el a Free Pascal webhelyre, töltse le a rendszert és játsszon vele, mivel a Free Pascal rendszer olyan sokféle kódot generálhat, és valószínűleg "csak működik" azon a számítógépen, amelyen Ön ezt olvassa. válasz.
  • Vegye figyelembe a Pascal népszerûségét és eredeti célokat mint oktatási nyelvet, ám a gyakorlatban néhány hatalmas kérdést váltott ki. Az eredeti Pascal-jelentés meghatározta a nyelvet, amelyet úgy terveztek, hogy hallgatóként fordítson: egyszerre egy teljes programot. Alapvetően a nyelv nem támogatott számos olyan funkciót, amelyre „professzionális programozóknak” volt szükségük. Nem próbálok itt mindent leírni, inkább Brian Kernighan című papírjára mutatom: „Miért nem a Pascal a kedvenc programozási nyelv?” amelyet eredeti FORTRAN alapú könyvének „A szoftver eszközök” [ISBN 020103669X (ISBN13: 0785342036695)] átírásával kapcsolatos tapasztalatai után írta, hogy „a szoftveres eszközök Pascalban” legyen.
  • Egy bizonyos ponton tanulja meg a C-t, és fontolja meg Kernighan és Pike második könyvének: A programozás gyakorlata [ISBN-13: 978-0201615869] folytatását.

2] „Bízzon a forrás Luke-ben” - tanuld meg, hogy nézek ki, mi a legjobb.

  • A UNIX források hetedik kiadása megtalálható a forrás-archívumban, a „Kutatás / hetedik kiadás” részben, a forrás-archívumban, és mindent letölt, kicsomagol, és megnézheti a forrásokat: sh (1) és login (1). Ugyanebben az archívumban megtalálhatja a BSD verzióit és sok más jó dolgot is.
  • Ennek ellenére az eredeti v6 UNUX kernel és alkalmazáskód egy kiváló hely a kezdéshez. Azt javaslom, hogy szerezzen John Lions csodálatos szövegének másolatát, az Oroszlánok kommentárját a UNIX 6. kiadásáról, forráskóddal ISBN: 013-7-978-1-57398-013-5, hogy megnézhesse, hogyan hajtották végre a PDP-hez. -11. John könyve továbbra is elérhető számos könyvesboltról, de szerintem letöltheti a PDF-fájlt is, ha keresőmotorral vadászik. Miközben a könyvet eredetileg az 1970-es évek elején írta, ne feledje, hogy a könyv tartalma továbbra is releváns és friss. Valójában ezt a könyvet operációs rendszer tankönyvként használták a MIT-nél, amikor 30 éves volt (azaz xv6). Az MIT-tagok elvették a UNIX hatodik kiadásának PDP-11 verzióját, és átvitték őket a modern PC (Intel * 64 stílusú) hardverre.
  • Ahogy ezt megnéztem, azt hiszem, hogy az xv6 verziója tiszta, érdekes és elérhető munka, ha [ha egy operációs rendszer tanfolyamát tanítanám, nagyon kísértés lenne használni]. Mivel az Intel * 64 ISA sokkal bonyolultabb, mint a PDP-11 ISA, az xv6-nak számos olyan dolgot kell kezelnie, amelyek nem jelentik a PDP-11 problémáját.
  • A legújabb xv6 forrás a következő címen érhető el: git clone http: // git: //pdos.csail.mit.edu/xv6/xv6.git Az eszközök megtalálhatók a 6.828 / 2014 őszén - eszközök, ha szeretne vele játszani .
  • Ugyancsak, amint azt a válaszomban kifejtettem: Clem Cole válasza, melyik Linux-kernel verziójának forráskódja jobb az újszülötteknek? Ez továbbra is a legjobb módja annak, hogy megtanulják, hogyan működik az Unix kernel és az aktuális megvalósítás, a Linux kernel. Mivel a UNIX V6 sokkal egyszerűbb és könnyebben hozzáférhető, és 4 vagy 5 generációs hackerek megtanultak ennek a kommentárnak a használatával, sokkal valószínűbb, hogy a kernel funkcióinak alapjait gyorsabban megtanulja az adott szöveg.

"20 év elteltével ez még mindig a" legjobb "leírás a„ valódi ”operációs rendszer működéséről.”

- Ken Thompson, az UNIX társfejlesztője, 1996