Érdekes

Hogyan Kell Tanulni Hacker

Eredeti Eric Steven Raymond az http://catb.org/~esr/faqs/hacking-howto.html#ftn.idm45888529255600

Mi Az Hacker?

A “hacker” beszélünk arról, hogy a dokumentum feltáró programozási egy nyílt forráskódú környezetben. Ha azt hiszem, hogy a “hacker” – nak semmi köze a számítógépes bűnözés vagy biztonsági betört ide jött tanulni, hogy akkor most menj el. Nincs semmi itt.

Hacker elsősorban¹ programozási stílus, a következő ajánlások az ebben a dokumentumban lehet egy hatékony módja annak, hogy megszerezzék az általános célú programozási ismeretek. Ez az út nem biztos, hogy működik mindenki számára; úgy tűnik, hogy működik a legjobban azok számára, akik kezdeni egy átlagon felüli tehetség a programozás, valamint a tisztességes fokú mentális rugalmasság. Az emberek, akik sikeresen tanulni, ez a stílus válnak generalista a készségek, amelyek nem erősen kötődik egy adott alkalmazás domain vagy nyelv.

Megjegyzés: ezt is meg lehet csinálni, hacker, anélkül, hogy egy hacker. “Hacker”, nagyjából egy leírást egy módszer, stílus; a “hacker” azt jelenti, hogy hack is mellékelt, hogy egy adott kultúra vagy a történelmi hagyomány, hogy használja ezt a módszert. Megfelelően, a “hacker” egy udvarias adományozta más hackerek.

Hacker nem elég a hivatalos apparátus, hogy egy teljes értékű módszer, ahogy a kifejezést használják, a szoftver engineering, de van néhány jellemző, hogy hajlamosak meghatározott kívül egyéb stílusok programozás.

  • Hacker történik a nyílt forráskódú. Ma, hacker képességek az egyes mikro-szinten, az úgynevezett “nyílt forráskódú fejlesztés” a szociális makro-szinten². Programozó dolgozik a hacker stílus számít, könnyen használ peer review a forráskód a többiek kiegészítik, felerősítik saját egyéni képesség.
  • Hackelés könnyű, felderítő. Merev eljárások, valamint kidolgozott egy-priori előírások nincs helye a hacker; ehelyett a tendencia, próbáld meg-ez-meg-találni egy gyors kiadás tempó.
  • Hacker nagy értéket tulajdonít modularitás, de lehet használni. A hacker stílus, keményen próbálkozol, nem egy cikket írni a kódot csak egyszer lehet használni. Te elfogultság felé, hogy általános eszközök, illetve a könyvtárak, hogy lehet speciális bele, amit akarsz fagyasztással egyes érveket/változók, vagy a szállító összefüggésben.
  • Hacker kedvez a hulladék-újjá át patch-meghosszabbítja. Lényeges része a hackelés könyörtelenül eldobni kódot vált, túl bonyolult, vagy crufty, nem számít, milyen sok időt fektettek.

Hacker stílusa is szorosan kapcsolódó műszaki hagyomány a Unix operációs rendszer³

Közelmúltban nyilvánvalóvá vált, hogy a hacker keverékek is az “agilis programozás” stílus. Agilis technikák, mint például a páros programozás funkció, a történetek könnyen alkalmazkodni, hogy hacker, illetve fordítva. Ez részben azért van, mert a korán azt hittem, vezetői agilis befolyásolta a nyílt forráskódú közösség. De azóta a forgalom a másik irányba is, a nyílt forráskódú projektek egyre elfogadása technikák, mint a teszt vezérelt fejlesztés.

Szakaszában, a Tanulás, Hogyan Kell Hack

A tanulás zenét három szakaszban. Először is, meg kell tanulni az alapvető mechanikai technika, eszköz — fogás, illetve hogyan kell játszani a mérleg. Akkor a vonat a fül megérteni zenei minták. Végül, meg kell tanulni, hogyan kell recombine zenei minták be eredeti alkotások. Hacker hasonló.

A hacker egyenértékű fogás tanulási képességek programozási nyelvek, valamint a mechanika eszközök használatával, mint szerkesztők, tolmácsok, fordítók. (Ha nem érted ezeket a feltételeket lásd Unix, Internet Alapjait, hogy hogyan kell.) Mi nem fedezi azokat a mechanika itt, mint változnak túl sokat megfelelően, hogy milyen nyelvet használ. Oktató minden nyelven lehet használni akarunk, elérhető az Interneten; a keresőket.

Egyenértékű játszik mérleg ír a kis programok, egyedül. Sajnos játszik mérleg (a) nem tanít semmit, a zenéről, valamint (b) unalmas, mint a fene. Hasonlóképpen, az írás játék programok nem szoktak tanítani neked arról, hacker, valamint (b) általában, de-motiválja önt, ha a program azonnal megoldja a problémát érdekel.

