Deep C - a two day course for experienced programmers
This course is aimed at experienced programmers that would like to further deepen their understanding and knowledge of this blunt and fascinating programming language. Throughout the course we will often refer to ISO/IEC 9899 (The C standard) and try to understand what modern compilers are allowed to do, and often will do, when optimizing code or porting between different architectures. We will also use the opportunity to discuss best practices and modern techniques for developing small and large systems in C.
The course will start with a solid re-introduction to the C programming language before we dive into the deep where we will learn more about:
- The memory model, sequencing and sequence points
- Unspecified and undefined behaviour
- The different C standards (K&R, ANSI C, C99, C11, C18)
- History and spirit of C
- Portability and optimization issues
- Working with pointers, arrays and structures
- Preprocessing, translation, linking and execution
- Modern development techniques and design issues
- Security vulnerabilities, exploits and mitigation strategies
- and more...
While the course is aimed at people that already know C, experienced programmers with a solid understanding of other compiled languages like Java, Fortran, Swift, C++, C# or Rust might benefit from this course as well.
Olve loves to write code, but he is just as interested in how software is developed as what it actually does. Main interests are knowledge management, embedded systems, organizational theories, C++, Python, C, TDD, secure coding, systems thinking, software architecture, energy systems, thermodynamics and machine learning. Olve is based in Oslo where he works for Equinor. www.olvemaudal.com.