Web Developerတိုင်း လေ့လာထားသင့်တဲ့Skill (10) ခု
အလုပ်ရဖို့ ဘာprojectတွေ လေ့ကျင့်ထားသင့်လဲ
ကျနော့ရဲ့personal accountမှာ အမေးအများဆုံးမေးခွန်းက
“အလုပ်မလျှောက်ခင် ဘာprojectတွေလုပ်ထားရမလဲ၊ portfolio/resumeမှာ ဘာprojectတွေ တင်ထားရမလဲ” ဆိုတဲ့မေးခွန်းပါ။
- eCommerce
- Interactive Game
- Information Website
- Web application using APIစသဖြင့် အမျိုးအစားတွေ ပြောလိုက်လို့ရပေမယ့် ကျနော့အမြင်အရတော့ ဘယ်လိုprojectဆိုတာထက် “အဲ့projectတွေမှာပါတဲ့ featureတွေထဲမှာ practicalအတွက်အသုံးတည့်တာတွေ ဘယ်လောက်ပါသလဲ”ဆိုတာက ပိုအရေးကြီးတယ်လို့ထင်ပါတယ်။
ဒီတော့ Languageတွေမသတ်မှတ်ဘဲcategorizeလုပ်ကြည့်ရင် ဒီလိုအပိုင်းတွေထွက်လာတယ်။
ဒါတွေပိုင်နိုင်ထားရင် ရှေ့ဆက်ဖို့ တော်တော်အဆင်ပြေလိမ့်မယ်။ အရေးကြီးတဲ့ skillတွေလို့မြင်ပါတယ်။
1. Strong Fundamentals of HTML/CSS/JavaScript
“Spend most of your learning time by practicing fundamentals and solidifying them.”
ဒီ၃ခုကတော့ necessityဆိုတော့ သိပ်ပြောစရာမလိုပါဘူး။ အကြံပေးချင်တာက path/roadmapတစ်ခုအတိုင်း လိုအပ်တာတွေအကုန် တတ်အောင်လေ့ကျင့်ပါ။ ဘာလို့လဲဆို ဘယ်levelပဲရောက်ရောက် နေ့စဥ်ရေးနေသမျှcodeတွေရဲ့ 70%လောက်က ဒါတွေပါပဲ။ JavaScriptမပိုင်ရင် Reactလေ့လာတဲ့အခါ အချိန်ပိုကုန်မယ်။ CSSမပိုင်ရင် UI frameworkတွေသုံးရင်း bugတွေရှင်းရမှ CSS basic conceptတွေ မပိုင်လို့ဆိုပြီး revisitပြန်လုပ်ရမှာပါပဲ။
2. Version Control System
Git and GitHubကတော့ ရှေ့postတွေမှာလည်း ပြောပြီးသားပါ။ projectရေးပြီဆိုတာနဲ့ နေ့တိုင်းလိုအပ်နေမှာပဲလေ။ လေ့လာချိန်လည်း မကြာတာမို့ စောနိုင်သမျှစောစောသာ Gitကိုစလေ့လာပါ။
3. Browser Dev Tools
Browserကိုသုံးရင်း သူတို့ရဲ့dev toolတွေကိုလည်း သီးခြားအချိန်ပေးလေ့လာထားပါ။ HTML, CSSရေးတဲ့အခါ codeထဲမှာပဲ ခန့်မှန်းရေးနေတာထက် dev toolက Inspector tabမှာ box model, layout, specificityစတာတွေ visualizeလုပ်ပြထားတာတွေ အသေးစိတ်ကြည့်လို့ရတာမို့ အများကြီးပိုအလုပ်တွင်မှာပါ။ Server sideအတွက်ဆိုလည်း network tab, performance tabတွေမှာ errorတွေ improvementလုပ်သင့်တာတွေကို ကြည့်ပြီးအဖြေရှာသင့်ပါတယ်။
4. Searching for Solutions, and Problem Solving
“Most of your bugs can be fixed by reading official documentations, and others by looking for help from online communities”
ကျနော်အလုပ်လုပ်ရင်းတွေ့ရတာက toolတိုင်းအတွက် solutionတွေက တခြားနေရာတွေမှာထက် documentationမှာ ရှိတယ်။ video courseတွေ စာအုပ်တွေက ကောင်းတာမှန်ပေမယ့် errorတက်တဲ့အခါ အရင်ဆုံးပြန်သွားကြည့်ရတဲ့နေရာတော့ မဟုတ်ဘူး။
ပြီးတော့ learning resourceတွေက limitရှိတယ်။ သူတို့coverလုပ်ထားနိုင်တာထက် real world projectတွေက အများကြီးပိုရှုပ်ထွေးတတ်ပါတယ်။ ပူစရာမလိုပါဘူး။ သက်ဆိုင်တဲ့official documentationမှာသာ သွားရှာဖတ်လိုက်ပါ။
အဆင်မပြေသေးရင် googleမှာရှာပါ။ StackOverflowတို့ တခြားblogတွေတို့မှာ ကိုယ့်ရှေ့မှာ ဒီerrorကို ကြုံဖူးကြပြီးသားမို့ solutionတွေက စောင့်နေပါလိမ့်မယ်။ ကိုယ်တိုင်မေးလို့လည်း ရပါတယ်။ easy topicလေးတွေမေးမိရင်တော့ blameတာခံရတတ်ပါလိမ့်မယ်။ ပျော်စရာတော့ကောင်းတယ်။ :D
5. UI Design Sense
လူတိုင်းတော့ သိစရာမလိုပါဘူးလို့ တွေးနိုင်ပေမယ့် Design Senseက ရှိလေကောင်းလေ။ ✨ Userတွေကို ပထမဆုံးဆွဲဆောင်နိုင်တာ Designပါပဲ။ ဒီတော့ အများကြီးမဟုတ်တောင် color theory, white space, visual hierarchy, typographyတွေရဲ့ အခြေခံနဲ့ သူတို့ရဲ့designအပေါ်သက်ရောက်မှုတွေကို သိထားသင့်ပါတယ်။
6. Consuming an API
- form dataတွေကို သိမ်းဖို့ (POST/ Create)
- back-end APIက လာတဲ့ dataကို front-endမှာ ပြန်ပြဖို့ (GET/ Read)
- recordတွေကို dataပြင်ဖို့ (UPDATE)
- recordတွေဖျက်ဖို့ (DELETE) စတဲ့request methodတွေကို frontနဲ့backချိတ်ဆက် အလုပ်လုပ်တတ်ဖို့က developmentရဲ့ levelနောက်တစ်ဆင့်ပါ။ ⏫
7. Building an API and CRUD Operations
အပေါ်မှာ ပြောထားတဲ့ CRUD operationတွေအတွက် APIကို consumeလုပ်ရုံတင်မကဘဲ ကိုယ်တိုင်buildလုပ်တတ်ဖို့၊ MySQL, PostgreSQLစတဲ့ databaseတွေနဲ့ ချိတ်ဆက်တတ်ဖို့ လေ့ကျင့်ထားရပါမယ်။
ဒါကfront-endသီးသန့်သမားတွေအတွက် optionalဆိုပေမယ့်လည်း သိထား လုပ်ထားဖူးတာကပိုကောင်းပါတယ်။
8. Authentication System
Applicationတိုင်းနီးပါးမှာ login/registerပါပါတယ်။ ဒီတော့ authentication systemကို လေ့ကျင့်ဖူးရမယ်။ Session, cookiesတွေကိုနားလည်ရမယ်။ ပြီးတော့ user roleတစ်ခုချင်းအတွက် ဘယ်functionလုပ်ခွင့်ပေးမယ် ဘယ်ဟာတော့ restrictလုပ်မယ် စတဲ့ roles and permissionsကိုလည်း လေ့လာရပါမယ်။
9. Testing
Testing codeတွေရေးရတာ အချိန်၂ဆပိုပေးရတာမို့ projectတိုင်းအတွက် ရေးရမယ်လို့တော့ မပြောလိုဘူး။ ကျနော်တို့အဖွဲ့လည်း မရေးရအောင် ရှောင်ကြတယ်။ 😄
ဘယ်လိုပဲနေနေ errorဖြစ်နိုင်ခြေကို Use Caseတိုင်းအတွက် စဥ်းစားပြီး UIကနေတော့ သေချာစမ်းပေးသင့်တယ်။
Large projectတွေမှာတော့ ရေးကိုရေးသင့်ပါတယ်။ အချိန်ကုန်လို့ ပျင်းလို့ မရေးဘဲ နေလိုက်ရင် နောက်ကျerrorတွေကြုံမှ maintainလုပ်ရတာ အချိန်ရော ခေါင်းရောပိုစားတယ်။ 🥴
10. Deployment
နောက်တစ်ခု သိပ်အရေးကြီးတာက ကိုယ်ရေးထားတဲ့projectကို onlineတင်တတ်ဖို့။ Domainဝယ်တာရယ် ပြီးရင် hostingတစ်ခုမှာ တင်တာရယ်က ဘယ်developerနေနေ လိုအပ်တယ်။
Hosting platformတွေအများကြီးရှိတာမို့ အချိန်ရသလောက် တစ်ခုထက်မက လေ့ကျင့်ထားပါလို့ အကြံပေးချင်ပါတယ်။ cPanelကိုင်တတ်သင့်တယ်။ Heroku, Digital Ocean, Vercelတို့ရဲ့ free planတွေမှာလည်း projectတွေတင်ပြီး လေ့ကျင့်လို့ရပါတယ်။
That’s all for now guys. Let’s keep learning.
** Some of the topics are inspired by Brad Traversy’s talk.