HOME     SHRED GUITAR LICKS     SWEEP GUITAR LICKS     LEGATO GUITAR LICKS     CONTACT DAVE     LEARN AND MASTER GUITAR     $$$GOT LICKS?$$$
 

 

Onderricht Uzelf die in Tien Jaren

Peter Norvig Programmeert

 

Waarom is iedereen in zo'n haast?

De gang in boekenwinkels en u zult zien hoe Te Onderrichten Uzelf Java in 7 Dagen naast eindeloze variaties te onderrichten Visuele basis aan te bieden, Windows, het Internet, enzovoort in enkele dagen of uren. Ik deed de volgende machtzoektocht aan Amazone.com: pubdate: na 1992 en titel: dagen en (titel: leer of titel: onderricht uzelf)
En werden terug 248 slagen. De eerste 78 waren computerboeken (nummer 79 was Leer Bengaalse in 30 dagen). Ik verving "dagen" met "uren" en werd merkwaardig gelijkaardige resultaten: 253 meer boeken, met 77 computerboeken volgde door Onderricht Uzelf Grammatica en Stijl in 24 Uren aan nummer 78. Uit het hoogste 200 totaal was 96% computerboeken. Het besluit is dat ofwel mensen in een groot snel zijn over computers te leren, ofwel dat computers hoe dan ook fabelachtig gemakkelijker zijn te leren dan nog iets. Er zijn geen boeken op hoe Beethoven of Quantum Fysica te leren of zelfs de Hond Verzorging in enkele dagen. Verhuur ons analyseren wat een titel zoals Pascal in Drie Dagen Leer kon betekenen:

 

* Leer: In 3 dagen zult u tijd niet hebben om enkele beduidende programma's te schrijven en leer van uw successen en mislukkingen met hen. U zult tijd niet hebben om met een ervaren programmeur te werken en te begrijpen wat het is zoals in die omgeving te leven. In kort, zult u tijd niet hebben om veel te leren. Zo dat zij enkel over een oppervlakkige vertrouwdheid kunnen praten, geen diep begrip. Toen Alexander Paus zei, is een kleine leren een gevaarlijk ding.

* Pascal: In 3 dagen zou u de syntaxis van Pascal misschien kunnen leren (indien u reeds een gelijkaardige taal) wist, maar u kon veel niet leren over hoe de syntaxis te gebruiken. In kort, indien u was, zeg, een Basisprogrammeur, u kon leren programma's in de stijl van basis te schrijven met Pascal syntaxis, maar u kon niet leren wat Pascal eigenlijk goed (en slecht) voor is. Zo dat wat het punt is? Alan Perlis zei eenmaal: "Een taal die de weg niet treft die u aan programmering denkt, is niet waard voorspellen". Een mogelijk punt is dat u een minuscuul beetje van Pascal moet leren (of waarschijnlijker, iets houdt van Visuele basis of Javascript) omdat u met een bestaand werktuig moet koppelen om een specifieke taak te bereiken. , Maar dan leert niet u hoe te programmeren; u leert die taak te bereiken.

* In Drie Dagen: Jammerlijk dit is niet genoeg, als het volgende onderdeel toont.

 

Onderricht Uzelf Programmeert in Tien Jaren

Onderzoekers (de Bloem (1985), Bryan & Harter (1899), Hooi (1989), Simmon & de Achtervolging (1973)) hebt getoond het neemt ongeveer tien jaren te ontwikkelen expertise in een grote verscheidenheid van gebieden, inclusief schaakspelspelen, muziekcompositie, telegraafoperatie, schilderij, pianospelen, zwemmend, tennis en onderzoek in neuropsychologie en topologie. waarom. Verschijn daar geen echte korte wegen te zijn: zelfs Mozart, die een muzikale wonder met een leeftijd van 4 was, die 13 meer jaren is genomen voor hij begon wereld-klasmuziek te produceren. In nog een genre scheen de Beatles op de scène met een reeks van #1 slag en een verschijning op de Ed Sullivan vertoning in 1964 te barsten. Maar zij hadden kleine clubs in Liverpool en Hamburg sinds 1957 gespeeld, en terwijl zij massaberoep al vroeg hadden, hun eerst geweldig kritisch succes, Sgt. Peper, werd in 1967 vrijgegeven. Samuel Johnson (1709-1784) dacht het dat langer wordt genomen dan tien jaren: "Voortreffelijkheid in departementen kan enkel door de arbeid van een levenstijd worden bereikt; het te geen kleiner prijs gekcht te worden". En Chaucer (1340-1400) klaagde "de lyf zo kort, de handwerk zo snak naar lerne". Hippocrates (c. 400BC) wordt voor het uittreksel geweten "ars longa, vita brevis", die deel van de langere prijsopgave is "Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile", die in het engels vertolkt als "Leven kort is, [het] handwerk snakt, gelegenheid vluchtig, experiment verraderlijk, oordeel moeilijk". Hoewel in Latijn, kan ars betekenen ofwel kunst ofwel handwerk, in de oorspronkelijke Griek de woord "techne" kan enkel "vaardigheid" betekenen, niet "kunst".

 

