“Give someone a fish and you can feed them for a day.
Teach someone to fish and you can feed them for life.”

I remember how difficult it was to get to grips with programming. I have been writing code for over 10 years now, and I'm finally at the point where I can teach it. Also, I have the advantage that I genuinely enjoy it. If I didn't enjoy it so much, I can guarantee that I wouldn't be doing it now, as it can be very frustrating when things don't go to plan.

Where it has been available to me, I have made use of professional software training, and it really does help significantly. Sure, there are lots of good resources on the internet, but there really is no substitute for actual teaching. Getting instant feedback and being shown the right way to do things, rather than learning by trial and error (and frustration). Self-teaching takes time - a lot of time - and often, you need results sooner reather than later.

However, training seems to be prohibitively expensive in the corporate world. A quick Google search shows that training from the original vendor for a popular programming tool costs at least £500 per day per person. For a group of 8 people for a 3-day course, that comes to £12,000, which is a very significant outgoing for a small-medium business. My rates would offer the same amount of training for just over £2,000 (over 80% less than the corporate provider!).

Learn how to:

  • All courses have been designed to last around 8 hours (i.e. one working day) within usual working hours.
  • Earlier or later start and finish times can be negotiated, if required.
    Location and Venue
  • Groups can be as large as you like, but the venue needs to be suitable (and preferably have WiFi).
  • Venue needs to have a project or a screen so that I can demonstrate techniques to everyone at once.
  • Happy to travel to almost any location in the UK.
    Payment Details
  • Introductory offer is £750 per course, regardless of the number of attendees.
  • Payment plan is 50% up-front to secure the booking, and 50% the week before training is due to start. I am obviously happy to take 100% up-front, if you prefer.
  • Rescheduling and/or cancellation both billed at 15% of total price.
  • I provide electronic notes for download, free of charge. Printed notes however will be charged at £15 per copy per course (as they will be professionally bound).


My pricing model is independent of the number of attendees, making it signficiantly cheaper than other vendors.

No limit on attendees

Upskill a whole department at the same time, if you want to!


I will come to you, so no need to sort travel or accommodation.

Real World Experience

A lot of courses teach solutions to theoretical problems. My course schedules have been derived from my experience in industry, so they solve real-world problems!

Available Training Courses

All of my popular training packages are listed below. Please note that I am more than happy to customise the content of any training session to meet any specific needs that you may have.

Filter courses by Technology:
Filter courses by Difficulty:

Microsoft Excel

Microsoft Excel is the most popular data analysis tool in the world. It is the most versatile application in mainstream use, which can be used as a database, a data analysis package and a summary reporting tool. Compared to direct scripting languages, it is much easier to learn and results can be obtained in a fraction of the time. However, it does struggle with large datasets and it is very slow compared to most other analysis applications.
I would recommend learning Excel to almost everyone because of its breadth of application. What it lacks in real technical depth it more than makes up for in ease of use. I reckon that over 80% of day-to-day analysis jobs can be done satisfactorily in Excel, and learning a scripting language is recommended for when you want to take the next step and really tackle those bigger challenges.

Microsoft Excel - Fundamentals

Leverage more from the most popular analysis tool in the world. Learn how to configure automatic calculations using formulas and create charts to make results presentable (because presenting a spreadsheet full of numbers is rarely a good idea!).

Learn how to:

  • Use IF statements and formula chaining.
  • Create charts to put some life into your numbers.
  • Master VLOOKUPs (and learn better ways to do them!).
  • Use Conditional Formatting to make spreadsheets responsive.
  • Goal-seeking to target important values to meet your goal.
  • And more!

Microsoft Excel - Intermediate

You've got the basics down but now you're looking to get serious. Learn how to do heavy calculations on large amounts of data to generate actionable insights. Apply the fundamentals behind real data-science - good, bad, and ugly.

