Synesis Software Training Courses

Synesis Software offers training courses in programming languages (beginners/intermediate and advanced), libraries and advanced software development techniques and technologies.

Libraries

  • FastFormat, Beginner's - an example-based guide to getting started with FastFormat, the world's fastest, most robust and most flexible C++ formatting library. [Intermediate (assumes prior experience of C++), 1 day]

  • FastFormat, Advanced - an example-based guide to advanced use and customisations of FastFormat, the world's fastest, most robust and most flexible C++ formatting library. [Advanced (assumes substantial prior experience of C++), 1 day or 2 days]

  • Pantheios, Beginner's - an example-based guide to getting started with Pantheios, the world's fastest and most robust C++ diagnostic logging API library. [Intermediate (assumes prior experience of C++), 1 day]

  • Pantheios, Advanced - an example-based guide to advanced use and customisations of Pantheios, the world's fastest and most robust C++ diagnostic logging API library. [Advanced (assumes substantial prior experience of C++), 1 day or 2 days]

  • Pantheios.NET, Beginner's [available from Q1 2010] - an example-based guide to getting started with Pantheios.NET, the .NET sibling of the world's fastest and most robust C++ diagnostic logging API library. [Intermediate (assumes prior experience of C#), 1 day]

  • Pantheios.NET, Advanced [available from Q1 2010] - an example-based guide to advanced use and customisations of Pantheios.NET, the .NET sibling of the world's fastest and most robust C++ diagnostic logging API library. [Advanced (assumes substantial prior experience of C#), 1 day or 2 days]

  • The STLSoft Showcase - a cookbook/sampling examination of some of the best features of the STLSoft libraries that you can incorporate into your own software for immediate productivity and performance benefits. [1 day]

Programming Languages - Beginner / Introductory

  • C Basics, A Practical Crash Course - a hands-on introduction to the C++ programming language. [Beginners (but assumes prior programming experience, preferably with Java / C#), 2 days]

  • C++ Basics, A Practical Crash Course - a hands-on introduction to the C++ programming language. [Beginners (but assumes prior programming experience, preferably with C / Java / C#), 2 days]

  • C# Basics, A Practical Crash Course - a hands-on introduction to the C# programming language, including coverage of C# 2.0 and 3.0. [Beginners (but assumes prior programming experience, preferably with C / Java / C++), 2 days]

  • Ruby Basics, A Practical Crash Course - a hands-on introduction to the Ruby programming language. [Beginners (but assumes prior programming experience, preferably with C / Java / C# / Python), 2 days]

  • C++ 1x [available from Q2 2010] - a practical introduction to the new features in the forthcoming (and long-awaited) revision of the C++ language. [Intermediate (assumes prior experience of C++), 1 day or 2 days]

Programming Languages - Advanced

  • Extending STL - as discussed at great length in Matthew's second book, Extended STL, volume 1: Collections and Iterators, the business of writing STL extensions is a complex, but worthwhile enterprise. This course is a practical, step-wise tutorial that illustrates how to apply the concepts, principles and techniques of Extended STL to enhance the expressiveness, flexibility, and performance of your C++ software. [Advanced (assumes substantial prior experience of C++), 2 days]

  • High-performance Programming in C++ - we're specialists in developing systems that run very quickly. This course discusses some of the techniques by which we do so, in C++. [Advanced (assumes substantial prior experience of C++), 2 days]

  • High-performance Programming in C# [available from Q1 2010] - we're specialists in developing systems that run very quickly. This course discusses some of the techniques by which we do so, in C#. [Advanced (assumes substantial prior experience of C#; C++ experience would be useful), 2 days]

Advanced Software Development

  • Building Bullet-Proof Software in C++ - no system built by Synesis Software has ever failed in production. This course takes you through the principles and practices of how we develop software, providing you with practical, applicable strategies and tactics for achieving the same outcome in your software developments. [2 days]

  • Guerilla Testing C++ - or, "How to discover the Gold Nuggets in your Big Ball of Mud". No matter how badly a C++ codebase is enmeshed, you can get it under test if you know how to master its coupling. This example-driven course shows you how. [Intermediate (assumes substantial prior experience of C and C++), 2 days]

  • Instant Productivity with Test-Driven Development - a highly-practical, participative introduction to Test-Driven Development, provided in the language of your choice (as long as the language is one of C, C++, C#, Java, Python, or Ruby). [2 days]

  • Integrating Open-Source Libraries - Open-source libraries are a vital resource for programming in the modern era, but sometimes they don't play so nicely together. This course describes how to help them do so. [Intermediate (assumes prior experience of C++), 2 days]

  • Quality Matters in Principle [available from Sep 2009] - Software Quality comprises many different, often conflicting, characteristics, operating on different levels. This first part of a two-part course expounds on the issues raised in Matthew's Quality Matters column in Overload, discussing the concepts and principles of Software Quality, highlighting the conflicts between them, and examines techniques for working around/beyond those conflicts. [Intermediate (assumes prior programming experience, but not language-specific), 2 days]

  • Quality Matters in Practice [available from Q2 2010] - Software Quality comprises many different, often conflicting, characteristics, operating on different levels. This second part of a two-part course illustrates practical techniques for applying Software Quality concepts and principles, and dealing with the conflicts between them. [Intermediate (assumes prior programming experience, but not language-specific), 3 days]