Hier is mijn recept voor het programmeren van succes:
* Word u in programmering geïnteresseerd en doe enige omdat het plezier is. Vergewis u ervan dat het bijhoudt zijn genoeg plezier zodat u gewillig zult zijn in tien jaren te zetten.

* Praat met andere programmeurs; lees andere programma's. Dit is belangrijker dan boeken of opleidingscursus.

* Het Programma. De best soort van het leren leert door te doen. Om het meer technisch te zetten, "het maximale vermogen voor individuen in een gegeven domein wordt automatisch als een functie van verlengde ervaring, maar het vermogen niet kan worden toegenomen zelfs door zeer ervaren individuen tengevolge van opzettelijk inspanningen bereikt om te verbeteren". (P. 366) en "de doeltreffendste leren vereist een goed-gedefinieerde taak met een geschikt moeilijkheidsniveau voor het bijzondere individu, informatieve feedback en gelegenheden voor herhaling en correctie van fouten". (P. 20-21) Het boek Kenvermogen in de praktijk: Geest, Wiskunde en Cultuur in Alledaags Leven zijn een interessante referentie voor dit standpunt.

* Indien u wilt, zet in vier jaren aan een universiteit (of meer aan een universiteit). Dit zal aan u toegang tot sommige banen geven die referentie vereisen en het zal aan u een dieper begrip van het veld geven, maar indien u van school niet geniet, u kunt (met wat toewijding) krijg gelijkaardige ervaring op de baan. In elk geval boek dat alleen leert zal niet zijn genoeg. "Informaticaopvoeding kan niet uitvoering iemand een deskundige programmeur die meer dan borstels en pigment studeert kan maken aan iemand een deskundige schilder" zegt Eric Raymond, auteur van het Woordenboek van De Nieuwe Computerkraker. Een van de best programmeurs die ik ooit aanwierf gehad enkel een middelbare Schoolgraad; hij heeft veel geweldige software geproduceerd, heeft zijn eigen nieuwsgroep en maakte genoeg in aandelenopties om zijn eigen nachtclub te kopen.

 

* Werk aan projecten met andere programmeurs. Wees de best programmeur op sommige projecten; wees het slechtste op sommige anderen. Wanneer u het best bent, kunt u uw bekwaamheden testen om een project te leiden en anderen met uw visie te inspireren. Wanneer u het slechtste bent, leert u wat de meesters doen en u leert wat zij niet houden van te doen (omdat zij u maken doen het voor hen). Learn and master guitar baby!

* Werk aan projecten na andere programmeurs. Wordt betrokken in overeenkomst een programma schreef door iemand anders. Zie wat het neemt te begrijpen en te repareren het wanneer de oorspronkelijke programmeurs niet rondom zijn. Denk aan hoe uw programma's te ontwerpen om het gemakkelijker voor die te maken die het zullen handhaven na u.

* Leer tenminste een half dozijn programmeringstalen. Omvat een taal die steunt klasseert abstracties (zoals Java of C + +), een die functionele abstractie (zoals Lispelende Uitspraak of ML) steunt, een die syntactische abstractie (zoals DE Lispelende Uitspraak) steunt, een die verklarende specificaties (zoals Proloog of C + + mallen) steunt, een die coroutines (zoals Beeld of Plan) steunt, en een die parallellisme (zoals Sisalvezel) steunt.

* Herinner u dat er een "computer" in "informatica" is. Weet hoe lang het uw computer neemt om een instructie uit te voeren, haal een woord van herinnering (met en zonder een opslagplaatsjuffrouw), lezing opeenvolgende woorden van schijf en zoek naar een nieuwe locatie op schijf. (Antwoorden hier).

* Word in een taalstandaardiseringsinspanning betrokken. Het kon de ANSI-C zijn + + commissie of het zou kunnen beslissen of uw plaatselijke coderingstijl 2 of 4 ruimteinsnijdingsniveau zal hebben. Ofwel weg, leert u ongeveer welke andere mensen van in een taal houden, hoe diep zij zo voelen en misschien zelfs een klein over waarom zij voelen zo.

* Heb de goede zin om de taalstandaardiseringsinspanning uit te stappen even vlug als mogelijk.