Learn how to:

  • Import data from other sources and data-cleaning.
  • Use conditional aggregate functions (e.g. SUMIFS) to compare group-level metrics.
  • Understand and configure pivot-tables and pivot-charts.
  • Use advanced conditional formatting to automatically show if requirements are not being met.
  • And more!

Microsoft Excel - Advanced

You're already an Excel whizz but let's take it to the next level. Design and create dashboards which summarise huge amounts of information and distil it into a format presentable to CEOs. Also learn the theory and application of optimisation to ensure the best possible results for your business and customers.

Learn how to:

  • Design data structures on your worksheets.
  • Utilise powerful array functions.
  • Create reporting dashboards.
  • Use Excel's in-built SOLVER for optimisation.
  • And more!

Microsoft Excel VBA

Visual Basic for Applications (VBA) is the programming language that extends Excel's default capability. As a scripting language, it is very easy to learn and can deliver results faster than other bespoke languages because of how well it integrates with Excel. However, it is limited in its application in that everything it achieves needs to go through Excel (though it does have limited cross-application uses).
Honestly, for anybody looking to start coding, I recommend VBA as a great tool to begin to develop their skills. The language is easy to learn and intuitive because of its integration with Excel (which almost everybody knows to some level). It also allows a lot of progress to be made in a short time, which is important to maintaining interest in coding, as it can be difficult and frustrating skill to develop.

Excel VBA - Fundamentals

Get to grip with the basics of VBA, allowing you to automate actions within Excel. Learn how to navigate the VBA editor and troubleshoot common VBA errors.

Learn how to:

  • Debug and inspect code through the VBA editor.
  • Read and write data to/from multiple worksheets.
  • Automate instructions using FOR / WHILE loops.
  • Use macro-recorder to do the hard work for complex tasks.
  • And much more!

Excel VBA - Intermediate

Once the basics of VBA have been nailed down, it's time to get practical. Manipulating charts and running calculations across multiple worksheets and/or workbooks are the bread and butter of VBA developers everywhere.

Learn how to:

  • Work with common objects - charts and worksheets.
  • Create user-defined functions.
  • Run code across multiple workbooks and/or worksheets.
  • Design bespoke user-forms to guide user inputs.
  • And more!

Excel VBA - Advanced

Take your VBA skills up a notch by learning how to take advantage of Excel "Events" to create slick, fully automatic applications. Also learn good-practice techniques for distributing code across multiple users and sites.

Learn how to:

  • Loading data from other sources - other Excel files, text files, and the Internet.
  • Understand in-built "Events" - run code when worksheet is changed, or specific cell etc.
  • Create bespoke menus and items.
  • Deploy re-useable code through VBA add-ins.
  • And more!


Python is the most popular general-purpose programming language in the world, and it's popularity is still growing. The code syntax is simple and friendly, and the online support and open-source content is second to none. It is the language to know for data-science, machine-learning and deep-learning tasks. With such versatility and depth of application, the drawback is difficulty in configuration and setup. While a lot of effort has been invested to make it is simple as possible, it is still comparatively difficult compared to other, fully-packaged products.
I would recommend learning Python to anybody who is serious about data-science and learning to perform heavy data-analysis. The plotting capabilities far outweigh anything that is possible in Excel, giving your results a much more professional and convincing feel.

Python - Fundamentals

The basics training takes you though how to work with Python in an Integrated Development Environment and how to master the basic elements of Python programming.

Learn how to:

  • Understand all of the basic data-types (lists, strings, numbers etc).
  • Control program flow using logical IF statements.
  • Master FOR / WHILE loops.
  • Create user-defined functions.
  • And more!

Python - Intermediate

Build upon the knowledge from the basics course and begin developing software like a professional.

Learn how to:

  • Read and write data to/from files.
  • Perform "list comprehensions" for lightning-quick calculations.
  • Use error-handling to catch bad inputs and take corrective action.
  • Utilise regular expressions for working with text data.
  • Perform automatic validation through unit-testing.
  • And more!

Python - Advanced

