Go for Systems Programming Training Course
Go (Golang) is an open source programming language developed at Google. One of Go's popular use cases is Linux and Unix systems programming.
In this instructor-led, live training, participants will learn the fundamentals of systems programming with Go as they step through hands-on exercises exploring the various features of Go.
By the end of this training, participants will be able to:
- Understand the fundamentals of Go systems programming
- Set up the Go development environment
- Write programs in Go
- Use both the basic and advanced features of Go for Unix and Linux systems programming
- Understand and use Goroutines
- Write fast and lightweight code with Go
- Write low-level networking code with Go
Audience
- Programmers
- Developers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Course Outline
Introduction
Understanding Unix Systems Programming
Understanding the Go Programming Language and the Go Architecture
Installing and Configuring the Go Development Environment
Learning the Basics of Go Syntax
Working with Go Packages
Algorithms, Data Structures
How Go Handles Garbage Collection
Dealing with Files and Directories in Go
Implementing File Input and Output Operations in Go
Implementing Error Handling
Identifying and Working with System Files in Go: Log Files, System Files Operations, and Passwords
Working with Unix Processes and Signals in Go
- Understanding Unix Processes and Signals
- Process Management
- Dealing with Unix Signals in Go
- Using the 'kill' Command
- Working with Unix Pipes and Sockets in Go
- Working with Remote Procedure Call (RPC) in Go
- Programming a Unix Shell in Go
Understanding and Working with Goroutines
- Learning About Goroutines
- Using the Sync Go Packages
- Dealing with Pipelines
- Using the Go Scheduler
- Using the 'select' Keyword
- Working with Signal Channels and Buffered Channels
- Handling Timeouts
- Working with Channels of Channels
- Working with Nil Channels
- Dealing with Shared Memory
- Working with the dWC.go Utility
Network Programming in Go
- Understanding Network Programming
- Working with the Net Go Standard Package
- Revisiting Unix Sockets
- Performing DNS Lookups
- Developing a Simple TCP Server and a Simple TCP Client
- Developing a Simple UDP Server and a Simple UDP Client
- Working with a Concurrent TCP Server
Troubleshooting
Summary and Conclusion
Requirements
- Basic programming experience in any language
- Familiarity with the Linux and Unix systems
Need help picking the right course?
Go for Systems Programming Training Course - Enquiry
Testimonials (5)
Trainer's expertise and teaching talent
Liviu - Orange Services
Course - Go for Systems Programming
Time efficient Smooth and linked transitions from one topic to another Examples ranging from simple to challenging So much patience for answering every questions with examples Knowledge way beyond expectations So many things to appreciate!
Laura - Orange Services
Course - Go for Systems Programming
The trainer's attitude and the fact that he stopped at each problem/issue to help the ones in need He was also pretty laid back, making the training actually kind of fun and relaxing
Rares - Orange Services
Course - Go for Systems Programming
Patrick was very helpful and provided real world examples and practices when working with Go. This was not a purely theoretical course on how to use Go, but how to actually develop with Go in the real world. He provided comparison with other languages in order to better explain certain concepts, which was very useful.
Cristian - Orange Services
Course - Go for Systems Programming
The extra informations not in the official docs
Sayf Eddine HAMMEMI - SCALITY SA
Course - Go for Systems Programming
Upcoming Courses
Related Courses
Advanced Boot Camp for Developers Infomatica PowerCenter 9.5.1
28 HoursThe Advanced Boot Camp for Developers Informatica PowerCenter 9.5.1 course is a hands-on, instructor-led course designed to provide developers with the skills and knowledge required to design and build data integration solutions using the Informatica PowerCenter Desktop and Server components. This course covers mapping design, debugging and job performance optimization as well as control flow and workflow management. In addition, students get an introduction to advanced integration solutions, as well as service and process management. The course includes lectures, workshops, on-site training and full use of the Informatica products. The course is intended for informatica developers responsible for load data into target systems and for developing mappings of the data. The Advanced Boot Camp for Developers Informatica PowerCenter 9.5.1 course is aimed at enabling developers to become more productive, efficient and confident when designing PowerCenter solutions. Upon completion, participants should have a good working knowledge of PowerCenter Server as well data integration solutions.
Bash Scripting for Automation
21 HoursThis instructor-led, live training in Kuwait (online or onsite) is aimed at developers and system administrators who wish to automate their tasks and manage their systems more effectively using Bash.
By the end of this training, participants will be able to:
- Install and configure Bash.
- Write and execute Bash scripts.
- Understand the lifecycle of a Bash script and how Bash fits into system administration tasks.
- Use Bash to automate tasks and manage systems.
BASH Programming
14 HoursThis instructor-led, live training in Kuwait (online or onsite) is aimed at beginner and intermediate-level Linux users, system administrators, and developers who wish to gain hands-on experience in creating efficient and effective shell scripts.
By the end of this training, participants will be able to:
- Understand how the shell works and interact with Linux using BASH.
- Write, debug, and execute BASH scripts to automate repetitive tasks.
- Implement conditional statements, loops, and functions in scripts for enhanced functionality.
- Process and manipulate text files, search for patterns, and work with streams effectively.
Red Hat OpenShift I: Containers & Kubernetes - (DO180)
28 Hours- Container and OpenShift architecture
- Creating containerized services
- Managing containers and container images
- Creating custom container images
- Deploying containerized applications on OpenShift
- Deploying multi-container applications
Installation and Configuration of Infomatica
7 HoursThe Installation and Configuration of Informatica course is designed to provide professionals with the knowledge and skills required to install, configure and deploy an Informatica Power Center version 9.6.1 environment.
The course focuses on the installation of PowerCenter Node Manager, repository, services, PowerCenter Client Components, and integration and maintenance of the components.
Infomatica MFT
70 HoursThis course provides a comprehensive understanding of the components of the MFT platform. It covers installing, setting up, and configuring the MFT server and agents, administering the MFT server and agents, as well as managing and troubleshooting file transfers. It will also cover data protection, monitoring and logging, and auditing activities. Upon completion of this course, you will have the skills and knowledge needed to implement a complete and secure file transfer solution using Informatica MFT.
Developing Applications For Linux (LFD401)
28 HoursLearn how to develop applications for the Linux environment. In this instructor-led course, you’ll get hands-on experience with the necessary tools and methods for Linux application development and learn about the features and techniques that are unique to Linux.
Kubernetes for App Developers (LFD459)
21 HoursThis course will teach you how to containerize, host, deploy, and configure an application in a multi-node cluster. It also serves as preparation for the Certified Kubernetes Application Developer (CKAD) exam.
Linux for System Administrators (LFS301 retired)
28 HoursLinux system administration is one of the most in-demand skills in IT. Whether you’re looking for expert prep for the Linux Foundation Certified System Administration (LFCS) certification, need training to help start a new Linux IT career, transition to Linux from another platform, or you’re just brushing up on your sysadmin skills, this instructor-led course will teach you what you need to know.
Linux Security (LFS416)
28 HoursThis instructor-led course will walk you through the many risks and threats that exist, show you how to use best practices and other open-source tools to mitigate or counteract those threats, and teach you what you need to know to detect and recover from those attacks that do happen.
Linux Performance Tuning (LFS426)
28 HoursKeeping your Linux systems running optimally is a mission-critical function for most Linux IT professionals. This course will teach you the appropriate tools, subsystems, and techniques you need to get the best possible performance out of Linux
Linux Enterprise Automation (LFS430)
28 HoursAutomation is essential to running Linux in the enterprise effectively. Automation lets you minimize costs by reducing manual operations, helps ensure compliance across the data center, standardizes your software infrastructure and accelerates deployments for your bare-metal and cloud infrastructures. This course will teach you how to use automation to achieve these outcomes.
Kubernetes Administration (LFS458)
28 HoursThis course covers the core concepts typically used to build and administer a Kubernetes cluster in production, using vendor-independent tools. We build a cluster, determine network configuration, grow the cluster, deploy applications and configure the storage, security and other objects necessary for typical use. This course offers exposure to the many skills necessary to administer Kubernetes in a production environment and is excellent preparation for the Certified Kubernetes Administrator (CKA) exam.
Kubernetes Security Fundamentals (LFS460)
28 HoursThis instructor-led course provides skills and knowledge across a broad range of best practices for securing container-based applications and Kubernetes platforms during build, deployment, and runtime.
Infomatica Master Data Management (MDM)
28 HoursThis course will cover topics such as the basics of MDM, creating and managing MDM models, loading, matching and cleansing data, as well as creating rules, hierarchies and relationships. Students will become familiar with the different features of Informatica MDM, such as its contextual modeling, user defined rules, data quality tools, and integration with other systems. Ultimately, after completing this course, students will have an in-depth knowledge of Informatica Master Data Management, allowing them to develop data management solutions that meet their organizational needs.