ไอคอนแอป เรียน Go เขียนโค้ด

เรียน Go เขียนโค้ด

การศึกษา · ฟรี · iOS & Android · CoddyKit

เรียน 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 สำหรับส่วนที่ยังไม่เข้าใจ

App Store — ดาวน์โหลดฟรีGoogle Play — ดาวน์โหลดฟรี
ราคา
ฟรี อัปเกรดเป็น Pro
แพลตฟอร์ม
iOS และ Android
ภาษา
22
การจัดอันดับอายุ
4+
ต้องใช้
iOS 15.1 หรือใหม่กว่า
หน้าหลักเส้นทางการเรียน Go พร้อมปุ่มเริ่มบทเรียนแรก วงแหวนเป้าหมายรายวัน และการ์ดส่งคำขอฟีเจอร์ภาพรวมคอร์ส Go Kickoff Concepts and Setup พร้อมแถบความคืบหน้า กลุ่มบทเรียนแรกที่เรียนฟรี และปุ่มเปลี่ยนคอร์ส
51คอร์ส ระดับ A1 ถึง C1
-raceConcurrency Lab พร้อมเครื่องมือตรวจจับ race
ทุกวันโจทย์ kata ใหม่ทุกวัน
ลบคีย์เวิร์ด go แล้วดูงานเดิมใช้เวลานานขึ้นสามเท่า

นี่คือสิ่งแรกที่แอปให้คุณลองทำด้วย Go: รันงานสามงาน งานละ 120 ms ดูเวลารวมที่น้อยกว่า 360 ms อย่างชัดเจน แล้วลบคีย์เวิร์ดเดียวที่ทำให้งานทำงานพร้อมกัน แนวคิดหลักของภาษานี้อยู่ที่คำเดียว และแอปจะทำให้คุณสัมผัสได้ก่อนอธิบาย

คืออะไร

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

ภายในแอป

หน้าตาเป็นอย่างไร

หน้าหลักเส้นทางการเรียน Go พร้อมปุ่มเริ่มบทเรียนแรก วงแหวนเป้าหมายรายวัน และการ์ดส่งคำขอฟีเจอร์
เส้นทางการเรียนหน้าหลักเปิดอยู่ที่เส้นทางการเรียน พร้อมปุ่มเริ่ม เป้าหมายรายวัน และลิงก์ไปยัง Skill Hub
ภาพรวมคอร์ส Go Kickoff Concepts and Setup พร้อมแถบความคืบหน้า กลุ่มบทเรียนแรกที่เรียนฟรี และปุ่มเปลี่ยนคอร์ส
ภาพรวมคอร์สคอร์สแรก Go Kickoff: Concepts & Setup ระบุว่าเรียนฟรี และแบ่งออกเป็นบทเรียนสั้น 3 บท
ตัวแก้ไขโค้ดแสดงโปรแกรม Go ที่มี package main, import fmt และการเรียกใช้ fmt.Println อยู่ข้างบทเรียนเกี่ยวกับโปรแกรมแรก
ตัวแก้ไขโค้ดบทเรียนชื่อ Your First Program พร้อมตัวแก้ไขโค้ดที่เปิดไฟล์ package main และปุ่มรัน
หน้าจอแชต AI พร้อมพรอมต์แนะนำให้ช่วยอธิบายแนวคิดสำคัญ ให้คำแนะนำ ทดสอบความรู้ หรือสร้างแผนการเรียน
AI Mentorพรอมต์แนะนำ 4 รายการสำหรับเริ่มแชต: อธิบายแนวคิดสำคัญ ให้คำแนะนำ ทดสอบความรู้ หรือสร้างแผนการเรียน
หน้าหลักธีมสว่างพร้อมเส้นทางการเรียน เป้าหมายรายวัน และ Skill Hub
หน้าหลักหน้าหลักเดิมในธีมสว่าง พร้อมเป้าหมายรายวันและ Skill Hub ที่อยู่ใต้คอร์สที่กำลังเรียน

คอร์ส

คอร์ส Go ครอบคลุมอะไรบ้าง

