Att bli en programmerare är en kumulativ process som bygger upp dina färdigheter dag efter dag och år efter år, och programmeringen kan vara rolig och givande (mentalt, andligt och ekonomiskt). Den här guiden lovar inte att ge ett magiskt enkelt sätt att bli en programmerare, och beställningen av stegen är inte helig, men du får en allmän översikt över hur man blir programmerare i ett av de moderna programmeringsfälten.
Steg
1.
Ta en introduktionskurs i en (eller alla) av följande discipliner:- Logik
- Diskret matematik
- Programmeringsspråk (ta del av de olika programmeringsparadigmerna, från följd av sekventiell / procedur till objektorienterad, efter funktionell och logisk programmering. Föredraget Ruby / Python / Pascal för nybörjare och efter lite god förståelse gå djupare in i C ++ / C # / Java)
Expertips
Gene Linetsky, MS
Startup Founder & Engineering Direktorgen Linetsky är en Startup grundare och mjukvaruingenjör i San Francisco Bay Area. Han har arbetat inom teknikindustrin i över 30 år och är för närvarande direktör för teknik på Poynt, ett teknikföretag som bygger smarta försäljningssterminaler för företag.
Gene Linetsky, MS
Startup Founder & Engineering Director
Känner inte att du måste tjäna en kodningsexamen. Samtidigt som man tar kurser på ett programmeringsspråk kan vara till hjälp, Gene Linetsky, en mjukvaruingenjör och uppstart grundare, säger: "Det är faktiskt diskutabelt om en grad gör ont eller hjälper. Tänk istället på programmering som en lärlingsskap - det handlar främst om att lära av dina misstag."

2. Lär dig databaskoncept som tabeller, visningar / frågor och rutiner. Du kan använda ett enkelt databaspaket för att göra det, till exempel:
MS AccessDb vFox ProParadoxMySQL är en bra databas för att lära sig eftersom det är gratis, vanligt, och databaser är vanligtvis åtkomliga med SQL-frågor
3. Bestäm vilken typ av programmerare du vill vara. Programmerare faller i allmänhet under en av följande kategorier:
WebbprogrammerareSkrivbordsprogrammerareOperativ system (OS) orienterad programmerare (bunden till ett enda operativsystem eller uppsättning operativsystem)Plattform-oberoende programmerareDistribuerade applikationer programmerareBibliotek / Platform / Framework / Core ProgrammerareSystemprogrammerareKärnprogrammerareDriver programmerareKompilatorprogrammerareProgrammeringsvetenskapare
4. Lär dig tekniken och programmeringsspråk relaterade till ditt programmeringsfält. Följande avsnitt bryter ner uppgifterna för olika typer av programmering.
Metod 1 av 6:
Webbprogrammering
1.
Vet vilken webbprogrammering medför.Webapplikationer är programkomponenter som är utformade för att fungera ovanpå Internetarkitekturen. Det innebär att applikationerna nås via en webbläsarprogramvara som Firefox eller Internet Explorer. Att byggas på toppen av internetarkitekturen behöver inte nödvändigtvis en aktiv anslutning till Internet. Det betyder att webbapplikationer är byggda ovanpå standard webbteknik som:
- Http
- Ftp
- Pop3
- Smtp
- Tcp
- Ip protokoll
- Html
- Xml
- Kall fusion
- ASP
- Jsp
- Php
- ASP.NETTO

2
Bläddra många olika webbplatser för att lära sig om hur de brukar se. (Högerklicka och klicka sedan på Visa källa eller tryck på F12.) Leta efter mångfald i webbplatsen / innehållet på webbplatsen, inte den mängd webbplatser som besöks. Generellt måste du besöka minst en av var och en av följande typer av webbplatser:
Företags närvaroplatser (kommersiella företag, icke-vinstdrivande företag / organisationer, statliga organisationer)Webindexeringsmotorer (sökmotorer, meta Sök webbplatser, specialiserade sökmotorer, kataloger)Data gruvplatserPersonliga webbplatserInformations- / encyklopediska sidor (Wikis, Datablad, Tekniska specifikationer och Handböcker Noteringskataloger, Bloggar och tidskrifter, Nyheter och nyhetsbyråer, Gula sidor, etc.)Sociala platser (Sociala portaler, bokmärken, noteringsplatser)Samarbetsplatser (detta inkluderar andra kategorier som nämns ovan, som wikis och bloggar)
3. Lär dig minst en brainstorming Teknik / metod och en programvara som används för att genomföra den metoden. Till exempel: Brainstorming diagram och MS Visio.

4. Bli bekant med webbplatsstrukturering.Detta skapar konceptuella webbdiagram, platskartor och navigationsstrukturer.

5. Ta en kraschkurs om grafikdesign. Försök att lära dig minst ett grafikredigering / manipuleringsprogramvara (valfritt, men starkt rekommenderat)

6. Lär dig grunden för internetinfrastrukturen. Detta inkluderar att få en grundläggande idé om:
Base Web Services Protocols (HTTP, FTP, SMTP och POP3 eller IMAP4)webbserver Programvara (helst en för plattformen du kommer att arbeta på mestadels)Webbläsningsprogramvara.E-postserver och klientprogramvara
7. Lär dig HTML- och CSS-språk. Du kanske också vill få "Vad du ser är vad du får (WYSIWYG)" Programvarupaket för redigering av HTML.

8. Lär dig XML och XML-relaterad teknik, till exempel XSL och XPath (valfritt men rekommenderat).

9. Skapa enkla statiska webbplatser tills du är bekant med och bekväm runt Html.

10.
Lär dig ett klient-sida skriptspråk. De flesta användare lär sig jаvascript. Några lär sig
Vbscript, Men det här är inte kompatibelt med de flesta webbläsare.

11. Bekanta dig med det skriptspråk du lärde dig. Försök att nå din potential med bara det språket. Gå bara till nästa steg när du åtminstone har blivit bekant med ditt skriptspråk på klientsidan.

12. Lär dig minst ett programmeringsspråk för server-sida. Om du väljer att begränsa dig till en serverprogramvara, lära dig ett av programmeringsspråk som stöds av den programvaran. Om inte, lära dig minst ett programmeringsspråk på varje serverprogramvara.

13
Skapa ett pilotprojekt För dig själv efter att du har slutfört att du lär dig programmeringsspråket för serverns sida.

14
Metod 2 av 6:
Programmering av skrivbordsprogrammet
1.
Vet vad du kommer in med skrivbordsprogrammering.De flesta skrivbordsprogrammerare skriver kod för affärslösningar, så att få en uppfattning om företag, deras organisatoriska och finansiella struktur kommer att vara en stor
tidsparare.

2.
Lär dig om de olika datorns maskinvara arkitekturer. En introduktionsnivå kurs i
Digitala kretsar design och en annan i
datorarkitektur är användbart - men vissa ser det som avancerat för en utgångspunkt, så läser två eller tre handledningsartiklar (t.ex
den här och
den här) kan räcka. Då kan du gå tillbaka till det här steget senare, efter att du lär dig ditt första programmeringsspråk.

3. Lär dig en inträdesnivå (barn ") programmeringsspråk. Var inte blyg för att lära dig ett sådant språk bara för att du är äldre än att kallas a "unge". Ett exempel på dessa programmeringsspråk kan skrapas. Dessa programmeringsspråk kan lindra smärtan för att lära dig ditt första programmeringsspråket oerhört. Detta steg är dock valfritt. Det kan också göras före föregående steg.


5. Ta en introduktionskurs i en av Procedural programmeringsspråk. Oavsett vilket språk du väljer senare för att vara ditt språk, kommer det att kräva procedurprogrammering på någon nivå. Dessutom rapporteras procedurprogrammering av de flesta programmerare vara det enklaste att använda som utgångspunkt för att få idén om programmering i allmänhet.

6. Lär dig minst en avancerad modelleringsteknik som UML eller Orm.

7. Börja skriva lite små konsol eller konsolliknande applikationer.Du kan använda vanliga små övningar i programmering av språkböcker. För detta, välj ett verktyg för att skriva program i programmeringsspråk du skriver in.

8. Ta en mer avancerad kurs i ditt valda programmeringsspråk. Se till att du förstår följande begrepp och att du kan tillämpa dem med relativ lätthet innan du går framåt:
Inmatning och utmatning av information till användare av ett program.Det logiska flödet och exekveringsflödet av program på procedurspråk.Förklara, tilldela och jämföra variabler.Förgrenande programmeringskonstruktioner som om..sedan..annars och välj / switch..fall.Loopingkonstruktioner som stund..göra, gör..medan / tills, för..Nästa.Din programmeringsspråksyntax för att skapa och ringa procedurer och funktioner.Datatyper och manipulera dem.Användardefinierade datatyper (poster / strukturer / enheter) och deras användning.Om ditt språk stöder Överbelastningsfunktioner, förstå det.Minnet åtkomst till metoderna för ditt språk av valet (pekare, kikar mm.)Om ditt språk stöder Operatörer överbelastning, förstå det.Om ditt språk stöder delegater / funktionspekare, förstår det.
9. Applicera de avancerade teknikerna du har lärt dig.

10. Ta en introduktionskurs i minst en mer programmeringsspråk I ett annat programmeringsparadigm. Det rekommenderas att lära ett programmeringsspråk på varje paradigm, och de flesta avancerade programmerare gör det, men du brukar börja med en, arbeta för ett tag att tillämpa din kunskap och öva det, då lära dig den andra senare, efter att du redan haft en riktig -Life erfarenhet av programmering.Prova ett av följande språkområden:
Logic Programming Paradigm.Funktionell programmering paradigm.Objektorienterad paradigm.
11. Försök att jämföra de två programmeringsspråk du hittills lärde dig. Utvärdera styrkorna och svagheterna hos var och en. Vanligtvis görs detta av:
Tar enkla prover av ditt tidiga arbete i det första programmeringsspråket och skriver om det med det andra programmeringsspråket.Skapa ett nytt projekt och försök att implementera det med båda språk. Ibland, beroende på ditt val av projekt och språk, kanske du inte kan genomföra projektet på ett av de språk!Skriva ett cheat-ark eller sammanfattande bordsjämförelser mellan liknande konstruktioner på de två språken och egenskaper som är unika för var och en av språken.Försök hitta sätt att efterlikna funktioner som är unik för ett av de två språken som använder det andra språket.
12. Lära sig visuell Programmeringskoncept med hjälp av ett av de språk du lärde dig. Nästan alla programmeringsspråk har versioner / bibliotek som stöder visuell programmering och andra som stöder konsol eller konsolliknande programmering. Detta kan åstadkommas genom:
Få en introduktion till evenemangsdriven programmering. Mest visuell programmering är beroende av någon nivå på händelser och händelserhantering (med programmeringsspråk du väljer).Prova så mycket skrivbordsprogram som du kan och förstå vad programvaran gör. De flesta mjukvaruutvecklingsföretag erbjuder beta-testversioner av sina produkter som du kan använda för att testa programvaran. Håll dig uppdaterad om användargränssnittets framsteg.Läs några artiklar eller handledningar på grafiska användargränssnitt.
13. Börja tillämpa din kunskap om små programvaruprojekt du designar. Försök att tillämpa din programmeringskompetens om problem du står inför i ditt dagliga liv. Skriv program som byter namn på filer i Mass, jämför textfiler visuellt, kopierar namnen på filer i en katalog till minne / textfil och saker som det. Håll det enkelt först.

14. Skapa en virtuell examensprojekt. Fyll i detta till slutet, tillämpa teknikerna för visuell programmering du hittills lärt dig.

15. Förbättra din förståelse för den visuella ramen / biblioteket / paketet du lärde dig innan genom att ta avancerade kurser, betala extra uppmärksamhet på detaljer och lära sig fler tips och tricks för din ram från online-resurser.

16. Sök efter andra paket / bibliotek av visuella element för dina programmeringsspråk och lära dem.

17. Ta en kurs i grafik (inte grafisk design). Det kommer att vara till stor hjälp för programmerare som vill skriva tilltalande användargränssnittselement.

18.
Överväg att bli en spelprogrammerare (valfritt).Spel Programmering beaktas, i de flesta delar, skrivbordsprogrammering. Om du tänker bli en spelprogrammerare måste du lära dig mer om spelprogrammering efter att du har avslutat dessa steg. En grafikkurs är ett måste för spelprogrammerare och det andra språket i de föregående stegen ska vara ett logiskt / funktionellt programmeringsspråk (helst Prolog eller Lisp).
Metod 3 av 6:
Distribuerade applikationer Programmering
1.
Tackla distribuerade applikationer programmering. Distribuerad applikation Programmering anses av många att vara en av de svåraste att lära sig och kräver olika kunskaper i dator- och kommunikationsteknik.

2. Ta en hastighet introduktion till telefoni system och deras hårdvara. Detta steg är valfritt. Det är dock mycket användbart för att förstå nätverkstopologier.

3. Bekanta dig med nätverksarkitekturer och enheter som nav, växlar och routrar.

4.
Ta en kurs i nätverksprotokoll och väsentliga. Du behöver en bra förståelse för
Open Systems Interconnection (OSI) Modell, Ethernet, IP, TCP,
Udp och http innan du börjar programmera distribuerade applikationer.

5. Lär dig XML-språket och bekanta dig med det.

6. Börja med att lära dig ett skriptspråk. För Windows-baserad programmering skulle det vara något skript som fungerar med Windows Scripting Host. För Linux-baserad programmering kommer Bash-skript och Perl att vara tillräckliga. jаvascript rekommenderas starkt för detta i båda plattformarna av följande skäl:
Den stöds av nästan vilken som helst skriptvärd i vilket operativsystem som standard (Windows Scripting Hosts, har jаvascript som standard, de flesta Linux-distributioner har ett paket för jаvascript-skriptkonsolstöd).Det anses vara lättare att lära av många utvecklare.Den har en Algol-härledd syntax som bekantar dig med mycket mer andra programmeringsspråk när du behöver välja ett andra programmeringsspråk (C, C++, C #, Java och j # alla har algol härledd syntax).Genom att lära dig jаvascript, bekanta dig med klientsidans skript av webbsidor som är en bonus-biverkning!
7. Applicera Endast procedurprogrammering med ditt skriptspråk efter valet först. Senare kan du använda mer avancerade programmeringstekniker och paradigmer enligt ditt skriptspråk och vad det stöder. Alla skriptspråk har vissa procedurprogrammeringsaspekter på någon nivå.

8. Använd det skriptspråk du lärde dig att skriva skript som utför kommunikation mellan maskiner. Lär dig vad som är nödvändigt för att göra det. Enkel kommunikation är tillräcklig.

9.
Gör en överföring till ett skrivbordsskript / programmeringsspråk. Företrädesvis är en som är ett multi-paradigm-språk som
Pytonorm. Ta en enkel introduktion till det andra språket. Java anses av de flesta programmerare vara det språk som valts av många skäl. Men C # blir fart i det här fältet. Java och C # föredras av följande skäl:
De är objektorienterade programmeringsspråk som skyddar programmerare i stora lag från implementeringsdetaljer, eftersom de båda stöder komponenter (kodenheter, förkompilerade, som utför en viss uppgift och kan användas i andra program).De stöder evenemangsdriven programmering, liksom OO och procedurprogrammering på någon nivå.Det ramar som språket är byggt på distribueras av naturen (i fråga om Java).Tillgängligheten av många färdiga paket som hanterar nätverk, både som öppen källkod och raminbyggda paket - det gör det lättare för programmerare att bygga på andras arbete.
10
Koncentrera Mer om språkens kärndrag, särskilt de som stöder nätverket. Betala mindre uppmärksamhet åt användargränssnittselement som utmatning, fönsterdesign och tekniker och användargränssnittselement.

11. Ta en kurs på distribuerade applikationer Design och arkitekturer. Detta kan göras med hjälp av böcker, online-handledning eller akademiska kurser. Men förståelsen av arkitekturen av distribuerade applikationer och dess koncept är nödvändig.

12. Lär dig om byggnadsbetjänade komponenter och tjänster Använda ditt programmeringsspråk.

13. Lär dig en eller flera av följande tekniker. Det rekommenderas att du får åtminstone en introduktion till dem alla. De flesta distribuerade applikationsprogrammerare stoppar inte på ett eller två programmeringsspråk, men lär dig minst ett programmeringsspråk på varje operativsystem. Det beror på att om du vill att din ansökan ska vara "distribuerad", Du bör ge en version av den åtminstone för varje större operativsystem.
Vanlig Objekt Request Broker Architecture (Korba)Enkelt objektåtkomstprotokoll (TVÅL)Asynkron jаvascript och xml (Ajax)Distribuerad komponentobjektmodell (Doft).Netto remoteringXML Web ServicesMetod 4 av 6:
Bibliotek / Platform / Framework / Core Programmering
1. Vet vad kärnprogrammering är.Kärnprogrammerare är bara avancerade programmerare som gjorde överföringen från programmeringsprogram till programmeringskodsenheter som ska användas av andra programmerare.

2. Lär dig ett programmeringsspråk som stöder byggbara komponenter / paket, om du inte redan har gjort det.

3. Ta en avancerad kurs i UML och Orm. De flesta bibliotekutvecklare använder en eller båda av dem.

4. Ta en kurs i mjukvaruutveckling.

5. Lär dig minst modulära, komponentbaserade, objektorienterade och händelsedrivna programmeringstekniker och koncept. Ju mer programmeringsparadigmer och språk du täcker, desto mer framgångsrik blir du som bibliotek / paketprogrammerare.

6. Läs mer om de olika operativsystem och programmeringsramar som stöds av dessa operativsystem.

7. Fokusera dina inlärningsinsatser på plattformsoberoende ramar, programmeringsspråk och teknik.

8.
Om programmeringsspråk du lärde dig hittills har Ansi/
Iso/
Eeee/
W3c Standardversioner, behärska standarderna. Försök att använda standardkod när det är möjligt.

9. Försök att efterlikna enkelt, redan etablerade bibliotek, särskilt öppna källkod. Detta är användbart under den tidiga fasen av att bli ett bibliotek / paketprogrammerare. Börja med enkla paket som enheter omvandling och mellanliggande vetenskapliga beräkningar paket. Om du är en högskolestudent, använd dina icke-programmeringskurser genom att försöka genomföra sina ekvationer och vetenskapliga kärna som bibliotek.

10. Sök efter och försök öppna paketpaket i ditt programplanering. Först nedladdning Binaries / Executables of the Package. Försök använda det och hitta sina starka och svaga punkter. När du har gjort det, ladda ner källan och försök att räkna ut hur det var gjort. Försök att återskapa dessa bibliotek eller delar av dem. Först, gör det när du har sett koden och senare innan du ser koden. Vid senare faser, försök förbättra dessa bibliotek.

11. Lär dig de olika metoder som används för att distribuera och distribuera komponenter till programmerare.
Vanligtvis tenderar biblioteks- / paketprogrammerare att tänka rekursivt och / eller iterativt av alla problem som de presenteras med. Försök att tänka på varje problem som en samling av mindre problem (en sekvens av enklare uppgifter) eller som en upprepad process för att minska problemets räckvidd till mindre scopes och sedan hämta dessa scopes på varandra.Bibliotek / paketprogrammerare tenderar att generalisera. Det är, när det presenteras med ett enkelt specifikt problem, tänker de vanligtvis på ett mer allmänt problem och försöka lösa det allmänna problemet som automatiskt löser den mindre.Metod 5 av 6:
Systemprogrammering
1. Förstå vilken systemprogrammering medför.Systemprogrammerare hanterar vetenskapen att programmera inte de specifika implementeringarna av det. Slå inte till en specifik plattform.

2. Följ de tre första stegen för programmerare för skrivbordsapplikationer.

3. Ta en introduktionskurs i linjär algebra.

4. Ta en kurs i Kalkyl.

5. Ta en kurs i logik och / eller diskret matematik.

6. Introducera dig själv till olika nakna operativsystem. Detta kan göras av:
Få en uppfattning om hur operativsystem är installerade.Lära sig hur man ska Installera olika operativsystem på en dator (valfritt, men rekommenderas).Installera mer än ett operativsystem. Installera inte några hjälppaket på systemen - istället, använd de nakna funktionaliteterna som tillhandahålls av operativsystemen.
7. Ta en kurs (eller alternativt, läsa böcker) på datorhårdvara arkitektur.

8. Utveckla en förståelse för de olika datorns maskinvaruplattformar.

9. Få en introduktionsbekant med assembleringsspråk av maskinvaruplattformen / operativsystemet. Du kommer senare att lära dig församlingen av andra plattformar / system.

10. Lär dig Ansi C och C ++ -, tillsammans med begreppen procedurprogrammering.

11.
Förstå och träna c / c ++ standardbibliotek på plattformen.Var särskilt uppmärksam på standardmallsbiblioteket (
Stl) och kanske aktivt mallbibliotek (
Atl).

12. Sök online resurser, böcker och kurser för att få en förståelse för C-smaken av din specifika plattform.

13. Öva skapa avancerad kod med C och C++.

14. Läs mer Avancerad församling.

15. Ta en kurs i operativsystemdesign.

16. Hitta och läsa dokumentationer av din specifika plattform.Detta blir enklare om du väljer ett Unix-baserat operativsystem. Förstå det system du kommer att arbeta med senare mycket bra.

17. Öva din förvärvade kunskaper. Skapa först små systemverktyg. Det är vanligtvis användbart att:
Försöker att återskapa små verktyg som redan finns på ditt system.Försöker Port Utilities tillgängliga i andra operativsystem till din.
18. Lär dig språk i den mest användbara beställningen.Detta är det enda stället där det första programmeringsspråket är viktigt. Lär dig Ansi C först, inte C ++, inte C #, inte Java och inte d. Lär sedan c++.
Att begränsa första språket till C och C ensam är att systemprogrammering kräver att programmeraren är bekant med följande begrepp:Verklig och fullständig kompilering av källkod.Lågnivå objektutgångsfiler.Linking Binaries.Lågnivå Maskinspråk / monteringsprogrammering. C-språket sägs vara en förtäckt / lättare att lära sig sammansättning av vissa. Det stöder också att infoga språkkod i kod när du vill och det är bara procedurell (som församling).Metod 6 av 6:
Programmeringsvetenskap
1. Vet vad en programmeringsforskare gör.Programmeringsforskare är mycket avancerade programmörer som istället för att arbeta med att utveckla applikationer, arbeta med att utveckla datateknik som kryptering, programmeringsspråk och data miningalgoritmer. Denna nivå uppnås sällan utan akademisk studie och engagemang.

2. Ackumulera den vetenskapliga kunskapen som motsvarar en fyraårig examen i datavetenskap. Detta kan göras antingen av:
Tar en verklig akademisk examen (vilket är det som vanligtvis händer).Få kursens konturer för en sådan examen från ett av de moderna universiteten och tar kurserna antingen med självstudie eller som separata kurser. Detta kan uppnås teoretiskt, men den rekommenderade vägen är den första.
3. Bestäm ett specialområde. Ju mer specifika, desto bättre. Det beror på dina önskemål. Men här är en lista över några av de viktigaste ämnena i datorprogrammeringsvetenskap:
Algoritmdesign (sökning, sortering, kryptering, dekryptering och feldetektering i kommunikation är några exempel)Programmeringsspråk / kompilatordesign / optimeringKonstgjorda intelligensfält (mönsterigenkänning, taligenkänning, naturlig språkbehandling, neurala nätverk)RobotikVetenskaplig programmeringSuper ComputingDatorstödd design / modellering (CAD / CAM)Virtuell verklighetComputer Graphics (Computer Graphics är vanligtvis felaktigt förvirrad med grafisk design eller grafisk användargränssnittsdesign. Datorgrafik är fältet för att studera hur man representerar och manipulerar grafik i datorsystem.)
4. Överväg att få en högre akademisk examen.Du kanske vill fortsätta en magisterexamen eller doktorsexamen.

5. Lär dig tekniken och programmeringsspråk relaterade till ditt programmeringsfält.
Tips
Oavsett vilken typ av programmering du vill försöka eller vilken nivå du vill vara på, överväga att ta klasser i skolan eller ditt lokala commission. Inte skrämmas av termer som "Datavetenskap." Vilken klass som du kan komma in utan några förutsättningar bör fokusera på att undervisa grunden för programmering, men kontrollera med instruktören eller en rådgivare i förväg för att se till att det är vad du letar efter, som klasser som "Datorkompetens" kan fokusera mer på att bli bekant med kontorsansökningar och liknande.
Dela på det sociala nätverket: