Myanmar Coding School

Myanmar Coding School

Share

Hi all my friends,ဒီpage ကတော့ programming နဲ့ပတ်သက်တဲ့ knowledge တေ ရှယ်ပေးမယ့် page ပါ

18/11/2024

true 🤣🤣🤣

17/11/2024

Full Stack Java Developer Course (Batch 2)

ဒီ course မှာ အဓိက သင်ကြားရမယ့် အပိုင်း ၅ ပိုင်းပါပါတယ်

1. JavaSE for Web Developer

ဒီအပိုင်းမှာတော့ Java အခြေခံတေသင်ရမှာဖြစ်ပြီး အောက်ပါ topics တေပါပါတယ်

Java basics
OOP (Object Oriented Programming)
Exception Handling
Generics
Data Structures
IO/NIO API
Essential APIs
Java New Features
JDBC with MySQL

2. JavaEE

ဒီ အပိုင်း မှာတော့ JavaEE ရဲ့ core framework ၂ ခုဖြစ်တဲ့ JSP နဲ့ Servlet ကိုလေ့လာရမှာ ဖြစ်ပါတယ်
ဒီအပိုင်း ကို လေ့လာ ရတဲ့ အကြောင်းအရင်းကတော့ Japan Company အများစုရဲ့ Job Requirement ဖြစ်တဲ့ အတွက်ပါ

3. Git and Github

Programmer အဖြစ် အသက်မွေးဝမ်း ကြောင်းပြုတော့
မယ် ဆိုရင် Version Control Software တစ်မျိုးမျိုးကို သုံး ကို သုံးတတ်ရမှာပါ
VCS တေထဲက မှ လူ သုံးအများဆုံးဖြစ်တဲ့ Git ကို သင်ကြားရပါမယ်

4. Spring Framework 6

Java language ကိုသုံးပြီး Web App တေ Enterprise App တေရေးမယ်ဆို လက်ရှိ Market ထဲမှာ အသုံးအများဆုံးက Spring Framework ပါ ဒါကြောင့် Java Developer တေအတွက် Essential Skill တစ်ခုလို့ ပြောရပါမယ်
အောက်ပါ topics တေပါပါမယ်

Spring Configuration
- IOC Container
- Dependency Injection(DI)
- Solid Principal
- Bean lifecycle
- External Configuration

Spring MVC
Spring Rest APIs
Spring Data JPA
Spring Data JDBC
Spring testing
Spring Security
Spring AOP
Spring Webflux
Docker & Kubernate
Spring Cloud

5. React JS

Modern Web App တေမှာ Reactive Frontend Technology တေပဲ သုံးတော့တာပါ Frontend အတွက်ကို

Reactive Frontend library တေ Framework တေထဲကမှ React JS ကတော်တော်လေး flexible ဖြစ်တဲ့ library တစ်ခုပါ
အောက်ပါ topics တေပါဝင်ပါမယ်

React Components
Data Flow
ContextAPI
React Hooks
Redux
TypeScripts
All other Essential topics

အပိုင်း တစ်ခုပြီးတိုင်း final project တစ်ခု ရေးရမှာ ဖြစ်တဲ့အတွက် သင်တန်းပြီးတာနဲ့ porfolio ပြစရာ project 4 ခုရပါမယ်

ဒီ အတန်းက နောက်လ December 16 မှာ ဖွင့်မှာပါ
သင်တန်း ကာလ ၆ လ ကြာမြင့် မှာဖြစ်ပါတယ်
သင်တန်းကြေးကတော့ ၆ သိန်း ကျသင့် မှာဖြစ်ပြီးတော့
၂ ခါ ခွဲသွင်းလို့ ရပါတယ်

Monday to Friday (တစ်ပတ် ၅ ရက်)
6:30 pm to 8:30 pm (ရုံးချိန်လွတ်)

# သင်တန်းသားဦးရေ ၁၀ ဦးသာ လက်ခံမှာပါ

# online live class ဖြစ်ပါတယ်
# Google Meet ကတက်ကပါမယ်

ပြည်ပမှာ အလုပ်သွားလုပ်ချင်တဲ့ သူတေ အတွက် အထူး အခွင့်အရေး တစ်ခု လည်း ရှိပါတယ်

အတန်းမှာ စစ်တဲ့ test 2 ခုအောင်ပြီး သင်တန်းက ရေးခိုင်းတဲ့ final project 4 ခုလုံး တင်နိုင်ရင်
လက်ရှိ Lecturer Advisor လုပ်နေတဲ့ Japan Company တေမှာ Interview ထည့်ပေးပါမယ်

အတန်းတက်ဖို့လိုအပ်ချက်တေကတော့
Laptop or Computer
English စာ အထိုက်အလျောက် နားလည်ရမယ်
အခြေခံ Computer Science နားလည်ထားရင် ပိုကောင်းပါတယ်

