Kako se programira u Hrvatskoj?

poruka: 232
|
čitano: 84.852
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
RE: Kako se programira u Hrvatskoj?
naxeem kaže...
Pa baš i nije tako. Ozbiljne firme napreduju svojim poslovanjem i to je ono dobro; dobar dio firmi su mrtva puhala polu-šampionskog tipa koje prije ili kasnije propadnu i zatvore, a na tržištu se probijaju upravo oni koji ulažu u napredak tehnologije i edukaciju unutar radnog vremena i sredstava firme. Onaj tko napreduje samo u slobodno vrijeme ako ga ima, propada vrlo brzo i sve se pretvara u ogorčene žalopojke sredovječnih programera čiji je mozak uz znanje zaostao desetak godina. Vječna takvima slava budi jer njihovi klijenti postaju moji!
 
 
Slazem se sa ovim... ima dosta starih programera koji znaju raditi samo ono sta su naucili kroz zadnjih 10 godina i kunu se u to da je Clipper i dan danas bog bogova ili npr ne zele cuti za .Net framework "jer je spor" a zapravo rade neki knjigovodstveni program koji ne da nema veze sa brzinom nego ono...

To su ljudi koje je vrijeme pregazilo, u onom topicu, ja mislim da se zvao "Zelim nauciti programirati" ili slicno sam momku napisao da je programiranje mukotrpan posao u kojem moras non stop uciti nove stvari i prilagodjavati se novim tehnologijama jer postajes IT Dinosaur. Nekad je to bio C, pa onda C++, pa onda GUI sucelja, da ne nabrajam dalje... A to sve kroz deset - dvadeset godina.
Programko kaže...
 I mogu ti slobodno kazati da što je tehnologija primitivnija to je programer bolji. Neki od najboljih čak odbijaju koristiti debuger u razvoju. A znam ih jako puno i to svih profila. A da ti ne pričam o programerima koji koriste prastare alate koje više nitko ne koristi i imaju neopisivo visoku plaču.

@segregator prijatelj ti se ne šali, zato jer velik dio poslova na HR-tržištu u IT-u osiguravaju razne Državne firme. A promjena vlasti znači ponovna borba za  mnoge klijente.
 Ne slazem se sta se ovog tice, samo opet to su specificni slucajevi gdje se trazi iznimna brzina i slicno. Pricao sam sa ovim momkom, developer u Siemensa ili slicno, nisam siguran. Dosta se koristi onaj stari C. Radi brzine. A opet dosta se koristi i .Net gdje se trazi fleksibilnost, jednostavnost, ne i velika brzina. Sve ima svoje zasto, sve ima svoje prednosti i mane. Biti dobar programer nema veze na kojem nivou radis. Bio to Assembler ili nesto drugo. Po tome ne mozes ocijeniti koliko je programer dobar.
Avatar odgovara mojim reakcijama dok čitam ovaj forum...
Poruka je uređivana zadnji put uto 21.4.2009 0:35 (naxeem).
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?
segregator kaže...

Interesantno kako ovakvi threadovi uvijek odu u smjeru "a moj je veći od tvoga" Nevinašce

 

Evo ja sam napisao prvu web banking aplikaciju u RH, jel se to računa? Bogataš

Napisao si jedva jedan konstruktivan post na temu; stalno se ili sprdaš ili bacaš komentare u stilu kako samo budale uče i napreduju je ionako nema smisla kad su svi poslovi u rukama korupcije. To ne samo da nije uvijek tako, već je i loša praksa. Klijente danas zanima kvaliteta i brzina, a napredak uvjetuje baš to (ako izuzmeš šampionizam). Uostalom, ja znam najmanje jednu firmu koja radi za državnu upravu i koristi cutting-edge tehnologije.
Quantum kaže...
Ja zapravo osobno ne vidim da uopće više od 10% totalne programerske populacije u Hrvatskoj ima iole potrebe za razmišljanje o takvim stvarima?

...

Drugo, rekao bih da se ipak veći dio ukupno napisanog programskog koda bavi isključivo nekakvim oblikom web-aplikativnog programiranja. Postotci? Ne mogu reći točno, ali smatram čak i 80%. Zašto? Zato što je, otvoreno, država zapravo najveći IT employer u nas.
...

Istina, postoje svijetli primjeri, tvrtke koje se lavovski bore za dio izvoznog kolača i svojom pameću, radom i znanjem konkuriraju na zahtjevnom vanjskom tržištu, ali to su tek sporadične iznimke i to je onih 10% sa početka. Možda sam čak bio i preoptimističan.

tnakir kaže...
Eto samo me to zanimalo da li programeri u RH razmisljaju o buducnosti ili je to previse posla koji nebi napravio toliku razliku. Pretpostavljam da vecina aplikacija koje radite su tipa upis podataka i citanje iz baze/upis u bazu i osnovna racunanja ostavite SQL serveru.
 
Čuj, ponajprije, nemoj trivijalizirati upis podataka i čitanje iz baze :) Ima tu itekakvih glavolomki, poslovna logika zna biti dosta zamršena za implementaciju, osobito kad se u sve tu upetlja ljudski faktor i nesposobnost korisnika.

Što se tiče "računanja na SQL serveru" pretpostavljam da misliš na trpanje poslovne logike u bazu, umjesto da se odrađuje u aplikaciji. To je već razmjerno kompleksno arhitekturalno pitanje projektiranja aplikacije i nije moguće jednoznačno odgovoriti na to. Moj osobni stav je da se u bazu stavljaju oni dijelovi logike koji su samo i isključivo apsolutno nužni da tamo budu - sve ostalo najbolje je odraditi u aplikaciji.

Nadam se da sam pomogao.
Svaka čast na vrlo kvalitetnom postu. Slažem se s 98%. :) Onaj dio s kojim se ne slažem je u 10%... mislim da ih ima više: IN2, Perpetuum, Cygnus, .NETMedia... to su firme za koje znam da koriste nove tehnologije ili se trude.
bed kaže...
Mislim, naxeem, da ti stav načelno nije dobar;
Ne radi se o tome da li je vb bolji od c/c++ ili obratno, već svaki alat ima svoju namjenu, kao i korisnike koji ih koriste.
...
Pa onda npr. jednom stolaru koji pili na cirkularu reći da je 'blato... crv struke', jer 'pravi' majstori pile s cnc-kom, je bedasto, jer su njihovi proizvodi različite namjene.

Nisam vb programer, pa me tvoja izjava nije osobno pogodila, to je samo moj stav.
Ma jasno da sam bio previše okrutan i da takav komentar nije OK, ali iz iskustva, baš zbog prirode šampionskog posla u Hrvatskoj se razvila poprilična grupa vikend VB programera nikakvog znanja i rezultata koje izgledaju kao nabadanje pijane kokoši. Pogledaj malo sajt o šampionima... tu se daju prepoznati neke firme, pa čak i pojedinci.
brahle kaže...
Moj stav, sto se debaginga tice jest ovakav (barem kod konzolskih aplikacija):
a) vanjski debugger (citaj gdb) koristim samo kad trebam naci SIGSEGV-like pogresku
b) ako je neka druga pogreska - printf je puno prakticniji
Uhh... ne znam sad baš. Kako ćeš naći bug zakopan u višeslojnoj aplikaciji sastavljenoj od nekoliko modula, hrpe objekata, rekurzivnih funkcija, kolekcija drugih kolekcija koje sadrže kolekcije, preklapanja i sl. bez debuggera? Nikako (u razumnom roku).
Programko kaže...
naxeem kaže...

Ne znam kako debugger može rezultirati neurednijim kodom? Molio bih te neki konkretan primjer?

 Kad smo već kod debugera, evo dva linka gdje je lijepo opisano zašto debuger nije dobro previše koristiti.
Što se mene tiće debuger je zgodno imati i koristiti, al treba biti svjestan njegovih loših strana.
Čitam prvi link letimice i nailazim na ovo:
Apparently, if you follow the arguments, not having a kernel debugger
leads to various maladies:
- you crash when something goes wrong, and you fsck and it takes forever
   and you get frustrated.
