เรียน Go เขียนโค้ด
เรียน Go เขียนโค้ด — บทเรียน Golang tutorial พร้อมคอมไพเลอร์ เครื่องมือตรวจจับ race และโจทย์ฝึกทำทุกวันบนโทรศัพท์ของคุณ
เรียน Go เขียนโค้ด คือ Golang tutorial ฟรีบน iOS และ Android สำหรับผู้เริ่มต้นและนักพัฒนาที่ทำงานอยู่ มาพร้อม Go compiler และเครื่องมือแก้ไขโค้ดที่รันโค้ดของคุณด้วย Go toolchain จริง (จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต) ตรวจสอบโค้ดด้วย gofmt, go vet และเครื่องมือตรวจจับ race และเรียนครบ 51 คอร์ส ตั้งแต่ fmt.Println แรกของคุณไปจนถึง goroutines, REST APIs และ gRPC พร้อม AI Mentor สำหรับส่วนที่ยังไม่เข้าใจ
- ราคา
- ฟรี อัปเกรดเป็น Pro
- แพลตฟอร์ม
- iOS และ Android
- ภาษา
- 22
- การจัดอันดับอายุ
- 4+
- ต้องใช้
- iOS 15.1 หรือใหม่กว่า


ลบคีย์เวิร์ด go แล้วดูงานเดิมใช้เวลานานขึ้นสามเท่า
นี่คือสิ่งแรกที่แอปให้คุณลองทำด้วย Go: รันงานสามงาน งานละ 120 ms ดูเวลารวมที่น้อยกว่า 360 ms อย่างชัดเจน แล้วลบคีย์เวิร์ดเดียวที่ทำให้งานทำงานพร้อมกัน แนวคิดหลักของภาษานี้อยู่ที่คำเดียว และแอปจะทำให้คุณสัมผัสได้ก่อนอธิบาย
คืออะไร
เรียน Go เขียนโค้ด คือแอปฟรีบน iOS และ Android สำหรับเรียนรู้ Go ซึ่งเป็นภาษาคอมไพล์ที่อยู่เบื้องหลังซอฟต์แวร์คลาวด์และเซิร์ฟเวอร์จำนวนมากในปัจจุบัน แอปมี 51 คอร์สและ 203 บทเรียน ตั้งแต่ระดับเริ่มต้นถึงขั้นสูง เครื่องมือแก้ไขโค้ดที่รันโปรแกรมด้วย Go toolchain จริง โจทย์ kata ประจำวัน Concurrency Lab พร้อมเครื่องมือตรวจจับ race จริง และเส้นทางแบบมีคำแนะนำที่ให้คุณสร้าง HTTP core ของตัวเอง AI Mentor จะตอบคำถามเกี่ยวกับบทเรียนใดก็ได้
ภายในแอป
หน้าตาเป็นอย่างไร