A legtöbb hivatalos programozási utasítást kap, hogy játszik, mérleg, majd megáll. Így, hajlamos arra, hogy készítsen programozóknak, akik szegény együttműködni egymással, valamint a megfelelője nincs hallása — egy szegény érzem szoftver tervezés, építészet.

Növekményes-Hacker Ciklus

Van egy jobb módja annak, hogy megtanulják. Hívom a növekményes-hacker ciklus.

  1. Először is, válasszon egy programot, hogy valami érdekli. Ideális esetben egy program használja rendszeresen, van véleményük. A második legjobb dolog, amit egy program, amit nem szoktam használni, de ez nem valami érdekes. Ez a tanulási módszer dolgozni, meg kell kerülni próbálta feltörni a kódot, hogy untat.

A programot választja, nem kell semmi komoly. Sok programozók már kiforrt tudásukat azáltal, hogy javítja a játékot, hogy ők is élvezték. Az egyetlen hátránya ennek az, hogy a modern játékok gyakran elég nagy, bonyolult, lehet, hogy túl fogja meg a nyers kezdő. Ez az oka annak, érdemes kivizsgálni az egyik a klasszikus szöveg orientált játék, hogy még mindig életben; nethack egy kiváló példa, de vannak még sokan mások.

2. Ha nem tudja a program, hogy megtanulják, hogyan kell használni. Olvasd el a dokumentációt. Fejleszteni a mentális modell, hogyan működik.

3. Válasszon egy kis funkció, megváltoztatni vagy hozzáadni.

4.Keresés a kód, amíg meg nem találja azt a részt kell módosítani.

Megjegyzés: kifejezetten nem próbálja meg, hogy olvassa el a teljes programot. Csak kipufogógáz, illetve meghiúsítja magad, ha megteszed. Ehelyett használja a modul felépítése a kódot, hogy a nulla pont az a rész, amit meg kell érteniük. Az út mentén, olyan dolgokat tudhatsz meg, hogy az egész program összeáll.

Ez egy jó gyakorlat, hogy hozzá magyarázó megjegyzéseket, valamint tudomásul veszi, hogy a kód, mint kitalálni a dolgokat. Ez segít a memória, segít megszervezni a gondolatok is.

5. Hogy, teszt, hibakeresés, dokumentum a változás.

Dokumentálja a változás fontos. Ha fejleszteni a szokása, hogy ezt a korai, majd készítsen sokkal magasabb minőségű munkát.

6. Küldd el a változás, mint egy patch a program fenntartói. Lásd a Szoftver Kiadás Gyakorlat az  hogyan kell a tippeket, hogyan kell csinálni ezt a hatékony, udvariasan.

Én eredetileg leírt, hogy ez egy opcionális lépés; egy bölcs barátom rámutatott arra, hogy talán nem kellett volna. Magányos horgászni a hangszer nagyon jól gyakorlat, de a zene befejeződött, illetve ellenőrzött, amikor a kreativitás azt hallottam, hogy a többi ember. Magányos horgászni a számítógépen, hasonlóan jó a gyakorlatban, de a hacker akkor fejeződik be, amikor más ember használja, amit írtál. Hogy valós vizsgálat fontos.

Néha (gyakran, ha csak most kezdik) a foltok elutasításra kerül. Meg kell tanulni, hogy megbirkózzon ezzel. Ez nem jelenti azt, hogy bukásra van ítélve a quest; általában ez azt jelenti, hogy nem olvasható a kód elég alaposan, vagy (mint általában), hogy kimaradt valami fontos aboout a kultúra, a gyakorlat a developmemt csoport próbál hozzájárulni. Ezeket a hibákat lehet javítani.

7. Most kérdezd meg magadtól: értem ezt az egész program?

Ha igen, kész. Ha nem, menj vissza lépés 3. Ez az idő, válasszon egy másik talán kissé nehezebb a dolog, hogy változtatni.

A lényeg, hogy ez a gyakorlat az, hogy megtanulják, hogyan kell osonni a probléma megértéséhez egy programot, ahelyett, kezelésére a komplexitás egyszerre. Ahogy megy keresztül ebben a ciklusban több alkalommal, fokozatosan fejleszteni egy teljes képviselet az elme, ahogy az egész program összeáll. Egy ponton éri el a küszöbértéket, ahol értem, hogy minden — vagy legalábbis elég az, amit a végső célja.

Fejlődő Tervezési Értelemben

A vonat indul kicsi. Ha lehetséges, először a növekményes-hacker ciklus, mint egy feladat a nagyon kis program vagy szkriptek, 10-50 vonalak. Ezek lehet, hogy nehéz megtalálni, hiszen a legtöbb program a haszna nagyobb, mint ez. A legtöbb program ez a kis ezek a szkriptek a shell, Perl, Python, vagy Tcl; ez a vonása kell keresni, amikor a lepukkant a Web őket.

