We may earn an affiliate commission when you visit our partners.
Nemuel Wainaina

Learn Go programming by building 20 fun and practical projects. This hands-on course is perfect for beginners and intermediate developers looking to master the fundamentals of Go. Start with simple exercises like "Hello World" and various calculators to get a strong grasp of Go's syntax and basic programming concepts. Progress through logic-based projects such as the "Prime Number Checker" and "Guess the Number Game" to sharpen your problem-solving skills.

Read more

Learn Go programming by building 20 fun and practical projects. This hands-on course is perfect for beginners and intermediate developers looking to master the fundamentals of Go. Start with simple exercises like "Hello World" and various calculators to get a strong grasp of Go's syntax and basic programming concepts. Progress through logic-based projects such as the "Prime Number Checker" and "Guess the Number Game" to sharpen your problem-solving skills.

As you advance, you'll tackle projects involving string and file operations, including a "Password Generator" and "File Integrity Checker," providing real-world application experience. You'll also learn to create interactive applications with a "Contact Book App" and a "To-Do List App," and delve into web development by building a basic "HTTP Server."

Finally, enhance your skills by working with APIs and dynamic content through projects like the "Random Joke Generator" and understanding third-party libraries with the "Fake User Generator. This course emphasizes practical experience and teaches you how to integrate and utilize external packages in Go, equipping you with valuable skills for real-world coding challenges. No prior Go experience is required—just dive in and start coding with engaging projects that make learning Go both enjoyable and effective.

Start your Go programming journey today and build a strong foundation for your future coding projects.

Enroll now

What's inside

Learning objectives

  • Fundamentals of the go programming language
  • Problem solving using go (or any other language after this)
  • Building command-line tools using go
  • Working with apis and external libraries in go

Syllabus

Welcome
Welcome to the course
Introduction
Overview of Go
Read more
Environment setup
"Hello world" program
Practical
Project 1
Project brief & demo
Building the Age calculator
Project 2
Building the BMI calculator
Project 3
Building the Prime number checker
Building the Tip calculator
Project 4
Temperature converter: Conversion types menu
Temperature converter: Conversion logic
Project 5
Building the Command-line calculator
Project 6
Project 7
Building the Password generator
Building the Guess-the-Number game
Project 8
Building the Word counter
Project 9
Project 12
Building the Palindrome checker
Project 10
File integrity checker: Command-line arguments & Hash comparison
Building the Longest word finder
Project 11
Building the JSON parser
Project 13
Building the Contact list app
File integrity checker: Hashing logic
Project 14
Project 15
To-Do list app: User menu
To-Do list app: Adding and listing to-dos
Project 16
Project 17
Building the HTTP server
Project 18
Building the Random quote generator
Project 19
Building the Random joke generator
Handling empty responses from the API
Project 20
Building the Fake User Generator
Conclusion
Next steps

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Starts with fundamental concepts like 'Hello World' and progresses to more complex projects, making it suitable for various skill levels
Emphasizes hands-on experience by building 20 projects, which allows learners to immediately apply what they learn
Covers a range of topics from basic syntax to working with APIs and external libraries, broadening the learner's capabilities
Focuses on building command-line tools, which are essential for system administration and automation tasks
Includes a project on building a basic HTTP server, providing an introduction to web development concepts using Go
Relies heavily on project-based learning, which may not suit learners who prefer a more theoretical or abstract approach

Save this course

Save Learn Go Programming with 20 Projects to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learn Go Programming with 20 Projects with these activities:
Review Basic Programming Concepts
Reinforce fundamental programming concepts like variables, data types, and control flow to prepare for Go's specific implementation.
Browse courses on Variables
Show steps
  • Review online tutorials or introductory programming books.
  • Complete basic coding exercises on platforms like HackerRank or LeetCode.
  • Write simple programs to practice using variables, loops, and functions.
Read 'The Go Programming Language'
Deepen your understanding of Go syntax, semantics, and best practices by studying a comprehensive guide.
Show steps
  • Read the first few chapters covering basic syntax and data structures.
  • Work through the examples provided in the book.
  • Try implementing some of the projects from the course using the book as a reference.
Expand the Command-Line Calculator
Enhance the command-line calculator project by adding more advanced mathematical functions and error handling.
Show steps
  • Add support for trigonometric functions (sin, cos, tan).
  • Implement error handling for invalid inputs (e.g., division by zero).
  • Include a history feature to recall previous calculations.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Go in Action'
