ู‡ู†ุฏุฑุฏุด ููŠ ุดูˆูŠุฉ ุญุงุฌุงุช ุฃุณุงุณูŠุฉ ุจุฎุตูˆุต ุงู„ุดุบู„ ููŠ ู…ุฌุงู„ ุงู„ู€ Web.

The UI Developer Role

ููŠ ุงู„ู€ Web ููŠู‡ ู…ุณู…ู‰ ูˆุธูŠููŠ ุงุณู…ู‡ ุงู„ู€ UI Developer. ู„ูˆ ุฏุฎู„ุช ุนู„ู‰ ู…ูˆู‚ุน โ€œูˆุธูโ€ (Wazzuf) ูˆุนู…ู„ุช Search ุนู† ุงู„ู€ UI DeveloperุŒ ู‡ุชู„ุงู‚ูŠ ูˆุธุงูŠู ูƒุชูŠุฑ.

Skills Required for UI Developer:

ุงู„ู€ UI Developer ู„ุงุฒู… ูŠูƒูˆู† ุนุงุฑู:

  • ุงู„ู€ HTML ูƒูˆูŠุณ ุฌุฏุงู‹.
  • ุงู„ู€ CSS ูƒูˆูŠุณ ุฌุฏุงู‹ ุฌุฏุงู‹ุŒ ูˆุฏุง ู…ู„ุนุจู‡ ุงู„ุฃุณุงุณูŠ (Margin, Padding, Flex, Position).
  • ุงู„ู€ Bootstrap.
  • ุจูŠุนุฑู ูŠุชุนุงู…ู„ ู…ุน ุงู„ู€ UI Design ูˆูŠุญูˆู„ ุงู„ุชุตู…ูŠู…ุงุช ู„ูƒูˆุฏ (ุฃู„ูˆุงู†ุŒ ุฎุทูˆุทุŒ ุฅู„ุฎ).
  • ุงู„ู€ Basics ุจุชุงุนุฉ ุงู„ู€ JavaScript.
  • ู…ูƒุชุจุฉ ุงู„ู€ jQuery.

ุงู„ู€ UI Developer ู…ุด ู…ุทุงู„ุจ ุฅู†ู‡ ูŠูƒูˆู† โ€œุชู†ูŠู†โ€ ููŠ ุงู„ู€ JavaScriptุŒ ูˆู„ุง ู…ุทุงู„ุจ ุฅู†ู‡ ูŠุนุฑู Angular ุฃูˆ React ุฃูˆ VueุŒ ูˆู„ุง ุญุชู‰ ุจูŠุชุนุงู…ู„ ู…ุน ุงู„ู€ APIs. ู…ู…ูƒู† ุชุฐุงูƒุฑ ุงู„ู€ Basics ุฏูŠ ููŠ ุณุงุนุชูŠู† ูˆุชุดุชุบู„ UI DeveloperุŒ ูˆููŠู‡ ุดุฑูƒุงุช ูƒุชูŠุฑ ุจุชุทู„ุจ ุงู„ุชุฎุตุต ุฏู‡ ุจุงู„ู€ HTML ูˆุงู„ู€ CSS ุจุณ.

The Front-end Developer Role

ุงู„ู€ Front-End Developer ู‡ูˆ ููŠ ุงู„ุฃุณุงุณ UI DeveloperุŒ ูŠุนู†ูŠ ุนุงุฑู ูƒู„ ุงู„ู„ูŠ ูุงุช (HTML, CSS, Bootstrap, jQuery) ุจุณ ุจุฒูŠุงุฏุฉ ู‚ูˆูŠุฉ ุฌุฏุงู‹.

Skills Required for Front-End Developer:

  • ุงู„ู€ JavaScript: ู„ุงุฒู… ูŠูƒูˆู† โ€œุชู†ูŠู†โ€ JavaScriptุŒ ูุงู‡ู… ููŠู‡ุง ูƒู„ ูƒุจูŠุฑุฉ ูˆุตุบูŠุฑุฉ.
  • ุงู„ู€ API: ุจูŠุนุฑู ูŠุชุนุงู…ู„ ู…ุนุงู‡ุงุŒ ูˆูุงู‡ู… ุงู„ู€ Authentication ูˆุงู„ู€ Authorization.
  • ุงู„ู€ Sass: ู…ุชู…ูƒู† ู…ู†ู‡ุง.
  • ุงู„ู€ Frameworks/Libraries: ู„ุงุฒู… ูŠุนุฑู ุญุงุฌุฉ ู…ู† ุงู„ุชู„ุงุชุฉ (Angular ุฃูˆ React ุฃูˆ Vue) ุนุดุงู† ูŠุนู…ู„ ุงู„ู€ Single Page Application (SPA).

