Paano Mag-aral ng Programming?

Ilang tips para sa mas mabisa at mabilis na pagkatuto ng programming.

Gusto ko sanang ikuwento kung paano ko naigapang ang buong buhay ko habang nag-aaral ako ng Computer Science sa kolehiyo nang walang device. Pero hindi ko na gagawin iyon dito sa intro. Simulan na natin agad ang tips.

Humanap ng Mapagkakatiwalaan at Angkop na Source

Dahil sa pag-boom ng information superhighway, mas marami na tayong puwedeng mapagkunan ng impormasyon. Kaya ang hamon sa atin ngayon ay kumuha ng impormasyon mula sa mga mapagkakatiwalaang source.

Paano ba malalaman kung mapagkakatiwalaan ang isang source? Una sa lahat, trustworthy ito kung galing ito sa gumawa mismo ng technology na gamit mo. Halimbawa, kung nag-aaral ka ng Web development, wala nang mas mapagkakatiwalaan pa kaysa sa Web Standards documentations mula sa World Wide Web Consortium. Kung nag-aaral ka naman ng Java, wala nang mas mapagkakatiwalaan pa kaysa sa documentation ng Java.

Pero gaya ng mapapansin mo, masyadong teknikal ang mga ito. Hindi ganoon kadaling matuto gamit ang mga ito. Kaya tayo humahanap ng mga tutorials. Ang maganda rito, bihirang-bihira na magkaroon ng maling impormasyon tungkol sa programming. Kaya naman kung ano na lang ang lumabas sa results ng isang Google search, iyon na agad ang pinipili mo.

Ang salitang dapat dito ay angkop. Ibig sabihin, ginawa ba para sa iyo ang impormasyong nakuha mo, o para sa mga may experience na? Sino ba ang target audience ng information na iyan? Anong mga bagay ang dapat na alam na ng mga tao bago nila maintindihan ang information na ito?

Mag-program sa Papel

Tama, mag-program sa papel. Napakalaki ng pakinabang nito sa mga taong walang magagamit na device para mag-aral. Sa katunayan, ako mismo ang isa sa may pinakamalaking pakinabang mula rito. No’ng nasa unang dalawang taon ng college ako, wala akong laptop o computer na magagamit. Kaya ang ginagawa ko, sinusulat ko sa papel ang codes na naiisip ko. Especially kapag gawaan ng case study, bumibili ako ng isang pad ng intermediate pad paper, at isang set ng mga ballpen na iba-iba ang kulay (hindi na mahalaga ang brand, mas pinipili ko iyong mumurahin). Pagkatapos isinusulat ko sa papel ang naiisip kong code na may kasama pang syntax highlighting na parang nasa code editor ako.

Malaking tulong ito sa lahat kahit sa mga may magagamit na laptop o computer. Una, kung nasa papel ang code mo, may isa ka pang backup ng code. Pangalawa, sinasabing katumbas ng pitong ulit na pagbabasa ang isang beses na pagsulat, kaya mas tatatak sa isip mo ang logic. At hindi gaya ng actual programming sa isang computer, mabagal ang proseso ng pagsusulat gamit ang kamay. Dahil dito mas nare-relax ang utak mo at mas makakapag-isip ka nang malinaw.

Magpatulong sa Iba

Huwag mahiyang magpatulong sa iba. Kung may kilala kang magaling mag-program, hindi sila mag-aatubiling tulungan ka. Hindi ka nila ipapahiya (maliban na lang kung masama talaga ang ugali nila); sa katunayan, sila pa mismo ang tututok sa iyo para mas lalo kang matuto. Magtanong ka lang, makakahanap ka ng taong tutulong sa iyo.

Eh paano naman kung ako lang mag-isa ang nag-aaral? Marami kang puwedeng tanungan sa Internet! Mag-email sa mga sikat na developer (sumasagot sila sa mga tanong, proven na iyan). Mag-message sa mga Facebook page tungkol sa programming (puwede kang mag-send ng message sa Antares Programming Facebook page kung may tanong ka). Puwede ka ring sumali sa mga Facebook groups tungkol sa programming.

Panoorin ang Iba Habang Nagpo-program

Maraming developer ang nagla-livestream habang nagko-code sila. Marami nito sa Twitch at YouTube. Kung wala ka namang Internet, puwede mong panoorin ang kakilala mong magaling mag-program. At huwag kang mahiyang magtanong kung bakit iyon ang pinili nilang logic na gamitin sa halip na ibang paraan. Ipapaliwanag nila sa iyo iyon, at kadalasan (nangyayari sa akin ‘to palagi) nari-realize nila na nagkamali sila kaya makakatulong kang ma-improve ang program na ginagawa nila.