အတန်းကို register လုပ်ချင်ရင်တော့
အောက်က google form မှာ register လုပ်လို့ရပါတယ်
Or
Page Messenger ကလည်း register လုပ်လို့ ရပါတယ်

https://docs.google.com/forms/d/1l5ws9hjPZRQjZ4PaJ7Mj_5WeMN14obi-PC7w5qtSppM/edit?usp=drivesdk


Lecturer Profile

https://www.linkedin.com/in/min-thu-kyaw-57a093232?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app

11/06/2024

Java Learning Path - Part2

JavaSE ကို part 1 တုန်းက topicsတေသေချာလေ့လာပြီးပြီဆို part 2 စလေ့လာလို့ရပါပြီ
Java Web Development အတွက် အဓိကသုံးတဲ့
Framework နှစ်ခု ရှိပါတယ်
JavaEE နဲ့ Spring ပါ တကယ်တော့ JavaSE လေ့လာပြီးရင် Spring တန်းသွားလို့ရပါတယ်
Spring က Industry ထဲ မှာ ပို အသုံးများပါတယ်
ဒါပေမယ့် Spring Framework က JavaEE framework ပေါ် အခြေခံပြီးတည်ဆောက်ထားတာပါ
အာ့ဒါကြောင့် Spring Framework ရဲ့ နောက်ကွယ်က အလုပ်လုပ်ပုံတေကို ပိုနားလည်ခြင်ရင်
JavaEE ရဲ့ အဓိက Framework နှစ်ခုကိုတော့သေချာလေ့လာသင့်ပါတယ် JSP နဲ့ Servlet ပါ
အဲ့တော့ JavaSE ပြီးပြီဆို JavaEE က JSP နဲ့ Servlet ကိုလေ့လာရင်ရပါပြီ
ပြီးရင် Spring စလုပ်လို့ရပါပြီ
Spring မှာ အောက်က topics တေသေချာလေ့လာပြီးရင် Junior Java Web Developer, Junior Software Engineer Position တေနဲ့ အလုပ်ကောင်းကောင်း ဝင်လို့ရပါပြီ

Spring Configuration

ဒီအပိုင်းမှာ IOC container အလုပ်လုပ်ပုံတေ
Spring Bean တေ ကို ဖန်တီးပုံတေ Spring Boot
အကြောင်းတေ Dependency Injection အကြောင်းတေ တစ်ခြား Spring App တေအတွက်လိုတဲ့ Configuration တေအကြောင်းလေ့လာရပါမယ်

Spring Data JPA

ဒီ အပိုင်း ကတော့ Spring App တေမှာ JPA technology ကို ဘယ်လိုသုံးရမလဲဆိုတာ လေ့လာရမှာပါ

Restful API

ဒီ အပိုင်းမှာ spring framework ကိုသုံးပြီး rest api တေ ဘယ်လို ဆောက်ရမလဲဆိုတာလေ့လာရပါမယ်
အဓိက လေ့လာရမယ့် framework 2 ခု ရှိပါတယ်
Spring MVC နဲ့ Spring Web flux ပါ နှစ်ခုလုံးကို rest api တေဆောက်ဖို့သုံးလို့ရပါတယ်
အဓိက ကွာခြားချက်ကတော့ Spring MVC က Servlet တေကို အခြေပြုပြီး အလုပ်လုပ်တဲ့ အတွက် blocking rest api တေပဲဆောက်လို့ရပါမယ် load အရမ်းမများတဲ့ web app အသေးစားတေပဲ ok ပါမယ် load များတဲ့ app တေဆောက်မယ်ဆိုရင်တော့ non blocking api ဆောက်လို့ရတဲ့ web flux က ပိုကောင်းပါတယ်

Spring Security

ဒီအပိုင်းက တော့ Spring Appတေကို ဘယ်လို လုံခြုံအောင် security တေချမလဲဆိုတာလေ့လာရပါမယ်
ဒီလေးပိုင်းကို သေချာရရင် အလုပ်ဝင်လို့ရပါပြီ
ကျန်တဲ့ topics တေကတော့ လုပ်ငန်းခွင်ထဲရောက်မှ တစ်ဖြည်းဖြည်း ဆက်လေ့လာသွားပါ

Spring Cloud တို့
Spring microservice တို့
Docker Kubernate လို developer ops tools တေ
linux basics တေ ဆက်လေ့လာသွားပါ

ဘယ် position နဲ့ပဲ လုပ်လုပ် Git ကတော့ မဖြစ်မနေသုံးတတ်ရပါမယ်

14/04/2024

Java Learning Path - Part 1

