Ajd da izjavim i ja nešto za TV Dnevnik :)
Složio bih se sa Milančetom oko jedne bitne stvari, a to je da je u programiranju najbitnije naučiti fundamente profesije, a sve ostalo je manje više jednostavno nadograditi. Jeste, tehnologije se menjaju i usavršavaju, ali isto tako napreduju i metode za usvajanje istih, kao i dostupnost materijala za učenje. Mislim, siguran sam da će se "stara garda" setiti kako je izgledalo učenje nekog jezika u vreme pre interneta i googla. Imaš help fajl, možda uspeš da nabaviš neku knjigu i eventualno nađeš nekoga da ti pokaže osnove i to je to... sve ostalo naučiš metodom pokušaja i pogreške, što može da potraje. Danas, sve je dostupno online... brdo besplatnih knjiga, tutorijala, gotovih kodova, foruma na kojima možeš da postaviš neko pitanje koje te muči i u 90% slučajeva će se javiti neko da ti pomogne. Tako da, koliko je nekada bilo bitno postati ekspert za neki jezik, danas je mnogo bitnije postati ekpert za korišćenje pretrage :)
Na stranu što se tehnologije uglavnom ne menjaju iz korena, već je u najvećem broju slučajeva dovoljno nadograditi prethodno stečeno znanje. Mislim, šta se to fundamentalno promenilo u programiranju za sve ove godine ? Petlja je i dalje petlja, grananje je i dalje grananje, baza podataka je i dalje baza podataka, socket je i dalje socket, pointer je i dalje pointer itd. Prema tome, ko je naučio te neke osnove, može da ih primeni u bilo kom jeziku današnjice. Takođe, šta se to drastično promenilo u jezicima koji su već duži niz godina mainstream i sa kojima se gotovo sve može uraditi ? C++ na primer ? VB ? Java ? PHP ? Gotovo ništa, nove verzije jesu donosile nešto novo, kao recimo što je VB.NET doneo OOP koji pre toga nije postojao u VB-u (barem ne u potpunosti), ali to ne znači da se taj jezik mora učiti od nule. Sve što treba je naučiti razlike između nove i stare platforme i usvojiti novu OOP filozofiju, ali to je to. Meni je recimo trebalo (jednom kada sam se odlučio da se maknem dalje :)) cirka 15-tak dana da se prešaltujem i osećam kao kod kuće. Kada sam dovatio C#, skontao sam da ni to nije neki problem, jer se sve radi manje više isto kao u VB-u, samo je sintaksa drugačija. A tu bih iskoristio i priliku da priupitam da li neko ima ideju, koja je poenta C# kao jezika ? Po meni, to je nekakav hibrid između VB i C++, gde sintaksa naginje ka C++, a brzina izvršavanja više ka VB :)
Dalje, ako pričamo o mainstream jezicima, mislim da je jako bitno prilikom odabira jezika znati za šta će se taj jezik koristiti. Recimo, moje neko shvatanje problematike je da C++ nema premca u razvoju igara, sistemskih aplikacija, raznih jutilitija, softvera za obradu zvuka i videa, obradu velike količine podataka i sve ono gde je jako bitna brzina izvršavanja koda. Kada se radi o (mahom poslovnim) desktop aplikacijama, tu su VB.NET i C#, kao RAD jezici. Prednost Java-e vidim u razvoju cross-platform aplikacija gde je bitno da se aplikacija isto ponaša na bilo kojoj platformi. I konačno, tu je PHP za web programiranje (pomenuo bih i HTML, ali to po meni i nije neki programski jezik, nego više onako... :)). Svi ostali jezici su tu manje više kao nekakva alternativa mainstream jezicima ili mi se barem tako čini.
Tako da, otprilike ciljna grupa (platforma, vrsta aplikacija, klijent...) za koju ćemo programirati određuje i koji jezik ćemo koristiti. A ako ne znamo koja je ciljna grupa, naučićemo više njih, što naravno zahteva određene ustupke. Recimo, nećemo postati eksperti ni za jedan jezik, kao što je mmix lepo primetio. Međutim, da li je danas bitno biti ekspert za bilo koji jezik ? Opet ću pomenuti svoj primer. Kada sam počinjao programiranje, hteo ne hteo, morao sam da se ograničim na jedan jezik i postanem ekspert u njemu (tada su to bili VB 5 i 6), jer drugačije naprosto nije imalo smisla, već je to bio jedini način da kreiram smislene, korisne i stabilne aplikacije, a da to ne traje decenijama. Danas mi to više nije toliko bitno. Ne sećam se kada sam poslednji put naišao na neki problem, a da nisam uspeo na netu da pronađem barem nekoliko rešenja za taj isti. Bitno mi je samo da znam šta tražim. Tako da, moja situacija je takva da se bez problema služim VB.NET-om, C#, PHP-om, nešto manje Javom i C++, a ne smatram se ekspertom ni za jedan od tih jezika. Čak šta više, nedavno sam imao priliku da me klijent zamoli da mu odradim neku Perl skriptu. Pošto sam Perl video "samo na slikama" i nisam znao apsolutno ništa o njemu, krenuo sam malo da istražujem. Trebalo mi je svega 15-tak minuta da pronađem modul koji radi to što njemu treba, i uz određene modifikacije za koje mi opet nije trebalo nešto puno vremena, volila, rešenje je tu. A i dalje ne znam ništa o Perl-u :) Naravno, to me možda ne čini leet programerom kakav sam nekad bio (ili sam se barem takvim smatrao :)), ali mi to više i nije toliko bitno koliko mi je nekad bilo. Prošla su vremena kada sam se ložio da budem kao neki lik iz filma koji čuka po konzoli i upada u Pentagon, već mi je mnogo bitnije da donesem hleb na sto.
A sad, da se vratimo na temu :) Šta posle 50-te. Ko će ga znati. Niko od nas ne može da predviti kako će se IT industrija kretati narednih godina. Oni koji mogu, sa 50 će biti milioneri i neće ih biti briga šta sa svojim programerskim znanjem :) Ja sad sa svojih 30 još uvek mogu da programiram, poprilično efikasno, pa to i radim. Iako sam se još pre nekog vremena odlučio da stanem na ludi kamen, tj. da otvorim svoju IT firmu :) i dalje najviše vremena provodim pišući kod sa ekipom, bez obzira što sad imam i gomilu dodatnih obaveza. Međutim, svestan sam da polako počinje da me umara sve to i da to neću moći da radim još dugo ovim intenzitetom. Tako da, neki plan jeste potpuni prelazak u menadžerisanje kompanije i projekata u narednih par godina, a prepuštanje kodiranja nekom drugom. To ne znači da neko sa 50 ne može da se bavi programiranjem, ali isto tako sam siguran da neko u tim godinama više ne može da bude toliko efikasan i produktivan radeći samo kao programer.
A kao što su Ivan i mmix dobro primetili, postavlja se pitanje i kako u tim godinama pronaći posao programera. Mislim, ako pričamo o programiranju kao programiranju... to je čisto fizikalisanje, nešto poput ređanja cigli po unapred utvrđenom planu. Tu nije toliko bitno iskustvo koliko je bitna brzina, preciznost, efikasnost i slično... E sad, ako pričamo o developmentu, to je drugo, jer to ne uključuje samo čukanje koda, već i planiranje, arhitekturu, vođenje projekta... To jeste nešto gde je iskustvo bitno, ali se tu onda ne radi o programeru.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti