Course: Advanced Programming in Go
duration: 13 hours |
Language: English (US) |
access duration: 180 days |

Details
Improve your programming skills in Go with this advanced Go course! You will discovering what G0-packages are and how to use them. Next, you’ll explore the concept of concurrency by first considering sequential programming. With that foundation, you'll dive into multi-threaded programming and learn about the differences between concurrency and parallelism. You’ll investigate how Go-routines are used for Go concurrency models and how to implement them into the packages sync and sync/atomic.
Go channels are constructs used by Go-routines to communicate with each other. You'll explore how channels fit in Go's overall concurrency model and how to implement non-blocking channel operations in Go programs. Next, you’ll learn to access databases, such as SQL and NoSQL, from Go programs. You will discover various testing, debugging, and deploying approaches common to Go programs. Finally, you'll learn about best practices techniques to optimize your skills.
Result
After completing this course, you are ready to take on more advanced tasks in Go.
Prerequisites
No formal prerequisites. However, experience with Go is highly recommended.
Target audience
Software Developer, Web Developer
Content
Advanced Programming in Go
Advanced Programming in Go: Deep Dive into Packages
All Go programs are composed of one or more packages. Packages
- organize Go source code in a way that makes the code easily
- reusable and readable. Packages essentially allow you to take one
- or more source code files and compartmentalize them into a single
- unit. In this course, you'll explore what Go packages are and why
- they are used. You'll examine best practice for working with Go
- packages and learn about working with modules and packages. Next,
- you'll learn about package names and how to declare and import
- packages. Finally, you'll explore how to create and use custom
- packages and nested packages, as well as how to use the init()
- function in Go to initialize an application.
Advanced Programming in Go: Concurrency
Concurrency is a critical component of modern software, as it is
- capable of leveraging modern hardware advances. Concurrent
- applications can execute various parts of a program out of sequence
- while not affecting the final outcome of the program. This is often
- confused with parallelism, which involves running multiple programs
- simultaneously. In this course, you'll explore the concept of
- concurrency by first considering sequential programming. With that
- foundation, you'll dive into multi-threaded programming and learn
- about the differences between concurrency and parallelism. Next,
- you'll examine Go's concurrency model and the concurrency
- primitives used in Go to build concurrent applications. Finally,
- you'll learn about concurrency patterns used in Go programming and
- how performance can be improved with concurrency.
Advanced Programming in Go: Goroutines
Goroutines are foundational components of Go's concurrency
- model. Goroutines may be considered units of execution in a Go
- program. Goroutines are very lightweight with small stack sizes.
- Consequently, millions of Goroutines may be spawned at about the
- same time on modest hardware. In this course, you'll explore
- Goroutines and how they implement the packages sync and
- sync/atomic. You'll investigate race conditions in Goroutines and
- explore race conditions versus data races. Next, you'll create and
- work with WaitGroups, implement atomic operations and see how
- mutexes are used with Goroutines. Lastly, you'll create and explore
- how to detect and avoid race conditions in Goroutines.
Advanced Programming in Go: Go Channels
Go channels are constructs used by Goroutines to communicate
- with each other. Go channels, which can be buffered or unbuffered,
- are similar to pipes in that one Goroutine can send data from one
- side of the pipe to other Goroutines that receive the data on the
- other side. In this course, you'll explore how channels fit in Go's
- overall concurrency model. You'll learn how to implement
- non-blocking channel operations in Go programs and about the use of
- pipelines in Go. Next, you'll examine how to work with Goroutines,
- as well as buffered and unbuffered channels. You'll explore the
- range() and close() functions in the context of channels and learn
- how to combine channels and WaitGroups. Lastly, you'll learn how to
- implement a pipeline in a Go program.
Advanced Programming in Go: Accessing Databases
The ecosystems of mainstream programming languages include
- various types of client mechanisms for interacting with common
- databases, including both SQL and NoSQL databases. The Go
- programming language is no exception. The Go ecosystem contains
- multiple libraries for building and using SQL and several drivers
- for connecting with and operating on different databases. In this
- course, explore how databases are accessed from Go programs. Work
- with databases by implementing a database driver for Go. Experiment
- by performing various operations and transactions on the database.
- Work with prepared statements. Finish up by practicing how to
- handle errors, null values, and unknown columns. Upon completion,
- you'll be able to perform several routine database operations from
- your Go program.
Advanced Programming in Go: Testing & Deploying Go Programs
Testing and debugging a program is fundamental to creating
- quality software. Likewise, deployment is an indispensable software
- development step, which must be navigated appropriately. The Go
- ecosystem includes several options and approaches for both
- testing/debugging and deploying Go programs. Use this course to
- learn the various testing and debugging approaches common to Go
- programs. Experiment by executing unit tests against Go software.
- Perform tests based on test coverage metrics. Learn common
- approaches for debugging Go programs. Lastly, examine tools and
- techniques for deploying Go applications both on-premises and to
- the Cloud and practice deploying a Go program to a cloud provider.
- Upon completion, you'll be able to use Go to test, debug, build,
- and deploy Go programs.
Advanced Programming in Go: Best Practices for Go Programming
Adopting and employing best practices in software development
- not only mitigates virtually all levels of risk but also naturally
- results in high-quality, secure, and maintainable software.
- Consequently, professional software development organizations
- typically take care to observe best practices. Use this course to
- learn some of the most significant best practices when programming
- in Go. Study approaches to organizing Go code and documenting Go
- programs. Examine best practices related to error handling, data
- handling, concurrency, and testing. Then, finish off by
- implementing some of these best practices in a Go program. When
- you're done, you'll be able to leverage the benefits of a best
- practice approach when programming in Go.
Course options
We offer several optional training products to enhance your learning experience. If you are planning to use our training course in preperation for an official exam then whe highly recommend using these optional training products to ensure an optimal learning experience. Sometimes there is only a practice exam or/and practice lab available.
Optional practice exam (trial exam)
To supplement this training course you may add a special practice exam. This practice exam comprises a number of trial exams which are very similar to the real exam, both in terms of form and content. This is the ultimate way to test whether you are ready for the exam.
Optional practice lab
To supplement this training course you may add a special practice lab. You perform the tasks on real hardware and/or software applicable to your Lab. The labs are fully hosted in our cloud. The only thing you need to use our practice labs is a web browser. In the LiveLab environment you will find exercises which you can start immediately. The lab enviromentconsist of complete networks containing for example, clients, servers,etc. This is the ultimate way to gain extensive hands-on experience.
Sign In
WHY_ICTTRAININGEN
Via ons opleidingsconcept bespaar je tot 80% op trainingen
Start met leren wanneer je wilt. Je bepaalt zelf het gewenste tempo
Spar met medecursisten en profileer je als autoriteit in je vakgebied.
Ontvang na succesvolle afronding van je cursus het officiële certificaat van deelname van Icttrainingen.nl
Krijg inzicht in uitgebreide voortgangsinformatie van jezelf of je medewerkers
Kennis opdoen met interactieve e-learning en uitgebreide praktijkopdrachten door gecertificeerde docenten
Orderproces
Once we have processed your order and payment, we will give you access to your courses. If you still have any questions about our ordering process, please refer to the button below.
read more about the order process
Een zakelijk account aanmaken
Wanneer u besteld namens uw bedrijf doet u er goed aan om aan zakelijk account bij ons aan te maken. Tijdens het registratieproces kunt u hiervoor kiezen. U heeft vervolgens de mogelijkheden om de bedrijfsgegevens in te voeren, een referentie en een afwijkend factuuradres toe te voegen.
Betaalmogelijkheden
U heeft bij ons diverse betaalmogelijkheden. Bij alle betaalopties ontvangt u sowieso een factuur na de bestelling. Gaat uw werkgever betalen, dan kiest u voor betaling per factuur.