ခုနောက်ပိုင်း မြန်မာ မှာ Java Programming က တော်တော်လေးခေတ်စားလာတယ်ပေါ့ အဓိက ကJapan နဲ့ပတ်သက်တဲ့ အလုပ်အကိုင် အခွင့်အလမ်းတေပေါ် လူငယ်တေက စိတ်ဝင်စားမှု များလာတော့ ဂျပန် မှာအသုံးများတဲ့ Java ကပါ စိတ်ဝင်စားမှု မြင့်တတ်လာတယ်ပေါ့

အဲ့မှာ တစ်ချို့ self study လုပ်ခြင်တဲ့ လူငယ်တေက ဘယ်က စပြီးလေ့လာရမှန်းမသိ ဖြစ်ကြတာကို တွေ့ရတယ်
အဲ့ဒါကြောင့် ခုပြောပြပေးမယ့် အကြောင်းအရာက Java ကို ဘယ် field အတွက် ဘယ်လိုလေ့လာရမလဲ ဆိုတဲ့
အချက်တစ်ချို့ ပါ

ပထမဆုံးကိုယ်က ဘယ်နယ်ပယ်ကို စိတ်ဝင်စားတာလည်း အရင် ဆန်းစစ်ပါ

ဥပမာ ကိုယ်က website/webapp တေဖန်တီးခြင်တယ်
ဆို Java Web Developer ဖြစ်ခြင်တယ် လို့ ယူဆလို့ရတယ်
ဟုတ်ပြီ Java Webdeveloper ဖြစ်ခြင်တယ် ဆို ဘယ်လိုလေ့လာ မလဲကြည့်ရအောင်

အရင်ဆုံး Java Programming Language ရဲ့ အခြေခံ တေ အရင်လေ့လာရမယ်
အလွယ်ပြောရရင် JavaSE ပေါ့ ဒါပေမယ် JavaSE မှာပါတဲ့ အကြောင်းအရာတေက အရမ်းများတယ် JavaSE တစ်ခုလုံးကိုလေ့လာမယ်ဆို ၂နှစ်နီးပါးလောက်ကြာနိုင်တယ်

ကိုယ်က web developer ပဲလုပ်မှာဆို အကုန်လေ့လာစရာလည်း မလိုပါဘူး

အာ့ဆို ဘယ်topics တေလေ့လာသင့်လည်း ကြည့်ရအောင်

1. Java Basics
ဒီ topic မှာဆို variable ဖန်တီးတာတေ data type တေ
operators(တစ်ချို့ တွက်ချက်တာတေ လုပ်တာတေပေါ့) တေ
conditional statement တေ if else တို့ switch တို့
for loop တို့ဘာတို့ပေါ့
ဒါတေပြီးရင် အခြေ ခံကျတဲ့ program လေးတေဖန်တီးနိုင်ပြီ

2. Java OOP
Java က OOP concepts တေပေါ် အခြေ ခံတဲ့ programming language ဆိုတာ တော် တော်များများသိပြီးသား ဖြစ်မှာပါ
အာ့ကြောင့် Java ရဲ့ အဓိက OOP concepts တေကို သေချာနားလည်ရမယ် အသုံးချနိုင်ရမယ်
Encapsulation တို့ Inheritance တို့ Polymorphism တို့ Abstraction တို့ တေပေါ့
OOP တေလေ့လာပြီးရင် ကိုယ်က ပိုပြီး ဖတ်ရလွယ် ပြင်ရလွယ် တဲ့ code တေရေးနိုင်ပြီ
OOP ရဲ့ အဓိက concepts တေ အပြင်မှ
ဒါတေလည်း ထပ်လေ့လာသင့်တယ်
Association, Object Composition, Inner Nested Class, Object class, Enumetation တေပေါ့
အပေါ်က ဟာတေပိုင်ရင် Java OOP ကို တော်တော်နားလည်သွား ပြီ ပြောလို့ရတယ်

3. Exception & Exception Handling
program(Software) တေက memory card ပေါ် မှာ run နေရင်းနဲ့ တစ်ခါတစ်လေ problem တစ်ခုခုဖြစ်ပြီး crash သွားတာ ထွက်သွားတာတေ အနည်း အများ တော့ကြုံဖူးလိမ့်မယ် အာ့တာကို programming မှာ exception ဖြစ်တယ်လို့ခေါ်တယ် အရပ်စကားနဲ့ဆို ကွိင်တတ်တယ်ပေါ့ 🤣
exception တေက ကိုယ် program ကိုရေးထားတဲ့ flow ကြောင့် ဖြစ်တာများတယ် အာ့ကြောင့် ကိုယ်က သေချာ exception တေကို စီမံနိုင်ရမယ်

4. Generics Concept
အဓိက Java မှာ type safety ဖြစ်ဖို့ သုံးတဲ့ အရေးကြီးတဲ့ concept သူ့ကိုလည်း သေချာ apply လုပ်တတ်ကမယ်