Using knowledge of Python to perform some serious simulations and analysis that can start adding real value to your business.

Learn how to:

  • Scrape data from the Internet.
  • Perform advanced regular expressions.
  • Perform business simulation using the Monte Carlo technique.
  • Apply basic machine learning techniques for Classification and Regression tasks.
  • And more!

Python - Data Visualisation

A picture is worth 1,000 words. Learn how to create professional-level data visualisations with Matplotlib and Seaborn.

Learn how to:

  • Visualise data distributions, which can unlocks insights of your data.
  • Work with matplotlib to create professional quality plots.
  • Use Seaborn to make stylish, informative plots quickly and easily.
  • And more!

Python - Web Data Extraction

Learn how to read data from the internet and extract the useful information into a local database, ready for analysis.

Learn how to:

  • Understand and interpret HTML, the building-blocks of any website.
  • Extract relevant data using BeautifulSoup in Python.
  • Analyse and store results.
  • And more!

Python - Pandas DataFrames

DataFrames are the industry-standard way to manipulate data in Python. This course helps you understand how to really get the most out of them.

Learn how to:

  • Use dataFrames - reading/writing, calculations and indexing.
  • Visualise and clean your data (including text data).
  • Calculate aggregates for different groups in the data using the .GroupBy method.
  • Merge and join multiple DataFrames together.
  • And more!

Python - Machine-Learning

Learn what machine-learning is and how to apply it to real-world data using the industry-standard Sci-Kit Learn toolbox in Python.

Learn how to:

  • Perform data-cleaning and pre-processing.
  • Classify data into distinct groups through various methods.
  • Predict likely outputs for a scenario using advanced regression techniques.
  • Tune hyperparameters to ensure optimal model generalisation.
  • And more!

Python - Deep Learning

Learn the theory and introductory application of the cutting-edge technology for prediction and classification.

Learn how to:

  • Understand the theory and background of Neural Networks.
  • Perform regression and classification using Artifical Neural Networks.
  • Pattern and Image Recognition using Convolutional Neural Networks.
  • And more!


SQL is Structured Query Language and it is the industry-standard way to interact with databases. Whether designing database structures, uploading data to the database or downloading a copy of the data within it, it can all be done using SQL. In one of my corporate roles, I was the sole administrator of a database with over 200 daily users. I created tools to automatically upload new data to the database on a daily basis, and also designed maintenance routines which would highlgiht any bad data, which I could then go and investigate in more detail. Remember the old saying: "Garbage In = Garbage Out". If the data in your database is no good, then your analysis can't produce good results.
I would recommend learning SQL to anybody who is likely to work with proper databases. There really is no substitute for a properly designed and maintained database, especially if multiple users require access to the same data.

SQL Server Database Administration - Part 1

Before anybody can make use of the database, it needs to be designed and data loaded into it. This course guides you through those introductory steps.

Learn how to:

  • Set up a SQL Server Database.
  • Design appropriate data structures and the SQL code to create them.
  • Upload data to the database.
  • And more!

SQL Server Database Administration - Part 2

Now that the database has been established, it is important to minatain a high level of data quality in there. Also learn how to write functions and views to create additional functionality for your users.

Learn how to:

  • Design and write database maintenance routines.
  • Create functions to perform repeatable bespoke calculations.
  • Design and create 'Views', and their benefits and constraints.
  • Rebuild table indexes to improve query performance.
  • And more!

SQL - Writing Queries

The way to get data out of a database is by writing 'queries'. This course teaches everything you will need to know about queries, including how to join the results of two (or more) different datasets together.

Learn how to:

  • Design SQL Queries with the standard syntax.
  • Perform aggregate calculations on groups of data.
  • Utilise powerful Common Table Expressions (CTEs).
  • Join data from multiple sources into a single result set.
  • Optimise query performance.
  • And more!