คอร์ส
คอร์ส Go ครอบคลุมอะไรบ้าง
51 คอร์สและ 203 บทเรียนจากรายการคอร์สของแอปเอง จัดระดับตั้งแต่ A1 ถึง C1 และครอบคลุมตั้งแต่โปรแกรมแรกไปจนถึงการทำ profiling และ garbage collector
ทำความรู้จัก Go และพื้นฐาน
Go คืออะไรและเหตุใด Google จึงสร้างขึ้น จากนั้นเรียนรู้ตัวแปร types และ zero values, constants รวมถึงการควบคุมการทำงานด้วย if, for และ switch
Functions, Slices และ Maps
Functions ที่คืนค่าหลายค่า defer และพารามิเตอร์แบบ variadic, arrays, slices และ maps รวมถึง strings, การจัดรูปแบบด้วย fmt และแพ็กเกจ time
Structs, Pointers และ Interfaces
Structs และ methods, value receivers กับ pointer receivers, pointers, implicit interfaces และ duck typing รวมถึง embedding เพื่อการประกอบโครงสร้าง
Errors, Packages และ Standard Library
การจัดการข้อผิดพลาดอย่างชัดเจนด้วย errors.Is และ errors.As, packages และ modules, file I/O และ JSON, regular expressions, sorting และ buffered I/O
Goroutines, Channels และ Sync
พื้นฐาน goroutine และ channel, select และรูปแบบการใช้ channel, mutexes และแพ็กเกจ sync, context สำหรับการยกเลิก รวมถึง worker pools และ pipelines
HTTP, REST และ Databases
เซิร์ฟเวอร์และไคลเอนต์ HTTP ด้วย net/http, REST APIs ด้วย Gin, รูปแบบ middleware, database/sql ด้วย sqlx และ pgx, GORM และ WebSockets
Testing, Tooling และ Deployment
การทดสอบแบบ table-driven และ subtests, แอป command-line ด้วย Cobra, การตั้งค่าด้วย Viper, structured logging ด้วย slog และการสร้าง Docker แบบ multi-stage
Go ขั้นสูง
Generics ด้วย type parameters และ constraints, การทำ benchmarking และ profiling ด้วย pprof, gRPC ด้วย Protocol Buffers, reflection และ memory model
ทำงานอย่างไร
เซสชันทำงานอย่างไร
แต่ละบทเรียนเป็นการอ่านสั้น ๆ ตามด้วยการรันโค้ด คุณจึงได้ทั้งแนวคิดและการฝึกฝนภายในช่วงเวลาเดียวกัน
อ่านบทเรียนสั้น ๆ หนึ่งบท
เปิดคอร์สแล้วเรียนบทเรียนเดียวที่ใช้เวลาไม่กี่นาที พร้อมทฤษฎีที่อธิบายด้วยภาษาง่าย ๆ และตัวอย่างขนาดเล็ก เช่น โปรแกรม package main และ fmt.Println ในบทเรียนแรก
รันด้วย Go toolchain จริง
เครื่องมือแก้ไขโค้ดจะส่งโปรแกรมของคุณไปยัง Go runner แล้วแสดงผลลัพธ์ gofmt, go vet และเครื่องมือตรวจจับ race จะทำงานในลักษณะเดียวกัน ดังนั้นแอปจึงต้องเชื่อมต่ออินเทอร์เน็ตเมื่อคุณกดรัน และหากโปรแกรมแครช จะแสดงคำอธิบายข้อผิดพลาดด้วยภาษาที่เข้าใจง่าย
ฝึกฝนจากอีกมุมหนึ่ง
หลังเรียนหัวข้อหนึ่งแล้ว ให้ทำแบบทดสอบ แก้โจทย์ kata ประจำวัน ลองแก้ปริศนา concurrency ทีละขั้น หรือให้ AI Mentor ตั้งคำถามทดสอบคุณ แต่ละวิธีมองแนวคิดเดียวกันจากคนละมุม ซึ่งช่วยให้ความรู้ติดอยู่กับคุณ
มีอะไรอยู่ข้างใน
สิ่งที่มาพร้อมแอป
51
คอร์ส ระดับ A1 ถึง C1
203 บทเรียนจาก 51 คอร์ส ตั้งแต่พื้นฐาน Go, slices และ maps ไปจนถึง interfaces, error handling, goroutines, net/http, Gin, database access, Docker deployment, gRPC และ garbage collector
-race
Concurrency Lab พร้อมเครื่องมือตรวจจับ race
ปริศนาที่รันได้หกข้อครอบคลุม goroutines สองตัวบน channel เดียว การจับมือกันผ่าน unbuffered channel การกระจายงานด้วย WaitGroup counter ที่สูญเสียการอัปเดต map ที่มีผู้เขียนสองราย และ deadlock นอกจากนี้คุณยังรันโค้ดของตัวเองด้วยเครื่องมือตรวจจับ race ได้ ฟรีและไม่จำกัดจำนวนครั้งต่อวัน
ทุกวัน
โจทย์ kata ใหม่ทุกวัน
แบบฝึกหัด Go ที่ตรวจสอบกับตารางกรณีทดสอบ รวมถึงกรณีที่ซ่อนไว้ พร้อมคำอธิบายเฉลยในภายหลัง โจทย์ kata ประจำวันเปิดให้ทุกคนใช้ฟรี ส่วน Pro จะปลดล็อกคลังโจทย์ทั้งหมด เฉลยอ้างอิง และคำอธิบาย
Doctor
Go Doctor
ตรวจสอบว่า gofmt จะเขียนไฟล์ของคุณใหม่หรือไม่และสั่งใช้ได้ทันที รัน go vet เพื่อค้นหาปัญหา และเมื่อใช้ Pro ให้ถาม escape analysis ของคอมไพเลอร์ได้ว่าทำไมค่าหนึ่งจึงถูกจัดสรรหน่วยความจำ การจัดรูปแบบใช้งานได้ไม่จำกัด ส่วน go vet จำกัดสามครั้งต่อวันสำหรับแพ็กเกจฟรี
7 ขั้นตอน
สร้าง HTTP core ของคุณเอง
เส้นทางแบบมีคำแนะนำที่ให้คุณเขียน request, response, handlers ในรูปฟังก์ชัน, routing, path parameters, middleware และ JSON ที่มี wrapped errors ด้วยตัวเอง โดยตรวจสอบทีละขั้นตอน
AI
AI Mentor และการสัมภาษณ์จำลอง
ถาม AI Mentor ให้ช่วยอธิบายแนวคิด จัดทำ roadmap หรือทดสอบคุณได้ การสัมภาษณ์จำลองจะถามคำถาม Go ห้าข้อในระดับ junior, mid หรือ senior และให้คะแนนคำตอบของคุณ โดยเปิดให้สัมภาษณ์แบบมีคะแนนฟรีสัปดาห์ละหนึ่งครั้ง
ทบทวน
Go Recall และ Go by Example
การ์ดสั้น ๆ ประเภท “โค้ดนี้จะแสดงอะไร” เกี่ยวกับจุดที่มักทำให้เข้าใจผิด เช่น ลำดับของ defer, nil maps และการที่ append ใช้หน่วยความจำร่วมกัน พร้อม snippets ของ standard library ที่รันและแก้ไขได้
ข้อมูลเบื้องต้น
ทำไมจึงควรเรียน Go สำหรับงาน backend และ Go แตกต่างอย่างไร
Go เป็นภาษาที่มีชนิดข้อมูลแบบ static และผ่านการคอมไพล์ สร้างขึ้นที่ Google และถูกใช้อย่างแพร่หลายกับ web services, command-line tools และ cloud infrastructure จุดเด่นสำหรับงาน backend คือมีหลายอย่างให้พร้อมใช้ในตัว: concurrency เป็นส่วนหนึ่งของภาษา standard library ครอบคลุมสิ่งที่ service ขนาดเล็กส่วนใหญ่ต้องการ และโปรแกรมจะคอมไพล์เป็น binary เดียวโดยไม่ต้องติดตั้งอะไรเพิ่มเติม ภาษานี้ตั้งใจออกแบบให้มีขนาดเล็ก จึงอ่านได้รวดเร็ว แต่ผู้เริ่มต้นก็ต้องเรียนรู้แนวปฏิบัติที่ไม่คุ้นเคยอยู่จำนวนหนึ่งตั้งแต่ช่วงแรก
Goroutines และ channelsconcurrency โดยไม่ต้องจัดการ threads
goroutine คือฟังก์ชันที่เริ่มทำงานด้วยคีย์เวิร์ด go ส่วน channel คือท่อที่ goroutines ใช้ส่งค่าหากัน ทั้งสองอย่างช่วยแทนการจัดการ threads ด้วยตัวเองได้เกือบทั้งหมด จึงมีการสอน concurrency ตั้งแต่เนิ่น ๆ แทนที่จะเก็บไว้เป็นหัวข้อขั้นสูง
Errors คือค่าไม่มี exceptions
ฟังก์ชัน Go ที่อาจทำงานล้มเหลวจะคืนค่า error เป็นค่าที่สองตามปกติ และผู้เรียกจะตรวจสอบค่าดังกล่าวตรงนั้นทันที วิธีนี้ต้องเขียนมากกว่าการใช้ try block แต่ทำให้ทุกเส้นทางที่เกิดความล้มเหลวมองเห็นได้ในโค้ดที่คุณกำลังอ่าน
Interfaces โดยนัยduck typing ที่ตรวจสอบตอนคอมไพล์
ชนิดข้อมูลจะตรงตาม interface เพียงแค่มี methods ที่ถูกต้อง โดยไม่ต้องประกาศอะไรเพิ่มเติม วิธีนี้ช่วยให้ packages เชื่อมโยงกันอย่างหลวม ๆ และยังเป็นจุดที่ทำให้เกิดเรื่องชวนแปลกใจแบบคลาสสิกของ Go: interface ที่เก็บ nil pointer ไว้จะไม่ใช่ nil เอง
Binary เดียวและ standard library ขนาดใหญ่เหตุใดการ deploy จึงง่าย
Go ที่ผ่านการคอมไพล์จะได้ executable เพียงไฟล์เดียว และ packages อย่าง net/http, encoding/json และ database/sql ก็รวมมากับภาษาอยู่แล้ว service ขนาดเล็กมักไม่ต้องใช้ third-party framework ซึ่งเป็นเหตุผลหนึ่งที่ Docker images สำหรับโปรแกรม Go มีขนาดเล็กได้
เหมาะกับคุณไหม
เหมาะกับใคร — และไม่เหมาะกับใคร
เหมาะกับคุณหากคุณ
- ต้องการคอร์ส Golang ที่เรียนเป็นช่วงสั้น ๆ บนโทรศัพท์ได้
- เขียนภาษาอื่นอยู่แล้ว และอยากเห็น goroutines กับ channels ทำงานจริง
- กำลังมุ่งสู่บทบาทด้าน backend หรือ cloud และต้องการคำถามสัมภาษณ์ Go พร้อม feedback แบบให้คะแนน
- เรียนรู้ได้ดีกว่าจากแบบฝึกหัดสั้น ๆ และการ์ด gotcha มากกว่าวิดีโอยาว ๆ
- ต้องการตรวจสอบ formatting, ผลการตรวจจาก vet และ data races ในโค้ดที่เขียนเอง
ไม่ใช่เครื่องมือที่เหมาะ หากคุณ
- ต้องการรันโปรแกรมที่ import net/http หรือใช้ generics ใน runner ภายในแอป ซึ่งเป็น sandbox ของ Go 1.13
- ต้องการรันโค้ดโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต เพราะ runner ทำงานออนไลน์
- คาดหวังให้ทุกอย่างฟรี: คอร์สแรก daily kata และโควตา AI Mentor รายวันนั้นฟรี ส่วน Pro จะปลดล็อกเนื้อหาที่เหลือ
- จำเป็นต้องสร้างและนำ service ขนาดใหญ่ที่มีหลายแพ็กเกจขึ้นใช้งาน ซึ่งยังคงต้องใช้แล็ปท็อปและ toolchain เต็มรูปแบบ
คำถาม
คำถามที่พบบ่อย
วิธีที่ดีที่สุดในการเรียน Golang บนโทรศัพท์คืออะไร
บทเรียนสั้น ๆ พร้อมโค้ดที่คุณได้รันจริงมีประสิทธิภาพกว่าการอ่านเพียงอย่างเดียว และ Go ก็เหมาะกับการลงมือรัน เพราะฟีเจอร์เด่นอย่าง goroutines และ race detector เป็นสิ่งที่ต้องเรียนรู้ผ่านพฤติกรรมการทำงาน เรียน Go เขียนโค้ด จับคู่บทเรียนความยาวไม่กี่นาทีกับตัวแก้ไขโค้ด daily kata และ Concurrency Lab เริ่มต้นใช้งานได้ฟรีบน iOS และ Android โดยมี 51 คอร์สเรียงตั้งแต่ระดับเริ่มต้นไปจนถึงขั้นสูง
สามารถ compile และรันโค้ด Go บนโทรศัพท์ได้หรือไม่
ได้ หากมีการเชื่อมต่ออินเทอร์เน็ต เรียน Go เขียนโค้ด จะส่งโปรแกรมของคุณไปยัง Go runner และแสดงผลลัพธ์ โดย runner เดียวกันนี้ยังมี gofmt, go vet และ race detector ให้ใช้ โค้ดจะไม่ได้ถูกรันบนโทรศัพท์โดยตรง ดังนั้นคุณต้องออนไลน์เมื่อกดรัน และ runner มีข้อจำกัด เช่น memory allowance ขนาดเล็กและขนาด binary สูงสุด
runner ภายในแอปรองรับ generics หรือไม่
ยังไม่รองรับในตอนนี้ runner ใน เรียน Go เขียนโค้ด ใช้ Go 1.13 ส่วน generics เปิดตัวใน Go 1.18 ดังนั้นโปรแกรมที่ใช้ type parameters หรือคีย์เวิร์ด any จะ compile ไม่ผ่านที่นี่ เมื่อเกิดกรณีนี้ แอปจะอธิบายด้วยภาษาที่เข้าใจง่ายและแนะนำรูปแบบแบบเก่าให้ ส่วนคอร์ส generics เองยังเปิดอ่านเป็นบทเรียนได้
Go race detector คืออะไร และแอปใช้มันอย่างไร
race detector จะแจ้งเตือนเมื่อ goroutines 2 ตัวเข้าถึง memory เดียวกันโดยไม่มี lock คั่นกลาง ซึ่งเป็นบั๊กที่จะแสดงอาการเพียงบางครั้งเท่านั้น ใน เรียน Go เขียนโค้ด, Concurrency Lab จะให้ทำโจทย์ เช่น counter ที่ถูกอัปเดตโดย 200 goroutines ภายใต้การตรวจจับ จากนั้นคุณสามารถเพิ่ม mutex และรันอีกครั้งได้ นอกจากนี้ยังวางโค้ด goroutine ของคุณเองแล้วรันภายใต้การตรวจจับได้
Go kata คืออะไร
kata คือแบบฝึกหัดขนาดเล็กที่เน้นทักษะเฉพาะ ซึ่งคุณแก้ด้วยโค้ด เช่น การกลับ string ให้ถูกต้องสำหรับข้อความที่ไม่ใช่ ASCII หรือการครอบ error เพื่อให้ errors.Is ยังคงค้นพบได้ เรียน Go เขียนโค้ด มอบ daily kata ใหม่ทุกวัน ตรวจสอบฟังก์ชันของคุณด้วยตารางกรณีทดสอบที่มีกรณีซ่อนอยู่ และอธิบาย idiom หลังทำเสร็จ daily kata เปิดให้ทุกคนใช้ฟรี
จำเป็นต้องมีประสบการณ์เขียนโปรแกรมเพื่อเริ่มต้นหรือไม่
ไม่จำเป็น เรียน Go เขียนโค้ด เริ่มจาก Go คืออะไรและมีไว้ทำไม จากนั้นจึงสอนตัวแปร types และการควบคุมการทำงาน โดยอธิบายทุกแนวคิดด้วยภาษาที่เข้าใจง่ายก่อนให้ลงมือฝึก ประสบการณ์จากภาษาอื่นจะช่วยให้คุณผ่านคอร์สช่วงแรกได้เร็วขึ้น แต่คอร์สแรกเขียนขึ้นสำหรับผู้ที่เริ่มจากศูนย์
Learn Go เรียนฟรีหรือไม่
ดาวน์โหลดแอปได้ฟรี คอร์สแรก รวมถึง daily kata, โควตา AI Mentor รายวัน, การตรวจ gofmt แบบไม่จำกัด, การรันภายใต้ race detector แบบไม่จำกัด และการรัน go vet สองสามครั้งต่อวันนั้นใช้งานได้ฟรี Pro จะปลดล็อกทุกคอร์ส ลบโฆษณา ให้ใช้ AI Mentor ได้ไม่จำกัด และเปิดคลัง kata กับ escape analysis
มีใบรับรองเมื่อเรียนจบหรือไม่
มี เมื่อผ่านการสอบปลายคอร์ส คุณจะได้รับใบรับรองการเรียนจบคอร์ส ใบรับรองจะแสดงผลงานที่คุณทำ และเหมาะสำหรับใช้ประกอบกับโปรเจกต์ขนาดเล็กที่คุณสามารถอธิบายได้ในการสัมภาษณ์ แต่ไม่ใช่วุฒิการศึกษาที่ได้รับการรับรอง
Learn Go ช่วยเตรียมตัวสัมภาษณ์งาน Golang หรือไม่
ช่วยได้ การสัมภาษณ์จำลองจะถามคำถาม 5 ข้อในระดับ junior, mid หรือ senior ตั้งแต่ความแตกต่างระหว่าง slices กับ arrays ไปจนถึงสิ่งที่ interface value เก็บไว้ขณะรันไทม์ พร้อมให้คะแนนคำตอบและ feedback การ์ด Go Recall จะช่วยฝึกประเด็น gotcha ที่พบบ่อย และหัวข้อที่ยังอ่อนจากการสัมภาษณ์จะถูกเพิ่มลงใน recall deck การสัมภาษณ์แบบให้คะแนน 1 ครั้งต่อสัปดาห์เปิดให้ใช้ฟรี
รองรับแพลตฟอร์มและภาษาอะไรบ้าง?
เรียน Go เขียนโค้ด ใช้งานบน iOS ผ่าน App Store และบน Android ผ่าน Google Play ได้ พร้อมอินเทอร์เฟซที่รองรับ 22 ภาษา แอปได้รับการจัดเรต 4+ ดังนั้นเนื้อหาทั้งหมดจึงไม่มีข้อจำกัดด้านอายุ
เพิ่มเติมจาก CoddyKit
ใช้งานได้บน iOS และ Android