51 คอร์สและ 203 บทเรียนจากรายการคอร์สของแอปเอง จัดระดับตั้งแต่ A1 ถึง C1 และครอบคลุมตั้งแต่โปรแกรมแรกไปจนถึงการทำ profiling และ garbage collector

  1. ทำความรู้จัก Go และพื้นฐาน

    Go คืออะไรและเหตุใด Google จึงสร้างขึ้น จากนั้นเรียนรู้ตัวแปร types และ zero values, constants รวมถึงการควบคุมการทำงานด้วย if, for และ switch

  2. Functions, Slices และ Maps

    Functions ที่คืนค่าหลายค่า defer และพารามิเตอร์แบบ variadic, arrays, slices และ maps รวมถึง strings, การจัดรูปแบบด้วย fmt และแพ็กเกจ time

  3. Structs, Pointers และ Interfaces

    Structs และ methods, value receivers กับ pointer receivers, pointers, implicit interfaces และ duck typing รวมถึง embedding เพื่อการประกอบโครงสร้าง

  4. Errors, Packages และ Standard Library

    การจัดการข้อผิดพลาดอย่างชัดเจนด้วย errors.Is และ errors.As, packages และ modules, file I/O และ JSON, regular expressions, sorting และ buffered I/O

  5. Goroutines, Channels และ Sync

    พื้นฐาน goroutine และ channel, select และรูปแบบการใช้ channel, mutexes และแพ็กเกจ sync, context สำหรับการยกเลิก รวมถึง worker pools และ pipelines

  6. HTTP, REST และ Databases

    เซิร์ฟเวอร์และไคลเอนต์ HTTP ด้วย net/http, REST APIs ด้วย Gin, รูปแบบ middleware, database/sql ด้วย sqlx และ pgx, GORM และ WebSockets

  7. Testing, Tooling และ Deployment

    การทดสอบแบบ table-driven และ subtests, แอป command-line ด้วย Cobra, การตั้งค่าด้วย Viper, structured logging ด้วย slog และการสร้าง Docker แบบ multi-stage

  8. Go ขั้นสูง

    Generics ด้วย type parameters และ constraints, การทำ benchmarking และ profiling ด้วย pprof, gRPC ด้วย Protocol Buffers, reflection และ memory model

ทำงานอย่างไร

เซสชันทำงานอย่างไร

แต่ละบทเรียนเป็นการอ่านสั้น ๆ ตามด้วยการรันโค้ด คุณจึงได้ทั้งแนวคิดและการฝึกฝนภายในช่วงเวลาเดียวกัน

  1. อ่านบทเรียนสั้น ๆ หนึ่งบท

    เปิดคอร์สแล้วเรียนบทเรียนเดียวที่ใช้เวลาไม่กี่นาที พร้อมทฤษฎีที่อธิบายด้วยภาษาง่าย ๆ และตัวอย่างขนาดเล็ก เช่น โปรแกรม package main และ fmt.Println ในบทเรียนแรก

  2. รันด้วย Go toolchain จริง

    เครื่องมือแก้ไขโค้ดจะส่งโปรแกรมของคุณไปยัง Go runner แล้วแสดงผลลัพธ์ gofmt, go vet และเครื่องมือตรวจจับ race จะทำงานในลักษณะเดียวกัน ดังนั้นแอปจึงต้องเชื่อมต่ออินเทอร์เน็ตเมื่อคุณกดรัน และหากโปรแกรมแครช จะแสดงคำอธิบายข้อผิดพลาดด้วยภาษาที่เข้าใจง่าย

  3. ฝึกฝนจากอีกมุมหนึ่ง

    หลังเรียนหัวข้อหนึ่งแล้ว ให้ทำแบบทดสอบ แก้โจทย์ 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+ ดังนั้นเนื้อหาทั้งหมดจึงไม่มีข้อจำกัดด้านอายุ

เริ่มต้นใช้งาน

เขียน goroutine แรกของคุณวันนี้

เริ่มใช้งานได้ฟรีบน iOS และ Android ใน 22 ภาษา

App Store — ดาวน์โหลดฟรีGoogle Play — ดาวน์โหลดฟรี
ตรวจสอบล่าสุด · เผยแพร่โดย CoddyKit · นโยบายความเป็นส่วนตัว
ใช้งานได้บน iOS และ Android