Šta to, u stvari, rade programeri?

Programiranje

Šta to, u stvari, rade programeri?

 

Kad čujete ovakvo pitanje, možda vam dođe da kažete „Kako šta rade? Pa, programiraju!” Međutim, odgovor na ovo pitanje nije baš tako kratak i jednostavan. Da bismo videli zašto je tako, krenimo najpre od samog programiranja.

Programiranje

Programiranje bi najjednostavnije moglo da se objasni kao pisanje veoma detaljnih uputstava nekoj mašini (desktop računaru, mobilnom telefonu, robotu). Na primer, ako želimo da nam robot donese čašu vode sa stola, moraćemo da mu najpre kažemo da dođe do stola, zatim da podigne jednu ruku, okrene je ka stolu, raširi prste ili hvataljke, pomera je sve dok ne dođe par milimetara ispred predmeta koji želimo da nam donese, i tako dalje.

Suština je u tome da prilikom pisanja uputstava moramo da budemo veoma precizni, pošto kompjuteri (još uvek) ne mogu samostalno da misle. Da biste sebi to bolje predstavili, evo malog proširenja našeg primera.

Ako kažete svome veoma poslušnom mlađem bratu ili sestri da vam donese čašu vode, oni će to i učiniti. Ne moramo da im kažemo gde je slavina, gde stoji čaša, ili dokle bi trebalo da je napune. Sa računarima je, ipak, malo drugačije – potrebno je da im se detaljno objasni svaki korak.

Programeri

Možda će neko, na osnovu ovoga što smo napisali, da pomisli da programiranjem mogu da se bave samo oni koji dobro proračunavaju sve korake, ili su naprosto genijalci. Svakako da te osobine pomažu, ali nisu presudne. Najbitnije je da budete dobri u logičkom razmišljanju i pravilno razmišljate o problemima koje želite da rešite programiranjem.

Da li to znači da programeri moraju da znaju da popravljaju kompjutere? Naravno da ne. Poznavanje hardvera iz kog se sastoje računari na kojima svakodnevno radimo uopšte nije preduslov da biste programirali. Primera radi, poznavanje hardvera vam uopšte nije potrebno da biste programirali svoju igru koristeći Scratch, ili ClickTeam Fusion.

„Okej,” reći će neko „onda programeri sigurno moraju da znaju sve programske jezike.” Pa, ne baš. Iako postoje ljudi koji poznaju i služe se velikim brojem svetskih jezika, veoma je malo onih koji se bave kvalitetnim pisanjem na svakom od jezika koje poznaju. Slično je i sa programskim jezicima. Izbor programskog jezika zavisi od toga šta želite da programirate, da li želite da vodite računa o tome šta se dešava sa procesorom i memorijom dok se izvršava vaš program, i tako dalje.

Korisnici programa

Pre no što programeri počnu da pišu programe, moraju da se posavetuju sa onima koji će ih koristiti. Tu će upoznati zahteve krajnjih korisnika programa. Ovaj korak u stvari određuje i to kako će program da izgleda, koje će funkcije da ima, da li će pružati potpunu slobodu svojim korisnicima, i tako dalje. Drugim rečima, od razgovora sa krajnjim korisnicima u velikoj meri zavisi dizajn programa.

Bagovi

Ako provodite malo više vremena za računarom, najverovatnije ste čuli za bagove. Prostim jezikom rečeno, u pitanju je neočekivano ponašanje nekog programa – neočekivani prekid rada, zaglavljivanje, nepredviđena nemogućnost da se sačuva dosadašnji rad i tome slično. Pojava bagova i njihovo rešavanje je nešto sa čime se susreće svaki programer.

Zašto se bagovi uopšte javljaju? Evo nekoliko razloga:

  • kôd (ono iz čega se sastoji jedan program) je na nekim mestima loše napisan
  • programer nije uzeo u obzir neko moguće ponašanje jednog korisnika
  • program ne može da podnese istovremeni rad većeg broja korisnika (na primer, neka MMO igra nije predviđena za više od 100 istovremenih igrača)

 

Radni dan jednog programera

Imajući u vidu sve što smo do sada napisali, najzad možemo da odgovorimo na pitanje iz naslova.

Programeri:

  • osmišljavaju (dizajniraju) programe
  • pišu programske redove iz kojih se sastoji svaki program
  • testiraju programe koje su napisali, i otklanjaju bagove
  • pišu programsku dokumentaciju (uputstva za krajnje korisnike, ali komentare vezane za delove kôda)
  • održavaju ranije napisane programe (dodavanje novih funkcija i opcija, otklanjanje novih bagova)
  • rade u timu sa drugim programerima
  • sastaju se sa svojim šefovima (starijim programerima) i klijentima (onima za koje se piše neki program)
  • nailaze na prepreke koje ne umeju uvek odmah da reše
  • nerviraju se (pa da, ne može bez toga)

Naravno, ovo je radni dan jednog programera koji radi u nekoj softverskoj kompaniji. Oni programeri koji rade samostalno, i uz to samostalno razvijaju i programiraju svoje igre, moraju da znaju i da crtaju i komponuju, ako ne žele da koriste tuđe radove.

Za kraj, evo nekoliko pitanja za sve one koji se posle ovog teksta dvoume da li je programiranje za njih (infografiku koja sadrži ta pitanja, i koja je poslužila kao inspiracija za ovaj tekst, možete da pronađete na sajtu Karla Čea).

  1. Da li vas zanimaju logički problemi i zagonetke?
  2. Da li želite da učite nove stvari (većinu njih, samostalno)?
  3. Da li imate dovoljno strpljenja i upornosti da rešite složene probleme?
  4. Da li vas zanima kako stvari oko vas uopšte rade?

 

Ako ste bar dva (ili tri!) puta puta odgovorili potvrdno na ova pitanja (ukupno, ne samo na jedno od njih!), čestitamo! Ispunili ste jedan od preduslova da počnete da se bavite programiranjem.