- people have given up on Linux kernel programming because it's too hard
   and too time-consuming
- it takes longer to create new features.

And nobody has explained to me why these are _bad_ things.

...
It will get fixed eventually.
Pa daj mi objasni zašto se slažeš s nekim koji ne želi debugger upravo iz razloga da bi nešto bilo "teško" i da ta težina bude sama sebi svrha.
Super, znam ja mnoge programere koji se tako ponašaju - mistificiraju svoj posao, otežavaju ga za druge da bi oni izgledali kao veći stručnjaci i da bi sakrili svoje neznanje nadomještajući ga glupom strpljivošću.
Da, ako imaš idiota od programera koji trpa kod bez brige kako će to izgledati i oslanja se na debuggere kao provjeru i garanciju kvalitete koda, to je nešto sasvim drugo. Ali takav, definitivno loš programer, isplivat će kao i svako govno na površinu prije ili kasnije.
Ne koristiti debugger samo iz razloga jer je to fun i izgledaš moćno je glupo i to na razini idiota tipa "ja programiram u Notepadu".
Ne koristiti ga da osiguraš sebe od lijenosti i neznanja još je gore jer odaje nesigurnost u sebe i vlastite sposobnosti.
Čitam ovaj drugi link: lik govori o učenju programiranja. Mislim da je dobro ne pretjerivati s debuggerima u početku, ali u nekim kasnijim stadijima, znanje korištenja debuggera može biti samo pozitivno.
Moj konkretan zaključak bio bi da je dobro koristiti debuggere jer skraćuju vrijeme pronalaska greške. Nema ljepšeg i bržeg načina za provjeru koda od prolaska koda liniju po liniju i paralelnog praćenja rezultata i memorijskog sadržaja.
Ja imam (ponekad lošu) naviku printf-anja (ili u .NET-u Console.Writelineanja), a debugger koristim upravo za to: pokrenem i vrtim liniju po liniju i gledam što se dešava. Ne samo da to ne može loše utjecati na mene, već na taj način dobivam daleko jasniju sliku o tome što se događa s mojim kodom i podacima, pogotovo u kobasicama i kupusima od modernih setova entiteta i objekata koji se vrte u BLL-u koje je jednostavno nemoguće printfati.
 
Zato mislim da treba razlikovati upotrebu i zloupotrebu debuggera.
 
Što se one kvalitete programera tiče, dobar je osjećaj hvatati poruke u WIN32 API-u, gušt je programirati u assembleru, ali kako kaže moj američki kolega (on to često koristi): it's just not a viable solution anymore.
Avatar odgovara mojim reakcijama dok čitam ovaj forum...
Poruka je uređivana zadnji put uto 21.4.2009 0:39 (naxeem).
17 godina
offline
RE: Kako se programira u Hrvatskoj?
Quantum kaže...
 
Istina, postoje svijetli primjeri, tvrtke koje se lavovski bore za dio izvoznog kolača i svojom pameću, radom i znanjem konkuriraju na zahtjevnom vanjskom tržištu, ali to su tek sporadične iznimke i to je onih 10% sa početka. Možda sam čak bio i preoptimističan.

tnakir kaže...
Eto samo me to zanimalo da li programeri u RH razmisljaju o buducnosti ili je to previse posla koji nebi napravio toliku razliku. Pretpostavljam da vecina aplikacija koje radite su tipa upis podataka i citanje iz baze/upis u bazu i osnovna racunanja ostavite SQL serveru.
 
Čuj, ponajprije, nemoj trivijalizirati upis podataka i čitanje iz baze :) Ima tu itekakvih glavolomki, poslovna logika zna biti dosta zamršena za implementaciju, osobito kad se u sve tu upetlja ljudski faktor i nesposobnost korisnika.

Što se tiče "računanja na SQL serveru" pretpostavljam da misliš na trpanje poslovne logike u bazu, umjesto da se odrađuje u aplikaciji. To je već razmjerno kompleksno arhitekturalno pitanje projektiranja aplikacije i nije moguće jednoznačno odgovoriti na to. Moj osobni stav je da se u bazu stavljaju oni dijelovi logike koji su samo i isključivo apsolutno nužni da tamo budu - sve ostalo najbolje je odraditi u aplikaciji.

Nadam se da sam pomogao.
 Uh dok ja svakome svoje :)

Dakle... ne smatram da je drzava najveci IT employer tu. Istina, u zadnje vrijeme smo se malo pokrenuli ali daleko smo mi od nivoa informatizacije kakav bi trebao biti (a zapravo ga nije problem ni odraditi). Problem su ljudi. Njima je papir i olovka zakon. Iako bi se informatizacijom visestruko ubrzala birokracija, smanjio bi se kadar jada jada... Jbg... Balkan je Balkan

Drugo... istina, slazem se , vjerovatno je  cak i 90% programiranja u RH se svodi na koristenje frameworka

Trece citanje i upis u bazu... nisam zelio trivijalizirati, samo nisam htio ulaziti dublje u slucaj... Slazem se sa tobom da je SQL znanost za sebe, cak je i bitnije dobro odraditi taj dio nego ostatak

Evo, ja mislim da sam sad sve prokomentirao. Zapravo me zanimalo cisto ovo u vezi paralelizma i 64bit a na kraju smo i o Sampionima poceli :) Neka... taj topic je ionako odavno trebalo otvorit, samo eto, nadam se
I'm going woo woo
16 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?

 

Ha, ha ..

 

Tek sam sad pogledao šampione.

 

Živa istina..

Imam i ja iskustva s šampionima, svetskim šampionima.

 

Dobra ...

17 godina
online
RE: Kako se programira u Hrvatskoj?
naxeem kaže...
Napisao si jedva jedan konstruktivan post na temu; stalno se ili sprdaš ili bacaš komentare u stilu kako samo budale uče i napreduju je ionako nema smisla kad su svi poslovi u rukama korupcije. To ne samo da nije uvijek tako, već je i loša praksa. Klijente danas zanima kvaliteta i brzina, a napredak uvjetuje baš to (ako izuzmeš šampionizam). Uostalom, ja znam najmanje jednu firmu koja radi za državnu upravu i koristi cutting-edge tehnologije.



Di sam ja rekao kako samo budale uče? Samo sam rekao da se ne isplati, tj da će tip koji potroši mjesec dana na uvlačenje šefu uvijek bolje proći od onog koji potroši mjesec dana na učenje Izlanuo se
Korištenje cutting edge tehnologija nema s tim veze...pisao ti u assembleru ili Smalltalku, uvlakač će proći bolje.

Još jednom preporučujem svima koji se misle baviti programiranjem da pročitaju bar

http://www.sampioni.com/hr/Sampionski_manifest.htm

 

a nije loše i pogledati:

 

http://en.wikipedia.org/wiki/The_Office_%28UK_TV_series%29

 

17 godina
offline
Kako se programira u Hrvatskoj?

Segregator poanta je u tome da ako tehnologija ide dalje, ako firma prati tehnologiju, onda ce ovaj koji pise u assembleru vjerovatno biti zamjenjen jer nece imati posla. Neznam u kakvoj ti firmi radis, di rade samo fikusi koji zive na staroj slavi (mozda radis u nekoj drzavnoj firmi) ali moderan kapitalizam ne priznaje ljude od kojih nema koristi, ako razumijes sto ti hocu reci.

I'm going woo woo
 
0 0 hvala 0
17 godina
offline
Kako se programira u Hrvatskoj?

Samo mala degresija na debugger (sorry da se opet vraćam na to). Ja sam dijete nove generacije, znači debugger je oduvijek bio dio moje programerske prošlosti a valjda bude i moje budućnosti. Ja programiram nekih 10 godina, zadnjih 7 profesionalno (znači da čak i nešto zaradim svojim radom), u mojem poduzeću rade ljudi koji programiraju već 20 godina i više, cijeli svoj život. I samo prema tome da li ta osoba koristi debugger moguće je razaznati "dobrog" od "savršenog" programera.

 

