Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Go Bootcamp: Master Golang with 1000+ Exercises and Projects

Go Bootcamp: Thành thạo Golang với 1000+ Bài tập và Dự án

Go Bootcamp: Thành thạo Golang với 1000+ Bài tập và Dự án

Làm chủ và Hiểu sâu Google's Go từ đầu với Hướng dẫn chi tiết minh họa & 1000+ Bài tập thực hành.

4.6
(3,971 đánh giá)
32,225 học viên
Giảng viên
Jose Portilla
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 419.000đ -88%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
16.0 giờ video
243 bài giảng
20 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Học từ một Người đóng góp vào Go
Học các Mẹo & Thủ thuật Go mà bạn khó tìm thấy ở nơi khác
Đi từ người mới bắt đầu hoàn toàn với Go thành lập trình viên Go tự tin
Thực hành Go với 1000+ Bài tập (kèm lời giải)
Hiểu Go một cách sâu sắc với Minh họa động (Vượt qua các buổi Phỏng vấn)
Tìm hiểu cơ chế bên trong Go và các cách viết, thực hành tốt nhất phổ biến trong Go
Tạo một Trình phân tích Tệp nhật ký (Log File Parser)
Tạo một Công cụ Che từ Spam (Spam Masker) để che các từ spam trong một đoạn văn bản
Tạo một Đồng hồ LED Retro chạy trên dòng lệnh
Tạo Hoạt ảnh Console, Chương trình Từ điển, và hơn thế nữa

Yêu cầu

Có máy tính kết nối internet.

Đối tượng phù hợp

Hãy coi khóa học này là người bạn đồng hành tốt nhất để hiểu rõ tài liệu chính thức Go Spec và sách.
Người mới bắt đầu chưa từng lập trình.
Lập trình viên chuyển sang ngôn ngữ Go.
Lập trình viên Go muốn nâng cao kỹ năng!
Lập trình viên Go muốn tìm hiểu cơ chế bên trong của slices, maps, interfaces, v.v.

Nội dung khóa học