Cursisten aanmaken
Als u een zakelijk account heeft aangemaakt dan heeft u de optie om cursisten/medewerkers aan te maken onder uw account. Als u dus meerdere trainingen koopt, kunt u cursisten aanmaken en deze vervolgens uitdelen aan uw collega’s. De cursisten krijgen een e-mail met inloggegevens wanneer zij worden aangemaakt en wanneer zij een training hebben gekregen.
Voortgangsinformatie
Met een zakelijk account bent u automatisch beheerder van uw organisatie en kunt u naast cursisten ook managers aanmaken. Beheerders en managers kunnen tevens voortgang inzien van alle cursisten binnen uw organisatie.
What is included?
Certificate of participation | Yes |
Monitor Progress | Yes |
Award Winning E-learning | Yes |
Mobile ready | Yes |
Sharing knowledge | Unlimited access to our IT professionals community |
Study advice | Our consultants are here for you to advice about your study career and options |
Study materials | Certified teachers with in depth knowledge about the subject. |
Service | World's best service |
Platform
Na bestelling van je training krijg je toegang tot ons innovatieve leerplatform. Hier vind je al je gekochte (of gevolgde) trainingen, kan je eventueel cursisten aanmaken en krijg je toegang tot uitgebreide voortgangsinformatie.

FAQ
Niet gevonden wat je zocht? Bekijk alle vragen of neem contact op.