Možda je riječ "savršen" prejaka riječ, ali imam jednog radnog kolegu (koji je sad već na višoj poziciji, recimo "middle managment") kojeg još nisam vidio da koristi debugger, sve logira, nekad čak i toliko da mu je kod nemoguće čitati koliko ima printf-ova. Recimo da je on dobar programer. Isto tako imam kolegu kojeg nisu bacili u managment(već 30 godina programira), ali ima plaću skoro pa duplu od ovog koji je na višoj poziciji, ali je savršen programer. Još nisam vidio da nešto nije znao riješiti ili optimizirati. Njegov kod je milina čitati koliko je jednostavan, a opet rješava s njime napredne stvari. Čovjek radi u svemu od Assemblera do Jave i u svemu je jednako dobar (dobro istina je da dok svladaš programersku logiku, lagano se switchati među jezicima). Sad da se vratim na debugger. On ga koristi po potrebi. Ako ima dobar debugger pri ruci za neki alat (VS, Eclipse...) onda debuggira, ako nema, onda logira. I mislim da je to njegova najveća prednost, jer se čovjek zna prilagoditi tehnologiji i prednostima koje donosi, a ne da želi da se tehnologija prilagođava njemu i da uvijek radi na neki već od njega prihvaćeni način. Mislim da bi to trebali svi mi, jer tehnologije se mijenjaju praktički na dnevnoj bazi i mi se trebamo prilagođavati i učiti nove stvari, koristiti prednosti novih tehnologija, a ne da ostajemo u "špiljskom dobu programiranja" dok takve stvari (napredni debuggeri) nisu postojale.

"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
 
0 0 hvala 0
17 godina
offline
Kako se programira u Hrvatskoj?

My point exactly...

I'm going woo woo
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?
segregator kaže...
Di sam ja rekao kako samo budale uče? Samo sam rekao da se ne isplati, tj da će tip koji potroši mjesec dana na uvlačenje šefu uvijek bolje proći od onog koji potroši mjesec dana na učenje Izlanuo se
Korištenje cutting edge tehnologija nema s tim veze...pisao ti u assembleru ili Smalltalku, uvlakač će proći bolje.

Još jednom preporučujem svima koji se misle baviti programiranjem da pročitaju bar

http://www.sampioni.com/hr/Sampionski_manifest.htm

 

a nije loše i pogledati:

 

http://en.wikipedia.org/wiki/The_Office_%28UK_TV_series%29 

To što je u nekoj situaciji u nas u određenim uvjetima ulaganje u vlastito znanje nebitno i gdje je ući u guzicu šefu bitnije, ne znači da je tako svugdje i da je to pravilo. Ja radim u firmi u kojoj je bitan krajnji efekt; možeš li X napraviti do datuma Y? - Ako ne možeš i nemaš vraški dobar razlog (kao npr. nemoguće je zato i zato) - doviđenja.
Što se tiče šampiona, sajt je nekoć imao nastavak na adresi http://zivotposlijesampiona.blogspot.com.
The Office je također super.
Ali ne možeš (i ne smiješ, for God's sake) reći da su edukacija i napredovanje nebitni i pretvarati druge, potencijalno kvalitetne ljude, u šampione, koji će možda poučeni tvojim savjetom, baš to postati.
Avatar odgovara mojim reakcijama dok čitam ovaj forum...
Poruka je uređivana zadnji put uto 21.4.2009 9:15 (naxeem).
16 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?

dakle...složili smo se da je šampionizam dio naše stvarnosti...istina je da postoje firme koje su tako da kažem...svjetlo na kraju tunela...ali to ne mijenja stvarnost...kakvi poslodavci...takav je i sistem...takav će i ostati...sve do promjene trenutne garniture političara...vlast, oborba...isti klinac...a riba smrdi od glave...

 

šampiona će biti uvijek...kao i "štefica" koje će čupati živce...treba sačuvati bistru glavu...ne pasti u letargiju...ignorirati uvlačenje (koliko god možeš naravno)...i učiti...sve se to jednog dana naplati...bitno je da se ne izgubi zadovoljstvo...dobro obavljenog i završenog posla...a tehnologija u kojoj se radi...who cares...samo mijena stalna jest Namigiva

do something while necrknes
17 godina
offline
Kako se programira u Hrvatskoj?

Ja radim par godina ko programer, prije kao asp/php sada iskljucivo .net. Znaci ima:

- x64 podrska out of the box. Meni je svejedno vise-manje

- multithreading koristimo uglavnom za asinkrone procese, ne radi vece brzine nego zbog blokiranja klijentskih threadova. Brzina je obicno problem kod baza i ludih sql upita

 

Iskustva:

- zastupljeni jezici: .net, java, oracle, php, nesto manje c/c++ 

- primat managed programskih jezika. Postali su brzi kao native

- place: od 3/4k kn do cca 15k kn (aki si stvarno senior guru)

- vrijeme potrebno za pronalazak posla (za junior programere): mjesec-tri. Za senior: 1 dan :)

- svi sve vise traze poznavanje izrade Web aplikacija. Vecina domacih poslovnih aplikacija ima ili ce imati web sucelje. Znaci, Flex, Flash, Silverlight, AJAX pozeljno

- svi danas moraju znati raditi sa jednom od baza; oracle, mssql, mysql

- dobro je uciti stalno nove, drugacije tehnologije. Npr ako radis u c#/java/php, dobro je nauciti neki funkcijski/dinamicki programski jezik, poput rubya. Daje dobro iskustvao i prosiruje vidike i znanje onog jezika/alata u kojemu svakodnevno radis

 

Uglavnom, bez obzira sto znas raditi, ako si strucan i specijaliziran u odredzenom podrucju, siguran sam da nece biti problema sa profesionalnom karijerom. Jedina zapreka koju sam primjetio je tesko prihvacanje kontinuuiranog ucenja kod odredzenog broja programera. Od nas 15-tak developera u firmi, jedino smo mozda nas dvojica (u biti ja sam) koliko-toliko u koraku s izdavanjem novih alata, i upotrebom istih u produkciji.

 

"A developer is a machine that converts coffee into code" | http://twitter.com/hhrvoje
Moj PC  
0 0 hvala 0
17 godina
online
RE: Kako se programira u Hrvatskoj?

Jel treba netko gurua za Powerbuilder, Sybase SQL Anywhere, Enterprise Application Server...?  Cool

17 godina
offline
RE: Kako se programira u Hrvatskoj?
segregator kaže...

Jel treba netko gurua za Powerbuilder, Sybase SQL Anywhere, Enterprise Application Server...?  Cool

 Naravno da treba, samo je pitanje koliko daleko zelis ici: Brgud Gornji, Karlovac, Zagreb, Beč ,... ?
"A developer is a machine that converts coffee into code" | http://twitter.com/hhrvoje
17 godina
odjavljen
offline
Kako se programira u Hrvatskoj?

Opa...

 

Malo sam preletio preko teme i izgleda dosta dobro. Kad se u jednoj temi spominje HDZ, dasm, državne firme, debugging i cobol... mislio sam da sam na indexu!

 

Uglavnom. Radim u jednoj užasno maloj firmi. Iz nje sam došao iz nešto veće firme - to valjda sugerira da ću u slijedećoj firmi biti posve sam? Nego, ima nas vrlo malo i radimo software za jednu banku. Radimo u C# (vs 2008), koristimo devexpress kontrole, csla framework i sql kao bazu. U nekom od postova je naxeem spomenuo neki projekt koji košta par milijuna kao "velik". Mislim da to u sferi informatike i nisu neki novci. Nas par smo sklopili ovaj projekt za cca 5-6 mjeseci a isto je milijunska cifra u pitanju. U prošloj firmi sam radio za jednog domaćeg internet providera - sve živo što su radili - radili su kroz naš sustav napisan u (pazi sad ovo) - VB.NET!!! Da... I sve je radilo! Ljudi su dobijali račune, modemi su se aktivirali kad su trebali, djelatnicima su se obračunavale plaće... a iza svega je bio grozan i neugledan VB kod. Od kad radim u C# dosta toga se u mom radu promjenilo ali i dalje ne smatram VB inferiornim jezikom u nekim sferama. Zato se pomalo naježim kad ljudi sasvim nepotrebo pljuju po njemu. Naravno da ima idiotsku sintaksu, ali može se u njemu napraviti dobroga posla (pa makar i u tim knjigovodstvenim aplikacijama o kojima se tako posprdno priča...).


