Ovi pojmovi se veoma često zloupotrebljavaju ili pogrešno shvataju. Mnogi ih mešaju ili podvode pod sveobuhvatnu definiciju „ljudi koji se bave programiranjem“.
Ako želite da razjasnite ciljeve projekta i poslovne potrebe na odgovarajući način, neophodno je da razumete da svi ovi termini ne predstavljaju isto (iako osoba koja se bavi programiranjem računara može da koristi različite veštine za postizanje različitih ishoda). Veoma je bitno da razlikujete ova tri termina ako radite sa grupama za razvoj softvera.
[You must be registered and logged in to see this image.]U ovom članku Viki Sing Rao, programer, gejmer i bloger, razjasniće vam koja je suštinska razlika između hakera, programera i developera, šta su njihovi zadaci i njihovi odnosi.
Haker
Kada se za nekoga kaže da je haker, većina ljudi pomisli na kompjuterske kriminalce koji upadaju u tuđe kompjutere i ugrožavaju sigurnost računara i njihovih sistema. Korišćenje ovog pojma u negativnom kontekstu postalo je toliko dominantno da većina ljudi ni ne zna za pozitivno značenje ove reči, koje je inače starije od negativnog.
Haker je kompjuterski stručnjak koji koristi svoje znanje o računarskom umrežavanju, programiranju, kriptografiji i bazama podataka kako bi prevazišao neki problem u sistemu. Hakeri se više bave maksimalnim iskorišćavanjem resursa, za razliku od onih stručnjaka koji su koncentrisani na dugoročni kvalitet.
Iako haker može da konceptualizuje to kako će izgledati konačno rešenje i da se bavi pisanjem kodova, njegova uloga je da prvenstveno brine o brzini. Haker, kao i hakovanje, jesu najkorisniji u rešavanju vanrednih okolnosti ili prilikom izrade prototipova.
Hakeri se uopšte ne bave krajnjim efektom kodova. Hakeri stvaraju. Oni obično menjaju ono što developeri i programeri stvaraju i transformišu kako bi funkcionisalo drugačije.
Dok se pojam „haker" može odnositi na bilo koju tehnički kvalifikovanu osobu, termin se povezuje sa sigurnosnim sistemima u računarstvu – haker je osoba koja sa svojim tehničkim znanjem koristi „bagove“ ili eksploatacije za probijanje u računarske sisteme.
Programer
Programer je osoba koja je poseduje stručnost za pisanje kodova. Programeri obično savladaju jedan ili više programskih jezika i stiču ogromna znanja o srodnim područjima. Njihove uloge su relativno proceduralne i zahtevaju koncentraciju i prefinjene veštine.
Programer je najviše usredsređen na kodove i pisanje kodova, ali i na to da se funkcije sprovode na odgovarajući način, tako da budu dostupne za integraciju i kasniju upotrebu. Programiranje je zamah, to jest priprema za stvaranje uspešnih softvera. Programeri obično internalizuju sistem koji grade, ali oni rade i na uređivanju i pisanju delova onoga što je najlakše opisati kao dugački problem iz oblasti algebre.
Developer
Developeri su uglavnom stvaraoci. Međutim, ne može svaki stručnjak za pisanje kodova da bude developer. Developeri su stručnjaci za identifikovanje načina rešavanja različitih problema, kao i za povezivanje komponenata kako bi ispunili neke zahteve.
Ovi profesionalci rešavaju probleme poštujući određeni skup principa (dizajn i implementacija). Ovaj skup principa uključuje atribute kao što su održivost, performanse, robusnost, sigurnost i skalabilnost, između ostalih. Developeri rešavaju probleme na sistematski način.
Dakle, ova tri stručnjaka rešavaju različite probleme koristeći kodove. Programer je sveobuhvatni termin koji podrazumeva osobu koja se bavi rešavanjem problema. Developer je obučeni programer koji, pored toga što rešava probleme, to postiže na organizovan i metodičan način, koji se poboljšava s vremenom obrazovanja i rada u praksi.
Haker je mislilac i tvorac. Uprkos njihovim razlikama u individualnom smislu i profesionalnim kapacitetima, oni, međutim, mogu vrlo efikasno međusobno da se povezuju. Moguće je da kombinujete veštine svakog od njih u svoju korist. U stvarnosti, svi developeri i hakeri su programeri. Međutim, uprkos njihovoj stručnosti, mali broj developera i programera je dovoljno kreativan da garantuje ono što može haker. Konačno, iako su hakeri i programeri zadivljujućih veština, oni ipak nisu dovoljno iskusni ili dovoljno obrazovani da imaju toliku mogućnost razmatranja kao developeri.
Treba napomenuti i da se u opisima posla termini developer i programer često poistovećuju.
Bez obzira na sve ove razlike, osnova svih ovih zanimanja jeste pisanje kodova. Ako želite da počnete da izučavate bilo koji od programskih jezika, ili da postanete softverski ili web developer, to možete da uradite putem edukativnih programa u oblasti programiranja, koji su najbrži i najefikasniji način učenja, jer su koncentrisani na praktičan rad, a izučavanje teorije je svedeno na minimum. Ali obratite pažnju – ako želite da steknete znanja koja će vam omogućiti da se zaposlite, kratki kursevi vam neće mnogo pomoći. Obuka mora da traje najmanje 12 meseci, jer je za usvajanje znanja neophodno da radite na praktičnim projektima.