Note to users who signed up on the legacy platform: If, for some reasons, you still need to access the old course on the legacy platform, login here.

Master Go (Fundamentals)

The essential Go course for developers

This course is included in the Master Go bundle.

.
You are a developer. 
You know how to code.
Now you want to learn Go. 

This course is for you.

Learn more. 

Have you ever dreamed of being more productive, creating solid code more quickly, and even having fun doing that?  

Maybe you feel being stuck in a world of complexity and mediocrity. It's not your fault. Most "modern" programming languages have silently accumulated insane amounts of features over the years, in order to please anyone and everyone in their search of "clever" ways of writing code. And this is exactly the reason why reading other people's code (or even one's own, six months later) can be exhausting and daunting.  

In their quest for increasing programmer productivity and code maintainability, mainstream languages have achieved the opposite.  

Go takes a different approach. By intentionally being boring, it moves your focus away from language navel-gazing towards getting stuff done.

How this course helps you learning Go

    Every new programming language comes with a learning curve. Programming languages are inherently complex, even when they were deliberately designed with simplicity in mind.

    This course introduces all of the fundamental aspects of the language, step by step.

    Learn about functions, variables, data types, interfaces, the Go toolchain, goroutines, testing, error handling, reflection, and more. 

    Each lecture focuses on one specific topic, so you'll be able to understand all aspects of it before moving to the next one. Videos guide you through new knowledge, and quizzes and exercises help you strengthening your skills.

    After the course you will have a solid working knowledge of Go.  Lectures help you to remember, exercises help you to understand. Enjoy a consistent learning experience with all you need in one place.

Top Reasons for Learning Go

Still undecided about whether Go is for you?

Being pushed by your boss to learn Go? Reluctantly following team pressure?

Here are some great reasons why you'll love Go.


    • Go is a simple language with a clear, concise specification. No convoluted, 400-pages language specification that only super-geniuses can understand.
    • Go is easy to read. Partly due to the clear syntax, partly due to strict, tools-enforced formatting rules, the code of your teammates is no longer a puzzle for you.
    • Go boosts your productivity. Automatic memory management, a simple type system, fast write-compile-test cycles, built-in testing, built-in document generation, and more thoughtfully included features (as well as thoughtfully omitted features) enable you to build libraries and applications in a short time.
    • Go is at home at your server OS. Go's unique cross-compiling abilities let you develop on Windows and deploy to Linux. Or vice versa. Pure Go code compiles to single binaries with no external dependencies.
    • Go makes concurrency a breeze. Well, almost. Concurrency is never easy. However, Go's intrinsic support for concurrency is unparalleled and removes unnecessary complexity from concurrent programming.

How you will benefit from this course

Fast learning at your preferred pace.

Your time is valuable and I don't want to waste it. In plenty of short, concise, no-bloat lectures, you can learn in your preferred pace, at convenient times, in your favorite ambience.

The video lectures rarely exceed five minutes and often are much shorter than that. However, be prepared to give each video your full attention, as you'll get much content in a short time. No worries, you can always watch a video again if needed. That's the beauty of short videos!

Plus, every lecture comes with a full transcript of the video for easy recap.
This course covers the details.

Fast learning does not mean superficial. In every lecture, I strive to work out every aspect of the topic. Where applicable, I provide tips for optimal use of a language feature, and I point out possible language pitfalls. I included quizzes to consolidate your knowledge. I created hands-on exercises so you can turn your knowledge into skills.

My definite goal is that when you finish this course, you'll have all knowledge  and skills needed for getting productive with Go.

This course remains valuable even after you finished it.

Short and focused video lectures make excellent reference material. Need to refresh some particular knowledge? Just a matter of minutes.

You also benefit from all updates that this course will receive, as I strive to keep it current and make it even better.

What do my students say about the course?

"Your course is the first one I really enjoy since many, many months."

Ernest Sulikowski

"I got a certificate of advanced studies in object oriented programming for 5000.-
I learned more about good programming practices in this 150.- Go course.

Dany

"Thanks for this amazing tutorial. It’s by far among the top three tutorials in golang. I have watched everything so, I know what I am talking about."

Georges Mantzos

"This is probably the most well-designed course for a programming language I've ever seen on the internet! The video quality is top-notch and Christoph has a great teaching style. The transcripts are also well organized with code snippets. In addition, Christoph also provides useful links, quizzes, and discussion for students to stay engaged. Christoph puts a lot of efforts into this course and it's worth every penny!"

Nahua Kang

Nahua also summarized his experience with the Master Go course in this detailed review. Thank you for this great feedback Nahua!

"Having bought online training on Go from Udemy, Pluralsight and LinkedIn Learning I think I have a good understanding of what is available and the quality of the training offered. The bad news is that the quality varies widely. 
The good news is that this training from appliedgo.com is one of the best Go tutorials out there.
Here’s why…

The content has been carefully selected to ensure you get everything you do need to become useful quickly and none of the stuff you don’t. The learning is delivered in a crystal clear manner with first rate visuals, code examples and super useful ‘take-away’ points. This style really works well for me as I felt I was getting what I needed quickly and effortlessly. All the way through the lectures Christoph’s voice is re-assuring, calm and very easy on the ear.

Stuart Henderson

"A significant course feature is the extensive and detailed instructions for Go installation and code writing.
I consider you to be one of the best teachers I have encountered in my quest to learn a computer language."

John Hyatt

Great, well structured course with just the right level of detail. I'm really glad I picked this specific course to buy!

Kalin Staykov

Want to have a peek inside?

    Check out the complete curriculum below. Some of the lectures are available as preview. 
    Everyone loves a different teaching style, and I want to ensure that you know what you will get.

Course Curriculum

With all these benefits...

    ✓ A complete, self-contained, self-paced course for learning Go
    ✓ Lifetime access
    ✓ Risk free: 30-day money back guarantee
    ✓ HD video lectures
    ✓ Full transcripts
    ✓ Subject knowledge quizzes
    ✓ Hands-on practices and exercises
    ✓ All source code for download
    ✓ Get help via the comments section

    a Go course could easily cost
        
    $1200+

    Seriously, this is what a classroom training of that size could easily cost per student. Master Go is as valuable...

    but in fact, Master Go costs only

    $149


    Yes, that's it. Just $149. I want to keep the course affordable because I want as many developers to succeed with learning and mastering Go.

    Now you might say, ok, but a classroom training has to be more expensive because the instructor spends time with the students. Did you calculate what a big hourly wage this would be, given a class of 10 or even 20 students? The point is that for both a classroom training and an online course, the bulk of the work goes into creating and maintaining the course material. Even more so for the online course that includes recordings and screencasts. This work usually takes months for a high-quality course like Master Go. Still, Master Go is so much more affordable than a classroom training.

    Let me share two cites on classroom versus online training:

    "In 2015, over 70% of academic leaders surveyed by the Babson Survey Research Group expressed that the learning outcomes of online education are as good or better than face-to-face education."

    And:

    "According to a report by the US Department of Education, 'learning outcomes for students who engaged in online learning exceeded those of students receiving face-to-face instruction.'"


    And I think there are a few simple reasons for this.

    • – With an online course, you have control when and where to watch a lesson or do an exercise. No need to show up at a certain time and sit for hours. Result: You are more focused and engaged.
    • – You can rewind the video and watch a particular section (or all of it) again, as often as you like. Try this with a professor!
    • – Support by the instructor may actually be better in an online course. Why? In a classroom, the instructor has to answer a question on the spot, right out of their head, with the material that is available. Due to the asynchronous nature of online chats, the instructor of an online course can provide more elaborate answers with more options for referring to relevant material.

"Speaking of price...

    ...why shouldn't I just hop over to one of these deep discount platforms and get me a course for $10?"

    Granted, there are courses out there that sell for the price of a pizza Margherita. Why this large difference? Well, this course is the result from a lot of effort in order to explain abstract, and often difficult, topics in a clear, intuitive, and concise way, with the help of carefully designed animated graphics throughout the lectures.

    Also, I am always here to answer questions. Simply post your question into the course forum, or send me an email, and I'll ensure to provide you with any help you need.

    And last not least, I continue to work on this course to make it better and to keep it up to date. With a minimal budget, this would simply not be possible.

    Keep this in mind when comparing prices - usually, you get what you pay for.

Tip: you will get the most out of the course if ...

    • ...you have attended a CS course and/or have solid hands-on experience with another programming language.
    • ...you know how to work with a shell or command prompt (for example, navigating around, starting programs, working with files)
    • ...you know the things a developer needs to know about the operating system you are using (for example, how to set environment variables)
    • ...you know basic data structures and programming constructs (not tied to a particular programming language): arrays, stacks, lists, functions, loops, if, switch, etc.
    • ...you have an idea about processes, threads, and what happens when a program executes.

This course is not for you if...

    ...you are completely new to programming. The course focuses on developers. It would need a completely different structure and didactics in order to teach the fundamentals of computers and programming. Tip: attend an online CS curriculum similar to Harvard's CS50, then enroll into Master Go. A student of mine did exactly that and was very pleased with this combination.

    ...you expect a super quick crash course. Master Go is not a shallow, just-the-mere-basics, Go-in-one-hour course. Rather, it goes deep and explains details and peculiarities of Go (yes, there are some) that you would want to know now, rather than stumpling upon them later.

    ...you do not want to engage into active learning with by doing the practices and exercises the course offers. Remember, the best way of memorizing new knowledge is to actively use it to solve some task. Remember this proverb: "Tell me and I will forget. Show me and I will remember. Involve me and I will understand."

Christoph Berger

Hi, I am Christoph.

I started programming at the age of 13, when computers still had 8-bit processors. I always had a genuine interest in programming languages, powered by the belief that picking the right language does matter if you want to be productive and generate fast, robust, and maintainable code.

After studying Computer Sciences at the Technical University of Munich, I worked as a project consultant and later as a technical support engineer for many years, and this is where I learned how to explain complex technical things in a way that is easy to understand, yet does not leave anything important out.

In 2011, an article about (pre-1.0) Go in an IT magazine caught my attention, and since them I am hooked. I loved (and still do!) how the incredibly clean design of the language, as well as the awesome tool chain, suddenly made coding a breeze.

I love Go for being simple and effective at the same time, boosting programmer productivity by focusing on the language features that matter.

Still, every language able to produce production-level code has some inherent complexity, and soon I found myself dragging pieces of information together,from various tutorials, blogs, forums, books, and other parts of the internet. You bet that these information bits were often incomplete, targeted at a different level than I needed, or even contradicted each other.

I really wished I had everything in one place, carefully collected and assembled into a sane curriculum, presented in a pleasant way, with consistent style, easy to digest.
And so I started building Go courses, to give you the training that I wish I had. Courses designed to be efficient, intuitive, and complete.

I write about Go since 2016, through my well-received blog "Applied Go". By building online courses I want to go one step further and help everyone becoming fluent with one of the coolest and most pragmatic languages around.

Frequently Asked Questions

When does the course start and finish?
The course starts whenever you want and has no deadlines! It is a completely self-paced online course - you decide when you start and how fast you move through the lectures.
How long do I have access to the course?
After enrolling, you have unlimited access to this course without a specific end date. That is, as long as either I or my wonderful course hosting platform Teachable are around (and we both plan to be around for a very long time), you have access to the course. Occasionally I may add new lectures or update existing ones, so you will benefit from the course even after finishing.
Can I get a course certificate?
Yes, after working through the course, if all lectures and exercises are marked as completed, you will get a certificate of completion.
What if I am unhappy with the course?
I would never want you to be unhappy! If you are unsatisfied with your purchase, contact me in the first 30 days and I will give you a full refund.
Can I get feedback from the instructor?
Absolutely! If you have a question or a remark on a lecture, leave a comment in the course forum, and I'll follow up as soon as I can. For general questions, you can also ping me via email.
What skills do I need for this course?
You should already be familiar with another programming language like C++, Java, Ruby, Python, JavaScript, etc., and you should be familiar with using command-line tools. You do not need to have worked with statically typed languages before; the course explains static typing for those who have a background in Python or JavaScript programming. However, this course does not teach programming in general; this would require an entirely different approach.
Are there any technical requirements?
For the course itself, you need a sufficiently modern browser to view the lectures. 
Tip: Try one of the free preview lectures to verify if the course works in your browser.

For the exercises you need a computer on which you can install Go. (The course covers installing Go on Linux, macOS, and Windows.) You may also use an online IDE's for this course if you want, but keep in mind that at some point you will need to install Go locally in order to learn how to use the Go toolchain on the command line.
Do you offer Purchasing Power Parity discounts?
Yes, I want my course to be affordable to people living in countries where average income is much lower than in "industrial" countries. The course platform does have an option for showing country-specific prices. Instead, please send an email to [email protected] with a proof of the country you live in, and I'll be glad to offer you a PPP discount on the course.
My question is not listed here.
No problem at all! Send me an email at [email protected], I'll be happy to answer any question you have about the course.

Sure, you'll have to invest some work to get proficient with Go. But still, with this course you'll be up to speed much faster than by putting all the info pieces together that you find across the Web.

For this course, I collected large amounts of material from all over the Go world and distilled this information into this course. Besides documented usage, I also point out and explain language gotchas that otherwise might catch you by surprise.


Do you feel uncomfortable with having to learn another language? Don't. After this course, Go will feel familiar to you.


Let Go become your favorite programming language!

Get this course through the Master Go bundle.

The bundle costs the same as the Master Go course did before, and it includes the standard version of Go Concurreny Deep Dive.

Course Pricing

Standard plan

$149 USD


  • ✔︎ Access to 100+ lessons and exercises
  • ✔︎ Watch on any device
  • ✔︎ Unlimited updates & never expires
  • ✔︎ Course community forum included
  • ✔︎ Get the solid Go skills you need to succeed

Course Pricing

  • Standard plan
  • $149 USD

    Buy Now
  • ✔︎ Access to 100+ lessons and exercises
  • ✔︎ Watch on any device
  • ✔︎ Unlimited updates & never expires
  • ✔︎ Course community forum included
  • ✔︎ Get the solid Go skills you need to succeed
  •