Explore practical applications of Go and learn best practices for building real-world applications.
View Go in Action on Amazon
Show steps
  • Read chapters related to concurrency and networking.
  • Implement the examples provided in the book.
  • Compare the book's approach to the projects in the course.
Write a Blog Post on Go Concurrency
Solidify your understanding of Go's concurrency features by explaining them in a blog post.
Show steps
  • Research Go's concurrency features (goroutines, channels, mutexes).
  • Write a clear and concise explanation of these concepts.
  • Include code examples to illustrate how they work.
  • Publish the blog post on a platform like Medium or your personal website.
Create a REST API Documentation
Practice documenting a REST API using tools like Swagger or OpenAPI, reinforcing your understanding of API design and documentation standards.
Show steps
  • Choose an API from the course (e.g., Random Joke Generator).
  • Use Swagger or OpenAPI to document the API endpoints, request/response formats, and authentication methods.
  • Generate documentation in a user-friendly format (e.g., HTML or PDF).
Contribute to a Go Open Source Project
Gain practical experience and contribute to the Go community by working on an open-source project.
Show steps
  • Find a Go project on GitHub that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Learn Go Programming with 20 Projects will develop knowledge and skills that may be useful to these careers:
Software Developer
A software developer creates, tests, and maintains software applications. This course helps build a foundation in software development through practical application of the Go programming language. The course emphasizes hands-on projects, which is critical for aspiring developers who need to demonstrate their abilities. The various projects, such as the 'Contact Book App' and 'To-Do List App,' directly relate to the types of applications a software developer builds regularly. The course focus on problem solving using Go will enhance your ability in any other language. Learning about APIs and external libraries is also very important for a software developer, and these are covered by this course. This course will help you understand the many phases of software development.
Application Developer
An application developer designs and builds software applications for various platforms. This course helps build a foundation in application development through hands-on projects using Go. The multiple projects, such as the ‘Contact Book App’ and ‘To-Do List App,’ simulate the kind of applications that developers create. Understanding how external packages work is essential for application development, an area this course covers particularly well. The course emphasis on practical experience is invaluable for an application developer who needs to apply theoretical knowledge to real-world situations. The course directly encourages a hands-on, can-do style, necessary for an application developer.
Software Engineer
A software engineer applies engineering principles to software development. This course helps new software engineers build a foundation in crucial programming concepts by building multiple real-world projects. The course teaches how to use external packages, which is especially relevant for software engineers who regularly incorporate external code into their projects. The course provides multiple opportunities to practice problem solving, and build valuable projects, such as the 'Contact Book App' and 'To-Do List App', that a software engineer may need to build on the job. The course directly improves skills in applying programming theory to the real world.
Backend Engineer
A backend engineer works on the server-side logic behind web applications and systems. This course helps build a solid foundation in backend development, especially since it uses Go, a popular language for backend systems. The ‘HTTP Server’ project directly teaches how to create a simple web server, and working with APIs and dynamic content is essential for backend engineers. The projects also emphasize practical experience, such as building a ‘File Integrity Checker,’ which relates to tasks a backend engineer might encounter. Furthermore, this course's focus on command-line tools helps to develop the skills necessary to work in a server environment. The backend engineer also must be able to use external libraries, which this course directly supports.
API Developer
An Application Programming Interface developer creates and maintains APIs. This course helps build a strong foundation for API development, especially with projects like the ‘Random Joke Generator’ that work with external APIs. The course teaches how to interact with and utilize external packages in Go, which is especially useful when developing APIs. API developers need to understand how to handle different responses and data formats from APIs, and the course covers these topics by handling empty API responses. All the hands on projects create a framework for a new API developer to begin their career. The course focus on dynamic content, through APIs, is core to developing the skills of a new API developer.
Web Developer
Web developers create and maintain websites and web applications. This course helps build a web development foundation through projects like the 'HTTP Server' and working with APIs to create dynamic content. The multiple projects such as the ‘Random Joke Generator’ and ‘Fake User Generator’ will provide practical experience for new web developers. Web developers need to be able to handle both frontend and backend work, and this course begins the process of backend development. The course emphasis on learning by working with hands-on projects using Go makes this especially useful, as web developers need to be able to implement ideas. This course helps a web developer learn core concepts necessary for web development.
Full-Stack Developer
A full-stack developer works on both the front-end and back-end of web applications. This course helps develop a core understanding of the back-end, as well as APIs, through projects like the 'HTTP Server'. Skills in command-line tools and file operations, as provided by this course, are important for a full stack developer. The emphasis on hands-on projects, using Go, provides a practical foundation for those who wish to pursue web development. The full stack developer will encounter similar problems when doing their job. This course will provide the required skills to begin a career as a full stack developer.
DevOps Engineer
A DevOps engineer works to automate and improve the software development lifecycle. This course may be useful for a future DevOps engineer because it teaches practical coding skills through hands-on projects. The course’s emphasis on command-line tools and managing files provides a good base for a DevOps career. Furthermore, the course covers building an 'HTTP server', which will be relevant to a candidate who works with deployments. The focus on using external libraries to create features is also valuable for a candidate in this role. While this course does not specifically cover DevOps methods, it provides essential coding skills in a language often used in DevOps.
Data Engineer
Data engineers develop and maintain the infrastructure for data processing and analysis. This course may be helpful by improving skills in command-line tools and file operations, which are important for handling data. The practical projects, such as the 'File Integrity Checker' and ‘JSON Parser,’ give some insight into the kinds of challenges faced by data engineers. Data engineers need to work carefully with data coming from external sources, and this is something that is covered in the course. This course will expose a data engineer to a particular set of software problems, and provide them with solutions.
Systems Programmer
A systems programmer works with operating systems and system-level software. This course may be useful for learning systems programming as it helps build knowledge of working with command-line tools and system interactions, such as creating a ‘File Integrity Checker.’ Go is often used in backend system tasks, and this course helps build a foundation in this field. Skills in command line interaction are useful throughout the tech industry, and are especially useful for systems programming. The emphasis on hands-on projects and learning how to integrate external packages with Go may be helpful for those wanting to pursue this kind of role. This course will familiarize a new systems programmer with tools that are common to system programming.
Mobile Application Developer
A mobile application developer builds applications for mobile devices. While this course does not directly focus on mobile development, it helps build general programming skills useful in the role. Mobile developers must be able to problem solve, and this course provides multiple opportunities for this. The course’s emphasis on hands-on projects using Go is a useful way to learn programming concepts, such as working with string and file manipulations. Developing skills in file operations and handling data, as taught in the course, is valuable for mobile application developers as well. The course will help a candidate develop important programming concepts and habits.
Technical Consultant
Technical consultants use their technical expertise to provide advice and solutions to clients. This course may be useful as it helps develop a strong foundation in technology by working directly with the Go programming language. The course’s emphasis on hands-on projects and building various types of applications will be useful for demonstrating technical expertise. Technical consultants need to be able to explain technical concepts to a wide audience, and this course's method of teaching is useful for a consultant to learn those skills. The course will familiarize a candidate with the common tools in the industry. This may be useful when explaining technology to clients.
Solutions Architect
A solutions architect designs and manages technology solutions for businesses. This course may be helpful by providing a practical understanding of programming and software development through hands-on projects in Go. Solutions architects need to understand the practical implications of programming choices, and the projects in this course provide that insight. The course focus on working with APIs and external libraries is very relevant for architecting systems that utilize these tools. The course may be helpful by providing a basic knowledge that is also useful when evaluating software solutions. The practical experience may be useful for a solutions architect who is reviewing the work of others.
Embedded Systems Engineer
An embedded systems engineer designs software and hardware for embedded systems, which are specialized computer systems built into devices that are not conventional computers. While this course does not deal directly with embedded systems, it helps develop basic programming and problem solving skills using Go, which can be transferred to other coding challenges. Also, the course emphasizes writing command-line tools in Go, which may also provide real-world experience. Learning about file operations and handling data, as taught in the course, is valuable for embedded systems engineers as well. This course may be helpful for an embedded systems engineer, as it provides a strong base in general programming.
Algorithm Developer
An algorithm developer designs and implements algorithms for solving specific problems. While this course emphasizes practical project-based learning over algorithm theory, the course does help build a foundation in problem solving using Go. Those who wish to pursue careers in algorithm development will benefit from the course's multiple projects that require logic usage. Learning how to structure a program and integrate it with external libraries, as taught in the course, will be valuable for an algorithm developer. Although an algorithm developer typically needs an advanced degree, this course helps build a foundation in programming.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learn Go Programming with 20 Projects.
Is considered the definitive guide to Go programming. It provides a comprehensive overview of the language, from basic syntax to advanced topics like concurrency and networking. It's particularly useful for understanding the underlying principles and best practices of Go. This book is commonly used as a textbook at academic institutions and by industry professionals.
Focuses on practical application of Go, covering topics like concurrency, testing, and system programming. It's a great resource for learning how to use Go in real-world projects. It provides additional depth to the course by exploring advanced topics and best practices. This book is valuable as additional reading to solidify your understanding of Go.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser