Dreams of CodeDreams of Code Logo
CoursesStoreBlog
Dreams of Code
CoursesStoreBlog
EARLYBIRD SPECIAL

Command Line Applications in Go

Learn Go through building powerful command line applications

Command Line Applications in Go
Ready to start learning?

Join hundreds of developers mastering this topic through our carefully crafted curriculum.

Start Watching
**Command Line Applications in Go** provides a hands on course to learning Go through building command line applications. ## What will I learn? As well as learning how to write Go code, you'll also learn how to build command line applications ranging from simple CLI utilities, to full TUI applications, enough to rival even a web applications. Some of the concepts you'll learn - Reading and Writing to Files and Streams - Dealing with input and output - Parsing Command Line flags - Advanced Go concepts such as concurrency - Testing your code to ensure correctness - Creating network applications - Building complex command based applications - Creating interactive text user interfaces - Working with data stores such as BadgerDB and Sqlite. - Distributing your application to others ## What will we build? Throughout this application, we'll build a number of different command line applications such as: - A tool to count lines and words in a file - Command based tooling for generating git commit messages using the OpenAI API - A tool to compress and extract data using gzip - A command line tool for storing and retriving data from the command line ## Is this course right for me? If you're looking to learn Go, or you want to learn to build your own command line applications, then this course is perfect for you. Go is one of the best languages to learn in 2025, enabling high productivity, and a modern development experience whilst maintaining type and memory safety. ## Will this course be updated? Yes! The benefit of doing video courses such as this is that I'm able to easily update them compared to YouTube, so as the Go programming language changes, I'll be able to make sure that the information stays relevant and up to date. ## How can I enroll? The course is currently being built, however if you want to be notified for when we start early bird sales, then feel free to register your email below!

Course Curriculum

Module 0

Introduction

Video 0
Introduction to the course
Free
02:58
Video 1
Welcome!
Free
04:56
Video 2
Setting up your environment
Free
15:27
Video 3
Go 101: Variables, Values & Types
Free
24:33
Video 4
Go 101: Conditionals & Loops
Free
19:26
Video 5
Go 101: Functions & Pointers
Free
17:09
Video 6
Go 101: Packages
Free
12:44

Module 1

Counting Words

Video 7
Starting a new project
Free
12:41
Video 8
Reading from a file
Free
11:23
Video 9
A Simple Word Counter
Free
09:30
Video 10
Writing tests
Free
15:34
Video 11
Edge cases
Free
10:35
Video 12
Table Driven Testing
Free
13:11
Video 13
A better algorithm
Free
15:23

Module 2

Input, Output, & Arguments

Video 14
Introduction to input
Free
02:19
Video 15
Exit codes
Free
05:39
Video 16
Standard error
Free
11:10
Video 17
Reading large files
Free
23:27
Video 18
Bytes & ascii
Free
15:12
Video 19
Unicode & Runes
18:04
Video 20
The bufio package
08:34
Video 21
Decoupling & io.Reader
08:57
Video 22
Command line arguments
09:09
Video 23
Handling multiple errors
16:05
Video 24
Closing files with defer
08:20
Video 25
Standard input
08:04
Video 26
Scanning data
19:46

Module 3

Adding Features

Video 27
Adding new features
05:46
Video 28
Counting lines
11:47
Video 29
Counting bytes
10:32
Video 30
Encapsulation
10:41
Video 31
File offsets and seeking
18:44
Video 32
Methods
17:04
Video 33
Variadic parameters
07:01
Video 34
Method receivers
11:48
Video 35
CLI flags
25:13
Video 36
Single pass algorithm
08:53
Video 37
Tabular output
14:59
Video 38
Organizing our code
13:31
Video 39
Package visibility
09:22
Video 40
Constructor arguments
06:40
Video 41
Whitebox vs Blackbox testing
11:24

Module 4

Concurrency & Streams

Video 42
Introduction to concurrency & data
01:27
Video 43
Goroutines & Waitgroups
12:01
Video 44
Channels
12:46
Video 45
Handling async errors
14:16
Video 46
io.TeeReader
05:59
Video 47
io.Pipe
07:59
Video 48
io.MultiWriter
05:06

Module 5

Advanced Testing

Video 49
Introduction to Advanced Testing
01:09
Video 50
Benchmark testing
09:25
Video 51
End to end testing (e2e)
15:08
Video 52
e2e: Testing files
13:05
Video 53
e2e: Multiple files
17:50
Video 54
Determinstic output
11:34
Video 55
e2e: Testing flags
05:36
Video 56
Creating test helpers
18:44

Module 6

Commands, Signals, & Contexts

Video 57
Executing commands
08:59
Video 58
Passing in input
08:17
Video 59
Configuring commands
09:20
Video 60
Asynchronous execution
15:06
Video 61
Signals
13:42
Video 62
Graceful shutdown
07:24
Video 63
Cancellation
17:01
Video 64
context.Context
17:13
Video 65
Building a process guard
22:30
Video 66
Opening an editor
09:52
Video 67
Fuzzing finding with fzf
09:31

Module 7

Filesystem & Networking

Video 68
Introduction to Networking & Files
03:19
Video 69
File flags
11:09
Video 70
File permissions
20:20
Video 71
Walking the filesystem
18:12
Video 72
Lockfiles & PIDFiles
16:49
Video 73
File locks
08:24
Video 74
The net package
09:28
Video 75
TCP Client
03:04
Video 76
DNS lookups
03:17
Video 77
Port scanning
07:25
Video 78
The net/http package
17:31
Video 79
Marshaling & unmarshaling data
15:30
Video 80
Sending files with HTTP
08:04
Video 81
Testing HTTP Requests
09:19

Module 8

Powerful Command Line Applications

Video 82
Introduction to Powerful CLI Apps
01:34
Video 83
Subcommands
12:56
Video 84
Flagsets
15:04
Video 85
Subcommand Abstraction
21:41
Video 86
Compressing files & data with GZip
24:27
Video 87
Hashing files & data
15:37
Video 88
Password & Secure Input
20:31
Video 89
Have I been pwned?
15:32
Video 90
Environment variables
12:03
Video 91
Configuration files
16:31
Video 92
Advanced Error Handling
20:00
Video 93
Embedding Files
09:27
Video 94
Cross platform code
15:30
Video 95
Build flags
11:35
Video 96
Regular expressions
14:18
Video 97
UI: A Loading Spinner
15:36
Video 98
UI: A Progress Bar
17:26
Video 99
Adding color to Stdout
09:23
Video 100
Working with images
19:55
Video 101
Distributing an application
15:20
Video 102
An Application Builder
08:26
Video 103
Handling CGO
14:54

Module 9

Popular CLI Packages

Video 104
Introduction to Popular CLI packages
03:17
Video 105
Subcommands with Cobra
13:53
Video 106
POSIX flags with pFlag
19:22
Video 107
Storing data with SQLite
28:37
Video 108
Database Migrations with Migrate
24:14
Video 109
Repositories with SQLc
16:31
Video 110
Color with color
09:20
Video 111
TUI with Bubble Tea
18:30
Video 112
Forms with huh
15:01
Video 113
Test assertions with Testify
18:13
Video 114
Mocking with go-mock
33:33
Video 115
Releasing with Go releaser
11:26

Module 10

Final Project

Video 116
Introduction to Final Project
Coming Soon
Video 117
Installing Ollama
Coming Soon
Video 118
Obtaining staged changes
Coming Soon
Video 119
Handling errors
Coming Soon
Video 120
Performing HTTP Requests
Coming Soon
Video 121
Adding in retry
Coming Soon
Video 122
Interfaces
Coming Soon
Video 123
Adding another provider
Coming Soon
Video 124
Commiting our messages
Coming Soon

Ready to take your skills to the next level?

Start Watching