สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
ภาษาโปรแกรมมิ่ง · PRC-29

Golang for Beginners

หลักสูตร Golang for Beginners เป็นการอบรมภาษา Go ตั้งแต่พื้นฐาน ทั้งชนิดข้อมูล ฟังก์ชัน Slice, Struct, Interface และ Generics การจัดการ Error การทำงานพร้อมกันด้วย Goroutine และ Channel ไปจนถึงเว็บเซอร์วิสด้วย net/http เหมาะกับนักพัฒนาที่มีพื้นฐานการเขียนโปรแกรมและผู้ที่ต้องการสร้างบริการ Backend

อัปเดตล่าสุด
ราคาเริ่มต้น 7,650 บาท / ท่าน 8,500 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

Go หรือ Golang เป็นภาษาที่ Google พัฒนาขึ้นและได้รับความนิยมสูงในงาน Backend, Cloud และเครื่องมือ DevOps เพราะคอมไพล์เป็นไฟล์เดียวที่นำไปรันได้ทันที ทำงานเร็ว ใช้หน่วยความจำน้อย และรองรับการทำงานพร้อมกันจำนวนมากได้ดีด้วย Goroutine กับ Channel แต่ผู้ที่ย้ายมาจากภาษาอื่นมักสับสนกับแนวคิดเฉพาะของ Go เช่น Slice, Interface แบบไม่ต้องประกาศ การจัดการ Error แบบคืนค่า และการเขียน Concurrent ที่ต้องระวัง Race Condition

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่สำหรับ Go 1.27 พาผู้เรียนตั้งแต่ติดตั้งเครื่องมือและ Go Modules ปูพื้นตัวแปร ชนิดข้อมูล โครงสร้างควบคุม และฟังก์ชัน ใช้ Slice, Map, String, Pointer และ Struct เขียน Method, Interface และ Generics จัดการ Error ตามแนวทางของ Go เขียนโปรแกรมแบบ Concurrent ด้วย Goroutine, Channel, sync และ context แบ่งโค้ดเป็น Package พร้อมเขียน Test แล้วปิดท้ายด้วยการสร้างเว็บเซอร์วิสขนาดเล็กด้วย net/http ของไลบรารีมาตรฐาน (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Beginner)

สิ่งที่คุณจะได้รับ

  • ติดตั้ง Go และใช้คำสั่ง go run, go build, go mod และ go test ได้
  • เขียนโปรแกรมด้วยตัวแปร ชนิดข้อมูล โครงสร้างควบคุม และฟังก์ชันแบบต่าง ๆ ของ Go ได้
  • ใช้ Array, Slice, Map, String และ Pointer ได้ถูกต้องและเข้าใจกลไกภายใน
  • ออกแบบโปรแกรมด้วย Struct, Method, Interface, Composition และ Generics ได้
  • จัดการ Error ด้วย Error Wrapping, errors.Is และ errors.As ได้
  • เขียนโปรแกรมแบบ Concurrent ด้วย Goroutine, Channel, sync และ context และตรวจ Data Race ได้
  • แบ่งโค้ดเป็น Package และเขียน Unit Test แบบ Table-Driven ได้
  • สร้างเว็บเซอร์วิสขนาดเล็กด้วย net/http และรับส่ง JSON ได้

หลักสูตรนี้เหมาะสำหรับ

  • นักพัฒนาที่เขียนภาษาอื่นอยู่แล้วและต้องการเริ่มใช้ Go
  • ผู้ที่ต้องการพัฒนาเว็บหรือบริการ Backend ที่รองรับ Request จำนวนมาก
  • วิศวกร DevOps และผู้ดูแลระบบที่ต้องอ่านหรือเขียนเครื่องมือด้วย Go
  • นักศึกษาที่มีพื้นฐานการเขียนโปรแกรมและสนใจภาษา Go

พื้นฐานของผู้เข้าอบรม

  • มีพื้นฐานการเขียนโปรแกรมภาษาใดภาษาหนึ่ง เช่น เข้าใจตัวแปร เงื่อนไข ลูป และฟังก์ชัน
  • ไม่จำเป็นต้องเคยเขียน Go มาก่อน
  • ใช้ Command Line เบื้องต้นได้
  • โน้ตบุ๊ก Windows, macOS หรือ Linux ที่มีสิทธิ์ติดตั้งโปรแกรม

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ของหลักสูตร Golang for Beginners เนื้อหาเขียนใหม่ให้ตรงกับ Go 1.27 อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายสลับ Lab และ Workshop ตลอดหลักสูตร ระดับ Beginner เหมาะกับผู้ที่มีพื้นฐานการเขียนโปรแกรมภาษาใดก็ได้และต้องการเริ่มต้นภาษา Go