17 phần • 196 bài giảng
1 Cài đặt và Tài nguyên
2 Giới thiệu về Biến số (Variables)
3 Ví dụ: Path Separator
4 Khi nào nên dùng khai báo ngắn (short declaration)?
5 Hãy chuyển đổi một giá trị!
6 ⭐️ Nhận đầu vào từ terminal ⭐️
7 Tìm hiểu cơ bản về os.Args
8 Đặt tên: Khuyến nghị
9 ★ BÀI TẬP ★
10 Raw String Literal là gì?
11 Làm thế nào để lấy độ dài của một chuỗi utf-8?
12 Ví dụ: Banger: Hét lại nó!
13 ★ BÀI TẬP VỀ CHUỖI (STRINGS) ★
14 Hằng số (Constants) và iota
15 ★ BÀI TẬP VỀ IOTA ★
16 ⭐️ In đầu ra có định dạng ⭐️
17 Println vs Printf
18 Escape Sequence là gì?
19 Làm thế nào để in bằng Printf?
20 Các động từ định dạng (verbs) cũng có thể an toàn về kiểu!
21 ★ BÀI TẬP VỀ PRINTF ★
22 ⭐️ Câu lệnh If ⭐️
23 Câu lệnh If
24 Else và Else If
25 ★ BÀI TẬP VỀ CÂU LỆNH IF ★
26 Thử thách nhỏ: Xác thực một người dùng
27 Lời giải: Xác thực một người dùng
28 Thử thách nhỏ: Xác thực nhiều người dùng
29 Lời giải: Xác thực nhiều người dùng
30 ⭐️ Xử lý Lỗi ⭐️
31 Giá trị nil là gì?
32 Giá trị lỗi (error) là gì?
33 Ví dụ xử lý lỗi
34 Thử thách: Chuyển đổi Feet sang Mét
35 Lời giải: Chuyển đổi Feet sang Mét
36 Simple Statement là gì?
37 Phạm vi của simple statements
38 Lỗi phổ biến về Shadowing
39 ★ BÀI TẬP XỬ LÝ LỖI ★
40 ⭐️ Câu lệnh Switch ⭐️
41 Tìm hiểu cơ bản về Câu lệnh Switch
42 Mệnh đề default (default clause) là gì?
43 Dùng nhiều giá trị trong điều kiện case
44 Dùng biểu thức bool trong điều kiện case
45 Câu lệnh fallthrough hoạt động thế nào?
46 Short switch là gì?
47 Thử thách nhỏ: Các phần trong ngày
48 Lời giải: Các phần trong ngày
49 If vs Switch: Nên dùng cái nào?
50 ★ BÀI TẬP VỀ SWITCH ★
51 ⭐️ Vòng lặp ⭐️
52 Chỉ có một câu lệnh vòng lặp trong Go
53 Làm thế nào để thoát khỏi vòng lặp (break)?
54 Làm thế nào để tiếp tục vòng lặp (continue)? (+BONUS: Gỡ lỗi)
55 Tạo bảng cửu chương
56 Làm thế nào để lặp qua một slice?
57 For Range: Học cách dễ dàng!
58 ★ BÀI TẬP VÒNG LẶP #1 ★
1 Tạo số ngẫu nhiên trong Go
2 Tạo số ngẫu nhiên và Go
3 Khởi tạo bộ tạo số ngẫu nhiên với thời gian (seed)
4 Viết Logic Trò chơi
5 ★ BÀI TẬP VỀ TẠO SỐ NGẪU NHIÊN ★
6 Dự án nhỏ: Word Finder
7 Xây dựng Chương trình Tìm từ (Word Finder)
8 Break và Continue có nhãn (Labeled)
9 Thoát khỏi Switch bằng nhãn
10 Vâng, có câu lệnh "goto" trong Go
11 ★ BÀI TẬP VỀ CÂU LỆNH CÓ NHÃN ★
1 Tìm hiểu Mảng cố định (Fixed Arrays) của Go
2 Giới thiệu và Lộ trình
3 Mảng trong Go là gì?
4 Hãy tạo một mảng
5 Tìm hiểu lỗi thường gặp khi dùng for range trên mảng
6 Composite literal là gì?
7 Tái cấu trúc Hipster's Love Bookstore dùng array literals
8 Thử thách nhỏ #1: Moodly
9 Bạn có thể so sánh giá trị mảng không?
10 Bạn có thể gán giá trị mảng này cho mảng khác không?
11 ★ BÀI TẬP VỀ MẢNG #1 ★
12 Làm thế nào để dùng mảng đa chiều?
13 Thử thách nhỏ #2: Moodly
14 Tìm hiểu tính năng ít được biết đến của Go: Keyed Elements
15 Tìm hiểu mối quan hệ giữa composite và unnamed types
16 Tóm tắt: Mảng
17 ★ BÀI TẬP VỀ MẢNG #2 ★
1 Tải Slides!
2 Thử thách: Đồng hồ LED Retro
3 Giải thích Thử thách
4 Hãy in các chữ số
5 Hãy in đồng hồ
6 Đã đến lúc làm động đồng hồ!
7 ★ BÀI TẬP ĐỒNG HỒ RETRO ★
1 Slices: Làm chủ Mảng động của Go
2 Giới thiệu và Lộ trình
3 Tìm hiểu sự khác biệt giữa slices và arrays
4 Bạn có thể so sánh một slice với slice khác không?
5 Tạo một trình tạo số duy nhất
6 ★ BÀI TẬP VỀ SLICE ★
7 Append: Hãy mở rộng một slice!
8 ★ BÀI TẬP VỀ APPEND ★
9 Cắt slice (Slicing): Hãy cắt slice đó!
10 Làm thế nào để tạo phân trang dùng slices? (+ Sprintf)
11 ★ BÀI TẬP VỀ CẮT SLICE ★
12 ⭐️ Cơ chế bên trong Slice ⭐️
13 Backing Array là gì?
14 Slice header là gì?
15 Slice header trông thế nào trong mã Go runtime thực tế?
16 Dung lượng (capacity) của một slice là gì?
17 Mở rộng slice bằng dung lượng của nó
18 Khi nào hàm append tạo một backing array mới?
19 Minh họa động: Khi nào backing array của slice phát triển?
20 ★ BÀI TẬP VỀ CƠ CHẾ SLICE ★
21 ⭐️ Thao tác Nâng cao ⭐️
22 Full Slice Expressions: Giới hạn dung lượng của slice
23 make(): Cấp phát trước backing array
24 copy(): Sao chép phần tử giữa các slices
25 Làm thế nào để dùng slices đa chiều?
26 ★ BÀI TẬP THAO TÁC SLICE NÂNG CAO ★
1 Xây dựng Chương trình Tìm tệp trống (Empty File Finder)
2 Lấy danh sách tệp
3 Ghi vào một tệp
4 Tối ưu hóa!
5 ★ BÀI TẬP FILE FINDER ★
1 Dự án: Tạo hoạt ảnh Quả bóng nảy
2 Thử thách
3 Tài liệu Thử thách
4 Bước #1: Tạo và Vẽ Bảng
5 Bước #2: Tối ưu bằng cách thêm Bộ đệm (Buffer)
6 Bước #3: Làm động Quả bóng
7 ★ BÀI TẬP QUẢ BÓNG NẢY ★
1 Học cách mã hóa và giải mã chuỗi UTF-8
2 Giới thiệu và Lộ trình
3 ★ Tài nguyên ★
4 Hãy học cơ bản về bytes, runes và strings
5 Hãy viết một chương trình character-set
6 Hãy chuyển đổi, lập chỉ mục, và cắt bytes, runes và strings
7 Làm thế nào bạn có thể giải mã một chuỗi?
8 String Header: Tại sao chuỗi là bất biến (immutable)?
9 Tóm tắt: Tìm hiểu lại về Chuỗi
10 ★ BÀI TẬP UTF-8 ★
1 Dự án: Hãy Xây dựng một Spam Masker
2 Thử thách
3 Tài liệu Thử thách
4 Phát hiện các mẫu liên kết
5 Che các liên kết
6 ★ Thử thách Bọc văn bản ★
7 Hãy xây dựng một công cụ bọc văn bản Unicode
1 Tìm hiểu Maps và Cơ chế bên trong của Go
2 Tạo một từ điển Anh - Thổ Nhĩ Kỳ
3 Điền dữ liệu vào từ điển
4 Cơ chế bên trong Map: Maps hoạt động thế nào?
5 ★ BÀI TẬP VỀ MAP ★
1 Quét đầu vào bằng bufio.Scanner
2 Quét đầu vào người dùng bằng bufio.Scanner
3 Dùng maps như tập hợp (sets)
4 Tạo một Log Parser dùng maps và bufio.Scanner
5 ★ BÀI TẬP VỀ SCANNER ★
1 Structs: Tổ chức Dữ liệu
2 Struct là gì?
3 Hãy tạo một struct!
4 Khi nào bạn có thể so sánh giá trị struct?
5 OOP trong Go: Nhúng Struct (Struct Embedding)
6 Viết lại: Log Parser dùng Structs
7 Mã hóa giá trị sang JSON
8 Giải mã giá trị từ JSON
9 ★ BÀI TẬP VỀ STRUCT ★
1 Hàm: Những khối xây dựng
2 Tìm hiểu cơ bản về hàm
3 Giới hạn biến trong một hàm
4 Viết lại: Log Parser sử dụng hàm
5 Hiểu về Ngữ nghĩa Truyền theo Giá trị
6 ★ BÀI TẬP VỀ HÀM ★
7 Con trỏ: Cập nhật dữ liệu gián tiếp
8 Con trỏ là gì?
9 Hiểu cơ chế hoạt động của con trỏ
10 Học cách làm việc với con trỏ cho kiểu dữ liệu phức hợp
11 Viết lại Log Parser sử dụng Con trỏ
12 Dùng Con trỏ hay Giá trị? Hãy nhất quán
13 ★ BÀI TẬP VỀ CON TRỎ ★
1 Phương thức: Lấy mã nguồn
2 Phương thức: Mở rộng hành vi cho các kiểu dữ liệu
3 Con trỏ nhận: Thay đổi giá trị được nhận
4 Kiểu không phải Struct: Gắn phương thức cho hầu hết mọi kiểu
1 Interface: Lấy mã nguồn!
2 Interface: Hãy linh hoạt!
3 Ép kiểu: Trích xuất giá trị động!
4 Interface rỗng: Đại diện cho mọi kiểu giá trị
5 Chuyển đổi kiểu: Phát hiện và trích xuất nhiều giá trị
6 Phương thức được thăng cấp: Cùng tái cấu trúc một chút
1 Interface nổi tiếng: Lấy mã nguồn!
2 Đừng áp dụng interface cho mọi thứ!
3 Stringer: Cho phép một kiểu tự biểu diễn dưới dạng chuỗi
4 Sorter: Để một kiểu biết cách tự sắp xếp
5 Marshalers: Tùy chỉnh mã hóa và giải mã JSON cho một kiểu
1 Bài giảng thêm

Giới thiệu khóa học

Go is a programming language created by Google, and this course is the most intuitive, in-depth, and highest-quality Go course on Udemy, with an insane level of attention to detail. You'll understand both the why and how. We've included thousands of animations, exercises, quizzes, examples, challenges, projects, and so on. By the end of the course, you'll become a confident Go programmer from scratch.

Why should you take this course now?

  • Watch ultra-detailed, entertaining, intuitive, and easy to understand illustrations and animations.

  • Solve 1000+ hands-on exercises (solutions are also included).

  • Create projects including a log parser, file scanner, spam masker, and more.

  • Learn Go programming tips and tricks that you can't find easily anywhere else.

  • Learn the Go internals and common Go idioms and best-practices.

Why should you learn Go (aka Golang and Go lang)?

  • Go is one of the most desired, easy to learn, and the highest paying programming languages. There are 1+ million Go programmers around the world, and the number is increasing each day exponentially. It's been used by Google, Facebook, Twitter, Uber, Docker, Kubernetes, Heroku, and many others.

  • Go is Efficient like C, C++, and Java, and Easy to use like Python and Javascript. It's Open-Source, Simple, Powerful, Efficient, Cross-Platform (OS X, Windows, Linux, ...), Compiled, Garbage-Collected, and Concurrent.

  • Go is best for Command-line Tools, Web APIs, Distributed Network Applications like Microservices, Database Engines, Big-Data Processing Pipelines, and so on.

