Att bli programmerare är en kumulativ process som bygger upp dina färdigheter dag efter dag och år efter år, och programmering kan vara roligt och givande (mentalt, andligt och ekonomiskt). Den här guiden lovar inte att ge ett magiskt enkelt sätt att bli programmerare, och ordningen av stegen är inte helig, men du får en allmän översikt över hur du blir programmerare inom ett av de moderna programmeringsfälten.
Steg
Steg 1. Ta en introduktionskurs i en (eller alla) av följande discipliner:
- Logik
- Diskret matematik
- Programmeringsspråk (ta del av de olika programmeringsparadigmen, från sekventiell/procedurell 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)
EXPERTTIPS
Gene Linetsky, MS
Startup Founder & Engineering Director Gene Linetsky is a startup founder and software engineer in the San Francisco Bay Area. He has worked in the tech industry for over 30 years and is currently the Director of Engineering at Poynt, a technology company building smart Point-of-Sale terminals for businesses.
Gene Linetsky, MS
Startup Founder & Engineering Director
Känn inte att du måste ta en kodningsexamen.
Även om kurser i ett programmeringsspråk kan vara till hjälp, säger Gene Linetsky, en mjukvaruutvecklare och startande grundare:"
Steg 2. Lär dig databasbegrepp som tabeller, visningar/frågor och procedurer
Du kan använda vilket enkelt databaspaket som helst för att göra detta, till exempel:
- MS Access
- DB V
- Fox Pro
- Paradox
- MySQL är en bra databas att lära sig eftersom den är gratis, vanligt förekommande och databaser är vanligt tillgängliga med SQL -frågor
Steg 3. Bestäm vilken typ av programmerare du vill vara
Programmerare faller i allmänhet under en av följande kategorier:
- Webbprogrammerare
-
Skrivbordsapplikationsprogrammerare
- Operativsystem (OS) orienterad programmerare (bunden till ett enda operativsystem eller uppsättning operativsystem)
- Plattformsoberoende programmerare
- Distribuerade applikationsprogrammerare
- Bibliotek/plattform/ram/kärnprogrammerare
-
Systemprogrammerare
- Kärnprogrammerare
- Driver programmerare
- Kompilator programmerare
- Programmeringsvetare
Steg 4. Lär dig tekniker och programmeringsspråk relaterade till ditt valda programmeringsfält
Följande avsnitt delar upp uppgifterna för olika typer av programmering.
Metod 1 av 6: Webbprogrammering
Steg 1. Vet vad webbprogrammering innebär
Webbapplikationer är programvarukomponenter som är utformade för att fungera ovanpå internetarkitekturen. Detta innebär att applikationerna nås via en webbläsarprogramvara som Firefox eller Internet Explorer. Att byggas ovanpå Internetarkitekturen kräver inte nödvändigtvis en aktiv anslutning till internet. Det betyder att webbapplikationer är byggda utöver vanliga webbtekniker som:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IP -protokoll
- HTML
- XML
- Kall fusion
- ASP
- JSP
- PHP
- ASP. NET
Steg 2. Bläddra bland många olika webbplatser för att lära dig hur de brukar se ut
(Högerklicka, klicka sedan på Visa källa eller tryck på F12.) Leta efter mångfald i typen/innehållet på webbplatsen, inte mängden besökta webbplatser. I allmänhet måste du besöka minst en av var och en av följande typer av webbplatser:
- Företagsnärvarosidor (kommersiella företag, ideella företag/organisationer, statliga organisationer)
- Webindexeringsmotorer (sökmotorer, metasökwebbplatser, specialiserade sökmotorer, kataloger)
- Data mining webbplatser
- Personliga sajter
- Informations-/encyklopediska sidor (wikis, datablad, tekniska specifikationer och manualer med kataloger, bloggar och tidskrifter, nyhets- och nyhetsbyråer, gula sidor, etc.)
- Sociala webbplatser (sociala portaler, bokmärkesajter, anteckningswebbplatser)
- Samarbetsplatser (detta inkluderar andra kategorier som nämns ovan, till exempel wikis och bloggar)
Steg 3. Lär dig minst en brainstormningsteknik/metod och en programvara som används för att implementera den metoden
Till exempel: brainstorming -diagram och MS Visio.
Steg 4. Bekanta dig med webbplatsstrukturering
Detta skapar konceptuella webbdiagram, webbplatskartor och navigationsstrukturer.
Steg 5. Gå en krasskurs om grafisk design
Försök att lära dig minst ett programvarupaket för grafisk redigering/manipulation (valfritt, men rekommenderas starkt)
Steg 6. Lär dig grunderna i internetinfrastrukturen
Detta inkluderar att få en grundläggande idé om:
- Baswebbtjänstprotokoll (HTTP, FTP, SMTP och POP3 eller IMAP4)
- Webbserverprogramvara (helst en för plattformen du arbetar mest med)
- Programvara för webbsökning.
- E -postserver och klientprogramvara
Steg 7. Lär dig HTML- och CSS -språken
Du kanske också vill få programvarupaketet "What You See Is What You Get (WYSIWYG)" för redigering av HTML.
Steg 8. Lär dig XML- och XML -relaterad teknik, till exempel XSL och XPath (valfritt men rekommenderas)
Steg 9. Skapa enkla statiska webbplatser tills du är bekant med och bekväm med HTML
Steg 10. Lär dig ett skriptspråk på klientsidan
De flesta användare lär sig JavaScript. Vissa lär sig VBScript, men det här är inte kompatibelt med de flesta webbläsare.
Steg 11. Bekanta dig med det skriptspråk du har lärt dig på klientsidan
Försök att nå din potential med bara det språket. Gå bara till nästa steg efter att du åtminstone blivit bekant med ditt skriptspråk på klientsidan.
Steg 12. Lär dig minst ett programmeringsspråk på serversidan
Om du väljer att begränsa dig till en serverprogramvara kan du lära dig ett av de programmeringsspråk som stöds av den programvaran. Om inte, lär dig minst ett programmeringsspråk på varje serverprogramvara.
Steg 13. Skapa ett pilotprojekt för dig själv när du har lärt dig programmeringsspråket på serversidan.
Steg 14. Skaffa din egen webbplats och börja experimentera online på din egen sida
Metod 2 av 6: Programmering av skrivbordsprogram
Steg 1. Vet vad du går in på med programmering av skrivbordsprogram
De flesta stationära programmerare 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 tidsbesparare.
Steg 2. Lär dig mer om de olika maskinvaruarkitekturerna
En introduktionskurs i digital kretsdesign och en annan i datorarkitektur är användbar; Vissa ser det dock som avancerat för en utgångspunkt, så att läsa två eller tre självstudieartiklar (som den här och den här) kan räcka. Sedan kan du gå tillbaka till detta steg senare, efter att du har lärt dig ditt första programmeringsspråk.
Steg 3. Lär dig ett programmeringsspråk på grundnivå (barn)
Var inte blyg för att lära dig ett sådant språk bara för att du är äldre än att kallas ett "barn". Ett exempel på dessa programmeringsspråk kan vara Scratch. Dessa programmeringsspråk kan lindra smärtan när du lär dig ditt första programmeringsspråk enormt. Detta steg är dock valfritt. Det kan också göras före föregående steg.
Steg 4. Få en introduktion till proceduren, objektorienterad, och funktionella programmeringsparadigm.
Steg 5. Gå en introduktionskurs i ett av procedurprogrammeringsspråken
Oavsett vilket språk du väljer senare för att vara ditt valda språk, kommer det att kräva procedurprogrammering på någon nivå. Dessutom rapporteras procedurprogrammering av de flesta programmerare som den enklaste att använda som utgångspunkt för att få idén om programmering i allmänhet.
Steg 6. Lär dig minst en avancerad modelleringsteknik som UML eller ORM
Steg 7. Börja skriva några små konsoler eller konsolliknande applikationer
Du kan använda vanliga små övningar i programmeringsspråkböcker. Välj ett verktyg för att skriva program på det programmeringsspråk du skriver på.
Steg 8. Ta en mer avancerad kurs i ditt valda programmeringsspråk
Se till att du förstår följande begrepp väl och att du kan tillämpa dem relativt enkelt innan du går vidare:
- Inmatning och utmatning av information till användare av ett program.
- Det logiska flödet och genomförandeflödet av program på procedurspråk.
- Deklarera, tilldela och jämföra variabler.
- Förgrening av programmeringskonstruktioner som om..så..elska och välj/växla..fall.
- Looping -konstruktioner som medan … gör, gör..stund/tills, för..nästa.
- Din programmeringsspråkssyntax 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.
- Minnesåtkomstmetoderna för ditt valda språk (tips, kikar, etc.)
- Om ditt språk stöder överbelastning av operatörer, förstå det.
- Om ditt språk stöder delegater/funktionspekare, förstå det.
Steg 9. Tillämpa de avancerade tekniker du har lärt dig
Steg 10. Gå en introduktionskurs i minst ett programmeringsspråk till i ett annat programmeringsparadigm
Det rekommenderas att lära sig ett programmeringsspråk i varje paradigm, och de flesta avancerade programmerare gör dock, vanligtvis börjar du med ett, jobbar ett tag med att tillämpa dina kunskaper och öva på det, sedan lär du dig det andra senare, efter att du redan hade en riktig -livserfarenhet inom programmering. Prova något av följande språkområden:
- Logisk programmeringsparadigm.
- Funktionellt programmeringsparadigm.
- Objektorienterat paradigm.
Steg 11. Försök att jämföra de två programmeringsspråk du lärt dig hittills
Utvärdera styrkor och svagheter hos var och en. Vanligtvis görs detta av:
- Ta enkla exempel på ditt tidiga arbete på det första programmeringsspråket och skriv om det med det andra programmeringsspråket.
- Skapa ett nytt projekt och försök implementera det på båda språken. Ibland, beroende på ditt val av projekt och språk, kanske du inte kan implementera projektet på ett av språken!
- Skriva en fusk- eller sammanfattningstabell jämförelser mellan liknande konstruktioner på de två språken och funktioner som är unika för vart och ett av språken.
- Prova att hitta sätt att efterlikna funktioner som är unika för ett av de två språken med det andra språket.
Steg 12. Lär dig visuella programmeringskoncept med ett av de språk du lärt 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 att:
- Få en introduktion till händelsestyrd programmering. De flesta visuella programmeringar bygger på en viss nivå på händelser och händelsehantering (med det programmeringsspråk du väljer).
- Prova så mycket skrivbordsprogram som du kan och förstå vad programvaran gör. De flesta mjukvaruutvecklingsföretag erbjuder betatestversioner 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 självstudier om grafiska användargränssnitt.
Steg 13. Börja tillämpa dina kunskaper om små mjukvaruprojekt du designar
Prova att tillämpa din programmeringsexpertis på problem du möter i ditt dagliga liv. Skriv till exempel program som byter namn på filer i massa, jämför textfiler visuellt, kopierar namnen på filer i en katalog till minne/textfil och liknande. Håll det enkelt i början.
Steg 14. Skapa ett virtuellt examensprojekt
Slutför detta till slutet genom att tillämpa teknikerna för visuell programmering du lärt dig hittills.
Steg 15. Vidga din förståelse av det visuella ramverket/biblioteket/paketet du lärt dig tidigare genom att gå avancerade kurser, ägna extra uppmärksamhet åt detaljer och lära dig fler tips och tricks för ditt ramverk från online -resurser
Steg 16. Sök efter andra paket/bibliotek med visuella element för dina programmeringsspråk och lär dig dem
Steg 17. Gå en kurs i grafik (inte grafisk design)
Det kommer att vara till stor hjälp för programmerare som vill skriva tilltalande element i användargränssnittet.
Steg 18. Överväg att bli spelprogrammerare (tillval)
Spelprogrammering betraktas i de flesta delar som skrivbordsprogrammering. Om du tänker bli spelprogrammerare måste du lära dig mer om spelprogrammering när du har slutfört dessa steg. En grafikkurs är ett måste för spelprogrammerare och det andra språket som valts i föregående steg bör vara ett logiskt/funktionellt programmeringsspråk (helst Prolog eller Lisp).
Metod 3 av 6: Programmering av distribuerade applikationer
Steg 1. Tackla programmering av distribuerade applikationer
Distribuerad applikationsprogrammering anses av många vara en av de svåraste att lära sig och kräver mångsidig kunskap inom dator- och kommunikationsteknik.
Steg 2. Ta en snabb introduktion till telefonsystem och deras hårdvara
Detta steg är valfritt. Det är dock mycket användbart för att förstå nätverkstopologier.
Steg 3. Bekanta dig med nätverkshårdvaruarkitekturer och enheter som hubbar, switchar och routrar
Steg 4. Gå en kurs i nätverksprotokoll och väsentligheter
Du behöver en god förståelse för Open Systems Interconnection (OSI) -modellen, Ethernet, IP, TCP, UDP och HTTP innan du börjar programmera distribuerade applikationer.
Steg 5. Lär dig XML -språket och bekanta dig med det
Steg 6. Börja med att lära dig ett skalskriptspråk
För Windows-baserad programmering skulle det vara alla skript som fungerar med Windows Scripting Host. För Linux-baserad programmering kommer Bash-skript och Perl att räcka. JavaScript rekommenderas starkt för detta på båda plattformarna av följande skäl:
- Det stöds av nästan alla skriptvärdar i alla operativsystem (Windows Scripting Host stöder JavaScript som standard, de flesta Linux -distributioner har ett paket för stöd för JavaScript -skriptkonsol).
- Det anses vara lättare att lära av många utvecklare.
- Den har en ALGOL -härledd syntax som gör dig bekant med mycket fler andra programmeringsspråk när du måste välja ett andra programmeringsspråk (C, C ++, C#, Java och J# har alla ALGOL -härledd syntax).
- Genom att lära dig JavaScript bekantar du dig med klientsidan av webbsidor, vilket är en bieffekt!
Steg 7. Tillämpa endast procedurprogrammering med ditt valda skriptspråk först
Senare kan du använda mer avancerade programmeringstekniker och paradigm enligt ditt skriptspråk och vad det stöder. Alla skriptspråk har vissa processuella programmeringsaspekter på någon nivå.
Steg 8. Använd skriptspråket du lärt dig för 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 kommer att räcka.
Steg 9. Gör en överföring till ett skrivbordsskript/programmeringsspråk
Helst ett som är ett multi-paradigmspråk som Python. Ta en enkel introduktion till det andra språket. Java anses av de flesta programmerare vara det valda språket av många skäl. C# tar dock fart snabbt på detta område. Java och C# föredras av följande skäl:
- De är objektorienterade programmeringsspråk som skyddar programmerare i stora team 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 händelsedriven programmering, liksom OO och procedurprogrammering på någon nivå.
- Ramverket som språket bygger på distribueras av naturen (i fallet med Java).
- Tillgängligheten av många färdiga paket som handlar om nätverk, både som öppen källkod och inbyggda rampaket; detta gör det lättare för programmerare att bygga vidare på andras arbete.
Steg 10. Koncentrera dig mer på språkets kärnfunktioner, särskilt de som stöder nätverk
Betala mindre uppmärksamhet åt användargränssnittselement som utmatning, fönsterdesign och tekniker och användargränssnittselement.
Steg 11. Gå en kurs om distribuerade applikationsdesign och arkitekturer
Detta kan göras med böcker, onlinehandledning eller akademiska kurser. Att förstå arkitekturen för distribuerade applikationer och dess koncept är dock nödvändigt.
Steg 12. Lär dig om att bygga servade komponenter och tjänster med ditt valda programmeringsspråk
Steg 13. Lär dig en eller flera av följande tekniker
Det rekommenderas att du får en introduktion till dem alla. De flesta distribuerade applikationsprogrammerare stannar inte vid ett eller två programmeringsspråk, utan lär sig minst ett programmeringsspråk på varje operativsystem. Det beror på att om du vill att din applikation ska "distribueras", bör du tillhandahålla en version av den åtminstone för varje större operativsystem.
- Common Object Request Broker Architecture (CORBA)
- Simple Object Access Protocol (SOAP)
- Asynkron JavaScript och XML (AJAX)
- Distribuerad komponentobjektmodell (DCOM)
- . NET Remoting
- XML -webbtjänster
Metod 4 av 6: Bibliotek/plattform/ramverk/kärnprogrammering
Steg 1. Vet vad kärnprogrammering är
Kärnprogrammerare är bara avancerade programmerare som överförde från programmeringsapplikationer till programmeringskodenheter som skulle användas av andra programmerare.
Steg 2. Lär dig ett programmeringsspråk som stöder att bygga återanvändbara komponenter/paket, om du inte redan har gjort det
Steg 3. Ta en avancerad kurs i UML och ORM
De flesta biblioteksutvecklare använder en eller båda.
Steg 4. Ta en kurs i programvaruteknik
Steg 5. Lär dig åtminstone modulära, komponentbaserade, objektorienterade och händelsestyrda programmeringstekniker och koncept
Ju fler programmeringsparadigm och språk du täcker, desto mer framgångsrik blir du som biblioteks-/paketprogrammerare.
Steg 6. Läs mer om de olika operativsystemen och programmeringsramarna som stöds av dessa operativsystem
Steg 7. Fokusera dina inlärningsinsatser på plattformsoberoende ramverk, programmeringsspråk och teknik
Steg 8. Om programmeringsspråken du lärt dig hittills har ANSI/ISO/IEEE/W3C standardversioner, behärska standarderna.
Försök att använda standardkod när det är möjligt.
Steg 9. Försök att efterlikna enkla, redan etablerade bibliotek, särskilt bibliotek med öppen källkod
Detta är användbart under den tidiga fasen av att bli biblioteks-/paketprogrammerare. Börja med enkla paket som enhetsomvandling och mellanliggande vetenskapliga kalkylpaket. Om du är en högskolestudent, använd dina icke-programmeringskurser genom att försöka implementera deras ekvationer och vetenskapliga kärnor som bibliotek.
Steg 10. Sök efter och prova paket med öppen källkod inom ditt programmeringsområde
Ladda ner först paketets binärer/körbara filer. Försök att använda den och hitta dess starka och svaga punkter. När du har gjort det laddar du ner källan och försöker ta reda på hur det gjordes. Försök att återskapa dessa bibliotek eller delar av dem. Gör det först efter att du har sett koden och senare innan du ser koden. I senare faser kan du försöka förbättra dessa bibliotek.
Steg 11. Lär dig de olika metoderna som används för att distribuera och distribuera komponenter till programmerare
- Vanligtvis tenderar biblioteks-/paketprogrammerare att tänka rekursivt och/eller iterativt på alla problem 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 omfattning till mindre omfattningar och sedan stapla dessa omfattningar på varandra.
- Biblioteks-/paketprogrammerare tenderar att generalisera. Det vill säga när de presenteras med ett enkelt specifikt problem tänker de vanligtvis på ett mer allmänt problem och försöker lösa det allmänna problemet som automatiskt löser det mindre problemet.
Metod 5 av 6: Systemprogrammering
Steg 1. Förstå vad systemprogrammering innebär
Systemprogrammerare behandlar vetenskapen om programmering, inte de specifika implementeringarna av den. Bind dig inte till en specifik plattform.
Steg 2. Följ de tre första stegen för programmerare för skrivbordsprogram
Steg 3. Ta en introduktionskurs i linjär algebra
Steg 4. Gå en kurs i Calculus
Steg 5. Gå en kurs i logik och/eller diskret matematik
Steg 6. Presentera dig själv för olika bara operativsystem
Detta kan göras genom att:
- Få en uppfattning om hur operativsystem installeras.
- Lär dig att installera olika operativsystem på en dator (valfritt, men rekommenderas).
- Installera mer än ett operativsystem. Installera inga hjälppaket på systemen; Använd istället de bara funktioner som tillhandahålls av operativsystemen.
Steg 7. Ta en kurs (eller alternativt läs böcker) om maskinvaruarkitektur
Steg 8. Utveckla förståelsen för de olika maskinvaruplattformarna
Steg 9. Få en inledande bekantskap med monteringsspråket för den valda hårdvaruplattformen/operativsystemet
Du lär dig senare montering av andra plattformar/system.
Steg 10. Lär dig språken ANSI C och C ++, tillsammans med begreppen procedurprogrammering
Steg 11. Förstå och öva C/C ++ - standardbibliotek på den valda plattformen
Var särskilt uppmärksam på Standard Template Library (STL) och kanske Active Template Library (ATL).
Steg 12. Sök online-resurser, böcker och kurser för att få en förståelse för C-smaken på din specifika plattform
Steg 13. Öva på att skapa avancerad kod med C och C ++
Steg 14. Lär dig mer avancerad montering
Steg 15. Gå en kurs i design av operativsystem
Steg 16. Hitta och läs dokumentationer för din specifika plattform
Detta blir enklare om du väljer ett Unix-baserat operativsystem. Förstå systemet du kommer att arbeta med senare mycket väl.
Steg 17. Öva dina förvärvade kunskaper
Skapa först små systemverktyg. Det är vanligtvis användbart att:
- Försöker återskapa små verktyg som redan finns på ditt system.
- Försöker porta verktyg som finns tillgängliga i andra operativsystem till ditt.
Steg 18. Lär dig språk i den mest hjälpsamma ordningen
Detta är det enda stället där det första programmeringsspråket spelar roll. Lär dig ANSI C först, inte C ++, inte C#, inte Java och inte D. Lär dig sedan C ++.
-
Att begränsa det första språket till C och C ensam beror på att systemprogrammering kräver att programmeraren känner till följande begrepp:
- Verklig och fullständig sammanställning av källkod.
- Objektutmatningsfiler på låg nivå.
- Länka binärfiler.
- Lågnivå maskin-språk/montering programmering. C -språket sägs vara ett förklätt/lättare att lära sig montering av vissa. Det stöder också att du sätter in språkkoden i koden när du vill och det är bara procedurmässigt (som montering).
Metod 6 av 6: Programmeringsvetenskap
Steg 1. Vet vad en programmeringsvetare gör
Programmeringsforskare är mycket avancerade programmerare som, i stället för att arbeta med att utveckla applikationer, arbetar med att utveckla datorteknik som kryptering, programmeringsspråk och algoritmer för datamining. Denna nivå uppnås sällan utan akademisk studie och engagemang.
Steg 2. Ackumulera de vetenskapliga kunskaper som motsvarar en fyraårig examen i datavetenskap
Detta kan göras antingen genom att:
- Att ta en faktisk akademisk examen (vilket är vad som vanligtvis händer).
- Få kursernas konturer för en sådan examen från ett av de moderna universiteten och ta kurserna antingen genom självstudier eller som separata kurser. Detta skulle kunna uppnås teoretiskt, men den rekommenderade vägen är den första.
Steg 3. Bestäm ett specialområde
Ju mer specifik, desto bättre. Detta beror på dina preferenser. Här är dock en lista över några av de viktigaste ämnena inom datorprogrammeringsvetenskap:
- Algoritmdesign (sökning, sortering, kryptering, dekryptering och feldetektering i kommunikation är några exempel)
- Programmeringsspråk/kompilatordesign/optimering
- Fält för artificiell intelligens (mönsterigenkänning, taligenkänning, naturligt språkbehandling, neurala nätverk)
- Robotik
- Vetenskaplig programmering
- Superdator
- Datorstödd design/modellering (CAD/CAM)
- Virtuell verklighet
- Datorgrafik (Datorgrafik är vanligtvis felaktigt förväxlad med grafisk design eller grafisk användargränssnittsdesign. Datorgrafik är området för att studera hur man representerar och manipulerar grafik i datorsystem.)
Steg 4. Överväg att få en högre akademisk examen
Du kanske vill ta en magisterexamen eller en doktorsexamen.