Što dalje učiti/raditi?

poruka: 38
|
čitano: 11.710
|
moderatori: XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Re: Što dalje učiti/raditi?

@Danijel: ukratko, što više učiš to ti je jasnije koliko malo znaš. Ponekad imaš osjećaj da ti se znanje smanjuje, ali se zapravo broj raznih tema s kojima se susrećeš povećava. ^^

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put čet 25.7.2013 2:04 (rustweaver).
13 godina
neaktivan
offline
Re: Što dalje učiti/raditi?
Danijel kaže...
OriginalEXE kaže...

Napalio sam se na oglase jer ih takvi kao ti i prave.

 

Da li je onda pametan savjet da ide i u pilote? I za kuhara, fizičara, profesora povjesti, pimp-a, policajca... Ne treba si zatvarati vidike.

 

Život je prekratak da bi sve to uopće počeo učiti kako spada, a primjera "znam sve a neznam ništa"  imam ohoho, pa i u vlastitoj kući. Đabe ti šta ti znaš napisati hello world u 35 različitih jezika i na 15 različitih platformi kada je to jedino što ćeš u životu napraviti.

 

Ako se zbilja posvetiš onome što voliš i u čemu se vidiš, jedino onda možeš i uspjeti u tome pa onda jednog dana čak i pridonjeti tom istom.

 

Što se novaca tiče, naravno da nije najbitniji, dapače, to treba biti samo jedna od motivacija.

 

I, ako si stvarno isplanirao svoju karijeru i ista vodi gorespomenutim putem, mogu ti samo predložiti razmatranje iste i poželjeti sreću, trebat će ti.

Slažem se s ovim. Ja sam se počeo baviti jednostavnim programiranjem oko 12. godine - počeo s HTML-om, tad je to za mene bilo programiranje. Dalje sam prešao na CSS, istraživao Photoshop, htio interakciju, pa se bacio u PHP. Programirao neke osnovne stvari u PHP-u, naučio osnove programiranja (funkcije, petlje, varijable). Učio MySQL. Kasnije sam se bacio na C#, Visual Basic, Javascript i milijun drugih stvari. Sa 15 godina vjerojatno sam isto mislio da sve znam. Mislio sam da je kriterij kada možeš reći da nešto znaš to da kužiš osnove jezika (sintaksu), tj. da znaš nešto osnovno sklepati. Išlo je meni relativno ok, išao sam polako, ali učio. Počeo grupirati slične funkcije u fajlove, pa onda includeao. Bacio se na učenje osnova OOP-a, i kasnije sam shvatio da je to u osnovi ono što sam ja već radio bez klasa. Kasnije sam shvatio i da nije samo to.

 

No, problem je u tome što sam prelazio s jezika na jezik i u svakome radio osnovne stvari, te bio uvjeren da sve znam.

 

