สัปดาห์ที่ 02 · Foundation · Pre-code

เครื่องมือยุค AI + คำศัพท์ระบบ

AI ไม่สามารถ ใช้เครื่องมือที่เราไม่รู้ว่ามี และ ไม่สามารถ ฟังเรา ถ้าเราไม่มีคำศัพท์ที่ตรง · สัปดาห์นี้สร้าง "แผนที่เครื่องมือ" และ "พจนานุกรมระบบ" ให้ติดตัวไปทั้งหลักสูตร

เป้าหมายสัปดาห์นี้

🔒 ทำไม "เครื่องมือ + คำศัพท์" ไม่ใช่งานของ AI AI เขียนโค้ดให้ ได้ · แต่ "ตัดสินใจว่าจะใช้เครื่องมือไหน" เป็นงานของคุณ เพราะ AI ไม่รู้ ว่างบของภาควิชาเท่าไหร่ · เพื่อนคุณมี GPU มั้ย · โน้ตบุ๊กรันไหวมั้ย · ที่สำคัญ — AI ฟัง คำศัพท์ที่คุณใช้ · ถ้าคุณบอก "ทำระบบ" AI เดามั่ว · ถ้าคุณบอก "ทำ Streamlit frontend เรียก Flask backend เก็บใน SQLite" — AI เข้าใจทันที

🎯 Running Case — พี่นัท Grading App (ต่อจาก W01)

ใน W01 เราได้ "Improved Workflow" ของพี่นัทแล้ว — มีระบบที่ tick checkbox + auto-feedback · สัปดาห์นี้เราจะตอบ "ระบบนั้นต้องใช้เครื่องมืออะไร + คำศัพท์อะไรในการสื่อสารกับ AI"

โจทย์ที่ต้องตอบสัปดาห์นี้ ถ้าจะสร้าง "Grading App" ของพี่นัท — เป็นนักศึกษาปี 1 ที่ใช้ AI ทำได้แค่ไหน? ต้องการอะไรบ้าง? เรียกแต่ละชิ้นว่าอะไร? · พอจบ W02 คุณจะตอบได้ทุกข้อ

🗺 Mental Map — ระบบ Grading App ประกอบด้วยอะไร

ก่อนจะรู้จักเครื่องมือเป็นรายตัว — ต้องเห็น "ภาพรวม" ก่อนว่าระบบหนึ่ง ประกอบด้วยอะไรบ้าง · ทุกระบบในชีวิตวิศวะ (web app, IoT, automation) มีโครงสร้างคล้ายกันแบบนี้