Da, malo sam uletio u digresiju pa ću se vratiti na temu. Nije danas potrebno biti neki uber c++ programer koji poznaje 500 različitih tehnologija da bi se dobro živjelo od programiranja. Baš naprotiv! Savladaj ono što ti treba za projekt i ajmo dalje!

A one gluposti oko korištenja/nekorištenja debuggera... Mislim, i dalje ne vjerujem da sam pročitao kako neki ljudi ne koriste debugger. Slušao sam prije par dana vrlo dobro predavanje na tu temu na windays-ima. Čak je netko i napisao da korištenje debuggera stvara neuredan kod... HELLOOOOO????

Siemens je u Hrvatskoj počeo sa otpuštanjem radnika (po informacijama koje sam dobio od relativno pouzdanog izvora). To su uglavnom C/C++/JAVA programeri. I uglavnom su svi u gabuli jer je teško zaposliti se ako ne znaš napisati faking SELECT query na sql-u, a većina njih ne zna. Većina njih voli drviti o kernelu, pointerima i šta-ja-znam-čemu i zbog toga se smatraju odličnim programerima a za sql su ČULI nekada od nekoga.

Tu se vraćam na ono što sam već napisao - ne moraš znati sve bitno da bi bio dobar programer. Ja sam nekada prije u dasm-u crackirao programe (natjerao ih da prime krivi serijski broj za aktivaciju), ali nisam nikada programirao u c++-u, ne znam štošta toga što neki drugi programeri znaju... Ali znam ono što moram znati da bih odradio svoj posao. Znam riješiti probleme koje pred mene postavi direktor i/ili klijent. Znam komunicirati sa klijentima, izvući "ono bitno" od njih da im napravim kvalitetnu aplikaciju. Znam si posložiti bazu i objekte (sa child kolekcijama koje imaju child kolecije...). Ima puno sitnih stvari koje treba znati dobar programer a te sitne stvari se mijenjaju od slučaja do slučaja. Meni trenutno ništa ne bi značilo da znam neku dobru caku u c++ jeziku. Isto tako nekom c++ programeru možda ništa ne bi značili triggeri, stored procedure, funkcije i view-ovi na sql-u. Meni znače sve.

 

Sad sam već razvukao na sve strane pa ni sam više ne znam jesam li pogodio ono što sam htio reći. Poanta je valjda da svi koji zarađuju od programiranja JESU programeri. Hamilton je vozač isto kao i neki stari kamiondžija koji vozi šleper već 30 godina - obojica zarađuju od vožnje, ne? Samo se razlikuje ono što njih dvojica znaju i za što imaju osjećaja. Prije cca mjesec dana je jedan vrlo iskusni programer (koji je microsoft-ov MVP) bio iznenađen generičkim načinom na koji sam ja riješio undo/redo sa neograničenim brojem nivoa u svim user kontrolama koje koristi naša aplikacija (a ima ih oko 400). To mi je zapravo dalo do znanja da je dovoljno biti dobar u onome što radiš - ne treba ti dodatno perje!

Freak Show Inc.
 
3 0 hvala 0
17 godina
offline
Kako se programira u Hrvatskoj?

CSLA.net, expert bussines objects kazes? Bas zanimljivo, jako bi volio da malo napises o tom frameworku, mozda opis primjene u praksi i slicno. Mogli bi cak otvoriti novi thread za to.

 

Danas se skoro svatko moze nazvati programerom, s cime ja u biti nemam nista protiv! Ali cinjenica je da ima dobrih, osrednjih i ispodprosjecnih i na firmi da bira prilikom zaposljenja. Kako nase firme, barem prema onome sto sam primjetio, nemaju nekakav razvijen sustav code reviewa i propisanih standarda, producirani kod zna jako varirati u kvaliteti. Cak je i primjetan utjecaj samog alata, programskog jezika: npr. Java programer ce se brzo susreti sa pojmovima tipa agilno programiranje, AOP, TDD, DDD, ORM i slicno, a pitas nekog iskusnog .NETasa, nece uopce znati sto znace ove kratice. Vjerojatno je i PHP stack u ovome isto svojstvem, kao i Ruby, Python i ostali.

 

Koliko je stvar individualna ili vezana za alat/tehnologiju u kojoj se radi, neznam, ali primjetim da ti neki alati jako namecu spoju apstrakciju i udaljavaju od srzi problema (primjer iz .net: asp.net ajax, datasetovi, webforms,...), sto IMHO na kraju ima kontraproduktivni efekt (cisto moje iskustvo, ne namecem ovo misljenje nikome!)

Ali siguran sam da i veliki utjecan u ovome ima i hrvatsko školstvo koje te ne nauci bas nicemu korisnim za ovaj posao.


Na kraju smatram da bez obzira u kojoj tehnologiji radio, ako vec radis to, zivis od toga, e onda bogami moras se malo i interesirati o stvarima koje se zbivaju, prosiriti znanje, i biti svjestan da iz dana u dan izlaze nove stvari i ako zelis i sutra raditi isti posao moras se znati i moci prilagoditi. Najgore je probuditi se ujutro i mrziti cijeli svijet jer moras ici raditi posao koji ne volis. Jedna od osnovnih karakteristika programera bi trebala biti zelja za ucenjem. To za sobom donosi i spremnost na promjene stavova, nacina i misljenja.