Kad sam prošle godine krenuo na faks, i susreo se s kolegijima Programiranje, tek sam tada shvatio da je moje znanje programiranja kao švicarski sir. Programiranje 1 i 2 su išli glatko. Rad u Javi, sintaksu savladao vrlo brzo, osnove već znao pa je išlo glatko. Uglavnom dosada. Prvi dio bile su osnove OOP u teoriji i praksi, konzolni programi, lagan kolegij. Programiranje 2 bila je nadogradnja prvog dijela, ali s fokusom na dizajn programa (class discovery, class design, using multiple classes) i na GUI (Swing). Novosti su bile event handleri, što sam lako shvatio (zanimljivo je da sam bio uvjeren da zapravo baratam eventima i hendlanjem, zato jer sam ih isprobao par puta u GUI C#, ali preko Visual Studio, znači autogenerated). Pisanje, čitanje fajlova u specifičnom formatu, nije bilo problema, ali bilo je novo.

 

No onda je došlo Programiranje 3, i tu sam se uvjerio koliko sam zapravo znao. Nastavak na Programiranje 2, opet Java, ali ovaj put napredniji koncepti, inner classes, crtanje grafike, animacija, game loop, multithreading i socketi. Mislio sam, ako sam napravio "multiplayer" u Javascriptu sa divovima i AJAXom da znam napraviti multiplayer igru. Ha. Kad ono, tek shvaćam kako se zapravo izvršava kod. Aha, izolirati kod u threadove. Trebalo mi je malo vremena, čitanja, i konzultacija s profesoricom dok nisam shvatio kompletan princip. Pa sam opet shvatio da ni basic threadovi nisu sve, jer što ako dva threada pristupaju istovremeno resursu, pa sam i to uzeo u obzir i naučio.

 

Sve u svemu, mislio sam da znam programirati jer sam mogao isprogramirati osnovnu CRUD aplikaciju u PHP-u, Rails i još ponekom frameworku. Mislio sam da znam programirati jer sam mogao izbjeći refresh cijele PHP stranice sa Javascriptom. Mislio sam da znam programirati jer sam znao napraviti malo više od Hello World (osnovne aplikacije tipa kalkulator, notepad, sve ono što može u jednom threadu) u .NET frameworku C#.

 

Ali kad sam dobio za izradu finalni projekt kolegija, 2D multiplayer igra, client/server dizajn, sve od nule, Java, Swing, multithreading, socketi, tek sam tada shvatio što znači programiranje. Bilo je lakše jer su projekti bili u parovima, ali svejedno je bilo vrlo naporno. Iako smo od profesorice dobili upute da ne počinjemo programirati odmah iz glave - počeli smo, jer svaki početnik to radi. Pa kad smo vidjeli da ne ide, proveli smo preko 6 sati smišljajući i crtajući po papiru shemu klasa, klijenta i servera i komunikacije, uz usmjeravanje od strane profesorice koja je potvrđivala dobre koncepte, a upozoravala na loše. Mjesec dana kasnije, uspjeli smo. Imali smo igru koja je definitivno čak i premašila originalne zahtjeve iz zadatka.

 

Poanta je da nakon što provedeš neko vrijeme u jednom jeziku, i jednoj platformi, moraš ići dalje na naprednije i naprednije koncepte, jer si jednostavne savladao i dosade ti (i to je trenutak kad većina se većina prebaci na drugi jezik i opet provodi neko vrijeme u tim jednostavnim konceptima, umjesto da uči napredne koncepte u prvom jeziku). A te naučene koncepte lako primjeniš na ostale jezike kad bude trebalo. Moj jedini problem je bio što sam se brzo prebacivao s jednog jezika na drugi, i usput neke lovio bitne koncpete, te naravno, pola važnih nikad nisam na taj način niti otkrio.

 

Jedan od profesora nam je savjetovao upravo da se posvetimo jednome do kraja, naravno, ne znači da ne možeš raditi malo i ostale jezike, ali fokus da ostane na jednoj tehnologiji. I u tom slučaju, kaže, ukoliko vi imate odlično znanje koncepata koje ste naučili kroz Javu, neće vam biti problem prijaviti se za posao koji traže znanje C#, jer ćete vrlo jednostavno prenijeti te koncepte. A to sve pada u vodu ako smatrate da je odlično znanje Jave napisati Hello World i odvrtiti koju petlju. Mislim da ista stvar vrijedi za bilo što drugo, recimo nije dovoljno znati napisati jednostavnu CRUD aplikaciju u nekom PHP frameworku i RoR. Tek kada savladaš kako napisati pravu production ready aplikaciju, stabilnu i sigurnu, tada možeš reći da si savladao recimo RoR. I poslije ta znanja preneseš u neki PHP framework jako brzo. Ovladati scaffoldingom u 55 različitih frameworka može i majmun.

 

Iduće godine u ovo vrijeme, vjerojatno ću opet shvatiti da niti sada ne znam koliko mislim, jer me čeka kolegij o design patternima, znam neke osnovne (recimo Codeigniter me poučio singletonu), ali pričekat ću kolegij pa naučiti pošteno.

 

 

Hvala!

Eto, to mi je trebalo.

Sad mi treba cilj, sto sve trebam svladati.

Imate li prijedlog, ili ime neke knjige?

One child dies every five seconds. Dirty water KILLS 6000 children per day. 45.000 people die in the US annually because they don't have health care. US spends $18 BILLION a WEEK on Iraq.
Poruka je uređivana zadnji put čet 25.7.2013 6:36 (Trubilo4).
13 godina
neaktivan
offline
Re: Što dalje učiti/raditi?
rustweaver kaže...

@Danijel: ukratko, što više učiš to ti je jasnije koliko malo znaš. Ponekad imaš osjećaj da ti se znanje smanjuje, ali se zapravo broj raznih tema s kojima se susrećeš povećava. ^^

 

To se moze zamisliti kao krug, s time da povrsina kruga simbolizira trenutno znanje, opseg ono cega si svjestan da ne znas, a ono oko kruga potpuno neznanje.

 

Sto je veca povrsina, to je veci i opseg, stoga si ucenjem novih stvari vise svjestan koliko toga neznas.

One child dies every five seconds. Dirty water KILLS 6000 children per day. 45.000 people die in the US annually because they don't have health care. US spends $18 BILLION a WEEK on Iraq.
Poruka je uređivana zadnji put čet 25.7.2013 7:54 (Trubilo4).
13 godina
neaktivan
offline
Re: Što dalje učiti/raditi?
Danijel kaže...

 Novosti su bile event handleri, što sam lako shvatio (zanimljivo je da sam bio uvjeren da zapravo baratam eventima i hendlanjem, zato jer sam ih isprobao par puta u GUI C#, ali preko Visual Studio, znači autogenerated).

E pa vidiš, to je tvoja greška, da si čitao neku knjigu koja pokriva .NET naučio bi i delegate i evente i event handling. A to što si ti povlačio kontrole po designeru forme, klikao na njih i na njihove evente, okači mačku o rep. Samo nabrajaš svoje pogreške, mislio sam ovo, mislio sam ono, mislio sam da znam, mislio sam da je to tako, e pa zašto si mislio? :)

14 godina
neaktivan
offline
Što dalje učiti/raditi?

Prije svega zelio bih naglasiti da neko ko je ovladao dobro jednim programskim jezikom lako ovlada nekim drugim, jer kada shvatiš principe sintaksa nije toliko velik problem, iako narvno da upoznavanje novog jezika i platforme traži svoje vrijeme.

 

Kao što dobrog književnika ne možeš cijeniti po jeziku na kojem je pisao, već po načinu na koji je pisao, tako i dobrog programera nemožeš definisati programskim jezikom, već njegovim korištenim principom i algoritmom. Kroz vrijeme programski jezici se mijenjaju, nastaju novi ili se modifikuju stari, razvojne platforme se mijenjaju, ali principi i algoritmi ostaju.

 

Ono što niko od vas nije naveo je da najviše vremena treba da se dobije (uslovno rečeno nauči) "onaj pogled na problem koji dovodi do (algoritamskog) rješenja", način na koji se u glavi veliki nerješivi problem razbije na više rješivih sastavnih dijelova, a to je karatkeristika dobrog programera.

 

Zbog toga ja bih rekao da nije toliko bitno kojim jezikom početi. Naravno poželjno je da se krene sa nečim što je dosta koristi, jer je lakše učiti (obilje literature), pomoć dobiti, a i nešto u džep ubaciti. Ali u krajnjoj mjeri bitnije je usvojiti principe, shvatiti kako nešto radi, zašto tako radi...

 

Neko će se profilisati na način da luta i probava više različitih stvari (ja na primjer), neko na način da upoznaje samo jedan jezik i platformu, to je individualna stvar svaka sa svojim manama i prednostima.

Mlad si imaš vremena eksperimentisati, ako ne znaš u kom smjeru krenuti bolje je različite stvari upoznati pa za onim što te privuče krenuti nago nešto protiv vlastite volje forsirati. 

 

Možda ti nebi bilo loše upoznati MONO, nudi velike mogućnosti, dobre osobine .Net-a u Cross-platform obliku, a tu je i Unity (ako te zanima izrada igara) jako dobar Cross-platform game engine besplatan za nekomercionalne projekte... 

Znam da će na ovu moju preporuku biti mnogo kritike jer C++ se koristi za igrice, ali pošto eksperimentišeš i učiš potreban ti je osjećaj postignuća (da napokon nešto korisno možeš napraviti), a to će ti C# znatno prije CPP-a dati...

 

Za kraj,

NEŠTO ZNAŠ TEK KADA USPIJEŠ SHVATITI KOLIKA JE MATERIJA ONOGA ŠTO IZ TE OBLASTI NE ZNAŠ...

 

 

 
1 0 hvala 0
13 godina
neaktivan
offline
Re: Što dalje učiti/raditi?
Boky Milanovic kaže...

Mlad si imaš vremena eksperimentisati, ako ne znaš u kom smjeru krenuti bolje je različite stvari upoznati pa za onim što te privuče krenuti nago nešto protiv vlastite volje forsirati. 

E pa to je ono što ja cijelo vrijeme govorim. On je tu nabrojao mnoge tehnologije, čak nisu iz iste oblasti neke, moj savjet mu je da vidi šta mu od njih paše, jer njegov problem i jeste u tome, što ne zna šta hoće. Ali dok svak svoga konja... :)

17 godina
neaktivan
offline
Re: Što dalje učiti/raditi?
Danijel kaže...
...

Iduće godine u ovo vrijeme, vjerojatno ću opet shvatiti da niti sada ne znam koliko mislim, jer me čeka kolegij o design patternima, znam neke osnovne (recimo Codeigniter me poučio singletonu), ali pričekat ću kolegij pa naučiti pošteno.

{#} I to si naucio jednog od opasnijih obrazaca.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
16 godina
neaktivan
offline
Što dalje učiti/raditi?

@Autor

 

Imas dosta znanja, ali pokusaj ga primjeniti, tj uradi neku aplikaciju koja zaista ima neku svrhu (Ne kalkulator). Napravi IRC Bot, napisi neki koristan plugin za wordpress ili pokusaj nesto prodati na codecanyon-u.

 
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice