Course Outline
Course Introduction
Principles of Unix System Development
Analyzing the Go Language Ecosystem and Architectural Design
Setting Up and Optimizing the Go Development Stack
Mastering Core Go Syntax and Structure
Managing Go Modules and Packages
Implementing Efficient Algorithms and Data Structures
Mechanisms of Garbage Collection in Go
File System Interactions and Directory Management
Executing Robust File Input/Output Operations
Building Comprehensive Error Recovery Strategies
System File Operations: Logging, File Manipulation, and Credential Management
Process Control and Signal Handling in Unix
- Theory of Unix Process Models and Signal Semantics
- Strategies for Process Lifecycle Management
- Handling Unix Signals via Go
- Utilizing the 'kill' Utility
- Implementing Pipes and Socket Communication
- Integrating Remote Procedure Calls (RPC)
- Constructing a Functional Unix Shell Interface
Concurrent Programming with Goroutines
- Foundations of Goroutine Architecture
- Leveraging the Sync Package for Coordination
- Designing Data Pipelines
- Understanding the Go Runtime Scheduler
- Utilizing the 'select' Mechanism
- Managing Signal and Buffered Channels
- Implementing Timeouts and Contexts
- Complex Channel Patterns (Channels of Channels)
- Handling Nil Channel States
- Optimizing Shared Memory Access
- Practical Application: Building a dWC.go Utility
High-Performance Network Engineering
- Core Concepts of Network Application Development
- Using the Standard Net Package
- Deep Dive into Unix Socket Mechanics
- Executing DNS Resolution
- Building Basic TCP Clients and Servers
- Building Basic UDP Clients and Servers
- Architecting Concurrent TCP Services
Diagnostic Techniques and Troubleshooting
Key Takeaways and Final Review
Requirements
- Fundamental coding proficiency in any general-purpose language
- Working knowledge of Linux and Unix operating system environments
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