Bojim se da 70-80% developera ne bi prepoznalo opisane karakteristike u sebi :(

stop(); // hammertime! | http://twitter.com/hhrvoje
Poruka je uređivana zadnji put uto 5.5.2009 0:18 (hudo).
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?

Jezik određuje način programiranja; zato i jest nastao mit o "(groznim) VB programerima".

Imam baš ovih dana i jedan "problem" vezan uz to. Kolegu učim .NET-u i prilično truda moram uložiti da mu objasnim zašto je važno da web ne "gradi" koristeći dijalogiće, datasourceiće, login paketiće i sl. nego da ga piše liniju po liniju ADO.NET-a prateći što se dešava.

On čita tutoriale i tech demoe uz forumaše koji ga uvjeravaju da je dovoljno gurnuti grid view na formu i povezati ga bindovima na datasource.

To što veze neće imati što se događa i zašto i što neće znati napisati niti vlastiti diplomski, a kamoli ga objasniti, to je sasvim druga priča.

 

Programer mora znati kako i zašto nešto radi da bi sebi mogao dopustiti luksuz korištenja "crnih kutija". U suprotnome se ne stvara programer-inženjer, nego vikend-programer kakve smo nekoć zvali i još zovemo i "VB programeri-šampioni".

17 godina
offline
Kako se programira u Hrvatskoj?

Neki dan me jedan naš "lead web dev" pitao u čudu dali se kako može preko javascripta promjeniti sadržaj DIV elementa (innerHTML funkcija inače). Ja sam ostao zaprepašten, pošto tip već 7-8 godina radi web stranice, i razvio je sva čudesa od kada je u firmi. Koristi samo gridview i rucno pisanje sqla koje puni u "stare" framework 1.1 datasetove. Nedavno je prešao na .net 2, ali ne koristi niti jedan novi feature koji je izašao u dvojci, niti ga me se čini zanima. 

Teško je sada reći dali je on dobar ili nije, ako se mene pita nije, ali tip je produktivan, završava projekte u roku i kvalitetno, i direktor je zadovoljan. Usput, ima neki čudan način rada gdje ne koristi standardni debuging u VS nego programira direktno na web serveru i onda gleda kojekakve logove. Užas.

Dali je on pravi inženjer ili vikend programer? Ja neznam.

Ali činjenica stoji da velike i poznate kompanije poput Applea i Microsofta su tu gdje jesu danas upravo zbog činjenice što tamo rade izrazito pametni ljudi, najbolji inženjeri su svojoj struci (bez obzira na kvalitetu pojedinih OS-ova :). Zato bi ja čak prešao preko činjenice da je ovaj tip u moj firmi produktivan i natjerao ga da se uhvati malo učenja, jer onako grozan kod kad-tad mora puknuti. Ali ja nisam šef, i srećom ne moram raditi s njime...

 

stop(); // hammertime! | http://twitter.com/hhrvoje
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?

Kada te "lead web dev" pita takvo pitanje, vrijeme je da se zapitaš o svojoj poziciji i plaći i onda o njegovoj.

Međutim, iako je ručno pisanje SQL-a po mom mišljenju sasvim OK, korištenje GridViewa odavno je dokazano glupo. Web koji na sebi ima GV ne može biti dobar ako sadrži ozbiljne podatke; na takvom se webu generira toliko smeća da je to strašno.

Ne-korištenje debuggera sam već opisao kretenskom odlukom, a logovi na IIS-u, iako dobri, nikako ne mogu zamijenti debugger jer jednostavno nemaju informacija korisnih za taj stadij razvoja.

Može li se on nazvati inženjerom? Valjda može jer je barem pitao ono što ne zna, a to mnogine rade, nego kažu "to je nemoguće" (jer oni ne znaju).

 

Mišljenja sam da programer mora brinuti o svom kodu.

Radio sam nedavno na jednom komadu softwarea i zbog "agilnih metoda" i praktički nikakvog dogovora o coding standardu, uz kratke rokove i bez ikakve dokumentacije i kontakta s naručiteljima, bio sam prisiljen pisati smeće od koda i to me toliko iritiralo da sam valjda podsvjesno bježao od rada na tome i kasnio s tim.

Dodaj k tome i nevjerojatnu sklonost poslodavca cjepidlačenju oko pozicije form elemenata u pixel, dok ih s druge strane uopće ne interesira kakav je kod i sami pišu ružne konstrukcije, ja sam, naviknut na neku "razinu" i detaljnu dokumentaciju uz direktnu komunikaciju s klijentom, puknuo. Valjda ne mogu raditi kada ne znam krajnji cilj i nemam feedback.

Na kraju projekt nisam završio, zahvalio sam se na suradnji i rekao da ne trebam nikakav novac za do sada obavljeni dio posla i preuzeo krivnju za kašnjenje projekta bez obzira bio ja kriv ili ne, ali tek toliko da ne moram ništa imati s tim.

 

Što se tiče "nekih OS-ova", mislim da su ti OS-ovi odlični s obzirom što sve trpe i na čemu sve rade.

Što se kolege tiče, ako već radi kao "lead web..." onda je valjda sasvim očekivano da zna osnove web tehnologija. Sva sreća da s pitanjem nije došao šefu, jer u današnje vrijeme nekako imam osjećaj da je rizično priuštiti sebi tako nešto.

 

Zamisli da te kirurg koji vodi operaciju operira i u jednom trenutku upita mlađeg kolegu-asistenta - "A što je ovo?" - pokazujući na bubreg...

16 godina
neaktivan
offline
Kako se programira u Hrvatskoj?

Covjeku koji je pro programer je apsolutno jasno da napisati program moze svatko, u bilo kojem jeziku.

Problem je sto ako prodajete software kao ozbiljna firma ili pojedinac, ocekuje se da iza tog softwarea stojite u vezi odrzavanja: korisnicka podrska, dodavanja novih mogucnosti i opcija, patchanje bugova, ovisno o tome vec kako klijent zahtijeva. Moj zadnji HR posao je bio u jednoj od najjacih HR firmi koja razvija software za hotelska poduzeca, razvijao sam sa kolegom POS aplikaciju, i moram priznati da je posao pravo krenuo tek onda kad smo aplikaciju launchali. Trebalo je dodati podrsku za ogromnu paletu raznih uredjaja, i aplikacija se pocela koristiti cak i u trgovini (cisto za razjasnjenje, racunanje poreza u trgovini i restoranu je razlicito ko nebo i zemlja), wellnesu, a normalno dodali smo support i za handheld uredjaje (palm PCi, Orderman, etc)...

Tek tada se vidi zbog cega praksa "Ma napravi da radi, pa cemo kasnije to refactorirati" ne funkcionira, jer to "kasnije" ne dodje nikad, ili dodje kada se na tom dijelu koda treba raditi. A obicno se to onda tako intertwina i entanglea sa ostatakom da cijela aplikacija postane primjer fragilnosti: promjenis nesto na jednom dijelu sistema, a odjednom drugi pocne stekati. Katastrofa.

Uglavnom, takva iskustva su dovela do toga da me moji kolege danas zovu 'code nazi'. Valjda je naziv dovoljno samo-deskriptivan.

 

Nakon gore recenoga, u vezi debuggera konkretno za tebe komentar, naxeem:

otkako sam se 'skinuo' s C++ i presao profesionalno na Javu (otprilike pred jedno 7-8 godina), koristim debugger samo u slucajevima kad mi jos uvijek nije jasno kako radi neki opensource library s kojim se moram koristiti, jer je autor u dizajnu svojeg librarya odlucio da pojesti exception, vratiti null ili skrsiti aplikaciju u slucaju loseg unosa - nije tako lose.

U globalu, kad koristim librarye koje vec poznajem, ili kad pisem komponentu ground-up, debugger mi uistinu nije potreban; kod se sam stiti od zlouporabe. Vidi http://en.wikipedia.org/wiki/Design_by_contract, deda Meyer ima jos zanimljivih ideja, ali definitivno DBC je nacin za kodirati a ne koristiti debugger, i u mojem iskustvu pokazao se u zadnjih 7 godina kao princip vrijedan poput design patterna.

 

@Sampioni, five stars ;-) Vec pred par godina, procitao, naucio napamet, i sirim mantru okolo :-)

 

Edit:

jos nesto sam zaboravio. Agilne metode rade i funkcioniraju savrseno, ako se koriste pravilno. Kad sam pisao driver za uredjaj koji radi preko serial porta, jedno sto me spasilo od debugiranja byte streamova jesu Unit testovi. Ne mogu se ni sam sjetiti koliko puta bi mozgao nad nekom gluposti po pola sata, i onda zvao kolegu da mi bude par i pomogne, i nakon 10 minuta izmozgali bi rijesenje nabadajuci po tipkovnici oboje. To je sto se tice dijela developmenta.

Sto se tice managementa i rokova, planning poker, dvotjedne iteracije i team velocity je sistem managementa tima u kojem mozes sa puno vecom sigurnoscu odrediti koliko brzo se kreces naprijed, kada bis mogao biti gotov i ono najbitnije: u startu ti daje opciju da odrezes neke featureove ako ih ne mozes izvuci do krajnjeg roka, i to se statisticki vidi vec nakon 3-5 mjeseci rada. U krajnju ruku, vec bi mi bilo dovoljno samo to sto napokon dolazi odgovornost na mene kao developera da odlucim koliko ce mi vremena trebati za neki task. Puna mi je kapa imati project managera koji misli da je GNU namaz za na kruh, ali koji je siguran da ja mogu nesto zavrsiti u tjedan dana.

Poruka je uređivana zadnji put uto 5.5.2009 9:39 (Deus ex machina).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?

To kasnije ćemo sredit' je ono čega se ja užasavam. Pisanje lošeg i "napiši da radi/kako ti je lakše" koda je jezivo loš potez i kada mi netko tako kaže ja se sav pogubim.

Što se debuggera tiče, ja ne znam kako bih bez njega radio na nečemu velikom. Evo ti jedan primjer iz razvoja jedne .NET web aplikacije, vrlo jednostavne, ali razvijane pod plaštom "agile razvoja" i bez dokumentacije, uputa, komunikacije s klijentom i jednom jedinom direktivom šefa: "napravi kako ti je lakše".

 

Razvija se web aplikacija koja koristi TreeView kontrolu i XmlDataSource. Inače nemam običaj koristiti taj tip podatka jer sam pristalica konkretnih struktura podataka, a ne "kontrola" pa su moji programi kolekcije u jeziku koje serijaliziram po potrebi.

Uglavnom, upotrijebim ja taj vražji source i kontrolu i pri "štelanju" kontrole i njenog osvježavanja nailazim na problem. Kontrola se ne updejta.