Gamitin ang Suggestions ng IDE mo

Noong 3rd year college na ako, niregaluhan ako ng tito ko ng laptop. Pero ang naging problema naman para sa akin, wala akong Internet. Kaya naging takbuhan ko ang mismong mga IDE na ginagamit ko: Visual Studio, Android Studio, at Visual Studio Code. Kapag nagta-type ako sa IDE ng code, may mga suggestions na lumalabas. Lahat ng nasa suggestion, sinusubukan kong gamitin.

Ang maganda sa mga IDE, may kasama silang integration sa mga documentation ng programming language na available offline kasama ng compiler ng programmig language. Kaya hindi lang sila nagbibigay ng code suggestions, ine-explain din nila kung ano ang nagagawa ng code snippet na iyon, ang mga parameters na kailangan mong ipasa, at iba pang information. Bukod pa riyan, magiging mas maalam ka tungkol sa tool na ginagamit mo, at magiging mas effective kang developer dahil dito. Malaking bahagi ng natutuhan ko sa programming ay galing sa technique na ito, at ilang beses na rin akong naisalba nito sa mga hands-on at practical exam sa college.

Tumingin sa Source Code

Mabuti na lang at nasa age na tayo ng open source software. Nandiyan ang Github na nagho-host ng source code ng ilan sa pinakasikat na software sa mundo, gaya ng Visual Studio Code at Linux. Malaki ang maitutulong nito sa iyo lalo na kung babasahin mo ang code nito. Hindi mo matututuhan kung paano mag-program sa pagtingin ng code ng ibang tao. Sa halip, matututuhan mo ang best practices at estilo ng pagko-code. Kadalasan kasing napakakomplikado para sa mga beginner ang mga source code na ito ng mga software na ginagamit ng maraming tao, kaya mahihilo ka lang kung susubukin mong intindihin lahat. Kaya naman mag-focus sa pagtingin sa style ng pagko-code na ginamit.

Malamang na gumagamit ka rin ng StackOverflow. Sa halip na basta i-copy-paste ang code, subukan itong i-type ng sarili mong kamay. Sa ganitong paraan, mapipilitan kang tingnan ang source code at, possibly, magkaroon ng interes na intindihin ang code. Basahin din ang paliwanag kung bakit ito ang code na lumutas sa problema ng nagtanong (na dapat binasa mo rin).

Ituro sa Iba ang Natututuhan Mo

Isa ako sa numero unong testigo sa kung gaano ka-effective ang technique na ito. Hindi mo lang magagamit ito sa programming; magagamit mo rin ito sa lahat ng iba pang bagay na gusto mong matutuhan. Pag-aralan ang topic na para bang ituturo mo ito sa iba. Kadalasan, sapat na na magkaroon ka ng ganitong mindset. Pero kung talagang ituturo mo ito sa iba, mas magiging effective ito.

Bilang lead writer ng Antares Programming, nagsusulat ako tungkol sa mga bagay na matagal ko nang alam. Pero hindi ka makakapaniwala kung gaano karaming impormasyon ang magiging mas madaling intindihin para sa ‘yo once na inaral mo sila para ituro sa iba. Kapag itinuro mo kasi sa iba ang isang impormasyon, gagawin mo ang lahat para maging mas madali iyon para sa kanila, at sa ganitong process, makakahanap ka ng mga paraan para ituro iyon at mas maunawaan sa mas madaling paraan.

Hamunin ang Sarili Mo

Ang keyword dito ay side projects. Huwag makontento na gumawa lang ng case study o thesis na in-assign sa iyo ng university o college mo, o ng client mo. Laging subukan ang mas mahihirap na bagay. Gumawa ka ng mga software na magagamit mo mismo. Hindi mahalaga kung ano ito o kung gaano ito kalaki; puwede kang gumawa ng grade calculator, budget allocator, study timer, sarili mong code editor, sarili mong programming language—walang limitasyon ang puwede mong maisip na gawin. Huwag mong itanong kung puwede bang magawa ang isang bagay; laging posible, ang dapat mong alamin ay paano. Lahat ng impormasyong kailangan mo ay available sa iyo, ang kailangan mo lang ay inspirasyon at sipag para makapagsimula—at matapos—ang side project na napili mo.

Huwag mong itanong kung puwede bang magawa ang isang bagay; laging posible, ang dapat mong alamin ay paano.

Conclusion

Kahit na marami kang nakuhang tips sa article na ito, tandaan na mga tips lang ito. Sa huli, ang ilan dito ay puwedeng mag-work para sa iyo, ang iba naman hindi. Pinakamahalaga pa rin sa lahat na alam mo ang sarili mong learning style at gamitin iyon sa advantage mo.