Unix/Linux GNU Standard C/C++ Programming – Intermediate/Advanced Level Training by Tonex
This intermediate/advanced level course is designed for programmers looking to deepen their knowledge and skills in Unix/Linux GNU Standard C/C++ programming. Building upon fundamental concepts, this course dives into advanced topics, tools, and best practices essential for mastering C/C++ development in the Unix/Linux environment. Through hands-on exercises and real-world examples, participants will gain the expertise required to become proficient Unix/Linux C/C++ developers.
Learning Objectives: Upon completion of this course, participants will:
- Demonstrate advanced proficiency in Unix/Linux C/C++ programming.
- Develop efficient and optimized C/C++ code for Unix/Linux platforms.
- Utilize key Unix/Linux libraries, system calls, and tools.
- Implement multi-threading and process management techniques.
- Build and maintain large-scale C/C++ projects.
- Debug and optimize C/C++ applications in a Unix/Linux environment.
- Collaborate effectively on Unix/Linux C/C++ projects using version control systems.
Audience: This course is suitable for intermediate to advanced programmers, software developers, and computer science professionals who have prior experience with C/C++ and wish to expand their knowledge specifically in the Unix/Linux environment.
Course Modules:
Pre-test 1
Module 1: Advanced C/C++ Language Features
- Introducing GNU C++
- Compiling and Debugging C++ Programs
- Creating Data Objects
- Applying Fundamental Operators
- Controlling Input and Ouput
- Controlling Program Flow
- Creating and Calling Functions
- Managing Memory with Pointers
- Pointers and memory management
- Advanced data structures and algorithms
- Exception handling and error management
- Advanced C/C++ libraries
Module 2: Unix/Linux Programming Fundamentals
- File I/O and file manipulation
- Process creation and management
- Interprocess communication (IPC)
- Signals and signal handling
Module 3: Advanced Unix/Linux Programming
- Sockets and network programming
- POSIX threads (pthreads)
- Shell scripting for automation
- Advanced system calls and libraries
Module 4: C/C++ Development Tools for Unix/Linux
- Compilers and build systems (GCC, Make)
- Debugging techniques and tools (GDB)
- Profiling and performance analysis
Module 5: Large-Scale Project Development
- Modular programming and code organization
- Managing dependencies and libraries
- Building and packaging software
- Code documentation and best practices
Module 6: Collaboration and Version Control
- Introduction to Git and version control
- Branching, merging, and resolving conflicts
- Collaborative workflows and best practices
Module 7: Project Workshops
- Real-world project scenarios and hands-on exercises
- Group projects for practical application of learned concepts
- Code reviews and optimization techniques
Workshop 1: Java Security Best Practices
- Using Modules to Isolate Internal Code
- Keeping Java Code Simple
- Abstract implementation details away from end-users
- Access modifiers
- Create modularity and compartmentalize API
- Use GuardRails to check for the latest Java vulnerabilities in code release
- Use Libraries That Are Proven And Popular
- Check Exceptions And Exception Handling
- DevSecOps Pipeline
- Serialization Issues
- Hashing User Passwords
- Error Handling and Logging
- Injection Attacks
- SQL Injection Opportunities
- Key Steps To Prevent SQL injections
- XPath Injection
- Sanitize user input
- GuardRails
Post-tests
Final Project:
Participants can work on a small final project where they apply the knowledge gained during the workshop.