5.Data Structures
ကိုယ်က program တေရေးတဲ့ အခါ အဲ့ program ကသုံးဖို့လိုတဲ့ data တေကို memory ပေါ်မှာစီမံရတယ် အဲ့လို စီမံဖို့ဆို data structures တေသုံးရတယ် data တေသိမ်းပေးတဲ့ object တေပေါ့
ကိုယ် data တေကို စီမံ ချင်တဲ့ ပုံစံပေါ်မူတည်ပြီးသုံးရတဲ့ data structures တေလည်း ကွဲပြားသွားမယ်
Java မှာ built-in data structure တော်တော်များများရှိတယ်
ဒီ topic ကိုလည်း သေချာ ပိုင်ရမယ်
ဒါပိုင်ပြီ ဆို ကိုယ်က data တေ သေချာ စီမံနိုင်ပြီ

ဒီ topic 5 ခုပြီးပြီဆို
အခြေခံတေတော့တော်တော်ရပြီ
ဒါတေ ရပြီဆို essential api တေလုပ်တော့
java မှာ file တေ ဖန်တီးမယ် ပြင်မယ် ဖျက်မယ်တေ လုပ်မယ်ဆို
nio - new input output ဆိုတဲ့ api လေ့လာရမယ်
အဲ့ api က io ဆိုတဲ့ api ကိုအခြေခံထားတာ အဲ့တော nio ကို အခြေ ခံကျကျ နားလည်ဖို့ဆို io ကစလေ့လာ
ပြီးရင် multi threading လေ့လာ deep dive မလိုဘူး thread ဆိုတာဘာလဲ thread တေကို ဘယ်လို ဖန်တီးလဲ ဘယ်လို အလုပ်လုပ်လဲ
thread safety ဆိုတာဘာလဲ ဒါလောက်သိရင်ရပြီ
web developing မှာကြ thread တေကို web serverတေ framework တေက စီမံပေးမှာ ကိုယ်လုပ်စရာမလိုဘူး
ပြီးရင် Java 8 new features တေလေ့လာ
ပြီးရင် jdbc api လေ့လာ database တေနဲ့ချိတ်သုံးဖို့
အဲ့လောက်ဆို ကောင်းကောင်းလုံလောက်ပြီ JavaSE က
ကိုယ်က web developing သွားမှာဆို
gui api တေဖြစ်တဲ့ javafx တို့ swing gui တို့ကမလိုဘူး သူက desktop app တေဆောက်ဖို့သုံးတာ

part2 ကြရင် လုပ်ငန်းခွင်မြန်မြန်ဝင်နိုင်အောင်
Java EE နဲ့ Spring မှာ ဘယ် လို topics တေအဓိက ဆက်လေ့လာရမလဲ ပြောပါမယ်....

10/12/2022

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

Game ဖန်တီးတဲ့ နယ်ပယ်မှာ အခြေခံကျဆုံး position နှစ်မျိုး ရှိပါတယ်။
အဲ့ position ၂ မျိုး က Game Developerနဲ့
Game Designer ဖြစ်ပါတယ်။

Game Designer ကတော့ Game ရဲ့ story တေ
Game ဇာတ်ကောင်တေကို ဖန်တီးတာတေ
flow တေ level တက်တဲ့စနစ် တေ mechanism
တေအတွက် တာဝန်ယူတဲ့သူလို့ အကြမ်းဖျင်း သတ်မှတ်လို့ရပါတယ်။

Game Developer ကတော့ အပေါ်က Game Designer ဖန်တီးထားတဲ့ ဟာတေ ကို လက်တွေ့အသက်ဝင်အောင်လုပ်ပေးသူလို့ မှတ်လို့ရပါတယ်။

Game Designer ဖြစ်ချင်သည်ဖြစ်စေ
Game Developer ဖြစ်ချင်သည်ဖြစ်စေ

ပထမဦးဆုံးအနေနဲ့ အောက်က အချက်တေကို အရင် စမ်းစစ်ကြည့်ပါ

၁။ Passion ရှိဖို့လိုပါတယ်
ကိုယ့်ကိုယ်ကို ပြန်မေးကြည့်ပါ ငါက Game ဆော့ရတာ ကြိုက်လား? ကိုယ်ဆော့တဲ့ Game တေနောက်ကွယ်မှာ ဘယ်လို အလုပ်လုပ်နေလဲ ဆိုတာ သိချင်ခဲ့ဖူးလား? ကိုယ်စိတ် ထဲမှာ ပုံဖော်ဖူးတဲ့ စိတ်ကူးယဥ် ဇာတ်ကောင် တေ ဇာတ်လမ်း တေရှိလား? အဲ့ ဇာတ်ကောင် (ဝါ) ဇာတ်လမ်း ကို အသက်သွင်းဖို့စဥ်းစားဖူး လား?
အပေါ်က အချက်တေထဲက ၂ချက် လောက်လုပ်ဖူးရင်တောင် ပထမဆုံး စစ်ဆေးမှု အောင်မြင်တယ် ပြောလို့ရပါတယ်။

