Att bli programmerare är en ackumulerad process för att bygga färdigheter dag efter dag och år efter år på ett roligt och givande område (intellektuell, mental och ekonomisk). Den här guiden lovar dig inte ett magiskt sätt att bli programmerare med lätthet och stegsekvensen är inte helig, men den ger dig en allmän översikt över hur du blir en programmerare inom ett av fältets moderna områden.
Steg
1.
Ta en introduktionskurs i en (eller alla) av följande discipliner:- Logik
- Diskret matematik
- Programmeringsspråk (helst C++/ Java/ Python för nybörjare)
EXPERTTIPS
Gene Linetsky, MS
Startup grundare och teknisk direktör Gene Linetsky är en startup grundare och mjukvaruutvecklare i San Francisco Bay Area. Han har arbetat i teknikbranschen i över 30 år och är teknisk direktör på Poynt, ett teknikföretag som skapar smarta transaktionssystem för företag.
Gene Linetsky, MS
Grundare av startups och teknisk chef
Tro inte att du måste studera för att bli programmerare. Det kan vara bra att ta kurser i ett programmeringsspråk, men Gene Linetsky, mjukvaruingenjör och grundare av nystartade företag, säger: "Det kan diskuteras om en programmeringsutbildning hjälper eller inte. Försök istället att tänka på programmering som ett slags praktik – det handlar om att lära av dina misstag.`
2. Lär dig databasbegrepp som tabeller, vyer/frågor och procedurer. Du kan använda vilket enkelt databaspaket som helst för detta, till exempel:
MS AccessDB VFox ProParadoxMySQL är en bra databas att lära sig eftersom den är gratis, allmänt använd och ofta åtkomlig genom SQL-frågor3. Bestäm vilken typ av programmerare du vill vara. Programmerare faller vanligtvis under följande kategorier:
webbprogrammerareProgrammerare för skrivbordsapplikationerOperativsystem (OS) orienterad programmerare (kopplad till ett enda operativsystem eller en uppsättning operativsystem)Plattformsoberoende programmerareDistribuerad applikationsprogrammerare
Bibliotek/plattform/ramverk/kärnprogrammerareSystemprogrammerareKärnprogrammerareDrivrutin programmerareKompilatorprogrammerareDatavetare (vetenskaplig)
4. Lär dig teknikerna och programmeringsspråken relaterade till det programmeringsfält du väljer. Följande avsnitt diskuterar uppgifterna för olika typer av programmering.
Metod 1 av 6: Webbprogrammering
1.
Vad betyder webbprogrammering. Webbapplikationer är programvarukomponenter utformade för att fungera på toppen av internetarkitekturen. Detta innebär att applikationerna kan nås via webbläsarprogram som Firefox eller Internet Explorer. Att vara byggd för toppen av internetarkitektur betyder inte nödvändigtvis att du behöver en aktiv anslutning till internet. Det betyder att webbapplikationer är byggda ovanpå vanliga webbteknologier som:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IIP-protokoll
- HTML
- XML
- kall fusion
- ASPI
- JSP
- PHP
- ASPI.BARA
2. Kolla in olika webbplatser för att lära dig hur de ser ut i allmänhet. (Högerklicka och klicka sedan på Visa källa eller tryck på F12.) Leta efter mångfald i typen/innehållet på webbplatsen, inte antalet webbplatser du tittar på. I allmänhet måste du kolla in minst en av var och en av följande typer av webbplatser:
Webbplatser för företagsnärvaro (kommersiella företag, ideella företag/organisationer, statliga organisationer)Webbindexeringsmotorer (sökmotorer, metasöksidor, specialiserade sökmotorer, kataloger)datautvinningsplatserPersonliga webbplatserInformations-/encyklopediska sidor (wikis, faktablad, tekniska specifikationer och manualer, bloggar och dagböcker, nyhets- och nyhetsbyråsajter, gula sidor, etc.)Sociala medier (sociala portaler, bokmärkeswebbplatser, sajter för anteckningar)Sammansatta webbplatser (inklusive andra kategorier som wikis och bloggar)3. Lär dig minst en brainstormingteknik/metod och programvara som används för att implementera den metoden. Till exempel: brainstorming-scheman och MS Visio.
4. Lär dig hur du skapar en webbplats. Du kommer att skapa konceptuella webbdiagram, webbplatskartor och navigeringsstrukturer.
5. Gå en kort kurs i grafisk design. Försök att lära dig minst ett bildredigeringsprogram (valfritt, men rekommenderas starkt)
6. Lär dig grunderna i internetinfrastrukturen. Detta har bland annat att göra med en global idé om:
Underliggande webbtjänstprotokoll (HTTP, FTP, SMTP och POP3 eller IMAP4)Webbserverprogramvara (helst för den plattform du vanligtvis arbetar med)programvara för webbsurfning.E-postserver och klientprogramvara7. Lär dig HTML och CSS. Det är också en bra idé att lära sig att använda ett HTML-redigeringspaket "What You See Is What You Get (WYSIWYG)".
8. Lär dig XML- och XML-relaterade tekniker, såsom XSL och XPath (valfritt men rekommenderas).
9. Skapa enkel statisk webbplats tills du är bekant med och bekväm med HTML.
10. Lär dig ett skriptspråk på klientsidan. De flesta användare lär sig JavaScript. Vissa lär sig VBScript, men detta är inte kompatibelt med de flesta webbläsare.
11. Se till att du kan arbeta med det skriptspråk på klientsidan du har lärt dig. Försök att nå din potential med bara det språket. Fortsätt sedan till nästa steg tills du åtminstone är bekant med skriptspråket på klientsidan.
12. Lär dig minst ett programmeringsspråk på serversidan. Om du vill begränsa dig till en form av serverprogramvara, lär dig ett av programmeringsspråken som stöds av den programvaran. Om inte, lär dig minst ett programmeringsspråk för varje serverprogramvara.
13. Skapa ett pilotprojekt för dig själv efter att ha lärt dig programmeringsspråket på serversidan.
14. Se till att du har en egen hemsida och börja experimentera online på din egen sida.
Metod 2 av 6: Programmering av skrivbordsprogramvara
1. Vet vad du ger dig in på när du börjar programmera skrivbordsapplikationer. De flesta av dessa programmerare skriver kod för affärsapplikationer, så det är klokt att ha en uppfattning om affärsmiljön, deras organisatoriska och finansiella struktur så att du kan spara mycket tid.
2.
Lär dig om datorernas olika hårdvaruarkitekturer. En introduktionskurs i digital elektronik och annan datorarkitektur är till hjälp; men det här kan vara lite för mycket att börja med, så läs några inledande handledningar (som
den här och
den här) först räcker. Du kan återgå till detta steg efter att ha lärt dig ett första programmeringsspråk.
3. Lär dig ett programmeringsspråk på nybörjarnivå. Må inte för bra av att lära dig ett sådant språk för du är inte längre ett barn. Ett exempel på ett sådant programmeringsspråk är Scratch. Dessa programmeringsspråk kan göra inlärningskurvan lite mindre brant när du precis har börjat. Men detta steg är fortfarande valfritt. Du kan också göra detta för föregående steg.
4. Ta en introduktion till procedurell, objektorienterad och funktionell programmering.
5. Gå en introduktionskurs i aprocedurmässigt programmeringsspråk. Oavsett vilket språk du väljer i ett senare skede kommer det att kräva en viss grad av procedurprogrammering. Dessutom anses procedurprogrammering vara det enklaste att börja med för att förstå vad programmering är.
6. Lär dig minst en avancerad form av modellering, såsom UML eller ORM.
7. Börja skriva några små konsoler eller konsolliknande applikationer. Du kan använda övningarna i programmeringsböcker. Använd en programmeringsmiljö som passar det programmeringsspråk du väljer.
8. Gå en fortsättningskurs i det valda programmeringsspråket. Se till att du förstår begreppen nedan och kan tillämpa dem relativt lätt innan du fortsätter:
Inmatning och utmatning av data till och från användare av programmet.Logiken och operationssekvensen för procedurprogram.Deklarera, tilldela och jämföra variabler.Konstruktioner som If..sedan..else och Välj/växla..fall.Loop-konstruktioner som While..gör, gör..medan/tills, För..Nästa.Ditt programmeringsspråks syntax för att skapa och anropa procedurer och funktioner.Datatyper och hur man manipulerar dem.Användardefinierade datatyper (poster/strukturer/enheter) och hur man använder dem.Om du använder språköverbelastade funktioner, försök att förstå dem.Sättet som ditt programmeringsspråk adresserar minnet (pekare, kikar, etc.)Om dina språkoperatörer överbelastas, försök att förstå.Om ditt språk använder delegater/funktionspekare, förstå hur det fungerar.9. Tillämpa de avancerade teknikerna du har lärt dig.
10. Ta en introduktionskurs i minst ett eller flera programmeringsspråk i ett annat programmeringsparadigm. Det rekommenderas att lära sig ett programmeringsspråk för varje paradigm, och de flesta avancerade programmerare gör det också. Men oftast börjar man med ett språk, jobbar med det ett tag för att tillämpa och öva på sina kunskaper, sedan lär man sig ett annat. Prova någon av följande programmeringstyper:
Logisk programmering.Funktionell programmering.Objektorienterade paradigm.11. Prova att kombinera följande två programmeringsspråk du har lärt dig. Väg styrkorna och svagheterna mot varandra. Vanligtvis gör du följande:
Ta enkla exempel på ditt tidigare arbete i det första programmeringsspråket och skriv om det med ditt andra programmeringsspråk.Skapa ett nytt projekt och försök implementera det på båda språken. Ibland, beroende på projekt och språk, kommer det inte att vara möjligt att driva ett projekt!Skriv ett fuskblad eller en sammanfattningstabell med jämförelser mellan liknande konstruktioner på de två språken och funktioner som är unika för vart och ett av språken.Försöker hitta sätt att efterlikna funktioner som är unika för ett av de två språken som använder det andra språket.12. Lär dig visuella programmeringskoncept med hjälp av något av språken du har lärt dig. Nästan alla programmeringsspråk har versioner/bibliotek som stöder visuell programmering och andra stöder konsol- eller konsolliknande programmering. Detta kan uppnås genom att göra följande:
Få en introduktion till händelsedriven programmering. Den mesta visuella programmeringen förlitar sig till viss del på händelser och händelsehantering (med det valda programmeringsspråket).Prova så mycket skrivbordsprogram du kan och lär dig att förstå vad programvaran gör. De flesta mjukvaruföretag erbjuder betaversioner av sina produkter som du kan använda för att testa programvaran. Försök att hänga med i utvecklingen av användargränssnittet.Läs artiklar eller handledning om grafiska användargränssnitt.13. Börja tillämpa dina kunskaper genom att designa små mjukvaruprojekt. Prova din programmeringserfarenhet på problem du möter i vardagen. Till exempel att skriva program som kan ändra ett stort antal filnamn på en gång, jämföra textfiler visuellt, kopiera namnen på filer i en katalog till minnet eller en textfil, etc. Håll det enkelt i början.
14. Skapa ett virtuellt "examensprojekt". Slutför detta till slutet och använd de visuella programmeringstekniker du har lärt dig hittills.
15. Bredar din förståelse för det visuella ramverket/biblioteket/paketet du lärde dig innan du gick vidare till mer avancerade kurser, ägna extra uppmärksamhet åt detaljer och lära dig fler tips och tricks för ditt ramverk från onlineresurser.
16. Sök och lär dig om andra paket/bibliotek med bilder för dina programmeringsspråk.
17. Gå en kurs i grafik (ej grafisk design). Detta kommer att vara till stor hjälp för programmerare som vill skriva attraktiva element i användargränssnittet.
18. Bli en spelprogrammerare (valfritt). Programmeringsspel anses i de flesta fall som skrivbordsprogrammering. Om du planerar att bli spelprogrammerare bör du lära dig mer om spelprogrammering efter att ha följt dessa steg. En grafikkurs är ett måste för spelprogrammerare och det andra språket i de föregående stegen bör vara ett logiskt/funktionellt programmeringsspråk (helst Prolog eller Lisp).
Metod 3 av 6: Programmering av distribuerade applikationer
1. Förstå vad programmering av distribuerade applikationer är. Distribuerad applikationsprogrammering anses av många vara den svåraste att lära sig och kräver kunskap om olika dator- och kommunikationstekniker.
2. Ta en snabb introduktionskurs i telefonisystem och relaterad hårdvara. Steget är valfritt. Men det är väldigt användbart om du vill förstå nätverkstopologier.
3. Bekanta dig med nätverksarkitektur och enheter som hubbar, switchar och routrar.
4. Ta en kurs i nätverksprotokoll och deras 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 kan börja programmera distribuerade applikationer.
5. Lär dig XML bekanta dig med det.
6. Börja lära dig ett skalskriptspråk. Under Windows skulle det vara vilket skript som helst som fungerar med Windows Scripting Host. Under Linux är dessa Bash-skript och Perl. JavaScript rekommenderas starkt för båda systemen, 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 av många utvecklare vara lättare att lära sig.Den har ALGOL-härledd syntax som gör det lättare att bekanta sig med andra programmeringsspråk när du väljer ett andra programmeringsspråk (C, C++, C#, Java och J# är alla härledda från ALGOL-syntax).Genom att lära dig JavaScript kommer du att bekanta dig med skriptning av webbsidor på klientsidan, vilket är en omedelbar bonus!7. Starta procedurprogrammering med ditt föredragna skriptspråk. Senare kan du börja använda mer avancerade programmeringstekniker och paradigm beroende på ditt skriptspråk och vad det stöder. Alla skriptspråk har vissa aspekter av procedurprogrammering.
8. Använd skriptspråket du lärde dig för att skriva skript som utför kommunikation mellan maskiner. Lär dig vad som krävs för att göra det. Enkel kommunikation räcker.
9. Gör övergången till skrivbordsskript/programmeringsspråk. Helst ett som är ett multiparadigmspråk som Python. Följ en enkel introduktion till det andra språket. Java ses av de flesta programmerare som det valda språket av många anledningar. Men C# vinner snabbt mark inom detta område. Java och C# är att föredra av följande skäl:
De är objektorienterade programmeringsspråk som skyddar programmerare i stora team från implementeringsdetaljer eftersom båda stödjer komponenter (kodblock, kompilerade, som utför en viss uppgift och kan användas i andra program).De stödjer eventdriven programmering, förutom OO och procedurprogrammering i viss utsträckning.Ramverket som språket är byggt på distribueras från (när det gäller Java).Tillgängligheten av många paket som är relaterade till nätverk, såväl som öppen källkod och (ram) inbyggda paket; Detta gör det lättare för programmerare att bygga vidare på andras arbete.10. De fokuserar mer på språkets kärnfunktioner, särskilt de som stödjer nätverk. Mindre uppmärksamhet ägnas åt användargränssnittselementen såsom output, fönsterdesign och tekniker, och användargränssnittselementen.
11. Ta en kurs i distribuerad applikations- och plattformsdesign. Detta kan göras med hjälp av böcker, onlinetutorials eller akademiska kurser. Det är dock nödvändigt att förstå arkitekturen för distribuerade applikationer och dess koncept.
12. Lär dig mer om att bygga och underhålla komponenter och tjänster med hjälp av det programmeringsspråk du väljer.
13. Lär dig en eller flera av följande tekniker. Det rekommenderas att du tar minst en introduktion till var och en av dessa. De flesta distribuerade applikationsprogrammerare stannar inte vid ett eller två programmeringsspråk, utan lär sig åtminstone ett programmeringsspråk för varje operativsystem. Det beror på att om du vill att dina applikationer ska "distribueras" måste du erbjuda minst en version för vart och ett av de stora operativsystemen.
Common Object Request Broker Architecture (CORBA)Simple Object Access Protocol (SOAP)Asynkron JavaScript och XML (AJAX)Distributed Component Object Model (DCOM).NET-fjärrkontrollXML Web Services1. Vad är kärnprogrammering. Kärnprogrammerare är främst avancerade programmerare som har gjort övergången från programmeringsapplikationer till programmeringskodenheter som kan användas av andra programmerare.
2. Lär dig ett programmeringsspråk som låter dig bygga återanvändbara komponenter/paket, om du inte redan har gjort det.
3. Gå en fortsättningskurs i UML och ORM. De flesta biblioteksutvecklare använder en eller båda av dessa.
4. Ta en kurs i mjukvaruteknik.
5. Lär dig åtminstone modulära, komponentbaserade, objektorienterade och händelsedrivna programmeringstekniker och koncept. Ju fler programmeringsparadigm och språk du känner till, desto mer framgångsrik blir du som biblioteks-/biblioteks-/paketprogrammerare.
6. Lär dig om de olika operativsystem och ramverk som stöds av dessa operativsystem.
7. Fokusera dina ansträngningar på plattformsoberoende ramverk, programmeringsspråk och teknologier.
8. Om programmeringsspråken du har lärt dig överensstämmer med ANSI/ISO/IEEE/W3C standardversioner, och försök behärska dem. Försök att använda standardkod när det är möjligt.
9. Försöker efterlikna enkla, redan etablerade bibliotek, särskilt öppen källkod. Detta är användbart under de tidiga stadierna av att bli en biblioteks-/paketprogrammerare. Börja med enkla paket som enhetsomvandling och inte för svåra vetenskapliga beräkningar. Om du är student, dra nytta av icke-programmeringskurserna för att fånga ekvationer och naturvetenskaplig kärna i programbibliotek.
10. Sök efter paket med öppen källkod inom ditt område. Ladda först ner binärfiler/körbara filer från paketet. Försök att använda dem och hitta styrkorna och svagheterna. När du är klar med det, ladda ner källkoden och försök ta reda på hur den är gjord. Försök att kopiera dessa bibliotek/bibliotek, eller delar av dem. Gör det först efter att du har studerat koden och senare innan du har sett koden. Försök igen senare för att förbättra dessa bibliotek.
11. Lär dig de olika metoder som används för att distribuera och distribuera komponenter till och av programmerare.
Vanligtvis tenderar biblioteks-/paketprogrammerare att tänka rekursivt och/eller iterativt när de behöver lösa ett problem. 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 reducera storleken på problemet till mindre delproblem och sedan stapla dessa delproblem ovanpå varandra.Bibliotek/paketprogrammerare tenderar att generalisera. Det vill säga, när de presenteras för ett enkelt specifikt problem, börjar de vanligtvis tänka på ett mer generellt problem och försöker lösa det allmänna problemet, automatiskt lösa det mindre problemet också.Metod 5 av 6: Systemprogrammering
1. Förstå vad systemprogrammering handlar om. Systemprogrammerare står inför vetenskapen av programmering, inte med dess specifika genomförande. Begränsa dig inte till en specifik plattform.
2. Följ de tre första stegen för stationära programmerare.
3. Gå en introduktionskurs i linjär algebra.
4. Gå en kurs i kalkyl.
5. Gå en kurs i logik och/eller diskret matematik.
6. Lär känna olika nakna operativsystem. Du kan göra detta på följande sätt:
Lär dig hur operativsystem installeras.Lär dig hur du installerar flera olika operativsystem på en PC (valfritt, men rekommenderas).Installera mer än ett operativsystem. Installera inte alla verktyg på systemen; använd hellre bara-bones-funktionaliteten som tillhandahålls av operativsystemet.7. Gå en kurs (eller alternativt läs böcker) om hårdvaruarkitektur.
8. Utveckla en förståelse för andra hårdvaruplattformar.
9. Försök att bekanta dig med assemblerspråket för den plattform/OS du väljer. Senare kommer du att lära dig monteringen från andra plattformar/system.
10. Lär dig ANSI C och C++ tillsammans med begreppen procedurprogrammering.
11. Förstå och öva med C/C++-standardbiblioteken på den plattform du väljer. Var särskilt uppmärksam på Standard Template Library (STL) och kanske Active Template Library (ATL).
12. Sök efter onlineresurser, böcker och kurser för att få en förståelse för C-varianten för din specifika plattform.
13. Träna på att skriva avancerad kod med C och C++.
14. Lär dig mer om avancerad montering.
15. Ta en kurs i programmering av operativsystem.
16. Sök efter dokumentation på en specifik plattform du väljer. Detta blir enklare om du väljer ett Unix-baserat OS. Att förstå systemet du arbetar med kommer att tjäna dig väl senare.
17. Öva på dina förvärvade kunskaper. Skapa några små verktyg först. Vanligtvis är det användbart att göra följande:
Försöker skapa små verktyg som redan finns på ditt system.Försöker konvertera verktyg som finns tillgängliga i operativsystem till ditt.18. Lär dig programmeringsspråken i den mest användbara ordningen. Detta är det enda fältet där det första programmeringsspråket är viktigt. Lär dig ANSI C först och inte C++, C# eller Java och inte D. Först då lär dig C++.
Begränsningen till C beror på att systemprogrammering kräver att programmeraren är bekant med följande begrepp:
Faktisk och fullständig sammanställning av källkoden.Objektutdatafiler på låg nivå.Länka binärer.Maskinspråk/monteringsprogrammering på låg nivå. C-språket anses av vissa vara en förklädd eller lättare att lära sig form av montering. Det stöder också att infoga assemblerkod i C-koden när det behövs och det är bara procedurmässigt (precis som montering).Metod 6 av 6: Att bli datavetare
1. Vad gör datavetare. Datavetare är mycket avancerade programmerare som, istället för att arbeta med applikationer, arbetar med att designa datorteknologier som kryptering, programmeringsspråk och datautvinningsalgoritmer. Du kan sällan nå denna nivå utan en akademisk studie och mycket engagemang.
2. Få den vetenskapliga kunskap som motsvarar en fyraårig universitetsexamen i datavetenskap. Du kan göra detta genom:
Att ta en universitetsexamen (det mest uppenbara steget).Skaffa dig en överblick över universitetsstudier och gör de olika kurserna genom självstudier eller genom separata kurser. Detta är möjligt i teorin, men den första vägen rekommenderas.3. Välj en specialisering. Ju mer specifikt desto bättre. Detta beror på dina preferenser. Här är några av nyckelområdena inom datavetenskap:
Algoritmdesign (sökning, sortering, kryptering, dekryptering och feldetektering i kommunikation är några exempel)Programmeringsspråk/kompilatordesign/optimeringArtificiell intelligens (mönsterigenkänning, taligenkänning, naturlig språkbehandling, neurala nätverk)robotikVetenskaplig programmeringJobbar med superdatorerDatorstödd design/modellering (CAD/CAM)Virtuell verklighetDatorgrafik (Datorgrafik förväxlas vanligtvis av misstag med grafisk design eller grafisk användargränssnittsdesign. Datorgrafik är fältet där du kan använda och manipulera bilder i datorsystem.)4. Överväg att ta en högskoleexamen. Du kan också ta en master- eller doktorsexamen.
5. Lär dig teknikerna och programmeringsspråken relaterade till ditt område som programmerare.
Tips
Oavsett vilken typ av programmering du vill prova på eller på vilken nivå kan du alltid gå en kurs eller klasser i skolan. Låt dig inte skrämmas av termer som "Datavetenskap".Alla kurser du kan ta utan förkunskaper bör fokusera på grunderna i programmering, men kontrollera med handledaren i förväg för att försäkra dig om att det är vad du letar efter eftersom kurser som "Computer Skills" fokuserar mer på de som är bekanta med kontorsapplikationer, etc..