flowchart TB user(["👤 พี่นัท
(user)"]) subgraph app ["🖥 Grading App (ของเรา)"] direction TB fe["Frontend
หน้าจอที่พี่นัทเห็น
Streamlit / HTML"] be["Backend
logic การคำนวณ
Python / Flask"] db[("Database
เก็บคะแนน
JSON / SQLite")] fe <-->|REST| be be <-->|SQL| db end classroom[["🌐 Google Classroom
External API"]] ai[["🤖 Claude / GPT
AI API"]] git[["💾 GitHub
เก็บ code"]] cloud[["☁️ Streamlit Cloud
Hosting"]] user -->|browser| fe be -->|fetch pdfs / post comments| classroom be -->|generate feedback text| ai app -.->|deploy| cloud app -.->|version control| git classDef person fill:#0d3f3a,stroke:#2dd4bf,color:#fff classDef internal fill:#1e3a5f,stroke:#3776ab,color:#fff classDef external fill:#3b2962,stroke:#8b5cf6,color:#fff classDef infra fill:#3d2c1a,stroke:#ffd43b,color:#fff class user person class fe,be,db internal class classroom,ai external class git,cloud infra

🟢 user · 🔵 ระบบของเรา (frontend + backend + database) · 🟣 external services · 🟡 infrastructure

ใช้แผนที่นี้เป็น "checklist" สำหรับทุกโปรเจกต์ใหม่ ถามตัวเอง — มี frontend มั้ย? backend ทำอะไร? เก็บข้อมูลที่ไหน? เรียก external อะไร? ใช้ AI ตรงไหน? deploy ที่ไหน? — ถ้าตอบครบ = แผนชัด

🛠 เครื่องมือ จัดตามชั้นในแผนที่

ทีนี้แต่ละชั้นในแผนที่ มีเครื่องมือให้เลือก · เลือกตามขนาดของปัญหา · ไม่ต้องเก่งทุกตัว — ขอแค่ "รู้จัก"

🤖 AI Tools

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
Claude (web/desktop)สนทนายาว, อ่านเอกสาร, อธิบาย codeเริ่ม brainstorm, debug ที่ยาว ๆ
ChatGPTคำตอบไว, ใช้กับ imageคำถามสั้น ๆ, สรุปบทความ
Geminiเชื่อมกับ Google Workspaceทำ slide / sheet / mail
CursorAI ในตัว IDE (พิมพ์โค้ดให้ทันที)เขียน Python project
Claude CodeAI ใน terminal — แก้หลายไฟล์พร้อมกันโปรเจกต์ใหญ่ที่มีหลายไฟล์
GitHub Copilotautocomplete ใน VS Codeพิมพ์ code วันละหลายชั่วโมง

📝 Code Editors & Runtime

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
VS Codeeditor มาตรฐาน, มี extension เยอะใช้ตลอด 15 สัปดาห์
Cursorfork ของ VS Code + AI ในตัวถ้าอยากให้ AI ช่วยตลอด
Jupyter Notebookรัน code ทีละ cell + เห็นผลทันทีdata analysis, plot, ทดลอง
Google ColabJupyter บน cloud — ไม่ต้องติดตั้งนักศึกษาใช้ Chromebook / iPad
Python REPLพิมพ์ python ใน terminalทดสอบคำสั่งสั้น ๆ
ReplitIDE บน browser พร้อม share linkแชร์ code กับเพื่อนเร็ว ๆ

💾 Version Control

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
Gittrack ทุกการเปลี่ยน, rollback ได้โปรเจกต์ที่ใหญ่กว่า 1 ไฟล์
GitHubเก็บ Git บน cloud + ทำ portfolioW14 ขึ้นไป (หรือเร็วกว่าก็ดี)
GitHub DesktopGUI ของ Git — ไม่ต้องพิมพ์ commandผู้เริ่มต้น

🌐 Hosting / Deployment

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
Streamlit Clouddeploy แอป Streamlit ฟรี + เร็วData dashboard, demo
Cloud Run (Google)deploy Flask/FastAPI ได้API จริง, W14-W15
Vercel / Netlifydeploy static website ฟรีเว็บนิทรรศการ, portfolio
Renderdeploy Flask แบบง่ายนักศึกษายังไม่กล้าใช้ Cloud Run

📊 Spreadsheets / Forms / Database

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
Google Sheets"ฐานข้อมูล" สำหรับนักศึกษาเริ่มทุก project ที่นี่ก่อน
Google Formsสร้าง form → เก็บลง Sheetเก็บข้อมูล user, survey
Google Apps ScriptJavaScript ที่ทำ automation ใน Sheets/Formsauto-email, validation
SQLitedatabase 1 ไฟล์ ใช้ใน Python ได้ทันทีapp เล็ก ๆ ที่อยากเก็บข้อมูลถาวร
Postgresdatabase จริงจังเมื่อมี user หลายคนพร้อมกัน

🔌 Integration / Communication

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
LINE Messaging APIส่งข้อความ LINE ผ่าน codeแจ้งเตือน, mini bot
Discord Webhookโพสต์ลง channelแจ้งเตือน CI, log
Google Drive APIอ่าน/เขียนไฟล์ใน Driveเชื่อมกับ Classroom
Gmail APIส่งเมลผ่าน codeแจ้งผลคะแนน, รายงาน

📐 Diagram / Documentation

ชื่อทำอะไรได้ดีใช้เมื่อไหร่
Mermaidเขียน flowchart/sequence ด้วย textW03, ทำ diagram คู่กับ AI
Excalidrawวาดมือบน browserbrainstorm, อธิบายให้เพื่อน
draw.iodiagram จริงจัง (C4, ER, …)spec ที่ต้องส่งให้คนอื่น
Notion / Google Docsเขียน spec / READMEก่อน build ทุกโปรเจกต์

🔑 เปรียบเทียบ — สภาพแวดล้อมพัฒนา 2 แบบหลัก

สิ่งที่นักศึกษาปี 1 ต้องเข้าใจให้ชัด — คุณจะเขียนโค้ดในสภาพแวดล้อมแบบไหน มีผลกับ "AI ช่วยได้แค่ไหน" และ "ขนาดโปรเจกต์ที่ทำได้" ต่างกันมาก

🅐 VS Code / Cursor + Agent

"แบบโครงการ"

  • เปิดเป็น folder ทั้งโปรเจกต์
  • AI เห็นไฟล์ทุกไฟล์, แก้หลายไฟล์พร้อมกัน
  • มี git ในตัว → version control
  • เก็บ secrets ใน .env
  • terminal + debugger ครบ
  • เหมาะกับ: app, CLI tool, web app, Final Project

ลง Python · ลง VS Code / Cursor

🅑 Colab / Jupyter + Chat LLM

"แบบสมุดทดลอง"

  • 1 ไฟล์ .ipynb = หลาย cell
  • เห็นผลคำนวณ cell ต่อ cell
  • plot กราฟ inline ทันที
  • copy-paste code ↔ Claude/ChatGPT
  • ไม่ต้องติดตั้งอะไร (Colab)
  • เหมาะกับ: data analysis, การทดลอง, การเรียน NumPy/Pandas, รายงาน

ลงมือ — Colab Quickstart

เลือกแบบไหน?

สถานการณ์เลือกเพราะ
กำลังเรียน Python ใหม่ ๆ🅑 Colab/Jupyterเห็นผลทันที, เรียนทีละ cell
ทำ data analysis (ลาย groupby, plot)🅑 Colab/Jupyteroutput อยู่ติดกับ code, ทำรายงานง่าย
สร้าง CLI tool / web app / project ใหญ่🅐 VS Code/Cursorหลายไฟล์, มี git, deploy ได้
ต้อง deploy / share กับคนอื่น🅐 VS Code/Cursorgit + GitHub + cloud deploy
อยากให้ AI แก้หลายไฟล์พร้อมกัน🅐 CursorAgent mode เห็นทั้ง codebase
โน้ตบุ๊กกระจอก / Chromebook🅑 Colabรันบน cloud ของ Google ฟรี
คู่มือนี้ใช้ทั้งสองแบบ W04-W07 (Code Literacy) ใช้ Cursor เป็นหลัก · W08-W10 (Data with AI) ใช้ Colab/Jupyter เป็นหลัก · W11-W15 กลับมาที่ Cursor + git + GitHub เพราะต้อง deploy

🗄️ ภาพรวม Database — JSON → SQLite → PostgreSQL

ก่อนเรียน database อย่างจริงจัง (W08, W12) ให้รู้จัก "บันได 4 ขั้น" ของการเก็บข้อมูลก่อน — แต่ละขั้นแก้ปัญหาที่ขั้นก่อนทำไม่ได้

ระดับเครื่องมือเหมาะกับข้อจำกัด
1 ตัวแปรใน RAM list, dict ทดลอง · code ตัวอย่าง · ระหว่างรัน ปิดโปรแกรม = ข้อมูลหาย
2 ไฟล์ในเครื่อง .json, .csv, .txt script ส่วนตัว · config · ข้อมูลไม่กี่ร้อย row 2 คนเขียนพร้อมกัน = data ชนกัน · search ช้า
3 Database 1 ไฟล์ SQLite app เล็ก · 1 user · prototype · embedded หลายคนพร้อมกันยังลำบาก · ไม่มี user/permission ในตัว
4 Database จริงจัง PostgreSQL / MySQL หลาย user · production · ระบบจริง ต้อง host server · ต้องดูแล backup
เคล็ดลับ — เริ่มต่ำเสมอ ทุกโปรเจกต์ใหม่ ให้เริ่มที่ขั้น 1 หรือ 2 ก่อน ใช้ Sheet ก็ได้ ใช้ JSON ก็ได้ — เมื่อ "จริง ๆ มีปัญหา" (เช่น ข้อมูลเริ่มเยอะ, ต้อง search, มี user เพิ่ม) ค่อยขยับขึ้นขั้น · 90% ของ project นักศึกษาปี 1 ไม่ต้องเกิน SQLite

ตัวอย่าง: ปัญหา "จองเครื่อง CNC" — แต่ละขั้นจะใช้ database แบบไหน?

เริ่ม:        Google Sheet                      (no code)
หลัง W04-W07: JSON file ใน CLI tool               (พอใช้คนเดียวพอ)
หลัง W08:    SQLite ใน Streamlit app             (เริ่มมีหลายคนใช้)
หลัง W12:    PostgreSQL บน Cloud Run             (เพื่อนทั้งห้องเห็นเลย)
W14:         + auth, + backup, + version log     (production จริง)
สำคัญที่สุด — รู้ว่า "เราไม่มีอะไร" ทุกครั้งที่อยากทำของ ถามตัวเอง: "ฉันมีอะไรอยู่แล้ว / ขาดอะไร / สร้างได้เองหรือต้องหาเครื่องมือ?"
เช่น "อยากตรวจ lab อัตโนมัติ" → มี student login มั้ย? มี rubric มั้ย? มีไฟล์ใหญ่หรือเล็ก? มีสิทธิ์ใช้ Classroom API ของภาคมั้ย? — ถ้าไม่รู้ "ฉันไม่มีอะไร" AI ก็ช่วยไม่ได้

📚 คำศัพท์ระบบ 40 คำ — จัดตามสถานการณ์

แทนที่จะท่องเป็นแถว — จัดกลุ่ม "คำที่จะเจอพร้อมกัน" เวลาทำงานจริง · เมื่อเข้าสถานการณ์ไหน คำในกลุ่มนั้นจะมาเป็นพวง · จะจำง่ายขึ้น 10 เท่า

1️⃣ เมื่อสร้าง Web App (Grading App ของพี่นัท)

Userผู้ใช้งาน (พี่นัท)
Clientฝั่ง user — browser ของพี่นัท
Frontendหน้าจอที่พี่นัทเห็น (Streamlit page)
Backendโค้ด Python ที่ทำ logic
Serverเครื่องที่รัน backend (Streamlit Cloud)
API"ประตู" ที่ frontend ใช้คุยกับ backend
EndpointURL ของ API แต่ละจุด เช่น /api/grades
Request / Responseคำขอ / คำตอบ ที่วิ่งผ่าน API
📢 Prompt ที่ใช้คำในกลุ่มนี้ "เขียน Streamlit frontend ที่แสดงรายการ pdf · กดแต่ละ pdf ส่ง request ไปยัง Flask backend ผ่าน endpoint /api/grade · response คืนเป็น JSON ของคะแนน + feedback"

2️⃣ เมื่อ user ต้อง login

Adminผู้ดูแลระบบ (อาจารย์ที่ดูทุกอันได้)
Roleบทบาท (TA, อาจารย์, นักศึกษา)
Permissionสิทธิ์ที่แต่ละ role ทำได้
Authentication (Auth)ยืนยันตัวตน (login ด้วย Google)
Authorizationตรวจว่ามีสิทธิ์ทำมั้ย (หลัง login)
Sessionช่วงเวลาที่ login อยู่
Tokenกุญแจที่ระบบใช้รู้จักว่าใคร (เช่น JWT)
📢 Prompt ที่ใช้คำในกลุ่มนี้ "ใช้ Google Sign-In ทำ authentication · เก็บ session ใน cookie · เช็ค role จาก email ถ้าลงท้าย @ubu.ac.th = TA · มี authorization ที่จำกัดว่า TA เห็น drawing ของวิชาตัวเองเท่านั้น"

3️⃣ เมื่อเก็บข้อมูล (Database)

Databaseที่เก็บข้อมูลถาวร
Schema"พิมพ์เขียว" — ตารางอะไร, field อะไร
Cacheเก็บผลที่คำนวณแล้วไว้ใช้ซ้ำ (เร็วขึ้น)
Backupcopy ของข้อมูล เก็บไว้กรณีพัง

💡 ระดับของ database: ตัวแปร RAM → JSON file → SQLite → PostgreSQL — ดูตาราง "บันได 4 ขั้น" ด้านบน

4️⃣ เมื่อเรียก External Service (Classroom API, LINE, Claude)

Webhook"กดกริ่ง" — external ส่งข้อมูลมาให้เรา (เช่น LINE bot รับข้อความ)
Polling"เคาะถามทุก X วินาที" — opposite ของ webhook
Rate limitจำกัดจำนวนเรียก API ต่อนาที/วัน
Timeoutรอนานเกินจนยอมแพ้
Retryลองใหม่อีกครั้งเมื่อล้มเหลว
API Keyรหัสที่ external service ให้มา ห้ามเปิดเผย
📢 Prompt ที่ใช้คำในกลุ่มนี้ "เรียก Classroom API ดึง pdf ของ assignment · ใส่ timeout 10 วินาที · ถ้า fail ให้ retry 3 ครั้ง · เก็บ API key ใน .env ไม่ commit · ระวัง rate limit 100 req/นาที — ใช้ cache ถ้าเรียกซ้ำ"

5️⃣ เมื่องานต้องรัน background (ไม่ใช่ real-time)

Job / Workerงานที่รันใน background (เช่น สร้าง feedback batch)
Queueคิวงานที่รอ worker ดึงไปทำ
Cron jobงานที่รันตามเวลา (เช่น สรุปคะแนนทุกวันศุกร์ 5 โมง)
Async / Await"ทำงานไปก่อน รอผลทีหลัง" — ไม่ block UI

6️⃣ เมื่อ deploy + ดูแลระบบ

Buildการประกอบ code เป็นรูปที่รันได้
Deploymentการเอา code ขึ้น production
Runtimeตอน code กำลังรันอยู่บน server
Environment variableค่าที่เปลี่ยนได้ระหว่าง dev/prod (DB url, API key)
Secretenv variable ที่ ห้าม เปิดเผย
Logข้อความที่ระบบบันทึกไว้ (debug)
Error / Exceptioncode เจอปัญหาแล้วหยุด
Rollbackย้อนกลับไป version ก่อนหน้า เมื่อ deploy พัง
📢 Prompt ที่ใช้คำในกลุ่มนี้ "Build Docker image · deploy ขึ้น Cloud Run · เก็บ secrets ใน Secret Manager ไม่ใช่ environment variable · เขียน log ทุก request เพื่อ debug · ถ้า version ใหม่พัง ให้ rollback ได้ใน 1 command"

7️⃣ เมื่อทำงานกับ hardware (IoT / Sensor / Mechatronics)

กลุ่มนี้สำคัญสำหรับนักศึกษา Mechatronics, ไฟฟ้า, IE, Civil (smart building)

Sensorอุปกรณ์ตรวจวัด (อุณหภูมิ, แสง, ระยะ, vibration)
Actuatorอุปกรณ์ทำงาน (มอเตอร์, รีเลย์, valve)
Gatewayตัวกลาง (Raspberry Pi) ระหว่าง sensor กับ cloud
Edge deviceอุปกรณ์ใกล้สนาม ทำงานในที่
Protocolภาษาที่อุปกรณ์ใช้คุยกัน (Modbus, MQTT, OPC-UA)
Real-time updateเห็นค่าใหม่ทันทีที่เปลี่ยน
เคล็ดลับ — Glossary ของคุณคือ "อาวุธลับ" สั่ง AI เปลี่ยน prompt "ทำระบบ" เป็น "frontend Streamlit เรียก backend Flask ผ่าน REST endpoint /api/grade · auth ด้วย Google Sign-In · เก็บใน SQLite · deploy บน Streamlit Cloud"code ที่ได้ดีขึ้น 10 เท่า เพียงเพราะคำศัพท์แม่นขึ้น

📅 Tools Timeline — แต่ละเครื่องมือจะใช้สัปดาห์ไหน

ไม่ต้องเรียนทุกตัวพร้อมกัน · นี่คือลำดับที่แต่ละ tool จะ "เข้าฉาก" — เรียนตอนนั้นพอ · ตัวอื่นแค่รู้จักก่อน

gantt title 13 สัปดาห์ข้างหน้า — เมื่อไหร่จะใช้แต่ละเครื่องมือ dateFormat X axisFormat W%d section Editor / AI Cursor / VS Code :crit, 3, 13 Claude (web/chat) :crit, 3, 13 Google Colab :active, 8, 11 GitHub Copilot :11, 13 section Source Control Git (basic) :crit, 4, 13 GitHub (commit/push) :7, 13 GitHub Pull Requests :14, 15 section Data Storage JSON file :7, 9 CSV / pandas :active, 8, 11 SQLite :active, 11, 13 PostgreSQL :12, 13 Google Sheets :10, 13 section Web / API Flask (Backend) :12, 13 Streamlit (Frontend) :14, 15 requests (call APIs) :12, 13 LINE Messaging API :12, 13 section Deploy Streamlit Cloud :14, 15 Cloud Run :14, 15 PyInstaller (.exe) :14, 15 section AI in Code Anthropic SDK (Claude API) :14, 15 Ollama (Local LLM) :14, 15

🟥 critical = ใช้ตลอด · 🟦 active = ใช้หนักในช่วงนั้น · ปกติ = แตะแค่บางสัปดาห์

Workshop — Setup + Prompt Rewrite

  1. ลงทะเบียนอย่างน้อย 3 บัญชี — GitHub, Claude (claude.ai), และ Cursor (cursor.com) — บันทึก email/password ให้ปลอดภัย
  2. ติดตั้ง Python 3.11+ และ VS Code (หรือ Cursor) — เปิด terminal พิมพ์ python --version ต้องเห็นเลข version
  3. ลองทำ "Hello World" ใน 3 ที่ — Python REPL, Jupyter (Colab ก็ได้), และ Cursor — เพื่อรู้ว่าแต่ละที่หน้าตาเป็นยังไง
  4. 📝 เปิด glossary.md ของตัวเอง — สร้างใน Notion/Google Docs · เอาคำศัพท์ 40 คำมาใส่ และเขียนคำอธิบาย "ในแบบของคุณเอง" (ไม่ copy จากเว็บ)
  5. 🎯 วาด Mental Map ของ 1 ปัญหาจาก W01 — copy template Mermaid ของ Grading App ด้านบน · แก้ให้เป็นปัญหาของคุณ · ใช้ 🎨 Mermaid Editor
  6. 📋 ระบุ "ฉันต้องมีอะไรบ้าง" — ตอบรายชั้นในแผนที่: frontend? backend? database? external? AI? deploy? — เลือก tool 1 ตัวต่อชั้น (ดูจากตาราง 8 หมวด)
  7. ✍️ Prompt Rewrite Exercise — เอา prompt "วาก" 3 อันด้านล่าง → เขียนใหม่โดยใส่คำศัพท์จากกลุ่ม 1-6 ให้ "ละเอียดและตรง" มากขึ้น
  8. 🧪 ส่ง Prompt ให้ Claude ทั้ง 2 version — เปรียบเทียบคำตอบ · จดต่างกันยังไง · นี่คือ "ค่าของคำศัพท์"

✍️ Prompt Rewrite Exercise — Before / After

เอา prompt วาก ๆ ทางซ้าย → เขียนใหม่ใส่คำศัพท์เป็น prompt ที่ดี (ตัวอย่างใน 1) ทำต่อใน 2-3)

❌ Before — "วาก"✅ After — ใช้คำศัพท์
"ทำระบบจอง CNC" ตัวอย่าง: "ทำ Streamlit frontend สำหรับ student role · กดจองได้ผ่าน form · ส่ง request ไปยัง Flask backend ที่ endpoint /api/book · เก็บใน SQLite database · มี authentication ผ่าน Google Sign-In · deploy บน Streamlit Cloud"
"ทำ bot LINE แจ้งเตือน" (ลองเขียนเอง — ใช้คำจากกลุ่ม 4 และ 5)
"เก็บข้อมูล sensor" (ลองเขียนเอง — ใช้คำจากกลุ่ม 7 และ 3)

ตัวอย่าง — ตอบ "ฉันต้องมีอะไรบ้าง?"

โจทย์: อยากให้นักศึกษาจองเครื่อง CNC ออนไลน์

มีอะไรอยู่แล้ว:
  ✓ Google Account ของภาควิชา
  ✓ รายชื่อนักศึกษาปี 3-4 (Excel)
  ✓ ตารางสอน / ตารางว่างของเครื่อง CNC

ขาดอะไร:
  ✗ ระบบ login (ใช้ Google Sign-In ได้?)
  ✗ ที่เก็บ booking (Sheet ก็พอ?)
  ✗ ตัวเช็คว่าจองซ้ำหรือไม่
  ✗ แจ้งเตือนคืนก่อนวันจอง (LINE bot?)
  ✗ ระบบยกเลิก

อะไรที่ "ยังไม่ต้องทำ" (non-goals):
  - ไม่ต้องสร้าง mobile app
  - ไม่ต้องมี payment
  - ไม่ต้องมี admin panel ทันที (ใช้ Sheet ดูตรง ๆ ก่อน)

เครื่องมือที่จะใช้:
  - Google Forms (รับการจอง)
  - Google Sheets (เก็บ booking)
  - Google Apps Script (validation)
  - LINE Messaging API (แจ้งเตือน) — ระยะ 2

ข้อผิดที่พบบ่อย

เลือกเครื่องมือเท่ ๆ ก่อนหาปัญหา — "อยากใช้ Docker", "อยาก deploy ขึ้น Kubernetes" — ผิด · เริ่มจากปัญหาเสมอ เครื่องมือเลือกตามปัญหา ไม่ใช่กลับกัน
คิดว่ารู้คำศัพท์แล้วเพราะเคยได้ยิน — "API คืออะไร?" — ถ้าตอบไม่ได้ใน 1 ประโยคของตัวเอง = ยังไม่รู้ ฝึกอธิบายคำพวกนี้ให้เพื่อนที่ไม่เคยเรียน
ขอ AI ทำของโดยไม่บอกบริบท — "ทำระบบจองเครื่อง" — กว้างเกิน · ต้องบอก role, สถานที่, จำนวน user, ข้อมูลที่มี สัปดาห์ที่ 14 จะลงลึกเรื่องนี้ แต่เริ่มฝึกได้ตั้งแต่ตอนนี้

ส่งงานสัปดาห์นี้

Reference จาก slide เดิม

สัปดาห์นี้ไม่ตรงกับ slide เดิมโดยตรง — เป็น foundation ใหม่ของยุค AI ที่ Mainidea เน้น