This repository hosts all code, projects, and exercises developed during an intensive 8-month (1500+ hours) "Advanced Software Developer Workshop" at Experis Software. The program is designed to bridge academic knowledge with "real-world" Hi-Tech industry demands, focusing on low-level systems programming, advanced C/C++, and software engineering best practices.
The workshop heavily exposes participants to the underlying mechanisms of various software development environments and critical industry issues, focusing on analysis, design, and implementation skills.
The following topics were covered and are organized into the respective directories:
c-intro&c-advanced:- Basic C-Programming, C Traps & Pitfalls.
- Advanced Pointer Techniques and Memory Management.
data-structures:- Vector/List/Queue/Stack, Binary Search Trees, Hash Tables, and Sorting Algorithms (Quick, Merge, Heap, Radix).
- Graph Algorithms: BFS, DFS, Dijkstra.
ipc&networking:- System Programming: Process Management, IPC (Message Queues, Shared Memory), Multi-Threading & Synchronization.
- Network Programming: TCP/UDP/IP, Multithreaded & Async Client/Server applications.
oop-generic&oop:- Object-Oriented Design Principles (SOLID, UML, Design Patterns, State Machines).
- Advanced C++: C++ Internals, Advanced Polymorphic strategies, Template Programming, and the STL.
- C++14/17: Move Semantics, Unique/Shared Pointers, and enhanced algorithms.
linux-dev: (Implied, often covered within other topics)- Linux From Scratch (Installation, Shell Scripting), Development Environment & Tools.
- Advanced Debugging Tools (Strace, Valgrind) and Build Process management (Linkers, Shared Objects).
projects:- Traditional Project Workflows, Agile Methodologies (TDD, Code Reviews).
The final section of the workshop included several in-depth projects:
- IPC: Cyclical Message Queue Over Shared Memory.
- Multi User Chat: Client/Server over TCP & UDP.
- Multi User Game (MUD): Utilizing best OOD practices with C++.
This work was completed as part of the Experis KickStart program.