assalamualaikum
hai! hari ni i nak share again and again about programming sebab oh well, i spent 1/3 of my day coding duh hahaha. tapi asbab yang lebih membawa kepada penulisan ini ialah sebab i nak cerita yg oh how little i know about programming when i was in college in contrast to actually programming as a job. so disebabkan i rasa expectations perkerjaan programmer masa di university agak berbeza dengan the actuality of being in the industry, i think i would love to share some tips that helps me drive through my day to day job. but u know what, this entry is very specific to my job so it might not pique your interest tapi ambillah intipati entry ini sebagai perkongsian ilmu okie.
picking your go-to programming language
i think it's already a well-known fact yang dekat dunia ni ada banyak programming languages dan semestinya macam rambang mata nak pilih nak master language mana satu. ada sesetengah orang stick dengan language yang belajar dekat uni, ada sesetengah minta advise daripada lecturers, ada yang lagi best sampai bertapa dekat stackoverflow untuk tahu language mana senang and susah and ada juga yang literally search kat google "what is the top programming language in world 2022". exactly my keyword years ago hahaha.
tapi the secret to picking your go-to language should not be based on these searches, your interest/opinion atau the reputation alone. my tip is, do your research on LinkedIn. caranya, search guna keyword macam "web developer jobs" dan cuba tengok company dkt malaysia ni banyak cari programmer untuk language apa. my advise is to kaji the market-- then choose your language. minat tak minat letak tepi sebab all languages have the same challenges. kalau minat programming tu, tak kisah language apa tetap akan minat.
however, kalau u dah ada niche sendiri, don't worry too much. you can always search for a job with more specific keywords contohnya macam PHP Developer, .Net Developer -- mesti ada company yang nak pakai expertise in other languages than the so-called popular ones sebab setiap language ada specialty dia sendiri. and like i said before, switching language is always possible if your heart's in it.
real job description from 3 big companies in Malaysia. all looking for programmers experienced in angular or javascript.
keeping up with technology stacks
i pernah ketengahkan topic ni dekat entry yang lepas tapi benda ni penting so kena repeat lagi. ketahuilah yang technology is progressing very fast. nanti di masa depan kita cakap psl github co-pilot pula mesti korang akan amazed dengan technology ni. so disamping jadi expert dalam certain certain programming languages, korang juga kena bersedia untuk adapt and utilize the frameworks and libraries that come with them.
contoh, python ada framework macam django dan flask. javascript ada node.js. C# ada ASP.net dan sebagainya. framework ni memudahkan urusan kita nak coding tapi dia ada more rules and syntax yang differs from the other. so kena sentiasa keep up and tahu tentang bila orang sebut technology stack ni, org selalunya tak refer pada language-- tapi refer kepada framework yg digunakan.
sample of technology stacks that you can mix and match
git
topic git ni pun pernah i ceritakan dekat entry lama. basically git ni digunakan untuk jaga code versions. code version ni termasuklah kalau 2-3 orang sedang coding dkt file yang sama, mcm mana nak pastikan code tu tak overwritten by each other adalah dengan menggunakan git.
aku rasa antara kesalahan besar university adalah tak introduce git ni dalam syllabus (or at least my uni). git ni ended up jadi skill yang memang disebut sebut dalam semua JD bila cari kerja. semua nak programmer tu ada kepakaran menggunakan git. so silalah biasakan diri guna git walaupun untuk personal projects disamping mastering any programming languages ya.
my project's git. nampak tak a few programmers collaborate on the same project and we can merge our codes together. this is how git works
Read more about git for beginners
ide and extensions
topic ni i tak terlalu mahir tapi for my current ide (visual studio code), ada extensions yang kita boleh install. nampak mcm extras and bonuses je extensions ni tapi sebenarnya kalau kita guna extensions yang betul, ia boleh improve efficiency of coding. contohnya mcm untuk mark indentation, untuk highlight syntax errors, untuk launch live server dan sbgnya. nanti di lain article i boleh share some of my favorite extensions for vscode.
rainbow indentation untuk tau which code belongs to which nest
code linter helps explain what is unnecessary/false/redundant in codes
coding conventions
rasanya semua student computer science tahu tentang coding conventions termasuk naming conventions mcm camel case (camelCase), pascal case (PascalCase), snake case (snake_case), kebab case (kebab-case) dll. sebenarnya naming styles ni bukan saja saja boleh pilih nak pakai yang mana. how we usually roll is we follow our team. mcm my team, kalau css akan pakai kebab case untuk css, dan camel case untuk logical programming tapi depends. malah, ada juga yang memang follow convention yang digunakan kat seluruh dunia. sometimes dkt documentation for each framework pun ada bagi suggestions.
some tips to follow:
#1 use verbs to describe method names
contoh ~ calculateTime(), sendAddress()
#2 append verb to be untuk namakan boolean variables
contoh ~ isSelected, isDirty, isCalculated
#3 give meaningful names
contoh salah ~ a = b + c
contoh betul ~ sum = num1 + num2
#4 gunakan uppercase untuk constants
contoh ~ PI (pi value yg untuk kira bulatan tu, kan constant, kita tak ubah value dia)
dan banyak lagi boleh study sendiri yer hehe.
notes from Devopedia
Read more about coding naming conventions
akhir sekali adalah
project framework
selalunya dalam project kita akan follow set of rules untuk memastikan tak huru hara team kita. antara rules yang digunakan selalu kita belajar dlm kelas software engineering, ada Scrum Methodologies, Waterfall Programming, Extreme Development dsb. kalau dekat etiqa kita pakai scrum methodologies. ini pun nak tahu nak kena faham konsep yang mana, kena tengok company kat linkedin selalunya akan bagitahu mereka pakai project framework yang mana.
bunyi mcm remeh, tapi important untuk faham sebab barulah korang tak confuse mcm mana deadline ditetapkan, macam mana pembahagian task, siapa nak refer kalau nak negotiate impediments dan sebagainya.
to end this entry, i think that almost 70% of what i experience at work were never told in college classes, may be sbb setting berbeza or it's just syllabus at my college tapi banyak juga yang belajar dekat uni, i couldn't complain. tapi if you are interested in the field, please take my tips as a part of your learning process sbb trust me, these tips really helped me get through my days.
Tiada ulasan:
Catat Ulasan