Intervija ar Viesturu Teivānu,
SIA "Draugiem.lv" jaunāko programmētāju
Kā izvēlējies programmēšanas tehniķa profesiju?
Tā mani interesēja, kopš mājās parādījās dators. Apmēram 8. – 9. klasē darbojos Rīgas Skolēnu pils datorlaboratorijā. Tur pirmo reizi saskāros ar programmēšanu, un pakāpeniski tā mani ieinteresēja arvien vairāk, lai gan sākumā tikpat ļoti saistīja arī datora tehniskā puse. Apgūstot datorzinības, ar laiku saproti, ka „dzelži*” ir tikai pamats. Kaut ko ik pa brīdim esmu programmējis pats sev, esmu palīdzējis citiem, tēvam izveidoju programmu e-pastu filtrēšanai un darba uzdevumu veidošanai.
Kur apguvi programmēšanas tehniķa arodu?
Mācījos Valsts tehnikumā par datoru tehniķi – pamatā apguvu tehniku, bet mazliet arī programmēšanu. Uzskatu, ka programmētājam ir noderīgi pārzināt „dzelžus*”, lai labāk saprastu, kā efektīvāk uzrakstīt programmu, kuru lietos tā vai cita datortehnika. Piemēram, dažkārt ir labāk rakstīt kodu nevis divās, bet četrās rindās, jo dators to labāk sapratīs.
Tehnikumā ieguvu arī pirmo darba pieredzi, praksi PHP programmēšanā u.tml. Esmu programmējis spēles iPhone, bet tagad strādāju Draugiem.lv, kur nodarbojos ar tīmekļa vietnes programmēšanu. Pašreiz arī mācos RTU, lai iegūtu 1. līmeņa augstāko profesionālo izglītību programmēšanā.
Vai arī tagad nepieciešams papildus mācīties?
Dažādas darbavietas prasa zināt dažādas programmēšanas valodas. Skolā nemāca nianses, bet gan tikai pamatus, ideju par to, kā valoda darbojas, lai tu spētu to izmantot. Tas ir ļoti svarīgi, lai tālāk tu prastu meklēt sīkāku informāciju internetā. Piemēram, apgūstot C valodas, tu uzzini pašu pamatu citām valodām, kas veidotas pēc tādiem pašiem principiem, un vari tās ātri apgūt. Taču ir arī citas, tā sauktās loģiskās valodas, kuras būvētas uz pavisam citiem principiem, tās apgūt ir sarežģītāk, jo nav šī vienotā pamata.
Programmētājam jāmācās visu mūžu, jo vai nu jāapgūst jauna programmēšanas valoda, vai arī valoda, ar ko tu strādā, visu laiku attīstās. Ja tam regulāri neseko līdzi, tu sāc rakstīt nekvalitatīvu kodu. Jāseko līdzi aktualitātēm, lai tu varētu strādāt pēc mūsdienīgiem standartiem, lai programma būtu ātra, lietotājam ērta un skaista.
Kādi ir tavi galvenie darba pienākumi?
Projekta vadītājs man uzdod uzdevumu, kas jāatrisina. Piemēram, man jāuzprogrammē reklāmas lapa, kura attēlo informāciju par Draugiem.lv piedāvātajām reklāmas iespējām. Sākumā dizainers uzzīmē, kā lapai jāizskatās no lietotāja viedokļa, man jāuzprogrammē tās saturiskā puse, lai viss tā arī izskatītos un darbotos. Darbā ar interneta lapu vienmēr jāpanāk labs izskats. Mani uzdevumi ir vienkāršāki nekā vecākajiem programmētājiem. Līdzīgi kā viņi es arī domāju algoritmus un risinājumus, bet man ir dots sākuma ietvars, struktūra, ar ko sākt. Izmantoju tādas programmēšanas valodas kā PHP un HTML, mazliet JAVA SCRIPT. Strādāju arī ar datu bāzi – rakstu, lasu datus.
Kāda ir tava darba ikdiena?
Strādāju ar savu projektu – programmēju. Ja kaut kas nav skaidrs, jautāju projekta vadītājam vai dizaineram. Komunicēju ar kolēģiem, mācos no viņiem, prasu padomu. Man kā jaunākajam programmētājam ir svarīgi apgūt portāla izstrādes vidi, lai pēc tam varētu strādāt daudz patstāvīgāk.
Rakstot programmu, pats visu laiku testēju katru no uzrakstītajām sadaļām – vai viss strādā, vai mājaslapā izmaiņas parādās tādā veidā, kā plānots. Var teikt, ka programmēšana un testēšana notiek paralēli. Ja kaut kas nestrādā, jālabo. Ievēroju drošības metodes, lai programmu nevarētu uzlauzt. Noslēgumā vecākie programmētāji pārskata manu darbu, bet pašās beigās notiek „biroja testēšana” – visi Draugiem.lv darbinieki sāk lietot lapu, klikšķina visur, kur var ieklikšķināt, lai pārbaudītu, vai viss ir kārtībā.
Vai tu strādā tikai ar datoru vai arī ar kādu dokumentāciju?
Ja programmēju kaut ko vienkāršu, nekādus plānus pirms tam netaisu. Taču, ja jāmeklē sarežģīts risinājums, zīmēju uz papīra vai tāfeles shēmas vai kodu detaļas, risinājuma vadlīnijas. Bez tā nevar, jo, iedziļinoties programmēšanā, var iebraukt tik dziļi „auzās”, ka neatceries savu sākotnējo plānu. Tomēr mūsdienās viss notiek lielā ātrumā, tādēļ nav jēgas visu precīzi aprakstīt un veidot smalku dokumentāciju. It sevišķi, ja strādā ar plašai auditorijai paredzētu lietojumprogrammatūru jeb aplikācijām. Algoritmus, ko un kā darīt, izdomājam galvā. Lieliem projektiem, kas tik ātri nenoveco, bet ir ar sarežģītām prasībām (piemēram, kompānijas grāmatvedības uzskaites vai noliktavas programmatūra), ir vērts rakstīt detalizētu programmas specifikāciju un aprakstus. Citos gadījumos programmētāji vairāk strādā ar AGILE pieeju – rīkojas aktīvi un elastīgi, lai praktiskais izpildījums noritētu ātrāk nekā atskaišu rakstīšana un oficiāla plānu saskaņošana. Turklāt projekta izstrādes gaitā plāni mainās.
Vai ir atšķirība, ja programmēšanas tehniķis strādā individuāli, nelielā IT nodaļā vai lielā IT uzņēmumā?
Laikam jau atšķiras uzdevumu sarežģītība. Lielos IT uzņēmumos tu strādā pie sarežģītām programmām. Taču var strādāt, izmantojot sagataves, kuras var mainīt, pārzinot tikai pašus programmēšanas pamatus. Līdz ar to ir arī lielas iespējas strādāt individuāli.
Kādas prasmes, īpašības ir nepieciešamas, lai labi veiktu šo darbu?
Vajadzīga iztēle, jāspēj darboties ne pēc šablona, saskatīt visoptimālākos variantus, saprast, kad var lietot iemācītas lietas un kad jādomā kaut kas jauns. Īsti matemātiskas problēmas gan nav jārisina, drīzāk loģiskas – jāatrod labākie algoritmi.
Pēc rakstura programmētāji ir ļoti dažādi, lai gan daudzi ir noslēgti, intraverti. Labas komunikācijas prasmes vajadzīgas augstākos amatos – vecākajam programmētājam vai projektu vadītājam. Programmētājs pēc būtības dara to, ko viņam ir uzdevis projekta vadītājs, ļoti koncentrējas uz savu darbu, kas viņam ir visa pasaule. Bet noteikti nepieciešama zinātkāre, un jābūt tehniskam cilvēkam. Visu laiku jāiedziļinās, jo nemitīgi ir kaut kas jauns, informācijas tehnoloģijas attīstās milzīgā ātrumā.
Kādi šajā darbā ir vislielākie izaicinājumi?
Izaicinājums ir risināt problēmuzdevumus, kurus nevar risināt pēc standartiem. Grūtības programmētājiem pārsvarā sagādā sīkumi. Kad jau esi atradis risinājumu, jāvelta daudz laika, lai uzprogrammētu sīkumus, simtiem reižu jāpārbauda un jāatkārto standarta darbības. Tur arī rodas lielākā iespēja kļūdīties, kaut vai aiz neuzmanības.
Kas šajā darbā sagādā gandarījumu?
Programmēšanā man patīk tas, ka ir jāatrod risinājums problēmai. Ja izdodas, tas sniedz gandarījumu, ir rezultāts darbam. Ir aizraujoši arī izdomāt uzlabojumus, pielietot jauninājumus, radīt reālu produktu. Man pašam nav tik svarīga tā platforma vai programmēšanas valoda, ar kuru strādāju, bet gan tas, lai būtu iespējas kaut ko radīt. Galaprodukts jau arī ir tas svarīgākais, kas dod prieku ne tikai man, to var izmantot arī citi. Man jārada produkts – tīmekļa vietne, kuru varēs vairākkārtīgi izmantot un kur visu var viegli mainīt un pielāgot.
Kādas programmēšanas tehniķa profesijā ir izaugsmes iespējas?
No jaunākā programmētāja var kļūt par vecāko programmētāju. Ja ir vairāk pieredzes, var kļūt par sistēmu arhitektu vai sistēmanalītiķi. Šīm profesijām ir svarīga programmētāja pieredze, jo viņiem ļoti liels uzdevums jāsadala mazākos, jāiedomājas, kā programmētājs varētu tos paveikt. Pats arī gribētu kļūt par sistēmu arhitektu, projektēt sarežģītas programmu struktūras, jo atkārtot jau zināmus kodus, salikt tos pa kastītēm, lai viss strādātu, nav tik interesanti. Ir iespējams arī kļūt par vadītāju, bet tas atkarīgs no personības, jo nepieciešama komunikabilitāte, vadītprasmes. Arī šeit ļoti labi jāpārzina programmēšana, lai varētu kontrolēt procesu un ieteikt kādus risinājumus.
Ko tu ieteiktu jauniešiem, kuri gribētu apgūt šo profesiju?
Vajag padomāt, vai tas viņiem būs interesanti. Reizēm ar kodiem ir ilga ņemšanās, stundām nevari izdomāt risinājumu. Noteikti vajag jau skolas laikā mēģināt rakstīt skriptus, lietot vienkāršas programmēšanas valodas – vislabāk grafiskās, jo tas ir interesantāk. Piemēram, pamēģiniet Visual Basic no Microsoft vai PYTHON un PHP. Internetā ir pamācības, kā sākt programmēt gandrīz jebkurā valodā. Praktiski pamēģināt kaut ko darīt ir ļoti svarīgi, lai saprastu, vai tas patīk. Lai nav jāzaudē savas dzīves laiks nepareizi izvēlētā studiju programmā.
*elektroniskas ierīces, kas darbojas atbilstoši kādai programmai