ကျနော်အရင်က programmer တစ်ယောက်ဖြစ်ဖို့လေ့လာရမှာတွေရေးခဲ့တယ်၊ အဲ့ဒါကတော့ general ပေါ့လေ၊ ဒီ link မှာကြည့်နိုင်ပါတယ်။
https://www.aprogrammer.blog/2019/12/12/how-to-become-a-programmer/

အခုက web အပိုင်းအတွက်ဦးစားပေးပြီးရေးပေးသွားပါမယ်။ တစ်ခုခြင်းဆီ detail တော့ဝင်သွားမှာမဟုတ်ပါ။ web development ကို categorize လုပ်မယ်ဆို frontend, backend , web fullstack ဆိုပြီးခွဲလို့ရတယ်၊ ဒါပေမယ့် ကိုယ်က beginner တစ်ယောက်ဆို အဲ့ဒါတွေသွားကြည့်စရာမလိုသေးဘူး၊ အခြေခံအပိုင်းကို frontend ရော backend ရော လေ့လာဖို့တာဝန်ရှိတယ်။

Fundamental First
ပထမဦးဆုံးလေ့လာရမှာက HTML, CSS, JS
Web ပိုင်းကိုလာမယ်ဆို မဖြစ်မနေသိရမယ့် အရာတွေပဲ၊ Learning လုပ်တာကတော့ ကြိုက်တဲ့နေရာမှာလုပ်လို့ရတယ်။ ကျနော် recommend လုပ်တာက MDN web docs ကနေသွားဖတ်၊ ဒီမှာ link တွေ
https://developer.mozilla.org/en-US/docs/Web/HTML
https://developer.mozilla.org/en-US/docs/Web/CSS
https://developer.mozilla.org/en-US/docs/Web/JavaScript

theory concept ပိုင်းတွေကောင်းကောင်းပါတယ်၊ တစ်ခြား tutorial site တွေမပါတဲ့ဟာတွေပါတယ်။ ဖတ်ပြီးလို့ example လေးတွေနဲ့လေ့ကျင့်ချင်ရင် w3school မှာသွားလေ့ကျင့်လို့ရမယ်။

Server side language

အဲ့တာတွေလေ့လာပြီးရင် server side language တစ်ခုခုကိုလေ့လာလို့ရပြီ၊ HTML နဲ့ CSS ကတော့ programming language မဟုတ်ပေမယ့် Js ကတော့ ဟုတ်တဲ့အတွက် Js လေ့လာပြီးရင် programming ရဲ့ fundamental concepts တွေရလာလိမ့်မယ်၊ ဒါဆိုရင် server side programming language တစ်ခုခုလေ့လာတဲ့နေရာမှာအသုံးဝင်လိမ့်မယ်။ PHP , Ruby, Java, Python ကိုယ်ကြိုက်တာတစ်ခုခုလေ့လာနိုင်တယ်။

Database

Server side language တစ်ခုခုလေ့လာရင်းနဲ့ database ကိုလေ့လာဖို့လိုမယ်။ recommend လုပ်တာက sql programming ကိုအရင်လေ့လာမယ်။ သူ့ရဲ့ syntax တွေ markup တွေလေ့လာမယ်။ ပြီးရင် db client တစ်ခုခုသုံးကြည့်၊ xampp လိုမျိုး all in one software တွေသွင်းထားမယ်ဆို serverside PHP ရော MySQL ရောတစ်ခါတည်း သုံးလို့ရမယ်။ ဒါမှမဟုတ်လဲ တစ်ခုခြင်းဆီသွင်းချင်လည်းရတယ်။

နောက်တစ်ဆင့်အနေနဲ့ ကိုယ် learn လုပ်ခဲ့တဲ့ server side lang + database + HTML + CSS + JS ပေါင်းပြီး project တွေရေးကြည့်လို့ရပီ၊ Todo list, CRUD အစရှိသဖြင့်စမ်းသာရေးကြည့်ပေတော့။

Browser Developer Tools

Browser ကနေ ပေးထားတဲ့ developer tools ထဲက options တွေကိုလေ့လာ၊ debugging လုပ်တဲ့နေရာမှာရော development လုပ်ရတဲ့နေရာမှာရော အသုံးဝင်လာလိမ့်မယ်။

Version Control System

