Kako da naucis da programiras?
Dacu ti neka moja iskustva i put koji sam ja presao.
To je dosta nezgodno pitanje. Jer kad kao "zavrsis" ucenje programiranja, ti ces sad bit programer? Mozda hoces, mozda neces! Kako sad to? Jel' umes da programiras ili ne? U nekom jeziku.
Radi se o tome da ti mozes da naucis da sklepas program u nekom odredjenom programskom jeziku, ali i dalje mozda nisi programer.... Biti programer, podrazumeva jos mnogo toga drugog, sem znanja izrade EXE fajla koristeci neki kompajler. Biti programer je kad razmisljas drugacije, kad to razmisljas maltene uvek i kad si neprekidno u nekoj zelji da nesto novo naucis. Da dises kod, i da za svaku priliku imas 100 ideja, ostvarices samo onu koju smatras najboljom...
Biti programer znaci da si ulozio strahovito vreme, bez obzira da li pises programe u jednom ili vise programskih jezika. Biti programer zahteva posvecenost i duge sate napora, cak i nakon zavrsetka "ucenja". Ne mozes biti programer ako nisi tog "kova" - tacka. barem ne dobar i uspesan programer.
Ako ces kao programer, da samo otaljavas posao, nemoj ni pocinjati. Pravi programer je neko ko u momentu kad zavrsi neki projekat, vec ima 100 ideja kako da ga poboljsa, ili jednostavno, gladno skace na sledeci.
Da ne filozofiram sada, mada biti posvecen programer jeste neka vrsta zivotne filozofije. Nikada u zivotu nisam upoznao coveka koji je programer, a da nije potpuno posvecen programiranju, ucenju novog svakog dana, razmisljanju o projektima. Mozda je to i ekstrem, ali ja tako vidim programera.
Znas, lako se nazvat programerom kad naucis jedan jezik, umes da napises program i - to je to.
Znam "programere" koji su kao takvi dobili posao u nekoj banci, a jedino sto ume je definisanje baza podataka, stim sto pisanje koda najradije prepusta drugima. Tako, nakon godina, zaboravi i ono sto je ucio , da ne govorimo ucenjnu nekih novih jzeika, tehnika...
Znam ljude koji su programirali citavog zivota u Cobolu na primer u nekoj firmi. Nakon toliko godina, za njih je objektno programiranje bauk, oni neznaju skoro nista (tek su culi za to) o C++, Delfiju, o C# ili Javi, da ne govorimda nestou tome i urade. Ali, jedu programeri, tako i primaju platu...
Veruj mi, poceo sam sa spektrumovim basicom, zatim na velikim sistemima radio Basic, Pascal, C, Cobol. Pojavom PC programiranje dozivljava bum, pojavljuju se C++, Delfi, Visuelni jezici, Java, i da ne nabrajam. Kao posveceni programer (nekad i zbog toga zazalim), gladno sam skocio na sve te nove jezike, pisao u mnogima, ali se konacno skrasis na jednom, jer treba i za zivot zaradjivat.
E sad, programeri se razlikuju po tome da i to sto znaju eksploatisu dok se moze, ili stalno uce, usvajaju nove tehnlogije i nikad ne kazu da sve znaju. Ja sam svestan koliko ne znam, ali me zivotno opredlejneje vuce da se neprekidno usavrsavam, mada mi vise i nije potrebno. Materijalno sam se dobro obezbedio, imam projekata da ih sve i ne mogu prihtvatati, radim samo za inostarne firme, ai svakog dana maltene naucin (jer zelim) nesto novo, i tako u krug, godinama i godinama.
Na kraju da ti kazem, nisi dobro postavio pitanje, "kako da postanem programer" treba da promenis u "zelim da se upursim u svet programiranja" To je ogromno podrucje, gde ako znas samo jedan jezik da pises, nemas mnogo sansi., barem ne sa aspekta neke zarade. Jako mnogo poslova za strane firme sam dobio, kad je nekome zatrebalo nesto u C++ - ja sam umeo, eto posla, drugom je trebalo nesto prebaciti iz arhaicnog Cobola - ja sam umeo, eto posla i za druge projekte, nekom je trebalo povezivanje baza podataka na Web Aplikaciju - umeo sam, novi posao dobijen... I kada tako stvaras neki "image" o sebi, posao pocinje sam da dolazi, vise te cak i ne pitaju da li mozes, vec ajde da se dogoroimo to i to...
Da ne govorim o tome, kako je vazno da poznajes i gomilu drugih stvari, koje nisu direktno povezane sa prorgamiranjem u klasicnom smislu - graficki dizajn u nekoj meri, web dizajn je skoro obavezan, Flash se nesto probija....
I da, uceci, saznajuci nove stvari svaki dan, mesec, naucices mnoog o racunarima, zastiti, virusima, konfiguraciji WebServera i gomilu toga, sto ce ti pre ili kasnije doneti posao. Evo ti i konkretnog primera, sta znaci vaznost da se sto svestranije obrazujes u sto vise oblasti.
Pre neku noc zovu me iz Amerike da im pomognem oko nekog problema. Jedna od aplikacija koja radi kod njih je odjednom pocela neobicno da se ponasa, ne stampa, prijavljuje neke cudne greske (a radila godinama bez i jedne greske)... Nakacim se na njihov komojuter (Netmeeting je nezamenjiv), preuzmem kontrolu i stanem da cekiram. Ispostavi se da su puni gresaka na sistemu, pa i virusa, spyware itd... Da ne govorim da u pocetku moju aplikaciju nisu mogli ni da pokrenu (missing Autoexec.NT). E sad, ako si nesto naucio na ovom forrumu, mogao si videti i psot sta se u vezi tog NT fajla radi. Znao sam to od ranije, ali i da nisam, pomogla bi mi diskusija ovde. Prekopiram, NT fajl, i podignem AD-Aware, pa SpyBot. Oba vidim, imaju baze od prosle godine! Lepo update baza pa skeniranje. Potraje to, zavrsi se rebootom, i eto - sistem radi ko' bombonica.. Izgubio 3 sata rada sa njima, ali na kraju se desava sledece: - ponude mi posao koji ce me drzati sledecih godinu dana rada, a sledecih par godina sa dovoljno novca... - a sve to zato sto su bili odusevljeni, kako sam im "ocas" resio sve probleme, i mogu da rade dalje jos danas,....
Ovo gore sam ti napisao, samo kao ilustraciju, sta znaci svestranost u programiranju. Da sam znao samo taj jedan jezik a nisam se interesovao za nista drugo, ne bi bilo u ovom slucaju ni dodatnog posla (koji uzgred budi receno, ce biti odradjen u drugom programskom jeziku...)
Da zakljucim, ovo smaranje (izvinjavam se zbog ovako opsirnog posta), zelim ti stvarno da zaplovis u vode programiranja, a moj predlog je, uzmi ANSI C za pocetak, predji na C++. Ako savladas ta dva jezika (ustvari jedan pa prosiren), predji na bilo koji, uspeces mnogo brzo da ga savladas, a onda pocinje (nadam se) tvoja golgota - pocesces da postajes programer, sto ce trajati godinama, uz mnogo odricanja i rada, sa mnogo novog ucenje i pracenja napretka u svetu ukoji ces uci.
Zelim ti srecu, sve sto ti sada, na pocetku treba je velika zelja, upornost. I ne zaboravi, ako i naucis da napravis program nakon sto naucis jezik, ako ne osetis zelju da jos ucis, nesto novo stvaras, ili pocnes sa jos nekim jezikom, slabo ti se pise, bices "programer" a;i ne i "PROGRAMER".
To su naravno samo moja licna razmisljanja, mnogi se mozda nece sloziti samnom, imaju svoje puteve, sto je i normalno, i zapravo pokazuje koliko je programiranje siroka i uzasno razudjena delatnost... Daj 100, programerima isti zadatak, SVI ce ga resiti ali svaki na DRUGACIJI nacin.. pa ti vidi
A to je vec ona zivotna stvar - "ili JESII, ili NISI"...
Sretcno ti bilo, zelim ti uspeha!