FreeCodeCamp ရဲ့ Backend Developer Roadmap
FreeCodeCamp က Backend Web Developer Roadmap ဆိုပြီး တင်ထားတာကို ကြည့်လိုက်ရတယ်။ Backend Web Developer ရဲ့ တာဝန်ကဘာလဲ။ ဘာတွေ သိထားဖို့လိုမလဲ။ ဘာတွေ လေ့လာရမလဲပေါ့။ သူတို့ ပြောထားတဲ့အထဲက တခုချင်းစီအတွက် လေ့လာစရာတွေ စုထားပေးတယ်။
Backend Development ဆိုတာ server side program တွေကိုတည်ဆောက်ရတာဖြစ်တယ်။
server နဲ့ client ဘာကွာလဲ မသိသေးရင် ဒီမှာဖတ်ပါ။
https://www.facebook.com/share/p/UYFAtYhQML6oHpkq/
Backend Developer တယောက်ရဲ့ အဓိက တာဝန် ၅ ခုရှိတယ်။
1) server side logic
client
request တွေကိုစိစစ်ပြီး business requirement အရ လိုအပ်တာတွေကို
လုပ်ဆောင်သွားမယ့် code တွေကို ရေးရတယ်။ ဥပမာ client က
ဒီပစ္စည်းလေးဝယ်ချင်တယ်ပြောရင် စျေးတွက်ပေးတာ၊ ပိုက်ဆံဖြတ်တာ၊ deli
ပို့ဖို့ စီစဥ်တာ ဒါမျိုးတွေအတွက် code ကိုရေးရတယ်။
2) database
application
အများစုက database ပါဝင်ပတ်သက်ကြတယ်။ Backend Developer တွေက database
design, connection pooling strategy ဒါတွေ ပါဝင်ပတ်သက်ရတယ်။
3) API
Backend Program ကို
client ဖက်က ဆက်သွယ်လို့ရနိုင်မယ့် API တွေ တည်ဆောက်တာကလည်း Backend Dev
ရဲ့ တာဝန်ပဲ။ Backend ကို Web Service အနေနဲ့ထားမယ်ဆိုရင် ဥပမာ SOAP တို့
REST တို့စသဖြင့်ပေါ့။
4) server configuration
Server ပတ်ဝန်းကျင်ကို ပြင်တာကလည်း Backend Dev
ပါဝင်ပတ်သက်ရတယ်။ Server Environment အတွက် လိုအပ်မယ့် environment
variable တွေ၊ volume တွေ၊ web server configuration တွေ စသဖြင့်ကို
နားလည်ရမယ်။
5) Security
Application ကို
လုံခြုံအောင်လည်း ထားတတ်ဖို့လိုမယ်။ Code မှာ အားနည်းချက် ပါမပါ၊
application design မှာအားနည်းချက် ရှိမရှိ နောက်ပြီး Authorization နဲ့
identity Authentication ပိုင်းကိုလည်း ဂရုစိုက်တတ်ရမယ်။
အဓိက ဒီ ၅ ချက်ပဲ။ Backend Developer ဖြစ်ချင်ရင် ဒါတွေလေ့လာဖို့ ဆက်အကြံပေးထားတယ်။
1) Internet Basics
အင်တာနက်ရဲ့ အခြေခံပေါ့။ အင်တာနက်ဆိုတာ ဘာလဲ။ ဘယ်လို
အလုပ်လုပ်လဲ။ နောက် ဘယ်လို protocol တွေရှိလဲ။ DNS ဆိုတာ ဘာလဲ
ဒါတွေလေ့လာရမယ်။
https://www.facebook.com/share/p/xgtf8aqJjX7nMFTG/
2) Programming Languages
JavaScript နဲ့ Python နှစ်ခု လေ့လာဖို့ freeCodeCamp က
အကြံပေးထားတယ်။ လက်ရှိစျေးကွက်အနေအထားအရ Node.js နဲ့ JavaScript က
ပိုအဆင်ပြေလိမ့်မယ်။
https://www.facebook.com/share/p/fMNDu9P4rdUzQqHb/
3) git နဲ့ GitHub
Git ဆိုတာက
source code အပြောင်းအလဲကို မှတ်ထားပေးတဲ့ ဆော့ဝဲတခုဖြစ်တယ်။ GitHub ကတော့
အင်တာနက်ပေါ်က Git Storage Server ပါ။ လုံးလုံးကို မကြားဖူးရင်တော့ အောက်က
link မှာဖတ်နိုင်တယ်။
https://www.facebook.com/share/p/Tcz52rh3hi2HV6yB/
4) RDBMS
relational database
တွေဖြစ်တဲ့ MySQL, Postgresql နဲ့ Oracle စသဖြင့် တခုခု လေ့လာထားရမယ်။
ဒါတွေ တခါမှ မကြားဖူးရင် အောက်မှာဖတ်ပါ။
https://www.facebook.com/share/p/huQyFv9PXmRhqXkk/
5) API
API ဘယ်လိုတည်ဆောက်လဲ
လေ့လာရမယ်။ API တွေနဲ့ ပတ်သက်လို့ ဖတ်ချင်ရင် ဒီ link တွေက ကြည့်ပါ။
https://www.facebook.com/share/p/WoMvjBWPFsCD64tV/
https://www.facebook.com/share/p/nPcBDjqoSfQXtoxQ/
https://www.facebook.com/share/p/7qoiS8JFk9Ey9Zvi/
https://www.facebook.com/share/p/FVkrHxr1xkqjygAZ/
https://www.facebook.com/share/p/RdGr1SLkoaXZWvUu/
6) caching
လိုအပ်တဲ့ data ကို
အကြိမ်တိုင်းမှာ database ကသွားမယူပဲ လမ်းတထောင့်မှာ သိမ်းထားခြင်းက
performance ကိုသိသိသာသာ ပိုကောင်းစေနိုင်တယ်။ ကိုယ့် program
နဲ့သင့်တော်မယ့် caching လေ့လာရမယ်။
7) security
Authentication,
Authorization, Encryption, Auditing, Rate limiting ဒါတွေ ဘယ်လိုလုပ်မလဲ
လေ့လာရမယ်။
https://www.facebook.com/share/p/s5GJtTso1JucTcBn/
https://www.facebook.com/share/p/GkKANLFDtzeSRrQp/
8) testing
အရည်အသွေးကောင်းတဲ့ serverside program ဖြစ်ဖို့ဆိုရင် Testing က
အခရာကျတယ်။ Unit Test, Integrated Test စတာတွေ လေ့လာရမယ်။
https://www.facebook.com/share/p/o3f5gkZrFdqB1QqB/
https://www.facebook.com/share/p/qynhJTjrZQH9iLKv/
9) software design နဲ့ architecture
Design pattern တွေနဲ့ Architecture တွေကို လေ့လာပြီး
လိုအပ်တဲ့နေရာမှာ သင့်သလို လက်တွေ့အသုံးချတတ်ရမယ်။
https://www.facebook.com/share/p/AwKY2BEpB9TBKP9x/
https://www.facebook.com/share/p/CtwiMMgFm9KFfw1J/
10) message brokers
Application တွေကြား asynchronous communication လုပ်ဖို့
လိုအပ်တဲ့အခါ အသုံးချနိုင်ဖို့ Queue နဲ့ Pub/Sub Model တွေကို
လေ့လာရမယ်။
https://www.facebook.com/share/p/fDhHL7PQQwzhDep6/
11) containerization
Application ကို ဆာဗာပေါ်ကို တိုက်ရိုက်မတင်ပဲ container
တွေအဖြစ် ထားချင်ရင် containerization ဘယ်လိုလုပ်မလဲ လေ့လာရမယ်။ Docker,
Kubernetes လေ့လာဖို့ အကြံပေးထားတယ်။
12) nginx
Web server
လည်းဖြစ်၊ reverse proxy အဖြစ်လည်း သုံးနိုင်တဲ့ software ဖြစ်တယ်။
13) GraphQL
client တွေအနေနဲ့
server ဆီက ကိုယ်လိုချင်တဲ့ ဒေတာကို အတိအကျ တောင်းယူလို့ရစေမယ့် query
language ဖြစ်တယ်။ Gateway ဆောက်ရာမှာ အသုံးပြုကြတယ်။
https://www.facebook.com/share/p/y8ws3z26QB1GqsXJ/
14) Mongo
NoSQL
အမျိုးအစားဖြစ်ပြီး RDBMS လို ပုံသေ scheme နဲ့ မသွားဘူးဆိုတဲ့ Database
မျိုးဖြစ်တယ်။
15) Firebase
Backend အတွက်
လိုအပ်နိုင်တဲ့ အသင့်သုံး service တွေ ဥပမာ database, hosting စသဖြင့်
အများကြီးပါတယ်။ Firebase ကိုယ်တိုင်ကိုက backend as a service အမျိုးအစား
ဖြစ်နေပါပြီ။
16) Redis
in-memory database
အမျိုးအစား ဖြစ်ပြီး caching အတွက် အသုံးပြုနိုင်တယ်။
17) infrastructure
AWS နဲ့
Azure တို့လို cloud computing platform တွေကို လေ့လာရမယ်။ server, load
balancer, networking စတဲ့ infrastructure component တွေရဲ့
ချိတ်ဆက်နေပုံကို သိထားသင့်တယ်။
https://www.facebook.com/share/p/vFMpP1mxUPbFrd7d/
https://www.facebook.com/share/p/6e4xKfzLRvKPR3ZD/
https://www.facebook.com/share/p/mywHxasKdTjLLzus/
https://www.facebook.com/share/p/D2thQxSFTTFN7Bcc/
https://www.facebook.com/share/p/9akyVbSRAmq4hsDy/