At blive programmør er en kumulativ proces med at opbygge færdigheder dag efter dag og år efter år på et sjovt og givende felt (intellektuelt, mentalt og økonomisk). Denne guide lover dig ikke en magisk måde at blive programmør på med lethed, og rækkefølgen af trin er ikke hellig, men den giver dig et generelt overblik over, hvordan du bliver programmør på et af de moderne områder inden for området.
Trin
1.
Tag et introduktionskursus i en (eller alle) af følgende discipliner:- Logik
- Diskret matematik
- Programmeringssprog (helst C++/ Java/ Python for begyndere)
EKSPERDTIP
Gene Linetsky, MS
Startup grundlægger og teknisk direktør Gene Linetsky er en startup grundlægger og softwareudvikler i San Francisco Bay Area. Han har arbejdet i teknologibranchen i over 30 år og er teknisk direktør hos Poynt, en teknologivirksomhed, der skaber smarte transaktionssystemer til virksomheder.
Gene Linetsky, MS
Stifter af startups og teknisk direktør
Tro ikke, du skal studere for at blive programmør. Det kan være nyttigt at tage kurser i et programmeringssprog, men Gene Linetsky, softwareingeniør og grundlægger af start-ups, siger: ”Det kan diskuteres, om en programmeringsuddannelse hjælper eller ej. Prøv i stedet at tænke på programmering som en slags praktik – det handler om at lære af dine fejl.`
2. Lær databasebegreber såsom tabeller, visninger/forespørgsler og procedurer. Du kan bruge enhver simpel databasepakke til dette, såsom:
MS AccessDB VFox ProParadoksMySQL er en god database at lære, fordi den er gratis, udbredt og ofte tilgået via SQL-forespørgsler3. Beslut hvilken slags programmør du vil være. Programmører falder normalt under følgende kategorier:
web programmørDesktop Application ProgrammerOperativsystem (OS) orienteret programmør (bundet til et enkelt operativsystem eller sæt operativsystemer)Platformuafhængig programmørDistribueret applikationsprogrammør
Bibliotek/platform/framework/kerneprogrammørSystemprogrammørKernel programmørDriver programmørKompiler programmørDatamatiker (videnskabelig)
4. Lær de teknologier og programmeringssprog, der er relateret til det programmeringsfelt, du vælger. De følgende afsnit diskuterer opgaverne for forskellige typer programmering.
Metode 1 af 6: Webprogrammering
1.
Hvad betyder webprogrammering. Webapplikationer er softwarekomponenter designet til at fungere på toppen af internetarkitekturen. Det betyder, at applikationerne kan tilgås via browsersoftware som Firefox eller Internet Explorer. At være bygget til toppen af internetarkitektur betyder ikke nødvendigvis, at du har brug for en aktiv forbindelse til internettet. Det betyder, at webapplikationer er bygget oven på standard webteknologier såsom:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IIP protokoller
- HTML
- XML
- kold fusion
- ASPI
- JSP
- PHP
- ASPI.LIGE
2. Tjek forskellige hjemmesider for at lære, hvordan de generelt ser ud. (Højreklik og klik derefter på Vis kilde eller tryk på F12.) Se efter forskellighed i webstedets type/indhold, ikke antallet af websteder, du ser. Generelt skal du tjekke mindst 1 af hver af følgende typer websteder:
Virksomhedssider (kommercielle virksomheder, non-profit virksomheder/organisationer, statslige organisationer)Webindekseringsmaskiner (søgemaskiner, meta-søgesider, specialiserede søgemaskiner, mapper)data mining sitesPersonlige webstederInformations-/encyklopædiske sider (wikier, faktaark, tekniske specifikationer og manualer, blogs og dagbøger, nyheds- og nyhedsbureausider, gule sider osv.)Sociale medier (sociale portaler, bogmærkewebsteder, websteder til at tage noter)Sammensatte websteder (herunder andre kategorier såsom wikier og blogs)3. Lær mindst én brainstormingteknik/-metode og software, der bruges til at implementere denne metode. For eksempel: brainstorming og MS Visio.
4. Lær, hvordan du opretter et websted. Du vil skabe konceptuelle webdiagrammer, sitemaps og navigationsstrukturer.
5. Tag et kort kursus i grafisk design. Prøv at lære mindst ét billedredigeringsprogram (valgfrit, men stærkt anbefales)
6. Lær det grundlæggende i internetinfrastrukturen. Dette har blandt andet at gøre med en global idé om:
Underliggende webserviceprotokoller (HTTP, FTP, SMTP og POP3 eller IMAP4)Webserversoftware (helst til den platform, du normalt arbejder med)web browsing software.E-mail-server og klientsoftware7. Lær HTML og CSS. Det er også en god idé at lære at bruge en HTML-redigeringssoftwarepakke `What You See Is What You Get (WYSIWYG)`.
8. Lær XML- og XML-relaterede teknologier, såsom XSL og XPath (valgfrit, men anbefales).
9. Opret en simpel statisk hjemmeside, indtil du er fortrolig med og fortrolig med HTML.
10. Lær et scriptsprog på klientsiden. De fleste brugere lærer JavaScript. Nogle lærer VBScript, men dette er ikke kompatibelt med de fleste browsere.
11. Sørg for, at du kan arbejde med det scriptsprog på klientsiden, du har lært. Prøv at nå dit potentiale med kun det sprog. Fortsæt først derefter til næste trin, indtil du i det mindste er fortrolig med scriptsproget på klientsiden.
12. Lær mindst 1 server-side programmeringssprog. Hvis du vil begrænse dig selv til 1 form for serversoftware, skal du lære et af de programmeringssprog, der understøttes af denne software. Hvis ikke, skal du lære mindst ét programmeringssprog for hver serversoftware.
13. Opret et pilotprojekt til dig selv efter at have lært programmeringssproget på serversiden.
14. Sørg for at have din egen hjemmeside og begynd at eksperimentere online på din egen side.
Metode 2 af 6: Programmering af desktop-software
1. Ved, hvad du går ind til, når du begynder at programmere desktop-applikationer. De fleste af disse programmører skriver kode til forretningsapplikationer, så det er klogt at have en idé om forretningsmiljøet, deres organisatoriske og økonomiske struktur, så du kan spare en masse tid.
2.
Lær om de forskellige hardwarearkitekturer på computere. Et introduktionskursus i digital elektronik og anden computerarkitektur er nyttigt; men det er måske lidt for meget til at starte med, så læs nogle indledende tutorials (som f
denne og
denne) først tilstrækkeligt. Du kan vende tilbage til dette trin efter at have lært et første programmeringssprog.
3. Lær et programmeringssprog på begynderniveau. Føl dig ikke for godt til at lære sådan et sprog, fordi du ikke længere er et barn. Et eksempel på et sådant programmeringssprog er Scratch. Disse programmeringssprog kan gøre indlæringskurven lidt mindre stejl, når du lige er startet. Men dette trin forbliver valgfrit. Du kan også gøre dette til det forrige trin.
4. Tag en introduktion til procedureel, objektorienteret og funktionel programmering.
5. Tag et introduktionskursus i enproceduremæssigt programmeringssprog. Uanset hvilket sprog du vælger på et senere tidspunkt, vil det kræve en vis grad af proceduremæssig programmering. Procedurel programmering anses også for at være den nemmeste at starte med for at forstå, hvad programmering er.
6. Lær mindst én avanceret form for modellering, såsom UML eller ORM.
7. Begynd at skrive nogle små konsol- eller konsollignende applikationer. Du kan bruge øvelserne i programmeringsbøger. Brug et programmeringsmiljø, der passer til det programmeringssprog, du vælger.
8. Tag et avanceret kursus i det valgte programmeringssprog. Sørg for, at du forstår begreberne nedenfor og kan anvende dem med relativ lethed, før du fortsætter:
Input og output af data til og fra brugere af programmet.Logikken og rækkefølgen af operationer af procedureprogrammer.Erklæring, tildeling og sammenligning af variabler.Konstruktioner som If..derefter..andet og Vælg/skift..sag.Loop-konstruktioner såsom While..gør, gør..mens/indtil, For..Næste.Dit programmeringssprogs syntaks til at oprette og kalde procedurer og funktioner.Datatyper og hvordan man manipulerer dem.Brugerdefinerede datatyper (poster/strukturer/enheder) og hvordan man bruger dem.Hvis du bruger sprogoverbelastningsfunktioner, så prøv at forstå dem.Måden dit programmeringssprog adresserer hukommelsen (pegepind, kig osv.)Hvis dine sprogoperatører overbelaster, så prøv at forstå.Hvis dit sprog bruger delegerede/funktionspointere, skal du forstå, hvordan det fungerer.9. Anvend de avancerede teknikker, du har lært.
10. Tag et introduktionskursus i mindst 1 eller flere programmeringssprog i et andet programmeringsparadigme. Det anbefales at lære 1 programmeringssprog af hvert paradigme, og det gør de fleste avancerede programmører også. Men normalt starter du med ét sprog, arbejder med det et stykke tid for at anvende og praktisere din viden, og så lærer du et andet. Prøv en af følgende programmeringstyper:
Logisk programmering.Funktionel programmering.Objektorienterede paradigmer.11. Prøv at kombinere følgende to programmeringssprog, du har lært. Væg styrker og svagheder op mod hinanden. Normalt gør du følgende:
Tag simple eksempler på dit tidligere arbejde i det første programmeringssprog og omskriv det med dit andet programmeringssprog.Opret et nyt projekt, og prøv at implementere det på begge sprog. Nogle gange vil det afhængigt af projekt og sprog ikke være muligt at køre et projekt!Skriv et snydeark eller oversigtstabel med sammenligninger mellem lignende konstruktioner på de to sprog og funktioner, der er unikke for hvert af sprogene.Forsøger at finde måder at efterligne funktioner, der er unikke for et af de to sprog ved at bruge det andet sprog.12. Lær visuelle programmeringskoncepter ved at bruge et af de sprog, du har lært. Næsten alle programmeringssprog har versioner/biblioteker, der understøtter visuel programmering, og andre understøtter konsol- eller konsollignende programmering. Dette kan opnås ved at gøre følgende:
Få en introduktion til begivenhedsdrevet programmering. Det meste af visuel programmering er til en vis grad afhængig af begivenheder og begivenhedshåndtering (ved at bruge det valgte programmeringssprog).Prøv så meget desktop-software som du kan, og lær at forstå, hvad softwaren gør. De fleste softwarevirksomheder tilbyder betaversioner af deres produkter, som du kan bruge til at teste softwaren. Prøv at følge med udviklingen af brugergrænsefladen.Læs artikler eller tutorials om grafiske brugergrænseflader.13. Begynd at anvende din viden ved at designe små softwareprojekter. Prøv din programmeringsoplevelse på problemer, du står over for i hverdagen. For eksempel at skrive programmer, der kan ændre et stort antal filnavne på én gang, sammenligne tekstfiler visuelt, kopiere navnene på filer i en mappe til hukommelsen eller en tekstfil osv. Hold det enkelt i starten.
14. Opret et virtuelt `afgangsprojekt`. Fuldfør dette til slutningen ved at anvende de visuelle programmeringsteknikker, du har lært indtil nu.
15. Udvider din forståelse af den visuelle ramme/bibliotek/pakke, du lærte, før du gik videre til mere avancerede kurser, lægger ekstra vægt på detaljer og lærer flere tips og tricks til dit rammeværk fra onlineressourcer.
16. Søg og lær om andre pakker/biblioteker med visuals til dine programmeringssprog.
17. Tag et kursus i grafik (ikke grafisk design). Dette vil være meget nyttigt for programmører, der ønsker at skrive attraktive brugergrænsefladeelementer.
18. Bliv spilprogrammør (valgfrit). Programmeringsspil betragtes i de fleste tilfælde som desktop-programmering. Hvis du planlægger at blive spilprogrammør, bør du lære mere om spilprogrammering efter at have fulgt disse trin. Et grafikkursus er et must for spilprogrammører, og det andet sprog, der vælges i de foregående trin, bør være et logisk/funktionelt programmeringssprog (helst Prolog eller Lisp).
Metode 3 af 6: Programmering af distribuerede applikationer
1. Forstå, hvad programmering af distribuerede applikationer er. Distribueret applikationsprogrammering anses af mange for at være den sværeste at lære og kræver viden om forskellige computer- og kommunikationsteknologier.
2. Tag et hurtigt introduktionskursus i telefonisystemer og relateret hardware. Trinet er valgfrit. Men det er meget nyttigt, hvis du vil forstå netværkstopologier.
3. Bliv fortrolig med netværksarkitektur og enheder såsom hubs, switches og routere.
4. Tag et kursus i netværksprotokoller og deres væsentlige ting. Du skal have en god forståelse af Open Systems Interconnection (OSI) modellen, Ethernet, IP, TCP, UDP og HTTP, før du kan begynde at programmere distribuerede applikationer.
5. Lær XML gør dig bekendt med det.
6. Begynd at lære et shell-scriptsprog. Under Windows ville det være ethvert script, der fungerer med Windows Scripting Host. Under Linux er disse Bash-scripts og Perl. JavaScript anbefales stærkt til begge systemer af følgende årsager:
Det understøttes af næsten enhver scripting-vært i ethvert operativsystem (Windows Scripting Host understøtter JavaScript som standard, de fleste Linux-distributioner har en pakke til JavaScript-scripting-konsolstøtte).Det anses af mange udviklere for at være lettere at lære.Det har ALGOL-afledt syntaks, som gør det lettere at blive fortrolig med andre programmeringssprog, når du vælger et andet programmeringssprog (C, C++, C#, Java og J# er alle afledt af ALGOL-syntaks).At lære JavaScript vil gøre dig fortrolig med klientsidescripting af websider, hvilket er en øjeblikkelig bonus!7. Start proceduremæssig programmering ved at bruge dit foretrukne scriptsprog. Senere kan du begynde at bruge mere avancerede programmeringsteknikker og paradigmer afhængigt af dit scriptsprog og hvad det understøtter. Alle scriptsprog har nogle aspekter af proceduremæssig programmering.
8. Brug det scriptsprog, du har lært, til at skrive scripts, der udfører kommunikation mellem maskiner. Lær, hvad der skal til for at gøre det. Enkel kommunikation er nok.
9. Gå over til desktop-scripts/programmeringssprog. Helst et, der er et multi-paradigme sprog som Python. Følg en simpel introduktion til det andet sprog. Java ses af de fleste programmører som det foretrukne sprog af mange grunde. Men C# vinder hurtigt frem på dette område. Java og C# foretrækkes af følgende årsager:
De er objektorienterede programmeringssprog, der beskytter programmører i store teams mod implementeringsdetaljer, fordi begge understøtter komponenter (kodeblokke, kompilerede, der udfører en bestemt opgave og kan bruges i andre programmer).De understøtter event-drevet programmering, foruden OO og proceduremæssig programmering til en vis grad.Den ramme, som sproget er bygget på, distribueres fra (i tilfælde af Java).Tilgængeligheden af mange hyldepakker relateret til netværk, såvel som open source-kode og (ramme) indbyggede pakker; Dette gør det lettere for programmører at bygge videre på andres arbejde.10. De fokuserer mere på sprogets kernefunktioner, især dem, der understøtter netværk. Der lægges mindre vægt på brugergrænsefladeelementerne som output, vinduesdesign og teknikker og brugergrænsefladeelementerne.
11. Tag et kursus i distribueret applikations- og platformsdesign. Dette kan gøres ved hjælp af bøger, online tutorials eller akademiske kurser. Det er dog nødvendigt at forstå arkitekturen af distribuerede applikationer og dens koncepter.
12. Lær om at bygge og vedligeholde komponenter og tjenester ved at bruge det programmeringssprog, du vælger.
13. Lær en eller flere af følgende teknologier. Det anbefales, at du som minimum tager en introduktion til hver af disse. De fleste distribuerede applikationsprogrammører stopper ikke ved et eller to programmeringssprog, men lærer mindst et programmeringssprog for hvert operativsystem. Det er fordi, hvis du ønsker, at dine applikationer skal "distribueres", skal du tilbyde mindst én version for hvert af de store operativsystemer.
Common Object Request Broker Architecture (CORBA)Simple Object Access Protocol (SOAP)Asynkron JavaScript og XML (AJAX)Distributed Component Object Model (DCOM).NET fjernbetjeningXML Web Services1. Hvad er kerneprogrammering. Kerneprogrammører er hovedsageligt avancerede programmører, der har lavet overgangen fra programmeringsapplikationer til programmeringskodeenheder, der kan bruges af andre programmører.
2. Lær et programmeringssprog, der giver dig mulighed for at bygge genbrugelige komponenter/pakker, hvis du ikke allerede har gjort det.
3. Tag et videregående kursus i UML og ORM. De fleste biblioteksudviklere bruger en eller begge af disse.
4. Tag et kursus i software engineering.
5. Lær mindst modulære, komponentbaserede, objektorienterede og begivenhedsdrevne programmeringsteknikker og koncepter. Jo flere programmeringsparadigmer og sprog du kender, jo mere succesfuld vil du være som bibliotek/bibliotek/pakkeprogrammør.
6. Lær om de forskellige operativsystemer og rammer, der understøttes af disse operativsystemer.
7. Fokuser din indsats på tværplatformsrammer, programmeringssprog og teknologier.
8. Hvis de programmeringssprog, du har lært, er i overensstemmelse med ANSI/ISO/IEEE/W3C-standardversionerne, og prøv at mestre dem. Prøv at bruge standardkode, når det er muligt.
9. Forsøger at efterligne simple, allerede etablerede biblioteker, især open source. Dette er nyttigt i de tidlige stadier af at blive biblioteks-/pakkeprogrammør. Start med simple pakker som enhedskonvertering og ikke alt for vanskelige videnskabelige beregninger. Hvis du er studerende, kan du drage fordel af de ikke-programmerende kurser til at fange ligninger og naturvidenskabelige kerne i programbiblioteker.
10. Søg efter open source-pakker inden for dit felt. Download først binære filer/eksekverbare filer fra pakken. Prøv at bruge dem og find styrkerne og svaghederne. Når du er færdig med det, skal du downloade kildekoden og prøve at finde ud af, hvordan den er lavet. Prøv at kopiere disse biblioteker/biblioteker eller dele af dem. Gør det først efter du har studeret koden og senere før du har set koden. Prøv venligst igen senere for at forbedre disse biblioteker.
11. Lær de forskellige tilgange, der bruges til at distribuere og implementere komponenter til og af programmører.
Normalt har biblioteks-/pakkeprogrammører en tendens til at tænke rekursivt og/eller iterativt, når de skal løse et problem. Prøv at tænke på hvert problem som en samling af mindre problemer (en sekvens af enklere opgaver) eller som en gentagen proces med at reducere størrelsen af problemet til mindre delproblemer og derefter stable disse delproblemer oven på hinanden.Biblioteks-/pakkeprogrammører har en tendens til at generalisere. Det vil sige, at når de præsenteres for et simpelt specifikt problem, begynder de normalt at tænke på et mere generelt problem og forsøger at løse det generelle problem, idet de også automatisk løser det mindre problem.Metode 5 af 6: Systemprogrammering
1. Forstå, hvad systemprogrammering handler om. Systemprogrammører står over for videnskaben programmering, ikke med dens specifikke implementering. Begræns dig ikke til en bestemt platform.
2. Følg de første tre trin for desktop-programmører.
3. Tag et introduktionskursus i lineær algebra.
4. Tag et kursus i calculus.
5. Tag et kursus i logik og/eller diskret matematik.
6. Lær forskellige bare operativsystemer at kende. Du kan gøre dette på følgende måde:
Lær, hvordan operativsystemer installeres.Lær, hvordan du installerer flere forskellige operativsystemer på 1 pc (valgfrit, men anbefales).Installer mere end ét operativsystem. Installer ikke alle hjælpeprogrammer på systemerne; brug hellere bare-bones-funktionaliteten fra operativsystemet.7. Tag et kursus (eller alternativt læs bøger) om hardwarearkitektur.
8. Udvikle en forståelse af de andre computerhardwareplatforme.
9. Prøv at sætte dig ind i assemblersproget for den platform/OS efter eget valg. Senere lærer du montagen fra andre platforme/systemer.
10. Lær ANSI C og C++ sammen med begreberne proceduremæssig programmering.
11. Forstå og øv dig med C/C++ standardbibliotekerne på den platform, du vælger. Vær særlig opmærksom på Standard Template Library (STL) og måske Active Template Library (ATL).
12. Søg efter onlineressourcer, bøger og kurser for at få en forståelse af C-varianten til din specifikke platform.
13. Øv dig i at skrive avanceret kode med C og C++.
14. Lær mere om avanceret montage.
15. Tag et kursus i programmering af operativsystemer.
16. Søg efter dokumentation på en bestemt platform efter eget valg. Dette vil være nemmere, hvis du vælger et Unix-baseret OS. At forstå det system, du arbejder med, vil tjene dig godt senere.
17. Øv din tilegnede viden. Opret nogle små hjælpeprogrammer først. Normalt er det nyttigt at gøre følgende:
Forsøger at skabe små værktøjer, der allerede er på dit system.Forsøger at konvertere tilgængelige værktøjer i operativsystemer til dine.18. Lær programmeringssprogene i den mest nyttige rækkefølge. Dette er det eneste felt, hvor det første programmeringssprog er vigtigt. Lær ANSI C først og ikke C++, C# eller Java og ikke D. Først derefter lærer du C++.
Begrænsningen til C skyldes, at systemprogrammering kræver, at programmøren er bekendt med følgende begreber:
Faktisk og komplet kompilering af kildekoden.Objektoutputfiler på lavt niveau.Sammenkædning af binære filer.Maskinsprog/monteringsprogrammering på lavt niveau. C-sproget anses af nogle for at være en forklædt eller lettere at lære form for samling. Det understøtter også indsættelse af assembler-kode i C-koden, når det er nødvendigt, og det er kun proceduremæssigt (ligesom montering).Metode 6 af 6: At blive datalog
1. Hvad gør dataloger. Dataloger er meget avancerede programmører, som i stedet for at arbejde med applikationer arbejder på at designe computerteknologier såsom kryptering, programmeringssprog og data mining-algoritmer. Du kan sjældent nå dette niveau uden et akademisk studie og en masse dedikation.
2. Få den videnskabelige viden svarende til en fireårig universitetsuddannelse i datalogi. Du kan gøre dette gennem:
At forfølge en universitetsgrad (det mest oplagte trin).Få overblik over universitetsstudier og lav de forskellige kurser gennem selvstudium eller gennem separate kurser. Dette er muligt i teorien, men den første vej anbefales.3. Vælg en specialisering. Jo mere specifik jo bedre. Dette afhænger af dine præferencer. Her er nogle af nøgleområderne inden for datalogi:
Algoritmedesign (søgning, sortering, kryptering, dekryptering og fejldetektion i kommunikation er nogle eksempler)Programmeringssprog/kompilatordesign/optimeringKunstig intelligens (mønstergenkendelse, talegenkendelse, naturlig sprogbehandling, neurale netværk)robotteknologiVidenskabelig programmeringArbejder med supercomputereComputerstøttet design/modellering (CAD/CAM)Virtual realityComputergrafik (Computergrafik forveksles normalt fejlagtigt med grafisk design eller grafisk brugergrænsefladedesign. Computergrafik er det felt, hvor du kan bruge og manipulere billeder i computersystemer.)4. Overvej at få en universitetsgrad. Du kan også gå efter en master- eller doktorgrad.
5. Lær de teknologier og programmeringssprog, der er relateret til dit felt som programmør.
Tips
Uanset hvilken slags programmering du vil prøve eller på hvilket niveau, kan du altid tage et kursus eller undervisning på skolen. Lad dig ikke skræmme af udtryk som `Computer Science.Ethvert kursus, du kan tage uden forudgående kendskab, bør fokusere på det grundlæggende i programmering, men tjek med underviseren på forhånd for at sikre dig, at det er det, du leder efter, da kurser som `Computerfærdigheder` fokuserer mere på den fortrolige involverer sig i kontorapplikationer, etc..
Artikler om emnet "Blive programmør"