Matlab is a powerful scripting tool which is often encountered in academia. Matlab is a great intermediate step between the power of Python and the ease of VBA. Being a commercial product, Matlab also has a strong customer support helpline and on the few occasions that I have required them, they have been very responsive and helpful. However, being a commercial product, Matlab is expensive to license and use in Industry.
I would recommend Matlab to people who already have a commercial license to use the software, or to those who have a need to maintain their software and they only have experience with Matlab. For those without prior experience however, I would seriously recommend Python because they are comparable in difficulty and Python has arguably wider capability. Furthermore, Python is totally free!

Matlab - Fundamentals

Get started with Matlab. Learn how the software works and how to write your own programs and create incredible plots with ease.

Learn how to:

  • Navigate the software, inspecting variables and other features.
  • Create professional plots easily - what Matlab made its name for!
  • Control program flow with IF statements.
  • Automate repeatable analysis using FOR and WHILE loops.
  • And more!

Matlab - Intermediate

With the basics under your belt, let's get serious. Learn the fundamentals of proper data analysis and bulding bespoke programs in Matlab.

Learn how to:

  • Create and use bespoke functions, to avoid writing the same code many times.
  • Read and write data to/from files.
  • Select sub-groups of data using logical indices.
  • Modularise code and call it from within other scripts.
  • And more!

Matlab - Advanced

Finally, build your code into a standalone application with Matlab's App Designer. Make your code run as quickly and professionally as possible by making use of Matlab's Profiler and parallelisation capabilities.

Learn how to:

  • Do advanced plotting including multiple subplots on single figure.
  • Perform polynomial regression and optimisation.
  • Build Apps with Matlab's App-Designer.
  • Monitor and improve code performance with Matlab profiler and parallelisation.
  • And more!

Website Development

These days, you almost don't exist if you're not on the internet. The problem is that professional web developers can be ruinously expensive, almost certainly outside the budget of a small-medium business to hire permanently. However, with some training and support, there's no reason why businesses cannot maintain their own websites. With the amount of open-source resources freely available on the internet, it has never been easier to learn the skills to make professional websites quickly and easily.
I would recommend learning website development to any business that needs to maintain an online presence but cannot afford (or does not want) to hire a full-time web developer. My whole business is based around making software skills accessible and affordable. Furthermore, I built this website from scratch so if you like what you're seeing here, then I am happy to teach you what I have done!

Website Development - Fundamentals

Learn the basics of modern websites - HTML for content, CSS for styling, and JavaScript for interactivity. Learn how to build a basic website by the end of this course!

Learn how to:

  • Understand how HTML / CSS / JavaScript work together.
  • Interpret HTML code to display website content.
  • Interpret CSS code to style website content.
  • Write code in JavaScript to make your websites interactive.
  • And more!

Website Development - Intermediate

Learn the Bootstrap development model which underpins many of the biggest websites around. Build upon the website from the basic course and add some interactivity to make it look and feel professional.

Learn how to:

  • Take advantage of CSS pseudo-classes to make your websites respond to user actions.
  • Use jQuery - the most popular JavaScript library of all time.
  • Crash course in creating responsive, mobile-friendly websites using Bootstrap 4.0.
  • And more!

Website Development - Advanced

To make your website look and feel really professional, learn how to add animations to elements and use information from other websites.

Learn how to:

  • Create animations to make your website look and feel professional.
  • Get live data from other sites using jQuery AJAX API e.g. Headline news stories.
  • Create code templates to reuse in multiple places.
  • Full website case study - www.ctsoftware.co.uk!
  • And more!

Bootstrap Bootcamp

A full course designed around getting the most out of the most popular web development framework around - Bootstrap 4.0.

Learn how to:

  • Design beautiful websites using the responsive, mobile-first framework.
  • Utilise the Bootstrap grid, a powerful layout management technique that optimises presentation across devices.
  • Make use of Bootstrap's slick in-built features, such as carousels for animating photo slideshows, and accordions for collapsible content, making your website more readable.
  • And more!