၂။ computer science ကို အခြေခံလောက်တော့နားလည်ရပါမယ်။
ကိုယ်က computer science နဲ့ကျောင်းပြီးထားတယ်ဆိုရင်တော့ ဒီအချက်က စဥ်းစားစရာ မလိုပေမယ့် အဲ့လိုမဟုတ်ရင်တော့ ထည့်စဥ်းစားရပါမယ်။ အနည်းဆုံးတော့ ကိုယ်သုံးနေတဲ့ laptop ကို
ကျွမ်းကျွမ်း ကျင်ကျင်သုံးတတ်ဖို့လိုပါတယ်။

၃။ Programming Language တစ်ခုခု ကို
intermediate level လောက်ထိလေ့လာ ဖူးရပါမယ်။
ကိုယ်သုံးမယ့် Game Engine ကသုံးတဲ့
Programming Language ဆို ပိုကောင်းပါတယ်။

၄။ Mathematics ကို အနိမ့်ဆုံး GCE-A level လောက်ထိလေ့လာ ဖူးသင့်ပါတယ် ။
ပို complex ဖြစ်တဲ့ Game တေ ဖန်တီးလေ
Mathematics skill က ပိုလိုလေပါပဲ။

၅။ Physics ကိုလည်း အနိမ့်ဆုံး GCE-A level လောက်ထိလေ့လာဖူးသင့်ပါတယ် ။
Game တေ ဖန်တီးတဲ့ နေရာမှာ physics နိယာမ တေက အရေးပါ ပါတယ် ။ ဂိမ်းက ပို
complex ဖြစ်လေ Physics skill က လိုလာလေပါပဲ။

အပေါ် က အချက် ၅ ချက်မှာ နံပါတ် ၁ အချက်ကလွဲလို့ ကျန်တဲ့အချက်တေက သင်တန်းတေ တက်ခြင်း
အားဖြင့် ဖြစ်စေ self study လုပ်ခြင်း အားဖြင့်ဖြစ်စေ ရနိုင် ပေမယ့် နံပါတ် ၁ အချက်ရဖို့ ကတော့ ကိုယ့်ကိုယ်ကို မလိမ် ပဲ သေချာစမ်းစစ်ကပါမယ် ။
ကိုယ် passion မရှိတဲ့ အလုပ်ကို အတင်းလုပ်ခြင်းဟာ ဘယ်လိုမှ အောင်မြင်နိုင်မှာမဟုတ်ပါဘူး။

သင်တန်းတေ တက်တဲ့အခါ ဖြစ်စေ self study လုပ်တဲ့အခါဖြစ်စေ beginner တေအများဆုံး ကျူးလွန်တတ်တဲ့အမှားတစ်ခုရှိပါတယ်
အဲ့ဒါကတော့ market ထဲမှာ popular ဖြစ်တဲ့ Game Engine တေကနေစလေ့လာတာပဲ ဖြစ်ပါတယ် ဥပမာ Unity တို့ Unreal တို့လိုပေါ့။
အဲ့ဒါက အကြီးဆုံး အမှားပါပဲ
Game Engine တေက နေ စလေ့လာတဲ့ learning style ဟာ ပြသနာ တေ အများကြီးရှိပါတယ် ။
အဆိုးဆုံးကတော့ သင်တန်းပြီးတဲ့အခါ lecturer
ရေးပြတဲ့ final game project မျိုးကို ပဲ ပုံတူပွား ရေးတတ်တော့ တာပါပဲ။ အဲ့ဒါက ဘာဖြစ်လို့လဲဆိုရင် Game Engine ရဲ့ features တေကို အသင့်ယူသုံးရင်းနဲ့ ဒီ feature ကိုသုံးရင် ဘာဖြစ်လာမလဲပဲ
သိပြီး နောက်ကွယ် မှာ ဒီ feature ဘယ်လို အလုပ်လုပ် လဲဆိုတာ နားမလည် တော့လိုပါပဲ ။ အဲ့လို how
to ပုံစံ လေ့လာခဲ့ရင် အရမ်း complex ဖြစ်တဲ့ ဂိမ်းတေ ဖန်တီးဖို့ဆို တာ ဘယ်လို မှမဖြစ်နိုင်တော့ပါဘူး။

အဲ့လို ပြသနာကို ရှောင်ဖို့ အတွက် ကိုယ်သုံးချင်တဲ့
Game Engine ကသုံးတဲ့ programming language
ရဲ့ core features တေကို သေချာ ကျွမ်းကျင်အောင်
အရင်လေ့လာသင့်ပါတယ်။
ဥပမာ - ကိုယ်က unreal engine သုံးပြီး Game တေဖန်တီးချင်တယ် ဆိုရင် အရင်ဆုံး c++ ကို ကျွမ်းကျင်အောင်လေ့လာသင့်ပါတယ် ။ unity ဆိုရင်တော့ c # ပေါ့

