Length: 5 Days
Print Friendly, PDF & Email

Unix/Linux GNU Standard C/C++ Programming – Intermediate/Advanced Level Training by Tonex

C Programming for Security Professionals Workshop

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.

Request More Information

Please enter contact information followed by your questions, comments and/or request(s):
  • Please complete the following form and a Tonex Training Specialist will contact you as soon as is possible.

    * Indicates required fields

  • This field is for validation purposes and should be left unchanged.

Request More Information

  • Please complete the following form and a Tonex Training Specialist will contact you as soon as is possible.

    * Indicates required fields

  • This field is for validation purposes and should be left unchanged.