Prenosimo kratak tekst „Zašto volim programiranje” sa bloga Henrika Varnea Misli o programiranju.

***

Obožavam programiranje. Otkad sam kupio svoj prvi računar (VIC-20), fascinira me računarsko programiranje. Mnogo godina nisam razmišljao o tome zašto toliko uživam u njemu — jednostavno sam znao da je tako.

Ali to se promenilo kada sam pročitao „Mythical Man-MonthFreda Bruksa. Većina ljudi povezuje tu knjigu sa Bruksovim zakonom: dodavanje ljudi u projekat koji kasni učiniće da projekat dodatno zakasni. Ali za mene to nije najbolji deo knjige. Najbolji deo je jedna stranica na kraju prvog poglavlja, naslovljena Radost zanata.

Tu je Fred Bruks prilično rečito izrazio ono što volim kod programiranja.

  1. Sama radost stvaranja. Programiranje se u osnovi bazira na stvaranju rešenja za probleme. Na kraju dana stvorili ste nešto što tog jutra nije postojalo i to samo po sebi zadovoljava.
  2. Zadovoljstvo pravljenja stvari koje su korisne drugim ljudima. Jedno od većih zadovoljstava koje pruža posao programera je kada vidite kod koji ste vi napisali u aktivnom sistemu koji koriste drugi ljudi, posebno ako im on na neki način poboljšava život.
  3. Fascinacija oblikovanjem složenih objekata nalik na slagalicu sa mnoštvom preplićućih delova, i posmatranje kako rade u suptilnim ciklusima, odražavajući posledice principa koji su u njih ugrađeni na samom početku. Vrlo dobro rečeno. Ne samo da programi imaju složenu strukturu i zavisnosti, postoji i dinamika interakcije između delova tokom izvršavanja programa. Zaista najveća slagalica!
  4. Radost neprestanog učenja, koja potiče iz raznolike prirode zadatka. Dok pravite program, stalno produbljujete svoje razumevanje, kako problema, tako i rešenja. Pored toga, skoro da ne postoji granica za ono što možete naučiti da biste poboljšali svoj zanat — jezike, algoritme, metodologiju, alate, frejmvorke.
  5. Oduševljenje radom u tako prilagodljivom medijumu. Programer, poput pesnika, većinu svog posla obavlja jako blizu čistom mišljenju. Svoje dvorce gradi u vazduhu, iz vazduha, stvarajući naporom mašte. Ovo mi je možda i najdraži razlog sa spiska — pronicljiv i divno formulisan. Bruks dalje primećuje da je „ipak programski konstrukt, za razliku od pesnikovih reči, stvaran u smislu da se kreće i funkcioniše, proizvodeći vidljive izlaze odvojene od samog konstrukta“. Da!

 

Na ovih pet Bruksovih razloga dodao bih samo jedan:

  1. Izražajnost koda. Zvuči kontraintuitivno, s obzirom na strogu specifikaciju programskog jezika i relativno malo konstrukcija koje sadrži (u poređenju sa prirodnim jezikom poput engleskog), ali postoji gotovo beskonačan broj načina za pisanje programa za rešavanje datog (netrivijalnog) problema. Prvo i najvažnije, vi kao programer imenujete klase, metode i promenljive. Ali vi takođe odlučujete o algoritmu, particionisanju logike i na kraju o rasporedu. Svi ovi faktori daju programeru veliku slobodu u izražavanju rešenja u kodu.

 

Eto — šest razloga zašto volim programiranje!