อย่างถูกแนวทาง ผู้เรียนจะได้ฝึกตั้งแต่พื้นฐานภาษา โครงสร้างข้อมูล Struct, Interface และ Generics การจัดการ Error การเขียนโปรแกรมแบบ Concurrent อย่างปลอดภัย การเขียน Test และสร้างเว็บเซอร์วิสด้วย net/http เมื่อจบแล้วต่อยอดไปยังหลักสูตร RESTful API with Go and Gin หรือ Go with Fiber Framework ได้ พร้อมรับ Lab Guide และซอร์สโค้ดครบทุก Workshop

Day 1 เริ่มต้นภาษา Go

Section 1: Lab: รู้จัก Go และติดตั้งเครื่องมือ

  • Go คืออะไร จุดเด่น ข้อจำกัด และงานที่ Go ถูกใช้ เช่น Backend, Cloud และเครื่องมือ DevOps
  • ติดตั้ง Go 1.27 บน Windows, macOS หรือ Linux และ VS Code พร้อม Go Extension
  • สร้างโปรเจกต์ด้วย go mod init และเข้าใจไฟล์ go.mod
  • คำสั่ง go run, go build, gofmt และ go vet
  • Build โปรแกรมข้ามระบบปฏิบัติการด้วย GOOS และ GOARCH

Section 2: Lab: ตัวแปร ชนิดข้อมูล และค่าคงที่

  • คีย์เวิร์ด ตัวระบุ และกฎการตั้งชื่อที่มีผลต่อการ Export
  • ประกาศตัวแปรด้วย var และ := พร้อม Zero Value
  • ชนิดข้อมูลพื้นฐาน การแปลงชนิด และค่าคงที่กับ iota
  • ตัวดำเนินการ ลำดับความสำคัญ และฟังก์ชันจากแพ็กเกจ math
  • Lab: คำนวณพื้นที่และแสดงผลด้วย Format Verbs ของ fmt

Section 3: Lab: โครงสร้างควบคุม

  • if พร้อม Statement สั้นก่อนเงื่อนไข
  • for แบบต่าง ๆ รวมถึง range กับตัวเลขที่ใช้ได้ใน Go รุ่นใหม่
  • switch แบบมีและไม่มีนิพจน์ และ fallthrough
  • break, continue และ Label
  • Lab: โปรแกรมตัดเกรดและเกมทายตัวเลข

Section 4: Lab: ฟังก์ชันใน Go

  • ประกาศฟังก์ชัน พารามิเตอร์ และการคืนค่าหลายค่า
  • Named Return Values และ Blank Identifier
  • Variadic Function, ฟังก์ชันเป็นค่า และ Anonymous Function
  • Closure และฟังก์ชันเรียกตัวเอง
  • defer และลำดับการทำงานที่ควรรู้

Section 5: Workshop: โปรแกรม Command Line แรก

  • รับค่าจาก Command Line และ Standard Input
  • แยกงานเป็นฟังก์ชันที่อ่านง่ายและใช้ซ้ำได้
  • จัดรูปแบบผลลัพธ์ให้อ่านง่ายด้วย fmt
  • Workshop: เครื่องคำนวณค่าใช้จ่ายรายเดือนแบบ Command Line
Day 2 โครงสร้างข้อมูล, Struct และ Interface

Section 6: Lab: Array และ Slice

  • Array ขนาดคงที่ การกำหนดค่าเริ่มต้น และ Array หลายมิติ
  • Slice กับ Array เบื้องหลัง: ความยาว ความจุ และการขยายด้วย append
  • สร้าง Slice ด้วย make, การตัด Slice และ copy
  • ข้อควรระวังเมื่อหลาย Slice ใช้ Array เดียวกัน
  • ใช้แพ็กเกจ slices เรียง ค้นหา และเปรียบเทียบข้อมูล

Section 7: Lab: Map, String และ Rune

  • ประกาศ Map เพิ่ม ลบ และตรวจว่ามี Key หรือไม่
  • Map เป็น Reference Type และใช้แพ็กเกจ maps ช่วยจัดการ
  • String เปลี่ยนค่าไม่ได้ Byte กับ Rune และการวนลูปภาษาไทยให้ถูกต้อง
  • แพ็กเกจ strings และ strings.Builder สำหรับต่อข้อความ
  • Lab: นับคำและตัวอักษรจากข้อความ

