UP Computer Science Interns' Blog

May 28, 2010

Lessons…

Filed under: dcs_200719929 — shippou @ 5:21 pm

Huling araw ko na sa trabaho ngayon. Huling araw na rin ng blog (sabi ni Mitch). At huling araw (sana) ko nang paglalamayan ang Facebook API.

Sa mga panahong ganito, marami ang nangyayari. May nagaasam ng suweldo. May nag-e-emo. May nag-aaya na lumabas nang magkakasama pagkatapos ng trabaho. At mayroon ding sinusulit ang Internet at aircon at nagsa-cyberloaf. (Ginawa ko na ang huli kanina.)

Ngunit dahil ito ay sakop pa rin ng CS 195, nandiyan malamang ang tanong na ‘May natutunan ka ba?’ O marahil ay mas magiging makabuluhan kung ito ang tanong: “May nagawa ka ba?”

Kung ako ang tatanungin, malamang isang masaya at malungkot na ‘oo’ ang itutugon ko sa katanungang iyan.

Pero magkaiba ang pagsasabi ng ‘mayroon akong nagawa’ sa ‘ano ang aking nagawa’. Malamang, mas madaling sagutin ang nauna kaysa sa nahuli. Kaya naman sasagutin ko ang panghuli.

Alam ko, magulo ako. Kaya pagtiisan mo na lamang ako.

Ano ba ang nagawa ko?

Bukod sa natutunan kong espanyol ang ‘basura’ at isulat ang kanji ng ‘uta’, ‘ai’, ‘hi’ at ‘go’, marami akong natutunan hindi lamang sa programming languages at programming mismo, lalo na sa tinatawag nilang ‘industry’. Kaya, hindi naman sa pagyayabang ngunit dulot ng walang maisip na magandang paksa para sa blog entry na ito, narito ang mga bagay na masasabi kong natutunan ko na magiging napakahalaga sa magiging trabaho ko sa labas ng unibersidad:

1. Mas masaya ang magtrabaho ng may kasama kaysa nag-iisa.

Hindi naman sa pagiging tamad o ano (kasi nga naman puwede namang siya o sila na lang ang gumawa tapos ikaw na lang sa mga madadaling bagay tulad ng documentation), ngunit mas maasarap ang may kasama, lalo na kung kakilala mo. Kahit na hindi nila alam ang mga pinaggagagawa mo o wala silang maitutulong sa iyo, masarap pa rin ang may mga katrabaho ka. Kahit BI (bad influence) sila o mahilig mahilig mag-cyberloaf o pumapasok lang sa opisina araw-araw para magpalamig, iba pa rin ang may kasama kumpara sa nag-iisa ka. Dahil isang motivation ang pagkakaroon ng mga tinatawag na ‘officemates’ para pumasok ka sa trabaho at malagpasan ang tuksong huwag na lang pumasok dahil nakakabagot naman sa opisina.

2. Mahirap makahanap ng matinong documentation.

Kaya siguro nagiging ‘in’ ang software engineering dahil sa rason na ito. isang halimbawa na lamang ang API ng Facebook. Sabagay hindi ko sila masisisi dahil kasalukuyan silang naglilipat mula sa luma nilang REST API papuntang Graph API. Ngunit, sa tingin ko, kaya naman nila sigurong gumawa ng matinong documentation tulad ng ginawa nila sa REST API.
Pero, ano ba ang matinong documentation? Siguro magandang ipaliwanag mo sa mga gagamit ng iyong API kung ano ang ginagawa nito, para saan ito, at pano na-implement ito. Ngunit sa tingin ko ay mas maganda na sabihin kung paano ito gamitin. At diyan sila nagkulang, dahil kumbaga, puro ‘theories’ lang sila at walang aplikasyon. Ang masama pa, nirerekomenda nila ang paggamit ng bago nilang API para sa mga bagong developers sa kabila ng pagiging pangit ng kasalukuyan nilang documentation. Hindi lang ako ang nakaranas ng ganito, marami pang iba sa iba’t-ibang panig ng mundo: mga tipong gumagana ito kahapon pero bakit hindi na ngayon (na wala namang ginagalaw sa code),o may error na wala naman sa documentation na bigla na lang lumilitaw.

At kaakibat ng nakasulat sa taas…

3. Mahirap dumepende sa code ng iba.

Kaya siguro ayaw ng mga kumpanya na basta-basta na lamang umalis ang mga programmers nito, lalo na kung orihinal na gawa nila ang aplikasyong madalas nilang ginagamit (yung mga tinatawag na ‘mission-critical applications’). Kasi nga naman, aaralin na naman ng mga baguhan ang code mo. Hindi lamang ito matagal , kung hindi mahirap din, kasi sa una pa lamang ay hindi naman pareparehas ang coding style ng mga programmers. At nakakatamad magbasa ng code ng iba, lalo na kung hindi ito documented nang matino.
Tulad na lamang sa kaso ko. Hindi ko mapagana ang ipinagmamalaki ng Facebook na kanilang PHP SDK (yung luma at bago). Hah, pati nga ang kanilang JavaScript SDK ay hindi ko rin magamit. Aminado akong nakakatamad basahin ang code nila. Wala rin silang FAQ o kahit na isang lupon lamang ng mga madalas na makitang mga problema at ang mga posibleng mga solusyon para dito.
Sabihin na nating spoonfeeding, pero kailangan din nating isaalang-alang na ang gusto ng isang developer ay makagawa ng isang makabuluhang bagay sa loob ng maikling panahon, at hindi lahat ng tao ay sinisipag magbasa o may kakayahang intindihin ang gawa ng iba. Kaya nga may API diba para mas mapadali ang trabaho at magsilbing ‘wrapper’ para sa mga bagay na madalas na gawin? Kung kinakailangan mong basahin ang source code para lamang maintindihan kung paano ito gumagana (o kung paano solusyunan ang mga lumilitaw na mga mali), e para saan pa ang API mo? Mas maganda pa atang i-code mo na lamang nang mano-mano kaysa gamitin ang API na iyon. Kumbaga, ‘reinvent the wheel’.
At sa pagkainis ko sa hindi magandang documentation ng Facebook, iyon ang ginawa ko.

4. Kailangang aminin sa sariling marami ka pang hindi nalalaman.

Para sa mga ma-pride na mga tao, mahirap tanggapin ito. Ngunit kailangan, dahil ikaw din naman ang makikinabang. Pagtawanan ka man ng iba riyan, e bakit, sila ba ang nakakaranas ng mga problema mo? At ang mas maganda, mas makikilala mo ang sarili mo at magiging inspirasyon mo ito upang matuto pa nang mas marami.
Aminado ako na nangapa ako sa paggamit ng Facebook API. Baka nga sa tingin ko  naging dahilan ko lamang ito upang patagalin ang trabaho at hindi gumamit ng JavaScript. Ngunit kahit papaano ay ako rin ang nakinabang, kasi mas naintindihan ko kahit papaano kung papaano gumagana ang lahat, at medyo proud ako kasi nagawa ko na mpagana ang aplikasyon ko na hindi man lang gumagamit ng kanilang PHP SDK (sa madaling salita, mano-mano kong ginawa iyon base pa rin naman sa API nila ngunit nang hindi gumagamit ng PHP code nila).

5. Ayos lang (at normal na ugali) ang cyberloafing.

Siguraduhin lamang na hindi naninita ang mga amo mo, tulad dito sa amin. At kung naninita man, siguraduhing hindi ka mahuhuli. Siyempre nga naman, para kang ewan kung gagawa ka na nga lang nang mali ay magpapahuli ka pa. Ngunit para sa iyong ikakabuti, mas maganda nang huwag mo na lamang itong gawin.
Pero ang tanong; bawal ba ang cyberloafing? Depende sa kumpanya. Kung sadista ang amo mo, siguro mas mabuting lumipat ka na nang kumpanya. Kung napaabisuhan ka naman, siguro puwedeng palihim mo itong gawin, ngunit siguraduhin lang na may nagagawa kang matino at hindi lang na ito na lang palagi ang iyong ginagawa (yung mga tipong pumapasok ka lang ng opisina para mag-downlaod ng porn). Kung hindi ka naman sinisita masyado ng mga amo mo, ayos lang, basta siguraduhin mong may nagagawa kang matino. Parang sa pag-aaral lang din naman iyan, hindi maganda sa isang mag-aaral ang puro aral. Ngunit siyempre, hindi rin naman maganda sa isang mag-aaral ang palaging nagdo-DotA kahit araw ng exam, lalung-lalo na sa mga manggagawang katulad nating araw-araw ang exam.

6. Hindi lahat ng gagawin mo, sasabihin ng boss mo. Kailangang marunong ka ring mag-isip sa sarili mo.

Halatang-halata naman ang katotohanang ito, ngunit madalas nating makalimutan. Misan, dahil sa katamaran nating mag-isip nang mag-isa, minsan naman ay dahil sa wala naman din tayong maisip. Napakahalaga nang punto na ito lalo na kung ikaw lamang ang gumagawa ng proyektong naibigay sa iyo at walang masyadong pakialam ang boss mo kung kailan ito matatapos (samakatuwid, basta matapos, kung kailan man iyon, bahala ka).
Siyempre, hindi rin naman tamang gawin ito bilang kadalihanan na hindi mo nagawa ang naibigay sa iyong proyekto. Mahirap at nakakahiya kayang wala man lamang maipakita sa mga amo mo. Nakakahiya rin kasi sumasalamin ito sa iyo, na tila bang sinasabing wala kang kuwenta at wala kang magagawa.

