AI-powered learning
Save this course
Powerful Command-Line Applications in Go
Gain insights into Go’s syntax and advanced concepts. Learn about building efficient CLI tools, automating tasks, data processing, and ensure robustness with testing and benchmarking techniques.
139 Lessons
30h
Updated 3 weeks ago
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
- An understanding of the fundamentals of the Go programming language, including its syntax and data types
- A working knowledge of building command-line applications using Go
- An understanding of command-line arguments, input and output, error handling, and testing
- Familiarity with designing and implementing real-world applications using Go
Learning Roadmap
1.
Introduction
Introduction
Get familiar with developing Go-based command-line tools and managing dependencies with Go modules.
2.
First Command-Line Program in Go
First Command-Line Program in Go
Get started with building, testing, and enhancing a basic word counter in Go.
3.
Interacting with Users
Interacting with Users
14 Lessons
14 Lessons
Examine building a flexible, user-friendly CLI to-do tool using Go’s functions and packages.
4.
Working with Files in Go
Working with Files in Go
12 Lessons
12 Lessons
Enhance your skills in file handling and testing by building a Markdown preview tool in Go.
5.
Navigating the File System
Navigating the File System
11 Lessons
11 Lessons
Take a closer look at developing and testing a file system crawler in Go with archiving and logging.
6.
Improving the Performance of CLI Tools
Improving the Performance of CLI Tools
14 Lessons
14 Lessons
Follow the process of enhancing Go CLI tools with benchmarking, profiling, and concurrency.
7.
Controlling Processes
Controlling Processes
14 Lessons
14 Lessons
Master the steps to automate CI tasks, handle errors, test commands, and manage output effectively.
8.
Using the Cobra CLI Framework
Using the Cobra CLI Framework
16 Lessons
16 Lessons
Step through developing a Go-based CLI tool using the Cobra framework, from initialization to testing.
9.
Talking to REST API
Talking to REST API
16 Lessons
16 Lessons
Walk through building and testing a Go REST API server and client for CRUD operations.
10.
Developing Interactive Terminal Tools
Developing Interactive Terminal Tools
12 Lessons
12 Lessons
Go hands-on with developing interactive CLI tools, focusing on a Pomodoro timer.
11.
Persisting Data in a SQL Database
Persisting Data in a SQL Database
9 Lessons
9 Lessons
Apply your skills to persisting Pomodoro app data in SQLite with testing, summaries, and visualizations.
12.
Distributing Tool
Distributing Tool
8 Lessons
8 Lessons
Gain tools for cross-OS notifications, customized builds, and process management in Go.
13.
Appendix
Appendix
4 Lessons
4 Lessons
Explore Go tracer for performance insights, SQLite installation, Go-SQLite integration, and containerized app compilation.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Complete more lessons to unlock your certificate
Developed by MAANG Engineers
ABOUT THIS COURSE
Go is a programming language that combines the advantages of static typing with the flexibility of dynamic typing. Its simplicity and prototyping capabilities make it an excellent choice for building command-line tools. It also offers features such as type safety, cross-compilation, testing, and benchmarking, enabling developers to handle complex scenarios.
You’ll start by learning the foundations in Go’s fundamental syntax and progressively delve into advanced concepts. Then, you’ll learn to develop various command-line applications that can automate tasks, process data, parse logs, interact with network services and fulfill system requirements. In addition, the course also covers different testing and benchmarking techniques to ensure the speed and reliability of programs.
After taking this course, you’ll be able to automate your work and enhance productivity. You’ll also be able to utilize the Go programming language to develop robust, cross-platform, efficient, and maintainable CLI applications.
ABOUT THE AUTHOR
The Pragmatic Programmers
We create timely, practical books and learning resources on classic and cutting-edge topics to help you practice your craft and accelerate your career.
Trusted by 2.9 million developers working at companies
A
Anthony Walker
@_webarchitect_
E
Evan Dunbar
ML Engineer
S
Software Developer
Carlos Matias La Borde
S
Souvik Kundu
Front-end Developer
V
Vinay Krishnaiah
Software Developer
Built for 10x Developers
No Passive Learning
Learn by building with project-based lessons and in-browser code editor


Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go


Future-proof Your Career
Get hands-on with in-demand skills


AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"




MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies


Free Resources