What are you going to learn from this course (briefly)?

  • Go OOP: Interfaces and Methods

    • Internals of Methods and Interfaces

    • Functions and Pointers: Program design, pass by value, and addressability.

    • Implicit interface satisfaction

    • Type assertion and Type Switch

    • Empty interface: []interface{} vs interface{}

    • Value, Pointer, and Nil Receivers

    • Promoted Methods

  • Famous Interfaces

    • Tips about when to use interfaces

    • fmt.Stringer, sort.Sort, json.Marshaler, json.Unmarshaler, and so on.

  • Composite Types: Arrays, Slices, Maps, and Structs

    • Internals of Slices and Maps

    • Backing array, slice header, capacity, and map header

    • JSON encoding and decoding, field tags, embedding

    • Make, copy, full Slice expressions and append mechanics

    • UTF-8 encoding and decoding

  • Go Type System Mechanics

    • Type inference, underlying, predeclared, and unnamed types.

    • Untyped constants and iota.

    • Blank Identifier, short declaration, redeclaration, scopes, naming conventions

  • I/O

    • Process Command-Line Arguments, printf, working with files, bufio.Scanner, ...

  • How to create your own Go packages

    • How to run multiple Go files, and how to use third-party packages

  • Go tools

    • Debugging Go code, go doc, and others.

  • ...and more.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Backend Development
Hiển thị tất cả khoá học Go
Hiển thị tất cả khoá học Programming Languages
Clean Code

Clean Code

Academind by Maximilian Schwarzmüller

4.6 (26435)
118,068
50.000đ -88%
Hiển thị tất cả khoá học Software Engineering
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