Kaakibat nito ang…

7. Matutong magtanong.

Minsan, pride na rin ang dahilan kung bakit ayaw magtanong ng isang tao. Madalas ay kahihiyan. Dahil sa pagtatanong, inaamin mo na rin sa sarili mo na mayroon kang pagkukulang na mapupunan lamang ng taong tinatanong mo. Ngunit siguraduhin lamang na makabuluhan ang itatanong mo para hindi rin magmukhang kahiya-hiya sa pinagtatanungan mo.

8. Nakakabagot ang weekend.

Medyo kakatwa man, ngunit masasabi kong masyado akong nahuhumaling sa trabaho kaya naman gusto ko palaging nasa opisina. Siguro dahil BI din ang kapaligiran ko sa aking tinutuluyan, kaagapay pa ang kawalan ng Internet connection, kaya naman mas gusto kong naririto sa opisina kaysa sa dormitoryo. At tsaka nakakadala rin sa opisina dahil lahat ay nagtatrabaho (nga ba?).

9. Mahirap mag-cram sa trabaho.

Medyo ipanagmamalaki ko na kahit papaano’y hindi ako nag-cram dito sa trabaho ko. Oo, pumasok sa isip ko na hindi ko ito matatapos sa oras (aminado ako na hindi pa nga siya pulido, ngunit ayos pa rin dahil kahit papaano’y may maipapakita akong ebidensiya na hindi lang ako nanood ng Digimon dito sa opisina), pero kahit papaano’y hindi ako mangangailangang magsinungaling sa mga amo ko na may nagawa ako maski wala.
Hindi lamang iyong pressure ang inaalala ko sa pagka-cram, pero ang sinasabi rin nito tungkol sa iyong sarili: na isa kang marahil tamad na tao. Hindi naman sa sinasabi ko na lahat ng nagka-cram ay ganoon. Sa katunayan nga, may mga taong mas nakakagawa ng mga magaganda at hindi kapani-paniwalang mga bagay kapag nagmamadali sila kaysa sa hindi, at hinahangaan ko sila. Ngunit hindi lahat ng tao ay ganoon, at madalas ang dahilan kaya nagka-cram ang isang tao ay katamaran. Iyong bang tinatawag sa Ingles na ‘procrastination’, na kilala naman sa atin bilang ‘mamaya na’.

At ito ang sa tingin ko ang pinakamahalaga:

10. Mag-enjoy sa trabaho.

Para sa akin, ang trabaho ay hindi dapat maging sagabal sa buhay ngunit dapat panggalingan ng saya at inspirasyon para harapin ang buhay araw-araw.
Siyempre, iba-iba ang depinisyon natin ng pagiging masaya. Sa iba siguro ay ang saya ng ga kasamahan sa trabaho (at isa ako sa kanila). Sa iba naman siguro ay masaya ang magsulat ng code, o di kaya’y manood ng YouTube habang nagtatrabaho. Ngunit ang mahalaga ay ang makahanap ka ng ikasasaya sa trabaho, dahil ito ang magiging dahilan mo upang pumasok araw-araw at magtagal sa trabaho.
Para sa akin, mas pipiliin ko na ang trabahong mababa ang suweldo ngunit masaya ako sa ginagawa ko kaysa naman sa sandamukal na suweldo ngunit sukang-suka na ako sa boss ko. Parang sa pag-aaral din iyan: mas malaki ang tsansa mo na makakuha ng uno kung nasisiyahan ka sa asignaturang kinukuha mo kaysa naman sa katulog-tulog na kursong may guro pang nangangain ng tao. Ngunit minsan, sa pagiging mukhang-pera ng mundo natin ngayon, nakakalimutan natin ang pinakamahalagang leksiyon na ito at napupwersa tayong gumawa ng mga bagay na hindi naman natin gusto.

Grabe a.. ang haba na niya pala. Pero kahit papaano, masasabi kong hindi lamang guni-guni ang mga ipinaglalalagay ko dito, at ako’y natutuwa na mayroon akong mga natutunan sa nakalipas na summer na ito.

Sa mga nagtatanong kung ano ba ang pinagawa as akin ng mga boss ko, pumunta lamang sa

apps.facebook.com/survey_toolkit

.

Ang problema ko na lang: ayusin ang hitsura ng aplikasyon sa loob ng Facebook, ay tanggalin ang mga bagay na hindi napat dapat ipinapakita sa mga gagamit nito. At bukas ko na gagawin iyon (kahit na tapos na ang trabaho).

Advertisements

Create a free website or blog at WordPress.com.

%d bloggers like this: