IDC - IDC je pripravilnovo raziskavo o številu programerjev oziroma razvijalcev programske opreme in številu zaposlenih s poznavanjem informacijsko-komunikacijskih tehnologij (IKT). Analizirali so stanje v 90 najbolj razvitih državah na svetu in ugotovili, da je v njih dobrih 18 milijonov razvijalcev programske opreme.
Zanimiv je podatek, da se 7,5 milijona oziroma 40 odstotkov teh ljudi s programiranjem ukvarja ljubiteljsko. Takšna opredelitev seveda terja nekoliko razlage. IDC mednje šteje vse ljudi, ki v svoji glavni službi niso plačani za razvoj programske opreme, tako da to počno izven rednega delovnika v obsegu vsaj 10 ur mesečno. Razlogi so mnogoteri: od neplačanega ukvarjanja s svojim konjičkom in zabave do poizkusov zaslužiti nekaj dodatnega. V to kategorijo IDC šteje recimo tudi sistemske administratorje, ki so svoje delo poenostavljajo tako, da pišejo skripte za avtomatizacijo vzdrževanja, pa študente, pa tiste, ki prispevajo kodo za odprtokodne projekte itn. Kategorija je torej precej široka, zato ni presenetljivo, da je v njej veliko ljudi.
Tako visoka številka bo zagotovo razveselila ljudi, ki opozarjajo na potrebo računalniškega opismenjevanja in učenja osnov algoritmov in programiranja širšo populacijo, da bo dobila občutek, kaj in kako računalniki delajo stvari, na katere se potem ti zanašajo. Ena izmed evropskih najbolj e-držav E-stonija je to že ugotovila, saj je tam programiranje obvezen predmet v šoli. Pomembno pa je, da te ljudi z dobrim znanjem pisanja programske opreme koristno zaposlimo, saj se zlasti v manj razvitih deželah z nižjim standardom pogosto zatečejo na drugo stran zakona. Rusija je tako eden največjih virov škodljive programske opreme. Druga možnost je seveda emigracija.
Poleg tega v raziskavi opažajo, da se v deželah z močnim tehnološkim sektorjem delež neprofesionalnih programerjev zmanjša. To pripisujejo visokim potrebam v gospodarstvu, ki sčasoma posrka tudi neprofesionalne programerje in jih profesionalizira. Dodajajo, da se nemalokrat primeri, da so ti domači programerji z moderno tehnologijo, ki jo podrobno spremljajo, bolj na tekočem kakor podjetja.
Analizirali so stanje v 90 najbolj razvitih državah na svetu in ugotovili, da je v njih dobrih 18 milijonov razvijalcev programske opreme.
Me zanima če se Indija šteje pod to.. ker če temu ni tako, potem lahko mirno dodamo še kakšna pol miljona progamerjev na zgornji izračun. Tam programerji rastejo kot gobe po dežju.
Me zanima če se Indija šteje pod to.. ker če temu ni tako, potem lahko mirno dodamo še kakšna pol miljona progamerjev na zgornji izračun. Tam programerji rastejo kot gobe po dežju.
... gobje kvalitete. Sicer so tile hobijaši (vedno so seveda izjeme) dodobra nekoristni za razvoj, ko svoje veleume, ki so sicer čisto dobre ideje vendar katastrofalno implementirane, spuscajo v svet in se potem se skupaj z njimi gradijo neke večje celote, ki se jih nato uvaja v podjetja.
... ker so na prvi pogled uporabna. Potem pa naredijo stroske zaradi hroščov in ostalega mrčesa v kodi do mere, da se vcasih clovek sprasuje, če ne bi bilo bolje zadevo spisat od zacetka sam. Prisparas zacetni cas, potem te pa ubije v finišu (ko to precej bolj boli).
V trenutku ko pa je tak veleum, ki je nekoristen za razvoj, zaposlen v nekem podjetju in za svoje delo plačan, pa postane koristen za razvoj in začne ideje nenadoma genialno implmementirati (razen popoldne, ko pride domov, takrat je spet nekoristen in ne zna ničesar več)? Ali pa, če odpre podjetje in kar je prej delal na črno, sedaj začne prodajati. Kvaliteta kode je nenadoma mnogo boljša? Dejte mi pojasnit tole udrihanje po hobijaših, ki po defaultu nimajo pojma (razen izjem) in hvaljenje profijev, ki po defaultu imajo pojem (razen izjem).
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov
Invictus> Tako da koncu nastane komercialni softver, ki je v bistvu skupek malih hobi projektov.
Jaz vidim precej drugačen trend. Vedno več je projektov, ki so tako dobri, da jih enterprise začne uporabljati, potem pa, ker zanj ne more dobiti podpore, za podporo in nadaljni razvoj dejansko najame hobi programerje, ki so napisali ali vsaj sodelovali pri pisanju originalne rešitve.
To se je zgodilo praktično vsem uspešnim "hobi" projektom v zadnjih 10 letih in čeprav še vedno lahko kupiš Websphere MQ in s tem bullshitaš naivneže, ki radi "varno investirajo", industrija danes uporablja RabbitMQ, ker je za večino primerov uporabe znatno boljša rešitev. Podobno velja za NoSQL baze, poštne strežnike, virtualizacijske platforme... Ni da ni.
Ne vem kje je fora.. če stvar dela je ne popravljaš, pa če je magar nek hobby programer/-ka napisal/-a .
Procesorski čas je danes v takem izobilju da če ravno ne implemenitraš z napačno podatkovno strukturo je praktično vseeno kako napišeš kodo. Funkcijo lepo naprej ponudiš programerju. Večina ljudi, ki se ukvarjajo s client-side programiranjem uporablja jQuery. Ne vem kakšen % se je šel poglabljat v to kako deluje funkcija $, v končni fazi ga to tudi ne briga, važno da dela.
To o kvaliteti programske kode je spet ena tako kot "splošna razgledanost". Ne da se natančno definirati. Pač programerji med sabo merijo e-penis.
Ok priznavam da obstajajo metrike kode kot je npr. code smells, ABC, ter neka načela (SOLID) za organizacijo kode ampak načeloma tudi dobro zasnovani projekti sčasoma zalutajo.
V končni fazi.. če naredi to kar uporabnik/naročnik želi je dobra.
Komentar "državne" strani healthcare.gov . Koda ni perfektna a vseeno so lastniki dobro zaslužili. Za razliko od open-source kjer je koda 100% perfektna, pisci pa zaslužijo natančno za kavo.
Svet je kaotičen. Dobra koda ne pomeni dobro plačilo, in obratno.
Obstajajo profi programerji, ki pišejo slabšo kodo od nekega hobi programerja. Pač presek normalnih porazdelitev obseh skupin je neka množica ljudi.
Če je delodajalec profi programejra zadovoljen z njegoim performancom, zakaj bi se profi programer moral počutit krivega oz. manjvrednega. Za manj pokazanega znanja dobi, za razliko hobi programerja, plačo. Kok je to dolgoročno vzdržno ne vem, ampak zaenkrat mu laufa.
Definicij profesionalnih programerjev je toliko kot programerjev. Plus še nekaj zraven.
Sem videl dobro plačane ljudi, ki so proizvajali grozno kodo in obratno.
Videl sem pa še več stvari kako so projekti slabo vodeni. Potem vsak programer prčka nekaj po svoje in rezultat je 50 različnih stilov programiranja od 20 programerjev.
Vsak projekt mora pač definirati pravila kako se bo koda pisala. Plus še kar nekaj stvari kako se ta koda preverja.
"Life is hard; it's even harder when you're stupid."
To o kvaliteti programske kode je spet ena tako kot "splošna razgledanost". Ne da se natančno definirati. Pač programerji med sabo merijo e-penis.
Am ja...sj koda bo delala pa tud ce 20x napises isto funkcijo namest, da bi mel eno in jo uporabljal povsod. Pa tud 200 classov lahko napises, ker si prelen, da bi uporabil generike. Pa tud for loope lahko delas k budala 50x ceprav bi bilo dovolj enkrat...delalo bo. In uporabnik ne bo vedel kok je dreka zadi. Bo pa to vedel vsak, ki bo moral to kodo uporabljat naprej(programe je treba vcasih tud posodobit, ko se spremeni zunanja storitev na katero je vezan). In takrat bos zelo hitro opazil drek kodo, ker bos bil pred naslednjo izbiro a)porabi ob vsaki taki spremembi n-x casa, da zadevo nadgradis b)porabi n-x*2 casa, da jo prvo popravis in potem vsakic ene 10x manj casa za posodobitve. In ker folk ponavadi noce biti tisti, ki je kriv za dodatne stroske se potem ta drek "pusti pri miru" par let. Ko sestejes stroske in cas je pa ta DREK KODA dejansko pozrla 5x vec denarja in casa. Casa, v katerem bi lahko nekdo, ki pac NI len, spisal se najmanj 1 program ce ne vec. Tko da so sorry ampak DREK koda obstaja in to lahko zanika samo clovek, ki noce priznat, da je drek kodo ze spisal(in jo najverjetneje se zmeraj pise). Vsi ostali pac vemo kdaj smo drek napisal, kdaj nismo in tud ZAKAJ ga ce se le da nocemo pisat vec.
V trenutku ko pa je tak veleum, ki je nekoristen za razvoj, zaposlen v nekem podjetju in za svoje delo plačan, pa postane koristen za razvoj in začne ideje nenadoma genialno implmementirati (razen popoldne, ko pride domov, takrat je spet nekoristen in ne zna ničesar več)?
Ne razumes. V sluzbi lahko dela nek obicen BI in je za to povsem kompetenten, doma pa proba delat OS kernel kodo in VMe kjer ni kompetenten in je vseskupi drek. Primer. Ni pa to vedno pravilo, kot je jype reku, je polno projektov, ki kasneje ratajo zelo veliki in uporabljani in so precej kvalitetni. Jih je pa cel kup, ki niso ali pa so celo idejno napacni, pa so morda popularni open source projekti. Jst sm se ze parkrat nasral, recimo Kryo java lib za serializacijo, je precej popularna in ima cel kup spinoff knjiznjic, ki jo uporabljajo, ampak ima precej bugov in mene je tekom enega projekta parkrat zajebalo in sem moral workarounde delat pa se sprijaznit da bo kak feature odpadu.
To o kvaliteti programske kode je spet ena tako kot "splošna razgledanost". Ne da se natančno definirati. Pač programerji med sabo merijo e-penis.
Am ja...sj koda bo delala pa tud ce 20x napises isto funkcijo namest, da bi mel eno in jo uporabljal povsod. Pa tud 200 classov lahko napises, ker si prelen, da bi uporabil generike. Pa tud for loope lahko delas k budala 50x ceprav bi bilo dovolj enkrat...delalo bo. In uporabnik ne bo vedel kok je dreka zadi. Bo pa to vedel vsak, ki bo moral to kodo uporabljat naprej(programe je treba vcasih tud posodobit, ko se spremeni zunanja storitev na katero je vezan). In takrat bos zelo hitro opazil drek kodo, ker bos bil pred naslednjo izbiro a)porabi ob vsaki taki spremembi n-x casa, da zadevo nadgradis b)porabi n-x*2 casa, da jo prvo popravis in potem vsakic ene 10x manj casa za posodobitve. In ker folk ponavadi noce biti tisti, ki je kriv za dodatne stroske se potem ta drek "pusti pri miru" par let. Ko sestejes stroske in cas je pa ta DREK KODA dejansko pozrla 5x vec denarja in casa. Casa, v katerem bi lahko nekdo, ki pac NI len, spisal se najmanj 1 program ce ne vec. Tko da so sorry ampak DREK koda obstaja in to lahko zanika samo clovek, ki noce priznat, da je drek kodo ze spisal(in jo najverjetneje se zmeraj pise). Vsi ostali pac vemo kdaj smo drek napisal, kdaj nismo in tud ZAKAJ ga ce se le da nocemo pisat vec.
S tem se strinjam. Če je koda dobro napisana in "suha" - Dont Repeat Yourself DRY - jo je veliko lažje razvijati.
Slaba koda je pač del življenja. Vedno je in bo obstajala. Slaba koda (lahko) nastane tudi če imaš dobre namene.
Recimo naročnik želi neko mini dodatno funkcionalnost in to hitro. Ker moraš za to funkcionalnost uporabiti nekaj hackov in ker se mudi pač to narediš - zavedno. Potem ko zadeva dela naročnik ne bo dal denarja da bi polepšal kodo. Kar se njega tiče deluje. Še par takih iteracij in pride do kaosa.
V trenutku ko pa je tak veleum, ki je nekoristen za razvoj, zaposlen v nekem podjetju in za svoje delo plačan, pa postane koristen za razvoj in začne ideje nenadoma genialno implmementirati (razen popoldne, ko pride domov, takrat je spet nekoristen in ne zna ničesar več)? Ali pa, če odpre podjetje in kar je prej delal na črno, sedaj začne prodajati. Kvaliteta kode je nenadoma mnogo boljša? Dejte mi pojasnit tole udrihanje po hobijaših, ki po defaultu nimajo pojma (razen izjem) in hvaljenje profijev, ki po defaultu imajo pojem (razen izjem).
Hobijaši ponavadi nimajo izkušenj kako obvladovati množico izvorne kode in posledice tega neravnanja. Ponavadi delajo majhne, zaključene projekte, ki jih ni treba vzdrževat. Zato je večina rešitev lahko neprimerna za podjetje, ki mora to vzdrževat. Poleg programiranja je še cel kup opravil kako vso napisano kodo obvladovat in kako jo napisati da bodo nove zahteve strank čim lažje implementirane.
Invictus> Tako da koncu nastane komercialni softver, ki je v bistvu skupek malih hobi projektov.
Jaz vidim precej drugačen trend. Vedno več je projektov, ki so tako dobri, da jih enterprise začne uporabljati, potem pa, ker zanj ne more dobiti podpore, za podporo in nadaljni razvoj dejansko najame hobi programerje, ki so napisali ali vsaj sodelovali pri pisanju originalne rešitve.
To se je zgodilo praktično vsem uspešnim "hobi" projektom v zadnjih 10 letih in čeprav še vedno lahko kupiš Websphere MQ in s tem bullshitaš naivneže, ki radi "varno investirajo", industrija danes uporablja RabbitMQ, ker je za večino primerov uporabe znatno boljša rešitev. Podobno velja za NoSQL baze, poštne strežnike, virtualizacijske platforme... Ni da ni.
To se je zgodilo vsem hobi projektom, ki z GPL licenco dobesedno izsiljujejo, da se jim vsi ostali pridruzijo. Posledica je padanje vrednosti sluzbe programerja in cvetenje sistemskih administratorjev, ki sicer niso sposobni vreci skupaj nic pametnega, so pa sicer "hudo pametni" ko jim kdo to pove.
Tule je pa posledica druzbe polne "sistemskih administratorjev":
To se je zgodilo vsem hobi projektom, ki z GPL licenco dobesedno izsiljujejo, da se jim vsi ostali pridruzijo.
Podjetja se sama odločijo, ali se jim bolj splača kupiti komercialno kodo, ali raje uporabijo zastonj GPL v zameno za to, da potem nadaljni razvoj težje tržijo, ker je koda spet GPL. In vedno obstaja neka komercialna alternativa GPL kodi, tak da če kdorkoli GPLja ne mara ima veliko alternativ, ki so seveda plačljive. Prosti trg in konkurenca med komercialo in GPL kodo, ni lepšega, vsi imamo radi prosti trg.
Glavni vzrok za GPL, ter za stvari opisane v tej novici pa leži v tem, da je programiranje enostavno zadosti zabavno, da so ljudje pripravljeni to početi do neke mere zastonj.
Noben se ne rodi izkušen. Bolje hobijaš, kot novopečenec iz našega prečudovitega šolskega sistema (ki sploh nima praktičnih izkušenj).
Za podjetja je ponavadi boljši novopečenec kot izkušen hobijaš. Ga vsaj lahko naučiš svojih metod. "Izkušen" hobijaš še vedno dela na hobi način in s tem moti sistem. Preveč dela z njimi ...
"Life is hard; it's even harder when you're stupid."
To je zelo odvisno, od hobijaša in podjetja. Če zaposliš hobijaša, od njega dobiš tudi znanje.
In ves njegov kaos. In ce se je leta ufuraval v cudne nacine dela, imas lahko dela z njim vec kot pridobis z njegovim znanjem. Ni univerzalnega recepta.
To o kvaliteti programske kode je spet ena tako kot "splošna razgledanost". Ne da se natančno definirati. Pač programerji med sabo merijo e-penis.
Ne, ne da se točno definirati, ampak niti pod razno pa ni sama sebi v namen! Na žalost je večino programerskega dela, vzdrževanje - torej popravljanje hroščev, nadgrajevanje aplikacije z novimi feature-ji, itd... In tukaj je lepa koda zlata vredna!
Procesorski čas je danes v takem izobilju da če ravno ne implemenitraš z napačno podatkovno strukturo je praktično vseeno kako napišeš kodo.
Tole je pa takšna bedarija, da pejt 100x na tablo napisat "Časovna zahtevnost algoritma JE pomembna!". Potem imaš pa aplikacije ko developerju delajo OK, v produkciji ko se podatkovne baze napolnijo je pa potem sranje ko vsako malenkost čakaš. Upam, da nisi programer.
Mimogrede, saj se zavedate, da tole NI debata open source vs closed source. Precej OS razvijalcev je plačanih za svoje delo in so torej profesionalci. Po drugi strani, je ogromno hobi developerjev, ki po službi malo delajo pa upajo, da bodo zaslužili s svojo closed source aplikacijo ki jo bodo razširjali kot "Shareware (to sploh še kdo dela?)" | Android Market | Apple App store | ...
To je zelo odvisno, od hobijaša in podjetja. Če zaposliš hobijaša, od njega dobiš tudi znanje.
In ves njegov kaos. In ce se je leta ufuraval v cudne nacine dela, imas lahko dela z njim vec kot pridobis z njegovim znanjem. Ni univerzalnega recepta.
Bi prej rekel, da kaos delajo profesionalni programerji, ki ne uživajo v svojem delu. Ne ni univerzalnega recepta. Kot sem napisal odvisno je, kaj podjetje rabi in kako "prilagodljiv" je hobijaš.
Cudni nacini dela niso problem. Ce projekta ne dela sam oz ce te to skrbi mu napises na kaksen nacin mora delati. Ce ti kaj ni vsec mu pac poves pa naj lepo popravi. Ce ti pa hobijas pokaze, da njegov "cudni" nacin dejansko omogoca hitrejse izvajanje v produkciji in ni totlno nerazumljiv/berljiv (magar s pomocjo dokumentacije) no...potem je firma tista, ki je nefleksibilna in kriva za slabsi izdelek.
McAjvar zelo dober argument Invictus zanimiv prvi odstavek.
Tako je povsod, tudi pri nogometu...poznamo mnogo profijov ki nimajo pojma. Je pa tudi ogromno amaterjev, ki bi trgali gate v profesionalnih ligah. Ampak je res da v nogometu ko gres enkrat v amaterske vode je konec karijere.
chironex> Sicer so tile hobijaši (vedno so seveda izjeme) dodobra nekoristni za razvoj, ko svoje veleume, ki so sicer čisto dobre ideje vendar katastrofalno implementirane, spuscajo v svet in se potem se skupaj z njimi gradijo neke večje celote, ki se jih nato uvaja v podjetja.
... gobje kvalitete. Sicer so tile hobijaši (vedno so seveda izjeme) dodobra nekoristni za razvoj, ko svoje veleume, ki so sicer čisto dobre ideje vendar katastrofalno implementirane, spuscajo v svet in se potem se skupaj z njimi gradijo neke večje celote, ki se jih nato uvaja v podjetja.
true sem bral zadnjic o excel/vba programerjih, ki so se naucili iz macro recorderja... ceprav najvecji problem pri takih programih je pomanjkanje specifikacije in dokumentacije, da cez pol leta sploh se ves, kaj si hotel narediti (code maintainability).