Postati programer kumulativni je proces koji iz dana u dan i iz godine u godinu izgrađuje vaše vještine, a programiranje može biti zabavno i korisno (mentalno, duhovno i financijski). Ovaj vodič ne obećava čarobno lak način da postanete programer, a redoslijed koraka nije svetinja, ali ćete dobiti opći prikaz kako postati programer u jednom od modernih programskih područja.
Koraci
Korak 1. Krenite na uvodni kurs u jednu (ili sve) sljedeće discipline:
- Logika
- Diskretna matematika
- Programski jezik (učestvujte u različitim programskim paradigmama, počevši od sekvencijalnog/proceduralnog do objektno orijentisanog, nakon funkcionalnog i logičkog programiranja. Poželjniji Ruby/Python/Pascal za početnike i nakon dobrog razumijevanja idite dublje u C ++/C#/Java)
SAVJET STRUČNJAKA
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
Osnivač pokretanja i inženjerski direktor
Nemojte se osjećati kao da morate steći diplomu kodiranja.
Dok pohađanje kurseva programskog jezika može biti od pomoći, Gene Linetsky, softverski inženjer i osnivač pokretanja, kaže:"
Korak 2. Naučite koncepte baze podataka kao što su tablice, prikazi/upiti i procedure
Za to možete koristiti bilo koji jednostavan paket baze podataka, na primjer:
- MS Access
- DB V
- Fox Pro
- Paradoks
- MySQL je dobra baza podataka za učenje jer je besplatna, često se koristi i bazama podataka se obično pristupa pomoću SQL upita
Korak 3. Odlučite kakvu vrstu programera želite biti
Programeri općenito spadaju u jednu od sljedećih kategorija:
- Web programer
-
Programer za desktop aplikacije
- Programer orijentisan na operativni sistem (OS) (vezan za jedan operativni sistem ili skup operativnih sistema)
- Programer nezavisan od platforme
- Programer za distribuirane aplikacije
- Biblioteka/platforma/framework/core programer
-
Sistemski programer
- Kernel programer
- Programer za upravljačke programe
- Programer kompajlera
- Naučnik programiranja
Korak 4. Naučite tehnologije i programske jezike koji se odnose na vaše programsko polje po izboru
U sljedećim odjeljcima raščlanjeni su zadaci za različite vrste programiranja.
Metoda 1 od 6: Web programiranje
Korak 1. Znajte šta web programiranje uključuje
Web aplikacije su softverske komponente dizajnirane za rad na vrhu internetske arhitekture. To znači da se aplikacijama pristupa putem softvera web preglednika, poput Firefoxa ili Internet Explorera. Izgradnja na vrhu internetske arhitekture ne zahtijeva nužno aktivnu vezu s internetom. To znači da su web aplikacije izgrađene na vrhu standardnih web tehnologija, kao što su:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IP protokoli
- HTML
- XML
- Coldfusion
- ASP
- JSP
- PHP
- ASP. NET
Korak 2. Pregledajte mnoge različite web stranice kako biste saznali kako obično izgledaju
(Desnim tasterom miša kliknite na View Source ili pritisnite F12.) Potražite raznolikost u vrsti/sadržaju web stranice, a ne u količini posjećenih web stranica. Općenito, morat ćete posjetiti barem jednu od svake od sljedećih vrsta web stranica:
- Stranice korporativnog prisustva (komercijalne korporacije, neprofitne korporacije/organizacije, vladine organizacije)
- Mašine za indeksiranje weba (tražilice, meta pretraživačke stranice, specijalizirane tražilice, direktoriji)
- Web lokacije za rudarenje podataka
- Lične stranice
- Informativne/enciklopedijske stranice (wikiji, listovi s podacima, tehničke specifikacije i priručnici s popisima direktorija, blogova i časopisa, stranica s vijestima i novinskim agencijama, žute stranice itd.)
- Društvene web stranice (društveni portali, web stranice za označavanje, web stranice za bilješke)
- Mjesta za saradnju (ovo uključuje i druge gore navedene kategorije, poput wikija i blogova)
Korak 3. Naučite barem jednu tehniku/metodu brainstorminga i softver koji se koristi za implementaciju te metode
Na primjer: dijagrami brainstorminga i MS Visio.
Korak 4. Upoznajte se sa strukturiranjem web stranice
Ovo stvara konceptualne web dijagrame, karte web stranica i navigacijske strukture.
Korak 5. Uradite kratak kurs o grafičkom dizajnu
Pokušajte naučiti barem jedan programski paket za uređivanje/manipulaciju grafikom (opcionalno, ali se toplo preporučuje)
Korak 6. Naučite osnove internetske infrastrukture
Ovo uključuje sticanje osnovne ideje o:
- Protokoli osnovnih web usluga (HTTP, FTP, SMTP i POP3 ili IMAP4)
- Softver web servera (po mogućnosti jedan za platformu na kojoj ćete uglavnom raditi)
- Softver za pregledavanje weba.
- E -mail server i klijentski softver
Korak 7. Naučite HTML i CSS jezike
Možda biste željeli nabaviti i softverski paket "Ono što vidite je ono što dobijete (WYSIWYG)" za uređivanje HTML -a.
Korak 8. Naučite XML i tehnologije povezane sa XML -om, kao što su XSL i XPath (izborno, ali preporučljivo)
Korak 9. Kreirajte jednostavne statičke web stranice dok se ne upoznate i ne snalazite u HTML -u
Korak 10. Naučite skriptni jezik na strani klijenta
Većina korisnika uči JavaScript. Neki uče VBScript, ali to nije kompatibilno s većinom preglednika.
Korak 11. Upoznajte se sa skriptnim jezikom na strani klijenta koji ste naučili
Pokušajte ostvariti svoj potencijal koristeći samo taj jezik. Idite na sljedeći korak tek nakon što se barem upoznate sa jezikom skriptiranja na strani klijenta.
Korak 12. Naučite barem jedan programski jezik na strani servera
Ako se odlučite ograničiti na jedan serverski softver, naučite jedan od programskih jezika koje taj softver podržava. Ako ne, naučite barem jedan programski jezik na svakom poslužiteljskom softveru.
Korak 13. Napravite pilot projekat za sebe nakon što završite sa učenjem programskog jezika na strani servera.
Korak 14. Nabavite vlastitu web stranicu i počnite eksperimentirati na svojoj web stranici
Metoda 2 od 6: Programiranje aplikacija za računare
Korak 1. Znajte u šta se upuštate sa programiranjem desktop aplikacija
Većina programera za desktop računare piše kodeks za poslovna rješenja, pa će sticanje predodžbe o preduzećima, njihovoj organizacionoj i finansijskoj strukturi uštedjeti vrijeme.
Korak 2. Saznajte više o različitim arhitekturama računarskog hardvera
Uvodni kurs iz dizajna digitalnih kola i drugi iz arhitekture računara je koristan; međutim, neki smatraju da je to napredno za početnu točku, pa bi čitanje dva ili tri vodička članka (poput ovog i ovog) moglo biti dovoljno. Zatim se možete vratiti na ovaj korak kasnije, nakon što naučite svoj prvi programski jezik.
Korak 3. Naučite početni (dječji) programski jezik
Nemojte se sramiti naučiti takav jezik samo zato što ste stariji nego što vas zovu "klinac". Primjer ovih programskih jezika može biti Scratch. Ovi programski jezici mogu u velikoj mjeri olakšati bol pri učenju vašeg prvog programskog jezika. Međutim, ovaj korak nije obavezan. To se može učiniti i prije prethodnog koraka.
Korak 4. Upoznajte se s proceduralnim, objektno orijentisana, i paradigme funkcionalnog programiranja.
Korak 5. Uradite uvodni kurs u jednom od proceduralnih programskih jezika
Bez obzira na to koji jezik kasnije izaberete da bude vaš jezik, to će zahtijevati proceduralno programiranje na nekom nivou. Također, većina programera smatra da je proceduralno programiranje najlakše koristiti kao polazište za stjecanje ideje programiranja općenito.
Korak 6. Naučite barem jednu naprednu tehniku modeliranja, poput UML -a ili ORM -a
Korak 7. Počnite pisati neke male konzole ili aplikacije slične konzoli
Možete koristiti uobičajene male vježbe u knjigama o programskim jezicima. Za to odaberite alat za pisanje programa na programskom jeziku na kojem pišete.
Korak 8. Krenite na napredniji kurs u odabranom programskom jeziku
Pobrinite se da dobro razumijete sljedeće koncepte i da ih možete relativno lako primijeniti prije nego nastavite:
- Unos i izlaz informacija korisnicima programa.
- Logički tok i tok izvođenja programa u proceduralnim jezicima.
- Deklarisanje, dodeljivanje i upoređivanje promenljivih.
- Granske programske konstrukcije kao što su if.. then..else i select/switch..case.
- Petlje konstrukcija kao što su while..do, do.. while/until, for..next.
- Sintaksa vašeg programskog jezika za kreiranje i pozivanje procedura i funkcija.
- Vrste podataka i manipulacija njima.
- Korisnički definirani tipovi podataka (zapisi/strukture/jedinice) i njihova upotreba.
- Ako vaš jezik podržava funkcije preopterećenja, razumite ga.
- Metode pristupa memoriji po vašem izboru (pokazivači, zavirivanje itd.)
- Ako vaš jezik podržava preopterećenje operatora, razumite to.
- Ako vaš jezik podržava delegate/pokazivače funkcija, razumite ga.
Korak 9. Primijenite napredne tehnike koje ste naučili
Korak 10. Pohađajte uvodni kurs u barem još jednom programskom jeziku u drugoj programskoj paradigmi
Preporučuje se da naučite jedan programski jezik za svaku paradigmu, a većina naprednih programera to čini, međutim, obično započnete s jednim, radite neko vrijeme primjenjujući svoje znanje i vježbajući ga, a zatim kasnije naučite drugi, nakon što ste već imali pravi -životno iskustvo u programiranju. Isprobajte jedno od sljedećih jezičnih područja:
- Paradigma logičkog programiranja.
- Paradigma funkcionalnog programiranja.
- Objektno orijentisana paradigma.
Korak 11. Pokušajte uporediti dva programska jezika koja ste do sada naučili
Procijenite snage i slabosti svakog od njih. Obično to rade:
- Uzimanje jednostavnih uzoraka vašeg ranog rada u prvom programskom jeziku i njegovo ponovno pisanje pomoću drugog programskog jezika.
- Kreiranje novog projekta i pokušajte ga implementirati koristeći oba jezika. Ponekad, ovisno o izboru projekta i jezika, možda nećete moći implementirati projekt na jednom od jezika!
- Pisanje usporednih tablica ili usporednih tablica usporedbi između sličnih konstrukata u dva jezika i karakteristika jedinstvenih za svaki od jezika.
- Pokušajte pronaći načine da oponašate karakteristike koje su jedinstvene za jedan od dva jezika koristeći drugi jezik.
Korak 12. Naučite koncepte vizuelnog programiranja koristeći jedan od jezika koje ste naučili
Gotovo svi programski jezici imaju verzije/biblioteke koje podržavaju vizualno programiranje, a drugi podržavaju programiranje konzole ili konzole. To se može postići:
- Upoznajte se sa programiranjem zasnovanim na događajima. Većina vizuelnog programiranja oslanja se na nekom nivou na rukovanje događajima i događajima (koristeći programski jezik koji odaberete).
- Isprobajte što više softvera za računare i shvatite šta softver radi. Većina kompanija za razvoj softvera nudi beta-testiranje verzija svojih proizvoda koje možete koristiti za testiranje softvera. Budite u toku sa napredovanjem korisničkog interfejsa.
- Pročitajte neke članke ili vodiče o grafičkom korisničkom interfejsu.
Korak 13. Počnite primjenjivati svoje znanje na malim softverskim projektima koje dizajnirate
Pokušajte primijeniti svoju stručnost u programiranju na probleme s kojima se susrećete u svakodnevnom životu. Na primjer, pišite programe koji masovno preimenuju datoteke, vizualno uspoređuju tekstualne datoteke, kopiraju nazive datoteka u direktoriju u memoriju/tekstualnu datoteku i slično. U početku neka bude jednostavno.
Korak 14. Kreirajte virtualni diplomski projekt
Dovršite ovo do kraja, primjenjujući tehnike vizualnog programiranja koje ste do sada naučili.
Korak 15. Proširite svoje razumijevanje vizuelnog okvira/biblioteke/paketa koje ste ranije naučili pohađajući napredne kurseve, obraćajući dodatnu pažnju na detalje i učeći više savjeta i trikova za vaš okvir iz internetskih izvora
Korak 16. Potražite druge pakete/biblioteke vizuelnih elemenata za svoje programske jezike i naučite ih
Korak 17. Pohađajte kurs iz grafike (ne grafičkog dizajna)
To će biti od velike pomoći programerima koji žele napisati privlačne elemente korisničkog sučelja.
Korak 18. Razmislite o tome da postanete programer igara (izborno)
Programiranje igara se u većini svojih dijelova smatra stolnim programiranjem. Ako namjeravate postati programer igara, morat ćete naučiti više o programiranju igara nakon što dovršite ove korake. Kurs grafike je neophodan programerima igara, a drugi jezik po izboru u prethodnim koracima trebao bi biti logički/funkcionalni programski jezik (po mogućnosti Prolog ili Lisp).
Metoda 3 od 6: Programiranje distribuiranih aplikacija
Korak 1. Bavite se programiranjem distribuiranih aplikacija
Programiranje distribuiranih aplikacija mnogi smatraju jednim od najtežih za učenje i zahtijevaju različito znanje o računarskim i komunikacijskim tehnologijama.
Korak 2. Upoznajte se brzo sa telefonskim sistemima i njihovim hardverom
Ovaj korak nije obavezan. Međutim, vrlo je korisno za razumijevanje mrežnih topologija.
Korak 3. Upoznajte se sa mrežnim hardverskim arhitekturama i uređajima kao što su čvorišta, prekidači i usmjerivači
Korak 4. Pohađajte kurs o mrežnim protokolima i osnovama
Prije početka programiranja distribuiranih aplikacija potrebno vam je dobro razumijevanje modela povezivanja otvorenih sistema (OSI), Etherneta, IP -a, TCP -a, UDP -a i HTTP -a.
Korak 5. Naučite XML jezik i upoznajte se s njim
Korak 6. Počnite učenjem skriptnog jezika ljuske
Za programiranje zasnovano na Windows-u to bi bila bilo koja skripta koja radi sa Windows Scripting Hostom. Za programiranje zasnovano na Linuxu, Bash skripte i Perl će biti dovoljni. JavaScript se jako preporučuje za to na obje platforme iz sljedećih razloga:
- Podržava ga gotovo bilo koji host za skriptiranje u bilo kojem operativnom sistemu (Windows Scripting Host podržava JavaScript prema zadanim postavkama, većina distribucija Linuxa ima paket za podršku za JavaScript skriptu za podršku).
- Mnogi programeri smatraju da je to lakše naučiti.
- Ima sintaksu izvedenu iz ALGOL -a koja vas upoznaje sa mnogo više drugih programskih jezika kada trebate izabrati drugi programski jezik (C, C ++, C#, Java i J# svi imaju sintaksu izvedenu iz ALGOL -a).
- Učeći JavaScript, upoznajete se sa skriptiranjem web stranica na strani klijenta, što je bonus nuspojava!
Korak 7. Primijenite samo proceduralno programiranje na svom jeziku skripte koji ste odabrali
Kasnije možete koristiti naprednije programske tehnike i paradigme u skladu sa svojim skriptnim jezikom i onim što podržava. Svi skriptni jezici na određenom nivou imaju neke aspekte proceduralnog programiranja.
Korak 8. Koristite skriptni jezik koji ste naučili za pisanje skripti koje obavljaju komunikaciju između mašina
Naučite šta je potrebno za to. Jednostavna komunikacija bit će dovoljna.
Korak 9. Napravite transfer na desktop skriptni/programski jezik
Po mogućnosti, jezik koji ima više paradigmi, poput Pythona. Uzmite jednostavan uvod u taj drugi jezik. Većinu programera Java smatra jezikom po izboru iz mnogo razloga. Međutim, C# na ovom polju brzo dobiva zamah. Java i C# su preferirani iz sljedećih razloga:
- To su objektno orijentirani programski jezici koji štite programere u velikim timovima od detalja implementacije jer oboje podržavaju komponente (jedinice koda, unaprijed kompajlirane, koje izvode određeni zadatak i mogu se koristiti u drugim programima).
- Oni podržavaju programiranje zasnovano na događajima, kao i OO i proceduralno programiranje na nekom nivou.
- Okvir na kojem je jezik izgrađen prirodno je distribuiran (u slučaju Jave).
- Dostupnost mnogih gotovih paketa koji se bave umrežavanjem, i otvorenog koda i ugrađenih paketa; ovo programerima olakšava nadogradnju na rad drugih.
Korak 10. Koncentrišite se više na osnovne karakteristike jezika, posebno na one koje podržavaju umrežavanje
Obratite manje pažnje na elemente korisničkog sučelja, poput izlaza, dizajna i tehnika prozora i elemenata korisničkog sučelja.
Korak 11. Pohađajte kurs o dizajnu i arhitekturi distribuiranih aplikacija
To se može učiniti pomoću knjiga, internetskih vodiča ili akademskih tečajeva. Međutim, potrebno je razumjeti arhitekturu distribuiranih aplikacija i njene koncepte.
Korak 12. Naučite o izgradnji servisiranih komponenti i usluga pomoću programskog jezika po vašem izboru
Korak 13. Naučite jednu ili više sljedećih tehnologija
Preporučuje se da ih barem upoznate sa svima. Većina distribuiranih aplikativnih programera ne zaustavlja se na jednom ili dva programska jezika, već uči barem jedan programski jezik na svakom operativnom sistemu. To je zato što ako želite da se vaša aplikacija "distribuira", trebali biste navesti njenu verziju barem za svaki veći operativni sistem.
- Arhitektura posrednika zahtjeva za zajedničke objekte (CORBA)
- Protokol za jednostavan pristup objektima (SOAP)
- Asinhroni JavaScript i XML (AJAX)
- Model distribuirane komponente (DCOM)
- . NET Remoting
- XML web usluge
Metoda 4 od 6: Biblioteka/platforma/okvir/osnovno programiranje
Korak 1. Znajte šta je jezgro programiranja
Osnovni programeri su samo napredni programeri koji su prešli sa programskih aplikacija na programske programske jedinice koje će koristiti drugi programeri.
Korak 2. Naučite programski jezik koji podržava izgradnju komponenti/paketa za višekratnu upotrebu, ako to već niste učinili
Korak 3. Krenite na napredni kurs iz UML -a i ORM -a
Većina programera biblioteka koristi jedno ili oboje.
Korak 4. Pohađajte kurs softverskog inženjeringa
Korak 5. Naučite barem modularne, komponentno zasnovane, objektno orijentisane programske tehnike i koncepte zasnovane na događajima
Što više programskih paradigmi i jezika obuhvatite, to ćete biti uspješniji kao programer biblioteka/paketa.
Korak 6. Saznajte više o različitim operativnim sistemima i programskim okvirima koje podržavaju ovi operativni sistemi
Korak 7. Usredotočite svoje napore na učenje na okvire nezavisne od platforme, programske jezike i tehnologije
Korak 8. Ako programski jezici koje ste do sada naučili imaju ANSI/ISO/IEEE/Standardne verzije W3C, savladajte standarde.
Pokušajte koristiti standardni kod kad god je to moguće.
Korak 9. Pokušajte oponašati jednostavne, već uspostavljene biblioteke, posebno one otvorenog koda
Ovo je korisno u ranoj fazi postajanja programera biblioteke/paketa. Počnite s jednostavnim paketima poput pretvaranja jedinica i srednjih paketa naučnih proračuna. Ako ste student, iskoristite svoje kurseve koji nisu programiranje pokušavajući implementirati njihove jednadžbe i naučno jezgro kao biblioteke.
Korak 10. Potražite i isprobajte pakete otvorenog koda u svom području programiranja
Prvo preuzmite binarne datoteke/izvršne datoteke paketa. Pokušajte ga koristiti i pronađite njegove jake i slabe strane. Nakon što to učinite, preuzmite izvor i pokušajte shvatiti kako je to učinjeno. Pokušajte ponovo stvoriti te biblioteke ili njihove dijelove. U početku to činite nakon što vidite kôd, a kasnije i prije nego vidite kôd. U kasnijim fazama pokušajte poboljšati te biblioteke.
Korak 11. Naučite različite pristupe koji se koriste za distribuciju i implementaciju komponenti programerima
- Obično programeri biblioteka/paketa imaju tendenciju da rekurzivno i/ili iterativno razmišljaju o svim problemima sa kojima se susreću. Pokušajte svaki problem zamisliti kao skup manjih problema (niz jednostavnijih zadataka) ili kao ponovljeni proces smanjenja opsega problema na manje opsege, a zatim ih nagomilavati jedan na drugi.
- Programeri biblioteke/paketa skloni su generalizaciji. Odnosno, kada im se predstavi jednostavan specifičan problem, obično razmišljaju o općenitijem problemu i pokušavaju riješiti taj opći problem koji će automatski riješiti manji.
Metoda 5 od 6: Sistemsko programiranje
Korak 1. Shvatite šta sistemsko programiranje uključuje
Sistemski programeri se bave naukom programiranja, a ne njenom specifičnom implementacijom. Nemojte se vezati za određenu platformu.
Korak 2. Slijedite prva tri koraka za programere desktop aplikacija
Korak 3. Krenite na uvodni kurs iz linearne algebre
Korak 4. Pohađajte kurs iz računa
Korak 5. Pohađajte kurs iz logike i/ili diskretne matematike
Korak 6. Predstavite se različitim golim operativnim sistemima
To se može učiniti na sljedeći način:
- Steći ideju o tome kako su instalirani operativni sistemi.
- Naučiti kako instalirati različite operativne sisteme na jedan računar (izborno, ali preporučeno).
- Instaliranje više operativnih sistema. Nemojte instalirati nikakve pakete pomoći na sisteme; umjesto toga, koristite gole funkcionalnosti koje pružaju operativni sistemi.
Korak 7. Pohađajte kurs (ili alternativno, čitajte knjige) o arhitekturi računarskog hardvera
Korak 8. Razviti razumijevanje različitih računarskih hardverskih platformi
Korak 9. Upoznajte se sa asemblerskim jezikom hardverske platforme/operativnog sistema po izboru
Kasnije ćete naučiti sastavljanje drugih platformi/sistema.
Korak 10. Naučite jezike ANSI C i C ++, zajedno sa konceptima proceduralnog programiranja
Korak 11. Shvatite i vježbajte standardne biblioteke C/C ++ na platformi po izboru
Obratite posebnu pažnju na Standardnu biblioteku predložaka (STL) i možda na aktivnu biblioteku predložaka (ATL).
Korak 12. Pretražite mrežne resurse, knjige i kurseve kako biste stekli uvid u C-okus vaše posebne platforme
Korak 13. Vježbajte kreiranje naprednog koda sa C i C ++
Korak 14. Saznajte više o naprednijoj montaži
Korak 15. Pohađajte kurs o dizajnu operativnih sistema
Korak 16. Pronađite i pročitajte dokumentaciju za svoju platformu po izboru
Ovo će biti lakše ako odaberete operativni sistem zasnovan na Unixu. Dobro shvatite sistem sa kojim ćete kasnije raditi.
Korak 17. Vježbajte stečeno znanje
Prvo stvorite male sistemske pomoćne programe. Obično je korisno:
- Pokušavate ponovo stvoriti male alate koji su već na vašem sistemu.
- Pokušavate prebaciti pomoćne programe dostupne u drugim operativnim sistemima na vaš.
Korak 18. Učite jezike po redoslijedu koji vam najviše pomaže
Ovo je jedino mjesto gdje je prvi programski jezik važan. Prvo naučite ANSI C, ne C ++, ne C#, ne Java i ne D. Zatim naučite C ++.
-
Ograničavanje prvog jezika samo na C i C je zato što sistemsko programiranje zahtijeva da programer bude upoznat sa sljedećim konceptima:
- Prava i potpuna kompilacija izvornog koda.
- Izlazne datoteke objekata niske razine.
- Povezivanje binarnih datoteka.
- Programiranje na niskom nivou mašinskog jezika/montaže. Za neke se kaže da je jezik C prikriven/lakši za učenje. Takođe podržava umetanje koda asemblerskog jezika u kôd kad god želite i samo je proceduralno (poput montaže).
Metoda 6 od 6: Nauka o programiranju
Korak 1. Znajte šta programer radi
Naučnici programiranja su vrlo napredni programeri koji umjesto na razvoju aplikacija rade na razvoju računalnih tehnologija poput šifriranja, programskih jezika i algoritama za rudarenje podataka. Ovaj nivo se rijetko postiže bez akademskog učenja i posvećenosti.
Korak 2. Akumulirajte naučno znanje ekvivalentno četvorogodišnjoj diplomi iz računarstva
To se može učiniti na sljedeći način:
- Uzimanje stvarne akademske diplome (što se obično dešava).
- Dobijanje nacrta kurseva za takvu diplomu sa jednog od modernih univerziteta i pohađanje kurseva samostalnim učenjem ili kao zasebni predmeti. To bi se teoretski moglo postići, ali preporučeni put je prvi.
Korak 3. Odlučite o oblasti specijalnosti
Što konkretnije, to bolje. To ovisi o vašim željama. Međutim, ovdje je popis nekih od glavnih tema u računalnom programiranju:
- Dizajn algoritma (pretraživanje, sortiranje, šifriranje, dešifriranje i otkrivanje grešaka u komunikaciji su neki primjeri)
- Programski jezici/dizajn kompajlera/optimizacija
- Polja umjetne inteligencije (prepoznavanje uzoraka, prepoznavanje govora, obrada prirodnog jezika, neuronske mreže)
- Robotika
- Naučno programiranje
- Super računarstvo
- Kompjutersko projektovanje/modeliranje (CAD/CAM)
- Virtualne stvarnosti
- Računarska grafika (Računarska grafika se obično pogrešno miješa sa grafičkim dizajnom ili dizajnom grafičkog korisničkog interfejsa. Računarska grafika je polje proučavanja načina predstavljanja i manipulacije grafikom u računarskim sistemima.)
Korak 4. Razmislite o sticanju više akademske diplome
Možda ćete poželjeti magistrirati ili doktorirati.