VCS တစ်ခုခုလေ့လာပါ၊ Git ကို recommend လုပ်ပါတယ်။ ရေးသားတဲ့ code တွေကို management တဲ့နေရာမှာအသုံးဝင်ပါတယ်။ တစ်ယောက်တည်းပဲရေးရေး team လိုက်ပဲရေးရေး source code version control လုပ်တဲ့နေရာမှာသုံးတယ်၊ Backup အဖြစ်လည်းရတယ်။

Basic Networking

HTTP အကြောင်း, hosting & DNS အကြောင်း, Protocol တွေအကြောင်း အဲ့ဒီ protocol တွေရဲ့ transmission လုပ်တဲ့အပိုင်းတွေ ဒါမျိုးလေးတွေကိုလည်း လေ့လာထားတာ ကောင်းပါတယ်။

အရေးကြီးတဲ့ နောက်တစ်ချက်က Programming လုပ်တော့မယ်ဆို ဘယ်သူမဆိုလိုအပ်မှာက theory background တွေကောင်းကောင်းဖြည့်ထားဖို့ပဲ၊ Data structure တို့ OS အခြေခံတို့ကိုသိထားရင် အကျိုးရှိလာလိမ့်မယ်။ ကျနော်ရေးထားတဲ့ article series တွေရှိပါတယ်။ အောက်မှာ link တွေပါ။

data structure & algorithm
https://github.com/HlaingTinHtun/Data-Structure-Algorithm-In-Burmese

Operating system
https://github.com/HlaingTinHtun/Operating-System-For-Programmers

ဒီလိုမျိုးတွေသိပြီးသွားပြီဆို ကိုယ်က ဘယ်အပိုင်းကို profession လုပ်မယ်ဆိုတာ ဆုံးဖြတ်လို့ရပြီ၊ frontend လား, backend လား, အကုန်လုပ်မလား။

Frontend အပိုင်းမှာဆိုထပ်လေ့လာစရာတွေက

  • CSS ဆိုလည်း framework တွေဆက်လေ့လာ , boostrap, tailwind, material etc.
  • JS framework တွေဆက်လေ့လာ, react, vue, angular etc
  • Web components
  • Basic web security knowledge
  • PWA – progressive web apps
  • Package managers – npm, yarn
  • CSS preprocessors – sass, less
  • SSR (server side rendering)
  • And many more

Backend ပိုင်းကိုသွားမယ်ဆို ထပ်လေ့လာရမှာတွေက

  • Server side lang framework, (Laravel for php, rails for ruby) etc.
  • Web security knowledge
  • Operating system knowledge (memory , io etc.)
  • Get into Linux
  • Command lines
  • Database ကိုထပ် dive – NoSQL, RDBMS etc.
  • Authentication (OAuth, JWT, Token etc)
  • API Development
  • Caching (Memcached, redis etc)
  • Queue & Background jobs
  • Design & Architectural Patterns
  • Basic Devops
  • And many f**king more.

ကိုယ်လည်း အဆင့်တစ်ခုရောက်လာပြီဆို ကိုယ်ဘာလေ့လာဖို့လေ့လာနေပြီလဲဆိုတာ သိလာလိမ့်မယ်၊ (ကိုယ့်ကိုကိုယ် အမြဲဆန်းစစ်နေတဲ့ လူဆိုရင်ပေါ့လေ)။ အဲ့အတိုင်း Follow လုပ်ပြီးလေ့လာသွားရုံပဲ၊ လေ့လာစရာတွေကတော့ သေတောင်ကုန်မှာမဟုတ်ဘူး။

နောက်တစ်ခုသိထားရမှာက ကိုယ်မသိတာတွေ အရမ်းများနေတယ်ဆိုပြီး စိတ်ဓါတ်မကျသွားဖို့ပဲ၊ ဘယ်သူမှလဲအကုန်သိနေမှာမဟုတ်ဘူး၊ ဒါကြောင့် ကိုယ်လုပ်စရာရှိတာတွေကိုသာ မှန်မှန်လေးလုပ်သွား၊ အဆင်ပြေသွားလိမ့်မယ်။

ဒီလောက်ဆိုရင်စုံပြီထင်တာပဲ ဒီထပ်ပိုပြီး detail သိချင်ရင်အောက်မှာ web developer roadmap link ထည့်ပေးထားတယ်။
https://github.com/kamranahmedse/developer-roadmap

Hlaing Tin Htun