Ha végeztél a növekményes-hacker ciklus több nagyon kis programok (vagy, ha elég szerencsétlen vagy, nem találtam alkalmas nagyon kicsik), próbáld ki a valamivel nagyobb programok. Nézd codebases a tartományban 100-500 vonalak.

Amikor a mester szinten, menj a nagyságrenddel, 1000-5000 vonalak. Mire a mester az 1K-5K szintre, akkor lépett be az alsó végén a képesség tartomány, amit általában úgy, hogy egy képzett programozó.

Vagy az előtt az 1K-5K szinten, meg kell alkalmanként kezd észre, hogy vagy, hogy viszket változtatni a szerkezet, vagy a szervezet egy program, nem csak a funkciók. Akkor találja magát, azt gondoltam, “Ez a kód ronda” érzéseid arról, hogy szebb, tisztább.

Amikor ez történik, figyelni. Ez a tervezési értelemben, megpróbál felébredni. Ne siesd el a javítást egy másik funkció. Ehelyett kezdeni, hogy vizsgálja meg a program, hogy megadja neked viszket magasabb szinten. Most lehet, hogy egy jó ideje, hogy megpróbálja olvasni a kódot, de ne is foglalkozz vele, ha nem lehet; a legtöbb program csak túl nagy, rendetlen a nyelt le őket egyszerre dolgozni. Csak próbáld meg, hogy szedd össze, amit tudnod kell takarítani.

Most belép a közbenső részét a tanulás hack. Ez magában foglalja nem csupán a változó felszínen látható funkciók, de az úgynevezett “írd újra” — átszervezésére a kód belsőleg úgy, hogy tisztább, jobb architektúra (jobb bujkál az adatok, szűkebb interfészek különböző részei közötti, több funkcionális szétválasztás a modulok között).

Ha a tervezési értelemben (az egyenértékű zenei fül) be van kapcsolva, akkor gyakran úgy találják, hogy a start írd újra minden program működik olyan gyorsan, mint a harmadik, vagy negyedik alkalommal a növekményes-hacker ciklus.

Sőt, pontosan ez az, hogyan képzett hackerek általában megközelítés a tanulás, a kód nagy programok — bütyköl, írd újra, átírása, amíg összerakjuk, mi folyik itt. Te kis változtatásokat annak érdekében, hogy megtanulják, hogyan lehet a nagyokat.

Ha sikeresen refactor három vagy négy nagy rendszerek, nem csak fejleszteni erős programozási ismeretek, lesz a módja annak, hogy valami ritka erős: egyre szoftver építész, aki képes eredeti design nagy szoftver rendszerek.

Ez az egyetlen mód, tudom, hogy a pályakezdő szoftver, építészek, hogy a vonat a tervezési értelemben. Lehet, hogy ez csak így van.

Hogy eredeti

Az analógia a zene, azt mondta, hogy előbb-utóbb kell, hogy megtanulják, hogyan kell recombine zenei minták (ahol van, a tanult zenét hallgat, gyakorló előadás) eredeti kompozíciók. Én választottam ezt a módját leíró kreativitás, óvatosan, mert ez nem vonatkozik szoftver is több, mint zene.

Mielőtt olvasni szívódik fel a leckét sok-kódot, akkor valószínűleg nem rendelkezik a fejét a minta könyvtárban kell, hogy legyen kreatív a mérleg nagyobb, mint a nagyon kicsi. Az egyik célja a növekményes-hacker ciklus, hogy merüljön el egy csomó kód — a növekvő komplexitás mérleg — olyan körülmények között, hogy az ön motiváció, hogy olvassa tovább.

Végül elvezet csoport projektek teljes mértékben eredeti munka. Ne érezd úgy, hogy ez a rohanás, vagy erőszakkal; ha adsz a készségek ideje, hogy érett, az első eredeti összetételű, jobb lesz. Által hatékonyan hozzájárulni a meglévő nyílt forráskódú projektek, meg fogja tanulni a készségek (beleértve a kommunikációs készségek), hogy meg kell futtatni a saját projektek.


¹ Ez természetesen lehetséges, hogy hack dolgokat más, mint a szoftver, az emberek pedig a készítő kultúra. De a “hacker” származik az emberek között, akik tinkered a szoftver még mindig sugároz ki onnan. Különben is, a szerző nem igazán alkalmas rá, hogy írni tanul más fajta.

² A korábbi időkben az emberek feltörték a zárt forráskódú, amikor tudtak, mert nem volt más alternatíva. A dolgok megváltoztak a jobb.

³ Előtt 1983, vagy az egyesület között, hacker, Unix kevésbé volt erős, de a részleteket, hogy megváltozott most elsősorban releváns, csak a történészek.

 

Vissza a főoldalra

Leave a Reply