Met iedereen die in geest, zijn twijfelachtig hoe ver u slechts door boekleren kunt werden. Voor mijn eerst kind geboren was, lees ik alle Hoe Naar boeken en nog steeds gevoelde hou van een domme beginneling. 30 Maanden later, toen mijn tweede kind schuldig was, ben ik terug naar de boeken voor een verfrissing gegaan? De nr. in plaats daarvan steunde, ik op mijn persoonlijke ervaring, die uit draaide om ver nuttiger te zijn en gerust te stellen naar mij dan de duizenden van pagina's door experts schreven.

Bevrijde Beken, in zijn essay Geen Zilveren Kogel identificeerde een drie-deel plant bevinding geweldige softwareontwerpers:

1. Identificeer systematisch hoogste ontwerpers even vroeg als mogelijk.

2. Wijs een carrièrementor toe om verantwoordelijk voor de ontwikkeling van het vooruitzicht te zijn en hou voorzichtig een carrièrebestand bij.

3. Verzorg gelegenheden voor het groeien van ontwerpers om op elkaar in te werken en elkaar te stimuleren.

Dit neemt aan dat sommige mensen reeds de kwaliteiten hebben die noodzakelijk zijn voor het zijn van een geweldige ontwerper; de baan is goed hen langs te overhalen. Alan Perlis zet het meer beknopt: "Iedereen kan worden onderricht te beeldhouwen: Michelangelo zou hoe niet naar moeten hebben onderricht worden. Zo dat het met de geweldige programmeurs is".

Ga zo vooruit en koop dat het Java boek; u zult vermoedelijk sommige gebruiken uit het krijgen. Maar u zult niet veranderen uw leven, of uw echte totale expertise als een programmeur in 24 uren, dagen, of zelfs maanden.

Referenties:
Bloem, Benjamin (ed). Ontwikkelingstalent in Jeugd, Ballantine, 1985.

Beken, Bevrijde, Geen Zilveren Kogel, IEEE Computer, vol. 20, nr. 4 1987 p. 10-19.

Bryan, W L. & Harter, N. "Studeert op de telegraphic taal: De aanwinst van een hiërarchie van gewoonten. De psychologie Herziening, 1899 8 345-375

Hooi, John R., Vervolledig Probleem Oplosser Lawrence Erlbaum, 1989.

Achtervolging, William G. & Simon, Herbert A. "het Inzicht in Schaakspel" de Cognitieve Psychologie, 1973 4 55-81.

Was, Jean, Kenvermogen in de praktijk: Geest, Wiskunde en Kweek in Alledaagse Leven, Cambridge Universiteitspers, 1988.

 

Antwoorden:

Benaderen timing voor verschillende operaties op een typische 1GHz PC in zomers 2001:
Voer enkele instructie 1 nanosec uit = (1/1,000,000 sec haal woord van L1 opslagplaatsherinnering 2 nanosec
haal woord van centrale geheugen 10 nanosec haal woord van opeenvolgende schijflocatie 200 nanosec haal woord
van nieuwe schijflocatie (zoek) 8.000.000 nanosec = 8 millisec

 

Het aanhangsel: Boeken en Andere

Hulpbronnen Enkele mensen hebben gevraagd welke boeken en web oproept zij van zouden moeten leren. Ik herhaal dat "boek dat alleen leert zal genoeg niet zijn", maar ik kan de volgen aanraden:
* Het Plan: Structureer en Interpretatie van Computerprogramma's (Abelson & Sussman) zijn vermoedelijk de best introductie naar informatica en het onderricht programmering als een weg van overeenkomst de informatica. U kunt online video's van lezingen op dit boek evenals het volledige tekst online zien. Het boek daagt uit en zal sommige mensen verwijderen die misschien succesrijk met nog een benadering konden zijn.

* Het Plan: Hoe om Programma's (Felleisen et al) Te Ontwerpen. is een van de best boeken op hoe eigenlijk programma's in een elegante en functionele weg te ontwerpen.

* Python: Het python Programmering: Een Introductie naar CS (Zelle) is een goede introductie met Python.

* Python: Enkele online handleiding zijn verkrijgbaar aan Python.Organisatie.

* Oz: Begrip, Techniek en Modellen van Computer Programmering (Busje Roy & Haridi) worden gezien door enige als de modern-dag opvolger naar Abelson & Sussman. Het is een reis door de grote ideeën van programmering, en bedekt een wijder bereik dan Abelson & Sussman terwijl misschien gemakkelijker zijnd te lezen en te volgen. Het gebruikt een taal, Oz, dat niet ruim wordt geweten, maar dient als een basis voor het leren andere talen.

 

Copyright © 2001 Peter Norvig

Translation provided by the LinkVana Group

  HOME     SHRED GUITAR LICKS     SWEEP GUITAR LICKS     LEGATO GUITAR LICKS     CONTACT DAVE     LEARN AND MASTER GUITAR     SITE MAP