Å bli programmerer er en kumulativ prosess for å bygge ferdigheter dag etter dag og år etter år på et morsomt og givende felt (intellektuelt, mentalt og økonomisk). Denne veiledningen lover deg ikke en magisk måte å bli programmerer på med letthet, og trinnene er ikke hellige, men den gir deg en generell oversikt over hvordan du kan bli programmerer i et av de moderne feltene i feltet.
Trinn
1.
Ta et introduksjonskurs i en (eller alle) av følgende disipliner:- Logikk
- Diskret matematikk
- Programmeringsspråk (helst C++/ Java/ Python for nybegynnere)
EKSPERTIPS
Gene Linetsky, MS
Oppstartsgründer og teknisk direktør Gene Linetsky er en oppstartsgründer og programvareutvikler i San Francisco Bay Area. Han har jobbet i teknologibransjen i over 30 år og er teknisk direktør i Poynt, et teknologiselskap som lager smarte transaksjonssystemer for bedrifter.
Gene Linetsky, MS
Grunnlegger av startups og teknisk direktør
Tror ikke du må studere for å bli programmerer. Det kan være nyttig å ta kurs i et programmeringsspråk, men Gene Linetsky, programvareingeniør og grunnlegger av oppstartsbedrifter, sier: «Det kan diskuteres om et programmeringskurs hjelper eller ikke. Prøv i stedet å tenke på programmering som en slags praksisplass – alt handler om å lære av feilene dine.`
2. Lær databasekonsepter som tabeller, visninger/spørringer og prosedyrer. Du kan bruke hvilken som helst enkel databasepakke for dette, for eksempel:
MS AccessDB VFox ProParadoksMySQL er en god database å lære fordi den er gratis, mye brukt og ofte tilgjengelig gjennom SQL-spørringer3. Bestem hva slags programmerer du vil være. Programmerere faller vanligvis inn under følgende kategorier:
nettprogrammererProgrammer for skrivebordsapplikasjonerOperativsystem (OS) orientert programmerer (knyttet til et enkelt operativsystem eller sett med operativsystemer)Plattformuavhengig programmererDistribuert applikasjonsprogrammerer
Bibliotek/plattform/rammeverk/kjerneprogrammererSystemprogrammererKjerneprogrammererDriver programmererKompilator programmererDataforsker (vitenskapelig)
4. Lær teknologiene og programmeringsspråkene relatert til programmeringsfeltet du velger. De følgende avsnittene diskuterer oppgavene for ulike typer programmering.
Metode1 av 6: Webprogrammering
1.
Hva betyr webprogrammering. Webapplikasjoner er programvarekomponenter designet for å fungere på toppen av internettarkitekturen. Dette betyr at applikasjonene kan nås gjennom nettleserprogramvare som Firefox eller Internet Explorer. Å være bygget for toppen av internettarkitektur betyr ikke nødvendigvis at du trenger en aktiv tilkobling til internett. Det betyr at nettapplikasjoner er bygget på toppen av standard nettteknologier som:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IIP-protokoller
- HTML
- XML
- Kald fusjon
- ASPI
- JSP
- PHP
- ASPI.BARE
2. Sjekk ut ulike nettsteder for å finne ut hvordan de generelt ser ut. (Høyreklikk og klikk deretter Vis kilde eller trykk F12.) Se etter mangfold i typen/innholdet på nettstedet, ikke antall nettsteder du ser på. Generelt må du sjekke ut minst 1 av hver av følgende typer nettsteder:
Bedriftsnettsteder (kommersielle selskaper, ideelle selskaper/organisasjoner, offentlige organisasjoner)Nettindekseringsmotorer (søkemotorer, metasøkesider, spesialiserte søkemotorer, kataloger)nettsteder for datautvinningPersonlige nettstederInformasjons-/leksikonsider (wikier, faktaark, tekniske spesifikasjoner og manualer, blogger og dagbøker, nyhets- og nyhetsbyråsider, gule sider, etc.)Sosiale medier (sosiale portaler, bokmerkesider, notatsider)Sammensatte nettsteder (inkludert andre kategorier som wikier og blogger)3. Lær minst én idédugnadsteknikk/-metode og programvare som brukes for å implementere den metoden. For eksempel: idédugnad og MS Visio.
4. Lær hvordan du setter opp et nettsted. Du vil lage konseptuelle nettdiagrammer, nettstedskart og navigasjonsstrukturer.
5. Ta et kort kurs i grafisk design. Prøv å lære minst ett bilderedigeringsprogram (valgfritt, men anbefales på det sterkeste)
6. Lær det grunnleggende om internettinfrastrukturen. Dette har blant annet å gjøre med en global idé om:
Underliggende nettjenesteprotokoller (HTTP, FTP, SMTP og POP3 eller IMAP4)Webserverprogramvare (fortrinnsvis for plattformen du vanligvis jobber med)programvare for nettsurfing.E-postserver og klientprogramvare7. Lær HTML og CSS. Det er også en god idé å lære å bruke en HTML-redigeringsprogramvarepakke `What You See Is What You Get (WYSIWYG)`.
8. Lær XML- og XML-relaterte teknologier, for eksempel XSL og XPath (valgfritt, men anbefalt).
9. Lag en enkel statisk nettside til du er kjent og komfortabel med HTML.
10. Lær et skriptspråk på klientsiden. De fleste brukere lærer JavaScript. Noen lærer VBScript, men dette er ikke kompatibelt med de fleste nettlesere.
11. Sørg for at du kan jobbe med skriptspråket på klientsiden du har lært. Prøv å nå potensialet ditt med bare det språket. Bare deretter fortsett til neste trinn til du i det minste er kjent med skriptspråket på klientsiden.
12. Lær minst ett programmeringsspråk på serversiden. Hvis du vil begrense deg til 1 form for serverprogramvare, lær deg et av programmeringsspråkene som støttes av den programvaren. Hvis ikke, lær deg minst ett programmeringsspråk for hver serverprogramvare.
1. 3. Lag et pilotprosjekt for deg selv etter å ha lært programmeringsspråket på serversiden.
14. Sørg for at du har din egen nettside og begynn å eksperimentere online på din egen side.
Metode 2 av 6: Programmering av skrivebordsprogramvare
1. Vet hva du får deg til når du begynner å programmere skrivebordsapplikasjoner. De fleste av disse programmererne skriver kode for forretningsapplikasjoner, så det er lurt å ha en ide om forretningsmiljøet, deres organisatoriske og økonomiske struktur slik at du kan spare mye tid.
2.
Lær om de forskjellige maskinvarearkitekturene til datamaskiner. Et introduksjonskurs i digital elektronikk og annen dataarkitektur er nyttig; men dette kan være litt for mye til å begynne med, så les noen introduksjonsveiledninger (som
denne og
denne) først nok. Du kan gå tilbake til dette trinnet etter å ha lært et første programmeringsspråk.
3. Lær et programmeringsspråk på startnivå. Ikke føl deg for god til å lære et slikt språk fordi du ikke lenger er et barn. Et eksempel på et slikt programmeringsspråk er Scratch. Disse programmeringsspråkene kan gjøre læringskurven litt mindre bratt når du akkurat har startet. Men dette trinnet forblir valgfritt. Du kan også gjøre dette for forrige trinn.
4. Ta en introduksjon til prosessuell, objektorientert og funksjonell programmering.
5. Ta et introduksjonskurs i aprosedyremessig programmeringsspråk. Uansett hvilket språk du velger på et senere tidspunkt, vil det kreve et visst nivå av prosedyreprogrammering. Dessuten anses prosedyreprogrammering for å være den enkleste å begynne med for å forstå hva programmering er.
6. Lær minst én avansert form for modellering, for eksempel UML eller ORM.
7. Begynn å skrive noen små konsoller eller konsolllignende applikasjoner. Du kan bruke øvelsene i programmeringsbøker. Bruk et programmeringsmiljø som passer for det programmeringsspråket du velger.
8. Ta et videregående kurs i det valgte programmeringsspråket. Sørg for at du forstår konseptene nedenfor og kan bruke dem relativt enkelt før du fortsetter:
Input og output av data til og fra brukere av programmet.Logikken og operasjonssekvensen til prosedyreprogrammer.Deklarere, tilordne og sammenligne variabler.Konstruksjoner som If..deretter..else og Velg/bytt..sak.Løkkekonstruksjoner som While..gjør, gjør..mens/til, For..neste.Programmeringsspråkets syntaks for å lage og kalle frem prosedyrer og funksjoner.Datatyper og hvordan du manipulerer dem.Brukerdefinerte datatyper (poster/strukturer/enheter) og hvordan de skal brukes.Hvis du bruker språkoverbelastningsfunksjoner, prøv å forstå dem.Måten programmeringsspråket ditt adresserer minnet på (pekere, kikk osv.)Hvis språkoperatørene dine overbelastes, prøv å forstå det.Hvis språket ditt bruker delegater/funksjonspekere, forstå hvordan det fungerer.9. Bruk de avanserte teknikkene du har lært.
10. Ta et introduksjonskurs i minst 1 eller flere programmeringsspråk i et annet programmeringsparadigme. Det anbefales å lære 1 programmeringsspråk for hvert paradigme, og de fleste avanserte programmerere gjør det også. Men vanligvis starter du med ett språk, jobber med det en stund for å bruke og praktisere kunnskapen din, for så å lære et annet. Prøv en av følgende programmeringstyper:
Logisk programmering.Funksjonell programmering.Objektorienterte paradigmer.11. Prøv å kombinere følgende to programmeringsspråk du har lært. Vei styrker og svakheter opp mot hverandre. Vanligvis gjør du følgende:
Ta enkle eksempler på ditt tidligere arbeid i det første programmeringsspråket og skriv det om med ditt andre programmeringsspråk.Opprett et nytt prosjekt og prøv å implementere det på begge språk. Noen ganger, avhengig av prosjekt og språk, vil det ikke være mulig å drive et prosjekt!Skriv et jukseark eller sammendragstabell med sammenligninger mellom lignende konstruksjoner på de to språkene og funksjoner som er unike for hvert av språkene.Prøver å finne måter å etterligne funksjoner som er unike for ett av de to språkene ved å bruke det andre språket.12. Lær visuelle programmeringskonsepter ved å bruke hvilket som helst av språkene du har lært. Nesten alle programmeringsspråk har versjoner/biblioteker som støtter visuell programmering og andre støtter konsoll- eller konsolllignende programmering. Dette kan oppnås ved å gjøre følgende:
Få en introduksjon til hendelsesdrevet programmering. Mest visuell programmering er til en viss grad avhengig av hendelser og hendelseshåndtering (ved å bruke det valgte programmeringsspråket).Prøv så mye skrivebordsprogramvare du kan og lær å forstå hva programvaren gjør. De fleste programvareselskaper tilbyr betaversjoner av produktene sine som du kan bruke til å teste programvaren. Prøv å holde tritt med utviklingen av brukergrensesnittet.Les artikler eller veiledninger om grafiske brukergrensesnitt.1. 3. Begynn å bruke kunnskapen din ved å designe små programvareprosjekter. Prøv programmeringserfaringen din på problemer du møter i hverdagen. For eksempel å skrive programmer som kan endre et stort antall filnavn på en gang, sammenligne tekstfiler visuelt, kopiere navn på filer i en katalog til minne eller en tekstfil, etc. Hold det enkelt i begynnelsen.
14. Lag et virtuelt "avgangsprosjekt". Fullfør dette til slutten, bruk de visuelle programmeringsteknikkene du har lært så langt.
15. Utvider forståelsen din av det visuelle rammeverket/biblioteket/pakken du lærte før du gikk videre til mer avanserte kurs, legger ekstra vekt på detaljer og lærer flere tips og triks for rammeverket ditt fra nettressurser.
16. Søk og lær om andre pakker/biblioteker med bilder for programmeringsspråkene dine.
17. Ta et kurs i grafikk (ikke grafisk design). Dette vil være svært nyttig for programmerere som ønsker å skrive attraktive brukergrensesnittelementer.
18. Bli spillprogrammerer (valgfritt). Programmeringsspill anses i de fleste tilfeller som skrivebordsprogrammering. Hvis du planlegger å bli spillprogrammerer, bør du lære mer om spillprogrammering etter å ha fulgt disse trinnene. Et grafikkkurs er et must for spillprogrammerere, og det andre språket du velger i de foregående trinnene bør være et logisk/funksjonelt programmeringsspråk (fortrinnsvis Prolog eller Lisp).
Metode 3 av 6: Programmering av distribuerte applikasjoner
1. Forstå hva programmering av distribuerte applikasjoner er. Distribuert applikasjonsprogrammering anses av mange som det vanskeligste å lære og krever kunnskap om ulike data- og kommunikasjonsteknologier.
2. Ta et raskt introduksjonskurs i telefonisystemer og relatert maskinvare. Trinnet er valgfritt. Men det er veldig nyttig hvis du vil forstå nettverkstopologier.
3. Gjør deg kjent med nettverksarkitektur og enheter som huber, svitsjer og rutere.
4. Ta et kurs i nettverksprotokoller og det viktigste. Du trenger en god forståelse av Open Systems Interconnection (OSI)-modellen, Ethernet, IP, TCP, UDP og HTTP før du kan begynne å programmere distribuerte applikasjoner.
5. Lær XML gjør deg kjent med det.
6. Begynn å lære et shell-skriptspråk. Under Windows vil det være et hvilket som helst skript som fungerer med Windows Scripting Host. Under Linux er dette Bash-skript og Perl. JavaScript anbefales sterkt for begge systemene, av følgende grunner:
Den støttes av nesten alle skriptverter i alle operativsystemer (Windows Scripting Host støtter JavaScript som standard, de fleste Linux-distribusjoner har en pakke for JavaScript-skriptkonsollstøtte).Det anses av mange utviklere å være lettere å lære.Den har ALGOL-avledet syntaks som gjør det lettere å bli kjent med andre programmeringsspråk når du velger et andre programmeringsspråk (C, C++, C#, Java og J# er alle avledet fra ALGOL-syntaks).Å lære JavaScript vil gjøre deg kjent med skripting av nettsider på klientsiden, noe som er en umiddelbar bonus!7. Start prosedyreprogrammering med ditt foretrukne skriptspråk. Senere kan du begynne å bruke mer avanserte programmeringsteknikker og paradigmer avhengig av skriptspråket ditt og hva det støtter. Alle skriptspråk har noen aspekter ved prosedyreprogrammering.
8. Bruk skriptspråket du lærte til å skrive skript som utfører kommunikasjon mellom maskiner. Lær hva som skal til for å gjøre det. Enkel kommunikasjon er nok.
9. Gå over til skrivebordsskript/programmeringsspråk. Helst et som er et multiparadigmespråk som Python. Følg en enkel introduksjon til det andre språket. Java blir sett av de fleste programmerere som det foretrukne språket av mange grunner. Men C# vinner raskt terreng på dette området. Java og C# foretrekkes av følgende grunner:
De er objektorienterte programmeringsspråk som beskytter programmerere i store team fra implementeringsdetaljer fordi begge støtter komponenter (kodeblokker, kompilerte, som utfører en bestemt oppgave og kan brukes i andre programmer).De støtter hendelsesdrevet programmering, i tillegg til OO og prosedyreprogrammering til en viss grad.Rammeverket som språket er bygget på distribueres fra (i tilfelle av Java).Tilgjengeligheten av mange hyllepakker relatert til nettverk, samt åpen kildekode og (rammeverk) innebygde pakker; Dette gjør det lettere for programmerere å bygge videre på andres arbeid.10. De fokuserer mer på kjernefunksjonene til språket, spesielt de som støtter nettverk. Mindre oppmerksomhet rettes mot brukergrensesnittelementene som utdata, vindusdesign og teknikker, og brukergrensesnittelementene.
11. Ta et kurs om distribuert applikasjons- og plattformdesign. Dette kan gjøres ved hjelp av bøker, online tutorials eller akademiske kurs. Det er imidlertid nødvendig å forstå arkitekturen til distribuerte applikasjoner og dens konsepter.
12. Lær om å bygge og vedlikeholde komponenter og tjenester ved å bruke det programmeringsspråket du velger.
1. 3. Lær en eller flere av følgende teknologier. Det anbefales at du tar minst en introduksjon til hver av disse. De fleste distribuerte applikasjonsprogrammerere stopper ikke ved ett eller to programmeringsspråk, men lærer minst ett programmeringsspråk for hvert operativsystem. Det er fordi hvis du vil at applikasjonene dine skal "distribueres", må du tilby minst én versjon for hvert av de store operativsystemene.
Common Object Request Broker Architecture (CORBA)Simple Object Access Protocol (SOAP)Asynkron JavaScript og XML (AJAX)Distribuert komponentobjektmodell (DCOM).NET fjernkontrollXML Web Services1. Hva er kjerneprogrammering. Kjerneprogrammerere er hovedsakelig avanserte programmerere som har gjort overgangen fra programmeringsapplikasjoner til programmeringskodeenheter som kan brukes av andre programmerere.
2. Lær et programmeringsspråk som lar deg bygge gjenbrukbare komponenter/pakker, hvis du ikke allerede har gjort det.
3. Ta et videregående kurs i UML og ORM. De fleste bibliotekutviklere bruker en eller begge av disse.
4. Ta et kurs i programvareteknikk.
5. Lær minst modulære, komponentbaserte, objektorienterte og hendelsesdrevne programmeringsteknikker og konsepter. Jo flere programmeringsparadigmer og språk du kjenner, jo mer vellykket vil du være som bibliotek/bibliotek/pakkeprogrammerer.
6. Lær om de forskjellige operativsystemene og rammeverkene som støttes av disse operativsystemene.
7. Fokuser innsatsen på rammeverk på tvers av plattformer, programmeringsspråk og teknologier.
8. Hvis programmeringsspråkene du har lært samsvarer med ANSI/ISO/IEEE/W3C standardversjoner, og prøv å mestre dem. Prøv å bruke standardkode når det er mulig.
9. Prøver å etterligne enkle, allerede etablerte biblioteker, spesielt åpen kildekode. Dette er nyttig i de tidlige stadiene av å bli en bibliotek-/pakkeprogrammerer. Start med enkle pakker som enhetskonvertering og ikke for vanskelige vitenskapelige beregninger. Hvis du er student, dra nytte av ikke-programmeringskursene for å fange ligninger og vitenskapskjerne i programbiblioteker.
10. Søk etter åpen kildekode-pakker innenfor ditt felt. Last først ned binærfiler/kjørbare filer fra pakken. Prøv å bruke dem og finn styrker og svakheter. Når du er ferdig med det, last ned kildekoden og prøv å finne ut hvordan den er laget. Prøv å kopiere disse bibliotekene/bibliotekene, eller deler av dem. Gjør det først etter at du har studert koden og senere før du har sett koden. Prøv igjen senere for å forbedre disse bibliotekene.
11. Lær de forskjellige tilnærmingene som brukes til å distribuere og distribuere komponenter til og av programmerere.
Vanligvis har bibliotek-/pakkeprogrammerere en tendens til å tenke rekursivt og/eller iterativt når de trenger å løse et problem. Prøv å tenke på hvert problem som en samling av mindre problemer (en sekvens av enklere oppgaver) eller som en gjentatt prosess for å redusere størrelsen på problemet til mindre delproblemer og deretter stable disse delproblemene oppå hverandre.Bibliotek/pakkeprogrammerere har en tendens til å generalisere. Det vil si at når de blir presentert for et enkelt spesifikt problem, begynner de vanligvis å tenke på et mer generelt problem og prøver å løse det generelle problemet, og løser også det mindre problemet automatisk.Metode5 av 6: Systemprogrammering
1. Forstå hva systemprogrammering handler om. Systemprogrammerere står overfor vitenskapen programmering, ikke med dens spesifikke implementering. Ikke begrens deg til en bestemt plattform.
2. Følg de tre første trinnene for stasjonære programmerere.
3. Ta et introduksjonskurs i lineær algebra.
4. Ta et kurs i kalkulus.
5. Ta et kurs i logikk og/eller diskret matematikk.
6. Bli kjent med forskjellige bare operativsystemer. Du kan gjøre dette på følgende måte:
Finn ut hvordan operativsystemer installeres.Lær hvordan du installerer flere forskjellige operativsystemer på 1 PC (valgfritt, men anbefalt).Installer mer enn ett operativsystem. Ikke installer alle verktøy på systemene; bruk heller bare-bones-funksjonaliteten fra operativsystemet.7. Ta et kurs (eller les bøker) om maskinvarearkitektur.
8. Utvikle en forståelse av de andre maskinvareplattformene.
9. Prøv å gjøre deg kjent med assemblerspråket til plattformen/OS du velger. Senere vil du lære monteringen fra andre plattformer/systemer.
10. Lær ANSI C og C++ sammen med konseptene for prosedyreprogrammering.
11. Forstå og øv med C/C++ standardbibliotekene på plattformen du velger. Vær spesielt oppmerksom på Standard Template Library (STL) og kanskje Active Template Library (ATL).
12. Søk etter nettressurser, bøker og kurs for å få en forståelse av C-varianten for din spesifikke plattform.
1. 3. Øv på å skrive avansert kode med C og C++.
14. Lær mer om avansert montering.
15. Ta et kurs i programmering av operativsystemer.
16. Søk etter dokumentasjon på en spesifikk plattform du velger. Dette blir enklere hvis du velger et Unix-basert OS. Å forstå systemet du jobber med vil tjene deg godt senere.
17. Øv den tilegnete kunnskapen din. Lag noen små verktøy først. Vanligvis er det nyttig å gjøre følgende:
Prøver å lage små verktøy som allerede er på systemet ditt.Prøver å konvertere verktøy tilgjengelig i operativsystemer til ditt.18. Lær programmeringsspråkene i den mest nyttige rekkefølgen. Dette er det eneste feltet hvor det første programmeringsspråket er viktig. Lær ANSI C først og ikke C++, C# eller Java og ikke D. Først da lærer du C++.
Begrensningen til C er fordi systemprogrammering krever at programmereren er kjent med følgende konsepter:
Faktisk og fullstendig kompilering av kildekoden.Objektutdatafiler på lavt nivå.Koble binærfiler.Maskinspråk/monteringsprogrammering på lavt nivå. C-språket anses av noen for å være en forkledd eller lettere å lære form for montering. Den støtter også å sette inn montørkode i C-koden når det er nødvendig, og det er bare prosedyremessig (akkurat som montering).1. Hva gjør informatikere. Dataforskere er svært avanserte programmerere som, i stedet for å jobbe med applikasjoner, jobber med å designe datateknologier som kryptering, programmeringsspråk og datautvinningsalgoritmer. Du kan sjelden nå dette nivået uten et akademisk studium og mye dedikasjon.
2. Få den vitenskapelige kunnskapen som tilsvarer en fireårig universitetsgrad i informatikk. Du kan gjøre dette gjennom:
Å forfølge en universitetsgrad (det mest åpenbare trinnet).Skaff deg oversikt over universitetsstudier og gjør de ulike kursene gjennom selvstudium eller gjennom egne kurs. Dette er mulig i teorien, men den første veien anbefales.3. Velg en spesialisering. Jo mer spesifikk jo bedre. Dette avhenger av dine preferanser. Her er noen av de viktigste feltene innen informatikk:
Algoritmedesign (søk, sortering, kryptering, dekryptering og feildeteksjon i kommunikasjon er noen eksempler)Programmeringsspråk/kompilatordesign/optimeringKunstig intelligens (mønstergjenkjenning, talegjenkjenning, naturlig språkbehandling, nevrale nettverk)robotikkVitenskapelig programmeringJobber med superdatamaskinerDatastøttet design/modellering (CAD/CAM)Virtuell virkelighetDatagrafikk (Datamaskingrafikk blir vanligvis feilaktig forvekslet med grafisk design eller grafisk brukergrensesnittdesign. Datagrafikk er feltet der du kan bruke og manipulere bilder i datasystemer.)4. Vurder å ta en høyskolegrad. Du kan også gå for en mastergrad eller doktorgrad.
5. Lær teknologiene og programmeringsspråkene relatert til feltet ditt som programmerer.
Tips
Uansett hva slags programmering du vil prøve eller på hvilket nivå, kan du alltid ta et kurs eller klasser på skolen. Ikke la deg skremme av begreper som "Datavitenskap".Ethvert kurs du kan ta uten forkunnskaper bør fokusere på det grunnleggende om programmering, men sjekk med veilederen på forhånd for å forsikre deg om at det er det du ser etter, da kurs som "Datakunnskaper" fokuserer mer på de kjente bli involvert i kontorapplikasjoner, etc..
Artikler om emnet "Bli programmerer"