What you'll learn
- Gain coding knowledge
- Gain knowledge of the C++ programming language
- Gain some experience of the C++ Boost libraries
- Gain an introduction to the Qt GUI framework
- Absolute beginners course to C++11
- A Windows based computer and knowledge of using the operating system.
- No previous programming knowledge needed although that would be of benefit.
Why learn C++ over other languages?
C++ is probably the most important language on the planet; although there are plenty of other languages out there, C++ is often used to implement those other systems, is used in time critical applications since it is very efficient, and is essential in fact for operating systems, device drivers, compilers, networks and other "systems" software since it generates native code. A lot of the software you use on a daily basis probably uses C++ "under the hood" at some level.
This course teaches you the C++ language from beginner to intermediate level. Master all the essential basics from simple statements and functions to templates and object oriented programming. Included in the course is a complete grounding in C++ up to C++11 and some C++14 and 17, the standard library and C++'s container library, the STL and the later sections of the course take the student through a complex project that is a text adventure game engine that reads locations, game objects and game play from external files and also a GUI game file editor that uses the Qt GUI framework. The project shows how to embed a script engine into a C++ application so gameplay can be written external to the game engine.
Why choose this course?
A practical hands on approach is used throughout. Any theory is then illustrated with real code and in several places there are exercises and code challenges to reinforce the student's absorption of the subject matter.
These are just some of the essential, must have knowledge covered:
· The "philosophy" of C++
· Number systems (binary, octal, decimal and hex)
· Static type systems v dynamic ones
· Basic statements such as variables, loops and selection statements
· Operator overloading
· Templates – both function and class
· Object orientation and virtual functions – polymorphism in C++
· C++'s way of doing separate compilation
· The C pre-processor
· The standard library
· The STL, containers, algorithms and iterators
· Lambda expressions
· Smart pointers
· An introduction to design patterns (Mediator and Singleton)
The course is taught by Brian Martin BSc, who has spent at least 30 years doing real world software development in a variety of fields such as defence systems, accountancy, property management, telecommunications and legal systems. I have a firm belief that the only way to learn any subject is by actually doing it as you learn, and this is the overall approach taken in the course.
Who this course is for
People who have a good basic knowledge of computers and who wish to learn how to program. It is also suitable for individuals who have some programming experience in other languages. Previous coding experience is not necessary but would be advantageous.
Basic knowledge of computer operation such as using the internet to download and install software, running applications and copying/deleting files using the file manager.
A Windows or Mac machine.
An internet connection.
MS Office or equivalent (such as Open Office) since a few of the course files for download are in Word or Excel format.
Adobe Acrobat reader (free to download and install) – some files are pdfs.
All software used is free or open source or where commercial there is a free community edition. So providing you have a computer with a network connection there are no barriers to start learning!
Who this course is for:
- Computer literate learners
- Programmers from other languages
Interested in Visual Studio, web design, design patterns in C++, game programming, 3D graphics, digital art, video editing. My approach to software design is to produce a minimal, easily maintained solution.