သက်ဆိုင်ရာ programming language ကို ကျွမ်းကျင်ပြီဆိုရင် အပေါ်မှာ ပြောထားသလို
Mathematics တို့ Physics တို့လို skill တေ ဖြည့်သင့်ပါတယ်။ နောက်ဆုံးမှ Game Engine ကို စသုံးသင့်ပါတယ် ။

တကယ်လို့ Game Designer အဖြစ် Game Industry ထဲဝင်မယ်ဆိုရင် အပေါ်က အချက်တေ အပြင် အနုပညာ(Art) အမြင်နဲ့ တီထွင်ဖန်တီးနိုင်စွမ်း(creativity)ကလည်း အလွန်အရေးကြီးပါတယ်။

ဒီ Article ကိုဖတ်ပြီး တစ်စုံ တစ်ရာ အကျိုး ကျေးဇူး ရနိုင်ဖို့ မျှော်လင့်ပါတယ်ဗျ နောက်လည်း တစ်ခြား Article တေဖန်တီး ဖို့ ကြိုးစားသွားပါမယ် ။
အဆုံးထိ ဖတ်ပေးတဲ့အတွက် ကျေးဇူးတင်ပါတယ်။

70+ New Flutter Projects With Source Code 26/05/2022

Flutter Projects 70 ကျော်ကို အောက်က link ကနေလေ့လာနိုင်ပါတယ်


to Flutter Developer Community

70+ New Flutter Projects With Source Code A List Of 70+ Best Flutter Projects, Examples And Ideas With Source Code For Beginners, Intermediate, Advanced And Final Year Students.

22/05/2022

Junior Developer တွေ OOP Concepts တွေ ကို သုံးရင် အမှားများဆုံး နဲ့ ဝေခွဲ မရဖြစ်ဆုံးက Inheritance
သုံးသင့်လား Composition သုံးသင့်လား ပဲ
အခြေခံ အဆင့် မှာတော့ ခွဲ ရတာ လွယ် ပါတယ်။
ကဲ ကြည့်ရအောင်
Inheritance ဟာ Is-A relationship ဖြစ်ပါတယ် ။
Formula အရ Sub/Child Class is a Super/Parent Class ဖြစ်တယ်။ ဥပမာ Toyota is a Car ; Myanmar is a Country ။ အပေါ်က ဥပမာလို မျိုး relationship တေ ကို is-a relationship လို့ခေါ်တယ်။ အခြေခံအားဖြင့် အဲ့လို is-a ဖြစ်ရင် inheritance သုံးတယ်ပေါ့။
Composition ဟာ Has-A relationship ဖြစ်တယ်။
Formula အရ Super class has a child class ဖြစ်တယ်။ ဥပမာ Smart Phone has a battery; Human has a heart ။
အခြေခံအရတော့ class ၂ခု ကို ကြည့် is-a ဖြစ်ရင်
Inheritance သုံး has - a ဖြစ်ရင် compositionသုံး ပေါ့။Composition ကပြသနာ မရှိဘူး has-a ဖြစ်တာ နဲ့ composition သုံး လို့ရတယ် ။ ပြသနာက inheritance
ပဲ is-a ဖြစ်တိုင်း inheritance သုံးမရဘူး။
ဘာကြောင့် ဆိုတာ အောက်မှာ ဆက်ကြည့်ရအောင်။

Inheritance ကို runtime polymorphism(true polymorphism) အတွက်သုံးတယ်။Composition ကိုတော့ dependency Injection အတွက် သုံးတယ်။

Inheritance ဟာ tight coupling ဖြစ်တယ်။ tight coupling ဆိုတာ class ၂ ခုက တစ်ခုပေါ်တစ်ခု အလွန်အမင်း မှီခိုနေတာ ။
Code example နဲ့ ကြည့်ရအောင်

public class SmartPhone{

public void shutdown(){}

}
class Xiaomi extends SmartPhone{
public void poweroff(){
shutdown();
}
}

အပေါ်က example ကို ကြည့် ကြည့် Xiaomi Class က
SmartPhone Class ကို အရမ်းမှီခိုနေရတယ်။
poweroff() method အလုပ်လုပ်ဖို့က shutdown() method ပေါ်မူတည်နေတာ။ SmartPhone class မှာ သာ changes တစ်ခုခုလုပ်လိုက်ရင် Xiaomi class က fail သွားမှာ။ ဥပမာ SmartPhone class မှာ
public String poweroff(){} ဆိုတဲ့ method ထပ်ထည့် လိုက်မယ် ဆို Xiaomi class ကို compile လုပ်မရတော့ဘူး။ ဒီလို tight coupling ဖြစ်နေတာကို ရှောင်သင့်တယ်။

