Course Outline
Introduction
Foundations of Unix Systems Programming
Overview of the Go Programming Language and Its Architecture
Installation and Configuration of the Go Development Environment
Introduction to Go Syntax and Core Concepts
Managing Go Packages
Exploring Algorithms and Data Structures
Mechanisms of Garbage Collection in Go
Handling Files and Directories in Go
Executing File Input and Output Operations
Implementing Robust Error Handling Strategies
Interacting with System Files: Logs, System Operations, and Password Management
Managing Unix Processes and Signals in Go
- Concepts of Unix Processes and Signals
- Techniques for Process Management
- Handling Unix Signals via Go
- Utilization of the 'kill' Command
- Implementation of Unix Pipes and Sockets
- Integration of Remote Procedure Call (RPC)
- Construction of a Custom Unix Shell
Advanced Goroutine Management
- Introduction to Goroutine Mechanics
- Application of the Sync Standard Packages
- Designing Efficient Pipelines
- Utilization of the Go Scheduler
- Implementation of the 'select' Statement
- Management of Signal and Buffered Channels
- Strategies for Timeout Handling
- Nesting: Channels of Channels
- Handling Nil Channels
- Managing Shared Memory Resources
- Practical Application: The dWC.go Utility
Network Programming with Go
- Principles of Network Programming
- Application of the Net Standard Package
- Advanced Unix Socket Concepts
- Execution of DNS Lookups
- Development of Basic TCP Server and Client Architectures
- Construction of Simple UDP Server and Client Solutions
- Designing a Concurrent TCP Server
Debugging and Troubleshooting Techniques
Summary and Final Review
Requirements
- Fundamental programming experience in any mainstream language
- Working knowledge of Linux and Unix operating systems
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