ุงู„ู€ Angular ูˆุงู„ู€ React ูˆุงู„ู€ Vue ูƒู„ู‡ู… ู…ุนุชู…ุฏูŠู† ุนู„ู‰ ุงู„ู€ JavaScriptุŒ ูˆุงู„ู€ APIs ู…ุนุชู…ุฏุฉ ุนู„ู‰ ุงู„ู€ JavaScriptุŒ ูˆุนุดุงู† ูƒุฏุฉ ุงู„ู€ Front-End Developer ู‡ูˆ โ€œุจุชุงุน JavaScriptโ€ ููŠ ุงู„ู…ู‚ุงู… ุงู„ุฃูˆู„.

The Evolution of JavaScript

ุงู„ู€ JavaScript ุธู‡ุฑุช ุณู†ุฉ 1995ุŒ ูˆููŠ ุงู„ุจุฏุงูŠุฉ ูƒุงู†ุช ู…ุนู…ูˆู„ุฉ ุนุดุงู† ุชุดุชุบู„ Client Side ุจุณ (ูŠุนู†ูŠ ุฌูˆู‡ ุงู„ู€ Browser ู…ุน ุงู„ู€ HTML ูˆุงู„ู€ CSS).

Client Side vs. Server Side

  • ุงู„ู€ Client-side Programming Language: ู‡ูŠ ุงู„ู„ุบุงุช ุงู„ู„ูŠ ุจุชุดุชุบู„ ููŠ ุงู„ู…ุชุตูุญ (HTML, CSS, JS).
  • ุงู„ู€ Server-Side Programming Language: ู‡ูŠ ุงู„ู„ุบุงุช ุงู„ู„ูŠ ุจุชุดุชุบู„ ุนู„ู‰ ุงู„ุณูŠุฑูุฑ (PHP, C#, SQL, Node.js).

ู…ู† ุญูˆุงู„ูŠ 11 ุฃูˆ 12 ุณู†ุฉุŒ ุงู„ู€ JavaScript ู…ุงุจู‚ุชุด ุจุณ Client SideุŒ ูˆุจู‚ุช ุชุดุชุบู„ Server Side ุนู† ุทุฑูŠู‚ ุงู„ู€ Node.js. ูˆุธู‡ุฑ ู…ุตุทู„ุญ ุงู„ู€ JavaScript Full Stack (ุฒูŠ ุงู„ู€ MEAN stack ูˆุงู„ู€ MERN stack)ุŒ ูˆุจู‚ุช ุงู„ู€ JavaScript ู„ุบุฉ โ€œุชุฑู†ุฏูŠโ€ ุฌุฏุงู‹ ูˆุดุฑูƒุงุช ุนุงู„ู…ูŠุฉ ุฒูŠ Uber ูˆ Netflix ูˆ LinkedIn ุจุชุณุชุฎุฏู…ู‡ุง.

JavaScript Ecosystem

ุงู„ู€ JavaScript ุฏุฎู„ุช ููŠ ูƒู„ ุงู„ู…ุฌุงู„ุงุช:

  1. ุงู„ู€ Mobile Apps: ุนู† ุทุฑูŠู‚ ุงู„ู€ Cross-platform Mobile Apps ุจุงุณุชุฎุฏุงู… React Native (ู…ุจู†ูŠ ุนู„ู‰ React) ุฃูˆ Ionic (ู…ุจู†ูŠ ุนู„ู‰ Angular).
  2. ุงู„ู€ Desktop Apps: ุนู† ุทุฑูŠู‚ ุงู„ู€ Electron.js ุงู„ู„ูŠ ุงุชุนู…ู„ ุจูŠู‡ ุจุฑุงู…ุฌ ุชู‚ูŠู„ุฉ ุฒูŠ Visual Studio Code.
  3. ุงู„ู€ Virtual Reality (VR): ุนู† ุทุฑูŠู‚ React VR.
graph TD
    A[JavaScript] --> B[Web Development]
    A --> C[Mobile Development]
    A --> D[Desktop Apps]
    A --> E[Virtual Reality]
    
    B --> B1[Front-End: React, Angular, Vue]
    B --> B2[Back-End: Node.js]
    
    C --> C1[React Native]
    C --> C2[Ionic]
    
    D --> D1[Electron.js]
    
    E --> E1[React VR]

React Native vs. Flutter

ู„ูˆ ู‚ุงุฑู†ุช ุจูŠู† ุงู„ู€ React Native ูˆุงู„ู€ Flutter ุนู„ู‰ ู…ูˆู‚ุน โ€œูˆุธูโ€ุŒ ู‡ุชู„ุงู‚ูŠ ุงู„ู€ React Native ู…ุทู„ูˆุจุฉ ุฃูƒุชุฑ ุจูƒุชูŠุฑุŒ ูˆู‡ูŠ ูุฑุตุฉ ู‡ุงูŠู„ุฉ ู„ูŠูƒู… ูƒู€ Front-End Developers ุฎุตูˆุตุงู‹ ู„ูˆ ุงุชุนู„ู…ุชูˆุง React.

Why JavaScript?

ุงู„ู€ JavaScript ู…ุด ุตุนุจุฉุŒ ุจุณ ุงู„ููƒุฑุฉ ุฅู† ุงู„ู†ุงุณ ุงู„ู„ูŠ โ€œูุงู‡ู…ูŠู†ู‡ุงโ€ ุจุฌุฏ ู‚ู„ูŠู„ูŠู† ููŠ ุงู„ุณูˆู‚. ุงู„ู„ูŠ ุจูŠุนุฑู JavaScript ุจู†ุณู…ูŠู‡ โ€œุงู„ุฌูˆูƒุฑโ€ุ› ู„ุฃู†ู‡ ุจูŠู‚ุฏุฑ ูŠุดุชุบู„ ููŠ ุฃูŠ ุญุชุฉ (Front, Back, Mobile, Freelance).

ููŠู‡ ู†ุงุณ ูƒุชูŠุฑ ุงุชุนู„ู…ุช Web (ุจูุถู„ ู…ู‡ู†ุฏุณูŠู† ู…ุญุชุฑู…ูŠู† ุฒูŠ ุจุดู…ู‡ู†ุฏุณ ุฃุณุงู…ุฉ ุงู„ุฒูŠุฑูˆ)ุŒ ู„ูƒู† 90% ู…ู†ู‡ู… ุจูŠู‚ููˆุง ุนู†ุฏ ุงู„ู€ JavaScript ูˆู…ุง ุจูŠูƒู…ู„ูˆุด. ู„ูˆ ุฃู†ุช ุจู‚ูŠุช ุดุงุทุฑ ููŠ ุงู„ู€ JavaScriptุŒ ู‡ุชูƒูˆู† ู…ุชู…ูŠุฒ ุฌุฏุงู‹ ูˆู‡ุชุชุฎุทู ููŠ ุณูˆู‚ ุงู„ุดุบู„.


Notes

Clarification

  • ุงู„ู€ MEAN/MERN Stacks: ุงู„ู€ MEAN Stack ู‡ูˆ ุงุฎุชุตุงุฑ ู„ู€ (MongoDB, Express.js, Angular, Node.js)ุŒ ูˆุงู„ู€ MERN Stack ู‡ูˆ ู†ูุณู‡ ุจุณ ุจู†ุจุฏู„ Angular ุจู€ React. ุฏูŠ ู…ุฌู…ูˆุนุงุช ุชู‚ู†ูŠุฉ ุจุชุฎู„ูŠูƒ ุชุจู†ูŠ ุงู„ู…ูˆู‚ุน ุจุงู„ูƒุงู…ู„ ู…ู† ุงู„ุฃู„ู ู„ู„ูŠุงุก ุจุงุณุชุฎุฏุงู… JavaScript ูู‚ุท.

Advanced Topics

  • ุงู„ู€ TypeScript: ููŠ ุงู„ู…ุดุงุฑูŠุน ุงู„ูƒุจูŠุฑุฉ (ุฎุตูˆุตุงู‹ ู…ุน Angular)ุŒ ุงู„ู€ JavaScript ุจูŠุชู… ูƒุชุงุจุชู‡ุง ุจุงุณุชุฎุฏุงู… TypeScript ุนุดุงู† ุชูˆูุฑ โ€œStatic Typingโ€ ูˆุชุฎู„ูŠ ุงู„ูƒูˆุฏ ุฃู‚ู„ ุนุฑุถุฉ ู„ู„ุฃุฎุทุงุก ูˆุฃุณู‡ู„ ููŠ ุงู„ู€ Maintenance.
  • ุงู„ู€ Microfrontends: ุชูˆุฌู‡ ุญุฏูŠุซ ู„ุชู‚ุณูŠู… ุงู„ู€ Front-End ู„ุฃุฌุฒุงุก ุตุบูŠุฑุฉ ู…ุณุชู‚ู„ุฉุŒ ูˆุฏุง ุจูŠุญุชุงุฌ ูู‡ู… ุนู…ูŠู‚ ู„ู„ู€ JS Ecosystem.

Relation to .NET

  • ุงู„ู€ Node.js with .NET: ูƒุชูŠุฑ ู…ู† ุงู„ุดุฑูƒุงุช ุจุชุณุชุฎุฏู… .NET ููŠ ุงู„ู€ Core Business ูˆุจุชุณุชุฎุฏู… Node.js ููŠ ุงู„ู€ Real-time features (ุฒูŠ ุงู„ู€ SignalR ุฃูˆ Socket.io).