Section 8: Lab: Pointer และ Struct

  • Pointer คืออะไร ทำไมต้องใช้ การประกาศและ Dereference
  • สร้าง Pointer ด้วย new และส่ง Pointer เข้าฟังก์ชัน
  • ประกาศ Struct การกำหนดค่าเริ่มต้น และ Struct ซ้อน
  • การคัดลอก Struct และการเปรียบเทียบ
  • Composition ด้วยการ Embed Struct แทนการสืบทอด

Section 9: Lab: Method และ Interface

  • Method ด้วย Value Receiver และ Pointer Receiver
  • Interface แบบ Implicit ที่ไม่ต้องประกาศว่า Implement
  • Polymorphism ด้วย Interface และ Interface ที่ใช้บ่อยอย่าง Stringer
  • any, Type Assertion และ Type Switch
  • Lab: ระบบคำนวณค่าขนส่งหลายรูปแบบด้วย Interface

Section 10: Lab: Generics และ Iterators

  • Type Parameter และ Constraint เช่น comparable และ cmp.Ordered
  • เขียนฟังก์ชันและชนิดข้อมูลแบบ Generic ที่ใช้ซ้ำได้
  • Method ที่มี Type Parameter ซึ่งใช้ได้ตั้งแต่ Go 1.27
  • รู้จัก Iterator และการวนลูปด้วย range กับฟังก์ชัน
  • Lab: สร้าง Stack และฟังก์ชัน Filter แบบ Generic
Day 3 Error, Concurrency และเว็บเซอร์วิส

Section 11: Lab: จัดการ Error แบบ Go

  • Error เป็นค่าที่คืนจากฟังก์ชัน และการสร้างด้วย errors.New และ fmt.Errorf
  • Error Wrapping ด้วย %w และตรวจด้วย errors.Is และ errors.As
  • สร้าง Error ชนิดของตัวเองและรวมหลาย Error ด้วย errors.Join
  • panic และ recover ใช้เมื่อไร และเมื่อไรไม่ควรใช้
  • Lab: อ่านไฟล์ข้อมูลพร้อมรายงานข้อผิดพลาดที่ชัดเจน

Section 12: Lab: Goroutine และ Channel

  • Concurrency ต่างจาก Parallelism อย่างไร และ Goroutine ต่างจาก Thread อย่างไร
  • เริ่ม Goroutine และรอให้เสร็จด้วย sync.WaitGroup และเมธอด Go
  • Channel แบบมีและไม่มี Buffer, ทิศทางของ Channel และการปิด Channel
  • รอหลาย Channel พร้อมกันด้วย select และการตั้ง Timeout
  • Deadlock เกิดจากอะไรและป้องกันอย่างไร

Section 13: Lab: sync, context และ Worker Pool

  • Race Condition และการตรวจด้วย go run -race
  • ป้องกันข้อมูลร่วมด้วย sync.Mutex และ sync.RWMutex
  • ยกเลิกงานและกำหนดเวลาหมดด้วย context
  • รูปแบบ Worker Pool และ Pipeline ที่ใช้บ่อย
  • Lab: ดาวน์โหลดหลายไฟล์พร้อมกันแบบจำกัดจำนวน Worker

Section 14: Lab: Package, Module และการเขียน Test

  • แบ่งโค้ดเป็น Package และโครงสร้างโปรเจกต์ที่นิยม
  • เพิ่ม Dependency ด้วย go get และจัดการด้วย go mod tidy
  • เขียน Unit Test และ Table-Driven Test ด้วย go test
  • วัดความครอบคลุมด้วย -cover และเขียน Benchmark
  • Lab: เขียน Test ให้ฟังก์ชันที่สร้างไว้ตลอดหลักสูตร

Section 15: Workshop: เว็บเซอร์วิสด้วย net/http

  • หลักการทำงานของ HTTP Request และ Response
  • กำหนด Route ด้วย http.ServeMux แบบระบุ Method และ Path Parameter
  • รับส่งข้อมูล JSON ด้วย encoding/json และแสดงหน้าเว็บด้วย html/template
  • Workshop: เว็บเซอร์วิสจัดการรายการงานที่เก็บข้อมูลอย่างปลอดภัยเมื่อมีหลาย Request พร้อมกัน
  • แนะนำเส้นทางต่อยอดสู่ REST API, ฐานข้อมูล และ Docker

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