Inheritance ရဲ့နောက်ပြသနာ တစ်ခု က parent class မှာ ရှိတဲ့ implements တေ က child class မှာ exposed သွားဖြစ်နေတာပဲ ။အဲ့ဒါ က Encapsulation Concept
ကို ချိုးဖောက်တာပဲ။(Inheritance is weak encapsulation)

Composition က loose coupling ဖြစ်တယ်။ Loose coupling ဆို တာ class နှစ်ခု က တစ်ခု ပေါ် တစ်ခု အရမ်း မမှီ ခို တာပေါ့။
Code example
အပေါ်က class ၂ခု ကို composition ပြောင်းကြည့်ရအောင်

// backend class
public class SmartPhone{
public void shutdown(){}
}

// frontend class
class Xiaomi{
SmartPhone smartPhone = new SmartPhone();

public void poweroff(){
smartPhone.shutdown();
}

}

See... လုံး၀ အမှီခို ကင်းတဲ့ class 2 ခု ဖြစ်သွားပြီ။
Inheritance မှာတုန်း က Sub class က Composition မှာ frontend class ဖြစ်လာပြီး super class က backend class ဖြစ်လာတယ်။ backend class မှာ
changes ဖြစ်လည်း frontend class က မ fail တော့ဘူး (anti - matters တေက လွဲလို့)။Inheritance မှာတုန်းက super class က fragileဖြစ်တယ်။ Super class မှာတစ်ခုခု changes လုပ်ရင် sub class တေမှာပါလိုက်change ရတယ်။

အဲ့တော့ inheritance မှာ လုံး၀ကောင်းကျိုးမရှိတော့ဘူးလားလို့မေးရင် ရှိတယ်လို့ဖြေရမှာပဲ dynamic binding
နဲ့ Polymorphism ပေါ့။

အဲ့တော့ Advance level မှာ Inheritance နဲ့ Composition ဘယ်ဟာကို ရွေးရမလဲပြောကြတာပေါ့

Class 2ခု ဟာ is-a ဖြစ်ရင် inheritance သုံးမလားလို့စဥ်းစား လို့ရပြီ ဒါပေမယ့် အဲ့ is-a က ကိုယ်ရေးနေတဲ့
application ရဲ့ life cycle တစ်လျောက်လုံးမှာ is-a ဖြစ်နေလားစဥ်းစားရမယ်။ ဥပမာ Employee နဲ့ Person ဆိုတဲ့ class 2 ခုကို စဥ်းစားကြည့်ရအောင်
Employee is a person.ok is-a တော့ဖြစ်ပြီ ။ဒီတိုင်း employee က person အမြဲဖြစ်နေရင် ပြသနာမရှိဘူး။
ပြသနာက person က အလုပ်ပြုတ်သွားတယ် unemployed ဖြစ်သွား တယ် ဒါမှမဟုတ် person က manager လည်းဟုတ်တယ် employee လည်းဟုတ်တယ် ။ ဒီလို case တေမှာဆိုရင် is-a ဖြစ်လည်း composition ကိုပဲသုံးရမယ်။

ကိုယ့် experiance အရဆို Inheritance ကို polymorphism သုံးချင်ရုံ သက် သက် code reuse သက်သက် အတွက်မသုံးသင့် ဘူး ။
is-a က constant ဖြစ်မယ်။sub classes တေကလည်း
parent ကလွဲလို့ တစ်ခြား object တေနဲ့ ဆက်နွယ်မှုလည်းမရှိဘူး။ Allow Object creation delay (in composition) လည်းမလိုဘူး။ Dynamic binding & polymorphism ကို လည်းလိုချင်တယ်။ Delegation Approach လည်းမဖြစ်ခြင်ဘူး(Composition က delegation approach ဖြစ်တဲ့အတွက် Performance cost ရှိတယ်) Single invocation နဲ့ပဲ အလုပ်လုပ်စေချင်တယ် စသဖြင့် အပေါ် က အချက်တေအားလုံး confirm
ဖြစ်မှ Inheritance ကို သုံးက မယ် ။ မဟုတ်ရင် compositon သာသုံး။

# # # Class 2 ခုက is-a မဖြစ်ဘူး ဒါပေမယ့် polymorphism ကိုသုံးချင်တယ်ဆို composition ကိုမှ interface တေနဲ့တွဲသုံးလို့ရတယ်

5_6093731914898735956.pdf 19/05/2022

IT Business ကို ဂျပန်လို လေ့လာချင်သူတေ အတွက် စာအုပ်ပါ

Download Link

5_6093731914898735956.pdf

14/05/2022

