Our Courses

Solid Async Programming takes you through the core skills required to be successful developing async and multithreaded code both in the .NET and web worlds. Not only do we cover the core APIs but also how they are used effectively, tested and debugged.

This course was written by Andrew Clymer and Richard Blewett authors of the highly regarded Asynchronous Programming in .NET book by Apress.

Java and C++ developers usually have little problem learning the syntax of C# or VB.NET. However, developing robust .NET applications requires more than just code. Solid .NET will teach you to think like a .NET developer by showing you how modern applications are assembled and how the various pieces mentioned about work together to form a cohesive environment.  The course begins with a thorough exploration of the “managed code” model – from “source code in Notepad” all the way through “CPU instructions executing on a CPU”. We'll then take you through the platform and major libraries. Long the way you’ll learn common idioms like:

  • how to handle memory management issues and the “IDisposable” design pattern
  • how to use C# functional idioms and LINQ to write compact, powerful, expressive, fluent code
  • how to work with designers and tools to manage XAML, Code Behind, and Partial classes
  • how to use Configuration Files to tweak application settings after deployment

You’ll take a look at the major class libraries, including the collection classes, LINQ, ADO.NET, Entity Framework, Parallel Framework Extensions, ASP.NET WebAPI and XAML based UI.

This class will introduce delegates to the key technologies available on the .Net platform to design and build an end to end solution.  The class will probably raise as many questions about your future architecture as it provides answers.  The course will open your eyes to a variety of different technologies to solve your architectural needs discussing the pros and conss for each.  This class is not intended to be a recipe card but a critical look at various technologies and how you may construct your own recipe for your next project.

All developers want to build good quality software but not all developers test their software as they go along. Why not? A common explanation is "I don't have time to write tests!". The more pressure they feel, the fewer tests they write. This leads to less accurate and stable code, less productivity, less confidence and, ultimately, more pressure. It's a vicious cycle. This two-day course is designed to help you break out of the cycle by embracing unit-testing and, in particular, test-driven development. We will introduce the techniques and the tools necessary to prove your code as you go along.

Web programming is fundamentally different from developing traditional applications: there is a different state management regime and the technologies in play are not under the control of any one vendor. Web development has also undergone considerable change in recent years as technology has evolved and matured. This course is designed to take people with little or no web programming experience and introduces them to the way web applications are built now. We introduce the protocols, languages and libraries that make up the current state of web development.

This course will introduce delegates to the wonderful world of Object Orientated Design Patterns.  Once understood design patterns allow the leveraging of proven solutions to common re-occurring problems.  Probably the most important aspect to design patterns is that it provides a common vocabulary to describe a system.  No longer will teams of developers need to  discuss lines of code but instead describe the system as a series of patterns, leading to accurate and efficient communication.  As part of this process delegates will obtain key insights in how to design good object orientated systems.  The original Gang of Four Design Patterns were documented prior to .NET, in this course the implementation of these patterns is bought up to date using the latest versions of C# and the .NET framework. 

The open-source React library from Facebook is becoming very popular. Not only is it used for the main Facebook website but lots of other major companies are adopting React. This class will introduce delegates to building web applications using React. Many developers think of React as just a View part of the Model View Controller pattern. With the proper understanding of React gained during this course you will understand its true powers. The course doesn’t stop where React itself stops. It enables you to build rich Single Page Applications (SPA) using the popular React-Router library. You will also learn about architecting React applications using the Flux design pattern. We will do this using the popular Facebook implementation.

Python is a powerful and popular object-oriented scripting language. This course provides a comprehensive introduction to the core syntax and functions provided by Python, including full coverage of its object-oriented features. The course also explores some of Python's powerful APIs and techniques, including file handling, XML processing, object serialization, and Web services.

Scala is an object-oriented language that runs on the Java Virtual Machine. Scala is also a functional language, and combines the features and benefits of OO and functional programming. This course provides a fast-paced introduction to the language for developers with experience in similar languages (e.g. Java, C#, or C++), and then delves deeper into idiomatic uses of Scala in practice.

C++ is a powerful and complex language. This course covers advanced C++ language features and development techniques, to help you get the most out of the language. The course also provides thorough coverage of the C++ Standard Template Library (STL), and explains how to implement OO design patterns and C++ programming idioms to reinforce best practice in your code.

Thought you knew C++? Think again! The C++11 standard is a huge leap forward in the language and STL. Largely inspired by Boost, the C++11 standard introduces support for lambdas, multithreading, vastly improved object construction mechanisms, and much more beside. This course takes a deep and detailed look at all the new features on offer in C++11, along with the incremental additional changes in C++14.

Data is the lifeblood of any organization. However the volume of data is growing exponentially, and is magnitudes larger than a few years ago. How can an organization get business value out of massive datasets? This is the problem that big data technologies aim to solve.

This course introduces the components of big data solutions and then dives into the technical and architectural details of Apache Spark. We'll explain how the Spark API fits in with Hadoop and how it offers an improved and powerful alternative to MapReduce. We also explore related Spark features including Spark SQL, Spark Streaming, and Spark Machine Learning.

The course is intensively hands-on. We explore numerous examples and run through many common scenarios in the lab exercises.

RxJava is an open-source Java implementation of the reactive programming paradigm, an API for asynchronous programming with observable streams. Based on Reactive Extensions on .NET, RxJava provides an event-based programming model, via observables, observers, subjects, and actions.

This course takes a detailed look at how to create reactive systems using RxJava. We explore the API in detail, and explain how to use RxJava to create responsive, resilient, elastic, and message-driven solutions using recognised best practices and contemporary design patterns.

Course Builder

Pick and choose from all our modules to put together your dream course! Complete with time estimations, get your custom quote today.

Design Your Custom Course