Goroutine คืออะไร ต่างจาก Thread อย่างไร

Goroutine คือฟังก์ชันที่รันพร้อมกับส่วนอื่นของโปรแกรม เริ่มได้ง่าย ๆ ด้วยการใส่คำว่า go หน้าการเรียกฟังก์ชัน Go runtime จะจัดให้ Goroutine จำนวนมากทำงานบน Thread ของระบบปฏิบัติการเพียงไม่กี่ตัว แต่ละ Goroutine เริ่มด้วย Stack ขนาดเล็กและขยายเองเมื่อจำเป็น จึงสร้างได้จำนวนมากโดยใช้ทรัพยากรน้อยกว่า Thread มาก ใน Go รุ่นใหม่ใช้ sync.WaitGroup กับเมธอด Go เริ่มและรอ Goroutine ได้สะดวกขึ้น

Channel ใน Go ใช้ทำอะไร

Channel เป็นช่องทางส่งข้อมูลระหว่าง Goroutine อย่างปลอดภัย ตามแนวคิดของ Go ที่ให้แบ่งปันข้อมูลด้วยการสื่อสาร สร้างด้วย make(chan int) ส่งค่าด้วย ch <- v และรับด้วย v := <-ch ถ้าเป็น Channel แบบไม่มี Buffer ผู้ส่งจะรอจนมีผู้รับ จึงใช้ประสานจังหวะการทำงานได้ด้วย ใช้ close เมื่อไม่มีข้อมูลจะส่งแล้ว ใช้ select รอหลาย Channel พร้อมกัน และใช้ context ยกเลิกงานที่ใช้เวลานาน ถ้าหลาย Goroutine แก้ข้อมูลเดียวกันโดยตรงให้ใช้ sync.Mutex และตรวจด้วย -race

Slice กับ Array ใน Go ต่างกันอย่างไร

Array มีขนาดคงที่ซึ่งเป็นส่วนหนึ่งของชนิดข้อมูล เช่น [5]int กับ [10]int ถือเป็นคนละชนิด และเมื่อส่งเข้าฟังก์ชันจะถูกคัดลอกทั้งก้อน ส่วน Slice เป็นมุมมองที่ชี้ไปยัง Array เบื้องหลัง ประกอบด้วยตัวชี้ ความยาว และความจุ ขยายได้ด้วย append และสร้างด้วย make ได้ เพราะ Slice หลายตัวอาจใช้ Array เดียวกัน การแก้ค่าผ่าน Slice หนึ่งจึงอาจกระทบอีกตัว ในงานจริงจึงใช้ Slice มากกว่า Array และใช้แพ็กเกจ slices ช่วยเรียงและค้นหาข้อมูล

หลักสูตร Golang for Beginners เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับนักพัฒนาที่เขียนภาษาอื่นอยู่แล้ว ผู้ที่ต้องการสร้างเว็บหรือบริการ Backend ที่รองรับ Request จำนวนมาก วิศวกร DevOps และนักศึกษาที่สนใจภาษา Go ควรมีพื้นฐานการเขียนโปรแกรมภาษาใดภาษาหนึ่งมาก่อน เช่น เข้าใจตัวแปร เงื่อนไข ลูป และฟังก์ชัน และใช้ Command Line เบื้องต้นได้ ส่วนภาษา Go เริ่มเรียนตั้งแต่ติดตั้ง

เรียนจบหลักสูตร Golang for Beginners แล้วทำอะไรได้บ้าง

ติดตั้ง Go และใช้ Go Modules เขียนโปรแกรมด้วยตัวแปร ชนิดข้อมูล โครงสร้างควบคุม และฟังก์ชัน ใช้ Slice, Map, String และ Pointer สร้าง Struct, Interface และ Generics จัดการ Error ด้วย errors.Is และ errors.As เขียนโปรแกรมแบบ Concurrent ด้วย Goroutine, Channel, sync และ context พร้อมตรวจ Data Race เขียน Test ด้วย go test และสร้างเว็บเซอร์วิสขนาดเล็กด้วย net/http ได้ ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Golang for Beginners ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ฝึกเขียนโปรแกรมแบบ Concurrent กับโจทย์ที่ใกล้เคียงระบบที่ทีมดูแลอยู่ ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449