Objects တွေ ကြားထဲ က ဆက်သွယ်ချက်(relationships) တေ ကို Association လို့သက်မှတ်နိုင်ပါတယ်။
Association က အခြေခံအားဖြင့် object တွေ တစ်ခုနဲ့တစ်ခု ဘယ်လို ဆက်နွယ်(related) မလဲ
object တစ်ခု က အခြား object ရဲ့ လုပ်ဆောင်ချက် (functionality) တွေ ကို ဘယ်လို အသုံးချ မလဲဆို တဲ့ အချက်တေကို သက်မှတ်ပေးပါတယ်။
Java မှာ Composition နဲ့ Aggregation ဆိုပြီး
Association အမျိုးအစား ၂မျိုး ရှိပါတယ်။
Association တွေကို Has-A relationship အဖြစ်သတ်မှတ်နိုင်ပါတယ်။

Composition
Composition ဟာ strong ဖြစ်တဲ့ Association အမျိုးအစားဖြစ်ပါတယ်။ objects တေ ရဲ့ ဆက်နွယ်မှု(related) တစ်ခု သို့မဟုတ်
Association တစ်ခု ဟာ Composition ဖြစ်မဖြစ် ကို အချက် ၂ ချက်ပေါ် မူတည်ပြီး သတ်မှတ်နိုင်ပါတယ်။
- Object တစ်ခု က အခြား Object တစ်ခု ကို ပိုင်ဆိုင် မှု ရှိရမယ် ။
(အဲ့တော့ Composition မှာ Owner object ရယ် အပိုင်ဆိုင်ခံရတဲ့ object ရယ်ဆိုပြီးရှိမယ်)
- Owner object သာမရှိရင် ဒီ relationship က တခြားobject လည်း မတည်ရှိနိုင်ရဘူး။
အပေါ်က ၂ချက်နဲ့ ကိုက်ညီရင် Composition ဖြစ်တယ်လို့ သတ်မှတ်နိုင်တယ်။
ဥပမာ - Computer နဲ့ Motherboard လိုပေါ့
Computer ထဲမှာ motherboard ရှိတယ်
( Computer HAS-A a Motherboard)
တကယ်လို့ Computer(Owner) သာ မရှိရင် Motherboard ကသူ့ဘာသူ မရပ်တည်နိုင်ဘူး

Coding Example
// Computer မှာ Motherboard ရှိကိုရှိရမယ်
// Motherboard က Computer ရဲ့ အရေးကြီး တဲ့ အစိတ်အပိုင်း ဖြစ်တယ်
public class Computer {
private final Motherboard motherboard;
public Computer(){
motherboard = new Motherboard();
}

}
class Motherboard{}
**********************************************
Aggregation
Aggregation ဟာ Weak ဖြစ်တဲ့ Association ဖြစ်တယ်။ relationship တစ်ခု မှာ ရှိတဲ့ Object နှစ်ခု ဟာ တစ်ခုပေါ်တစ်ခု မမှီခို ဘဲ ရပ်တည်နိုင်ရင် အဲ့ဒိ relationship ကို Aggregation လို့ သတ်မှတ်နိုင်တယ်။ ( Composition မှာ က object ၂ခု က တစ်ခုပေါ် တစ်ခု မှီခို ရတယ်)
ဥပမာ - Person နဲ့ Address object ၂ခု ကို စဉ်းစားကြည့်
(Person HAS-A Address)
Person object မှာ Address ၁ခု (သို့) အများကြီးရှိနိုင်တယ်
Address တစ်ခုစီတိုင်း မှာလည်း သက်ဆိုင်ရာ
attribute တေရှိ မယ်(state,city,town,street...etc)
person မရှိတော့ရင်လည်း address က ရှိနေမှာပဲ
address မရှိတော့ရင်လည်း person က ရှိနိုင်တာပဲ
ပြောချင်တာက person object ကို delete လည်း
address object က ဆက်ရပ်တည်နိုင်တယ်။
address object ကို delete လည်း person object ကဆက်ရှိမှာပဲ။

Code Example
public class Person {
private List addresses;
public Person(){
addresses = new ArrayList();
}
}
class Address{}

07/05/2022

Java 8 New Features တွေရဲ့ concept ကို သေချာ နားလည်ခြင် ရင်
Java ကို Functional Style နဲ့ရေးချင်ရင် မဖြစ်မနေ ဖတ်သင့်တဲ့ စာအုပ်ကောင်း တစ်အုပ်ပါ

Download Link

https://drive.google.com/file/d/1HSG0svLaveOinAkWD7SDOadDZucbnOOs/view?usp=drivesdk

17/02/2022

Hi all my friends,ဒီpage ကတော့ programming နဲ့ပတ်သက်တဲ့ knowledge တွေ concepts တေ
Sample projects လေးတေကို တင်ပေးသွားမယ့်
page ပဲ ဖြစ်ပါတယ်

Want your school to be the top-listed School/college in Yangon?

Click here to claim your Sponsored Listing.

Location

Category

Telephone

Website

Address


Yangon