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/