Proveo sam sat vremena tražeći problem zašto se stablasta kontrola ne želi osvježiti, a bez debuggera nema teorije da bih prodro u 3-4. razinu dubine kontrole i seta podataka. Na kraju ni s debuggerom nisam našao problem jer je glupa kontrola, za razliku od svih ostalih kontrola tog tipa, imala po defaultu uključen cache podataka koji se jednostavno ne osvježava.

Debugger je bio nužan jer je u stablastoj strukturi problem tek na 4. dubini, što je nemoguće pronaći ručno. Tu sam uvidio i problem MS-a i njihove glupave prakse da im ugrađene kontrole nisu konzistentne, već se različito ponašaju po defaultu.

Debugger ti treba i kada imaš problem s castanjima, kada imaš kompleksne strukture i prijenose podataka između više slojeva.

17 godina
offline
Kako se programira u Hrvatskoj?

Od agilnih metoda dize mi se kosa na glavi. Kad god dodje do toga lako cemo ili poslije cemo, na kraju to ispadne veca komplikacija nego da se sve u startu uzimalo u obzir, da je sve definirano u startu. Na kraju se vise rok produzi na taj nacin nego da je sve radjeno kako treba.

I'm going woo woo
 
0 0 hvala 0
16 godina
neaktivan
offline
Kako se programira u Hrvatskoj?

Uh.

Agilno != bez dokumentacije, uputa.

Agilno != napravi kako god

Agilno !!!!!!!!!!!!!!!!!============ komunikacije s klijentom.

Agilno == konstantna komunikacija

Agilno == konstatno refactoriranje i redizajniranje bottleneckova koda

Agilno == konstantno automatsko testiranje

Shef je bas sampion :-D

 

U agilnom planiranju i razvoju _sve_ se vrti oko poboljsavanja komunikacije: izmedju developera, developera i managementa, managementa i klijenta i na kraju svih skupa zajedno. Iako je agilno planiranje samo jedan od dijelova Xtreme Programminga, moram priznati da je cijela praksa ustolicena da bi se izbjeglo ovo http://www.dlevel.com/blogs/alex/images/software_development.jpg i po mojem iskustvu, zaista u tome i uspijeva. Naravno, sve se moze zlouporabiti i onda dovodi do katastrofalne degradacije; nema niceg osjetljivijeg nego kad ljudi mijenjaju ustoliceno razmisljanje na nesto novo, ali nakon pocetnog 2-3 mjesecnog roka zbunjenosti, tako sam se naviknuo na ovaj nacin rada da bi tesko se vratio natrag. Cijeli problem inzenjeringa softwarea je sto, za razliku od gradnje mostova, software je ekstremno jednostavan za mijenjati. Kad jednom zeznes u gradnji mosta, cijeli projekt je otisao kvragu. Kod pisanja software, milijun puta zeznes i opet ides dalje.

Zbog toga je agilno planiranje savrseno, jer je nemoguce predvidjeti kako ce projekt teci i kad ce biti gotov. Sa agilnim planiranjem, ne moras. Ako ga pravilno koristis, naravno.

Jos jedna bitna stvar, u vezi toga 'napravi kako god'.

Ljudi cesto brkaju "napravi kako god" sa "napravi da radi samo to sto treba". Najbolje komponente su one koje rade samo ono za sto su predvidjene, i nisu svicarski noz. Agilan razvoj se oslanja na to da je kod uvijek vrhunske kvalitete i zbog toga vrlo jednostavan za mijenjaje, i zbog toga ne nalaze da se komponenta napravi cim korisnijom. Nalaze da komponenta mora obavljati tocno onaj minimum koji joj je potreban. To rezultira s manje posla == manje koda za odrzavati i cistiti == manje dependencya == manje bugova.

 

Ovo sto si mi opisao, mogu te samo samilosno zaliti :-)

Ako jos uvijek nisi promjenio firmu (shefa?), evo, da te naucim jednu odlicnu tehniku koju sam ja naucio od kolege i koja mi je pomogla:

dok ti shef ili tko vec nesto prica sto 100% znas bolju soluciju, samo zatvori oci i pomalo odmahuj glavom lijevo-desno i cmokci usnicama "c-c-c", tu i tamo dodaj "ne-ne-ne" i kad shef zavrsi, reci "Necemo to tako." Cijelo vrijeme drzi prekrizene ruke na prsima.

I napravi po svome.

Dobit ces ugled arogancije, sto je zanemariv drawback, ali ako to radis samo onda kad si 100% siguran da znas bolje, ljudi ce te pustit na miru da radis jer ce znati da ti mogu vjerovati. Dodatni bonus (ili drawback, ovisi kako gledas), kolege ce trazit tvoj savjet prije nego idu prckati po codebaseu.

 

I za kraj, naravno da se slazem za debugiranje kontrole.

Kao sto sam napisao i u svom postu, kad radim s libraryem koji ne poznajem, debugger je neophodan alat.

Poruka je uređivana zadnji put uto 5.5.2009 10:49 (Deus ex machina).
 
0 0 hvala 0
17 godina
offline
Kako se programira u Hrvatskoj?

Nekako iz iskustva mi se cini da je agilni jedini pravi nacin rada, naravno ako se provodi kako treba. "Napravi da radi" je mozda u grubo agilna metoda, ali 1) iskusni dev nece napraviti los kod, 2) refactoring je jedna od bitnih agilnih metoda, znaci ono "napravi da radi" se na kraju refactorira i producira kvalitetan kod.

 

Odlican set video tutoriala o agilnom razvoju:

http://www.autumnofagile.net/

(malo pili previse na pocetku, ali lijepo objasni, onako americki, for dummies)

 

Takodjer, nekoliko blog postova zasto pisati funkcionalnu i tehnicku specifikaciju:

http://www.joelonsoftware.com/articles/fog0000000036.html

 

a sto se tice SQLa, svakako da dev mora znati pisati SQL, napraviti store procedure, funkcije, triggere i sl., ali mora i znati sto je to ORM alat i barem imati neka minimalna iskustva sa jednim. Pa cak je i MS izdao ORM sa frameworkom 3.5, TOLIKO je to vazno danas....

 

Nazalost, moja placa je osjetno manja od ovog "dev leada", jer je on u firmi vec sto godina i radi na "vaznim" projektima. Stvar je da se samo on zna snaci u svome kodu, pa mu se svi drugi boje prigovoriti.  Ima tu gomile web servisa koji nepotrebno pozivaju jedni druge, gomile "magic stringova" (naprimjer: ako neka metoda ili web servis vrati "1" onda je sve uredu, ako vrati "2" znaci da nesto nije u redu sa XY sproc., ako vrati "6876" onda....). Šampion na djelu :)

stop(); // hammertime! | http://twitter.com/hhrvoje
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?
hudo kaže...

Nazalost, moja placa je osjetno manja od ovog "dev leada", jer je on u firmi vec sto godina i radi na "vaznim" projektima. Stvar je da se samo on zna snaci u svome kodu, pa mu se svi drugi boje prigovoriti.  Ima tu gomile web servisa koji nepotrebno pozivaju jedni druge, gomile "magic stringova" (naprimjer: ako neka metoda ili web servis vrati "1" onda je sve uredu, ako vrati "2" znaci da nesto nije u redu sa XY sproc., ako vrati "6876" onda....). Šampion na djelu :)

 
Dodao bih jos samo, za svakog ozbiljno developera obavezni: http://www.extremeprogramming.org/
Nemoj se ljutit na lead dev-a, on si samo cuva posao... ;-) (tip je katastrofa...)
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?
Deus ex machina kaže...

Uh.

...

Jos jedna bitna stvar, u vezi toga 'napravi kako god'.

... 

Ovo sto si mi opisao, mogu te samo samilosno zaliti :-)

Ako jos uvijek nisi promjenio firmu (shefa?), evo, da te naucim jednu odlicnu tehniku koju sam ja naucio od kolege i koja mi je pomogla:

dok ti shef ili tko vec nesto prica sto 100% znas bolju soluciju, samo zatvori oci i pomalo odmahuj glavom lijevo-desno i cmokci usnicama "c-c-c", tu i tamo dodaj "ne-ne-ne" i kad shef zavrsi, reci "Necemo to tako." Cijelo vrijeme drzi prekrizene ruke na prsima.

I napravi po svome.

Dobit ces ugled arogancije, sto je zanemariv drawback, ali ako to radis samo onda kad si 100% siguran da znas bolje, ljudi ce te pustit na miru da radis jer ce znati da ti mogu vjerovati. Dodatni bonus (ili drawback, ovisi kako gledas), kolege ce trazit tvoj savjet prije nego idu prckati po codebaseu.

 

I za kraj, naravno da se slazem za debugiranje kontrole.

Kao sto sam napisao i u svom postu, kad radim s libraryem koji ne poznajem, debugger je neophodan alat.

Naravno da agilno programiranje nije ono što si naveo i što sam ja opisao. Postavimo stvar ovako:
 
Ja nisam stalno zaposleni developer; apsolvent sam (CS) koji igrom slučaja radi već sedam godina i to uglavnom sa strancima ili rjeđe na ugovore. Radim po projektima, biram atraktivne stvari iz kojih mogu naučiti i koje pred mene postavljaju izazov ili dobru buduću referencu. Naviknut sam raditi sam i direktno s klijentima, drugim developerima kojima delegiram posao, dizajnerima, menadžerima, investitorima i sl. U opisani projekt krenuo sam prilično oprezno. Firma je ozbiljna, ima ugled, Šef ima titulu, ime i općenito želio sam se dokazati.
Do sada sam projekte koje sam sam vodio radio na način da sam definiram SRS, sam radim razvoj po tome ili da dobijem detaljan SRS (vrlo detaljan) i radim po "featursima".
 
U ovom slučaju dobio sam uputu radimo aplikaciju koja mora izgledati nešto slično ovome (pokazuje konkurentske proizvode), nađi gdje još ima informacija o tome i vidi kako ćemo. - Ja napravim bazu, dam je na reviziju i dobijem nazad izmijenjeno "mi smo to ovako jer mi tako radimo". Ja kažem OK i nastavim raditi. Kažu, rok je taj i taj, žuri nam se.
Ja pitam za konvencije koda, odgovor je "napravi kako misliš da je OK, to je ionako prvi sprint, bitna je funkcionalnost. Izgled je nebitan".
 
I krenem ja tako, slažem nešto, ni sam ne znam što, završim određeni dio i pošaljem na pregled. Odgovor: a znaš, ovo mora bit drugačije, ovo je database dump i CRUD. - Ja kažem, pa naravno, izgled nije bitan, nego funkcionalnost. - E, ali nije to to. I kaže Šef napravit će tebi Stipica specifikaciju pa ti radi po tome.
 
I onda je počelo ono iritantno: Stipica je napravio dobru specifikaciju, ja sam napravio "dobru" aplikaciju (koliko CRUD web može biti dobar), ali cijelih tih par dana razvoja Stipica mene pila da svaki box bude točno tamo gdje je on zamislio i onda ja trošim 2-3 sata na užasno hackiranje kontrola da bi stajale baš tamo gdje ih je Stipica zamislio, a bitan dio koda (kao npr. punjenje lista, kontrola itd.) stoji sa strane i čeka. Na pitanje "kako želiš da ovaj kod radi?" odgovor je uvijek "kako ti je lakše".
Onda Stipica ispaljuje na živce što razvoj ide sporo (jer ponekad za pozicionirati neke stvari u očajnom svijetu web formsa trebaš jako puno vremena, a i imam druge projekte i život uz to) i što onaj box još uvijek nije 23 nego 22 pixela od ruba iako je sve to nebitno jer sva ta muka i svo to vrijeme odlaze u prazno s obzirom da je to alpha verzija koja nema niti dizajn. Čemu trošiti sate na pozicioniranje elemenata koji nisu finalni? (sve radimo tijekom Božića!) To samo Šef i Stipica znaju.
Dodam tome i činjenicu da sam izgubio sate na fixanju glupavog defaulta Cache = true za XmlDataSource i na kraju sam ja puknuo, poslao projekt k vragu, ispao sam budala i nesposoban, jer kako kaže Stipica i srednjoškolac može napraviti dvije forme, a ne ja koji imam i neko ime u tom miljeu kao dobar programer.
 
Na kraju, finalna aplikacija nije puno drugačija (barem alpha 2 koju sam ja vidio) ali je izgledala onako kako su to Šef i Stipica zamislili tj. boxovi su bili lijevo umjesto na sredini i intenzivno se koristi lightbox popup.
Zaključili smo da Šef i Stipica kuže jedno drugo jer duže rade zajedno i Stipica uvijek zamisli rješenje kakvo bi zamislio i Šef, a da se ja ne mogu nikako naviknuti razmišljati kao Šef-Stipica iako konačan rezultat mog i njihovog rješenja u funkcionalnosti (koja je, napominjem bitna) nije ništa drugačiji.
Kroz to iskustvo ja sam se zaista pobojao za svoje sposobnosti i znanje misleći kako zaista nešto nije u redu sa mnom tih dana kad nisam uspio glupavu aplikaciju (koja je čisti r/w baze) kreirati da Šef i/ili Stipica budu zadovoljni.
 
Nikako se nisam mogao naviknuti da mi netko daje potpunu slobodu u razvoju projekta, ali istovremeno me kritizira za svaku glupost i očekuje da moj rezultat bude baš onakav kakvim ga je on zamislio. Na pola projekta, kada je vodstvo preuzeo Stipica, nisam se nikako mogao naviknuti da me svaka dva sata Stipica zove i provjerava do kud sam stigao i što sam napravio usput dajući mi dodatna uputstva i upozorenja gdje mora ići OK button, a gdje TextBox4 (da, nije bilo coding konvencije).
 
Sva sreća pa sam na idućem projektu (opet sa strancima i uz direktnu komunikaciju s klijentom i bez ogomne dokumentacije) opet briljirao i dobio puno šuškavih dolarčića i shvatio da problem očito nije bio (samo) u meni.
Eh, da i zamrzio sam taj "agile development" toliko da se sav naježim i dok tipkam taj naziv. Valjda neopravdano?
hudo kaže...

Nekako iz iskustva mi se cini da je agilni jedini pravi nacin rada, naravno ako se provodi kako treba. "Napravi da radi" je mozda u grubo agilna metoda, ali 1) iskusni dev nece napraviti los kod, 2) refactoring je jedna od bitnih agilnih metoda, znaci ono "napravi da radi" se na kraju refactorira i producira kvalitetan kod.

 

Odlican set video tutoriala o agilnom razvoju:

http://www.autumnofagile.net/

(malo pili previse na pocetku, ali lijepo objasni, onako americki, for dummies)

 

Takodjer, nekoliko blog postova zasto pisati funkcionalnu i tehnicku specifikaciju:

http://www.joelonsoftware.com/articles/fog0000000036.html

 

a sto se tice SQLa, svakako da dev mora znati pisati SQL, napraviti store procedure, funkcije, triggere i sl., ali mora i znati sto je to ORM alat i barem imati neka minimalna iskustva sa jednim. Pa cak je i MS izdao ORM sa frameworkom 3.5, TOLIKO je to vazno danas....

 

Nazalost, moja placa je osjetno manja od ovog "dev leada", jer je on u firmi vec sto godina i radi na "vaznim" projektima. Stvar je da se samo on zna snaci u svome kodu, pa mu se svi drugi boje prigovoriti.  Ima tu gomile web servisa koji nepotrebno pozivaju jedni druge, gomile "magic stringova" (naprimjer: ako neka metoda ili web servis vrati "1" onda je sve uredu, ako vrati "2" znaci da nesto nije u redu sa XY sproc., ako vrati "6876" onda....). Šampion na djelu :)

Agilni dev je jedino što ja radim, ali to ja tako nisam zvao do sada. :)
 
Primjer iz gore spomenutog projekta sa Šefom i Stipicom je i sličan tvome tu: imaš sortiranje podataka (XML oblik) na nekoliko nestanih nivoa za TreeView kontrolu i za razliku od mene koji bih složio enumeracije, napravio fino rekurzivni algoritam koji prodire do najniže dubine itd. Šef i Stipica su, pod izlikom "radi", to riješili označavajući zapise u bazi višekratnicima broja 10000 (ili nešto slično) zagađujući bazu, strukturu baze, logiku cijele aplikacije, storage sistema... svega. Istina, sami su rekli da je to "šampionizam" i da je to jasno, ali da jednostavno radi, dok istovremeno nisu imali razumijevanja što sam ja boxove umjesto u popup smjestio na istu stranicu i razdvojio horizontalnom linijom.
 
Da nisam znao bolje, mislio bih da me netko testira do kuda mogu ići sa psihičkim igranjem (u Dalmaciji to zovemo yebanje u mozak).
 
Poruka je uređivana zadnji put uto 5.5.2009 12:13 (naxeem).
17 godina
offline
Kako se programira u Hrvatskoj?

Ja od kad znam za sebe pokušam raditi agilno. Uvijek si napravim neki određeni framework (ako ga već nemam) koji radi već neke određene stvari koje znam da mi trebaju za svaki projekt (pozivanje forma i njihova translacija, pozivanje kontrola i njihova translacija, provjera ovog unosa, onog, socket komunikacija, bla bla ). Sve je to sadržano u nekoliko dll datoteka tako da svako nadograđivanje programa mi je praktički sitnica. Ne igram se više sa funkcionalnosti (ako naravno nema poboljšanja ili nekih novih mogućnosti u tom pogledu), a igram se većinom s dizajnom (jer to je ipak informatički "nepismenima" najbitnija stvar). Sve mi radi stari framework, tako da je dogradnja aplikacije dosta lagana. Istina da onda ponekad i vućem "veliki" framework za neki manji projektić kojem ne treba sve to, ali tako sam siguran da mogu sve pokriti (ako dođe neki novi zahtjev) ili unaprijediti postojeće.

Sad ovo što je govorio naxeem, takvi su svi moji "kućni" (sastrane uz posao) projekti. Uvijek radim sa nekim polupismenim informatičarom iz neke poluinformatičke tvrtke koja treba neki informatički proizvod. Za dokumentaciju nisu nikad čuli, za definiranje potreba još manje. Odem do njih, pitam ih ko malu dijecu o svemu i svaćemu, ali naravno niti oni sami neznaju što bi taj proizvod morao raditi. Nakon toga im crtam neke dijagrame (workflow, dataflow itd), jer smatram da bi informatičar to morao znati "pročitati". Naravno oni se sa svime slažu, ja to tako napravim i onda daljnjih 3 mjeseca ili duže ispravljam sve što sam napravio, jer na kraju nije to ono "što su htjeli". Najveći problem su im naravno izgledi forme i reportova koji se printaju, a ovo ostalo ih ništa ne dira. Kad je već sve gotovo (recimo, jer kad se jednom obvezuješ održavati takvu aplikaciju, bar jednom mjesečno nešto treba "dograditi", popraviti itd), onda me zovu u 12h u noći da im sve radi sporo. Ja odem da pogledam i vidim da si je tip na database server stavio dekodiranje dvd-a (naravno za piratsku kolekciju), i naravno da ubija bazu, koja mora filati par tisuća row-ova podataka prema distribuiranim aplikacijama. Ja to napomenem, a on se čudi "ko picek glisti", jer je on mislio da je to "slobodno" računalo, a to je onaj isti tip kojem su svi dijagrami bili jasni (na kojima je bilo lijepo napisano što je koje računalo). Na takve ljude se treba priviknuti jer je takva situacija u HR svugdje. Istina da radim u poduzeću u kojem je sve dosta dobro dokumentirano i gdje treba puno dokumentacije za sve (nekad i previše), tako da se bar tu malo odmorim od takvih "informatičara"

"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
 
0 0 hvala 0
17 godina
neaktivan
offline
Kako se programira u Hrvatskoj?

Ja također radim agilno, kao što sam rekao, ali sam samo ilustrirao kroz kakvo sam iskustvo upoznao taj pojam jer do tada nisam znao da zapravo radim "agilni razvoj". Iskustvo je bilo u najmanju ruku čudno jer nisam imao kontakt s klijentom, radio sam nešto što je u svojoj glavi Šef zamislio slično kao i Stipica i bio izgubljen u njihovim glavicama i dezorijentiran u potpunosti.

To ti je isto kao i prvi seks: ako prođe dobro, sjećaš ga se u dobrom svjetlu, ako ne prođe dobro, dobiješ averziju prema seksu iako je realno seks sam po sebi super.

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Kako se programira u Hrvatskoj?

@dado

Moja zena radi u Zavodu za zaposljavanje. Situacija u HR je takva zbog toga sto ljudi koji znaju upaliti racunalo i znaju pokrenuti Word i pisati u njemu, sebe zovu programerima. Na zavodu se savjetnici cesto mijenjaju medju raznim strukama, tako da mi je i zena dosla na mjesto gdje je drzala informaticare. Kaze da bi joj dosao Covjek, ona ga pita sta je po struci, On opali "programer". Ona ga pita (zena developera, pa ima profesionalnu deformaciju hehehe) u kojem programskom jeziku radi, koje tehnologije poznaje, da li radi Web, rich client aplikacije... a Covjek ispali "Ma ja to sve u Windowsima IksPe i sa Word i Excel".

Pa nek si covjek misli da li je danas developer deficitarno zanimanje ili nije. Po meni nije ni priblizno. Koliko ljudi su danas 'programeri' i 'developeri' i koliko je visoka strucnost u firmama koje iste zaposljavaju, lokalni susjed hacker ima vise sanse dobit posao od mene jer mu nije bed lagati u svom CV-u a manager ionako nema pojma koga je zaposlio.

 

@naxeem

Ko da si isao raditi poster za koncert Britney Spears, a ne GUI. Trebao si implementirati prvo org.acme.StipicaLayoutManager ;-)

Valjda svi mi to moramo proci, to ti je ko vatreno krstenje. Sve te to opameti, a i da ti referencu da vidis koliko znas i vrijedis i koji posao mozes ciljati.

 

Kako rekoh, Sampioni 5 stars ;-)

 

 

 

 
1 0 hvala 0
17 godina
neaktivan
offline
RE: Kako se programira u Hrvatskoj?

Hahaha @re@dado, hahahah @re@naxeem Smijeh.

Btw Stipica i Šef su imaginarna imena ljudi poznatih aktivnoj struci, pa... Ali, da, org.acme.StipicaLayoutManager : org.acme.ŠefLayoutManager i ja sam očito zablokirao jer u C#-u ne možeš raditi dvostruko nasljeđivanje. Cool

Što se Šefa tiče, on slovi kao znalac, a ni Stipica nije loš. Jednostavno čudan pristup izvedbi nekih stvari i druga valna duljina...

Poruka je uređivana zadnji put uto 5.5.2009 15:17 (naxeem).
17 godina
offline
RE: Kako se programira u Hrvatskoj?
Deus ex machina kaže...

 

@naxeem

Ko da si isao raditi poster za koncert Britney Spears, a ne GUI. Trebao si implementirati prvo org.acme.StipicaLayoutManager ;-)

Valjda svi mi to moramo proci, to ti je ko vatreno krstenje. Sve te to opameti, a i da ti referencu da vidis koliko znas i vrijedis i koji posao mozes ciljati.

 

Kako rekoh, Sampioni 5 stars ;-)

 

 

 

Potpuno se slažem. Moja prva firma je bila šampionska, koja je radila sa dosta šampionskim klijentima. Moj prvi samostalni (siva ekonomija) projekt je bio sa šampionima informatike. Sve to me dobro naučilo kako se odnositi i kako "podnositi" sva ta sr..nja koja moraš trpjeti. Na kraju ti ostane neka sića, da te bar malo zadovolji, ali što još bitnije, iskustvo koje nosiš iz takvih stvari.
"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
Nova poruka
E-mail:
Lozinka:
 
vrh stranice