C++ is one of my favourite programming languages because I enjoyed learning it more than anything else. However, I am not the only one and C++ is also the favourite of many large corporations and banks whose entire core systems are build on it. It is indeed a very powerful language and it held an almost revolutionary status for quite a while.
C++ is one of the most universal programming languages and is used almost everywhere – from cutting edge gaming engines to virtual reality, from low level device drivers to operating systems, from core banking systems to desktop applications and more. It is one of the fastest languages and is widely utilized anywhere that requires real time performance.
In the financial services industry, a good percentage of jobs still require C++ skills. It is the quintessential foundational programming language and I think it is the first language that anyone should learn. It will just make you a better programmer.
1. C++ Developer Nanodegree Program from Udacity
Course Review
This is the most comprehensive and complete C++ course available online. It is suitable for beginners as it does not require any previous C++ coding experience. It is chock full of excellent content and no less than five real-world projects for you to complete. That is more than enough to get you desk ready for almost any C++ development job.
You obviously start with some foundational modules. You will learn how to develop, compile and execute C++ programs as well as about the syntax, functions, containers and linking files together. C++ is an object-oriented programming language and you will focus on building classes, interfaces, and templates to create objected-oriented C++ programs. Including all the tools you need to write clean and reusable code.
Next up is the rather important topic of memory management and controlling static and dynamic memory in C++ using pointers, references etc. You will also learn about concurrency as C++ supports running multiple execution path sin parallel. You will lean how to launch processes and threads to execute in parallel including thread synchronization and communication to really make use of concurrency.
As mentioned, there are a lot of real-world projects that really drive home the learning. You will work on projects like a route planner, resource monitor, memory management chatbot, concurrent traffic simulation and a final capstone project where you build your own full-fledged C++ application. All of this should serve to give you the confidence to ace any interview or test.
Udacity’s Nanodegree programs offer a whole host of additional services which is one reason I tend to like them. For example, you will get access to technical mentors and even CV and LinkedIn profile reviews. The whole shebang.
Summary
- Time to Complete: Should take around 4 months depending on your weekly commitment and prior experience.
- Offered fully online and on-demand.
- The complete C++ learning experience chock full of real world projects and value added services to get you desk ready.
2. Accelerated Computer Science Fundamentals from the University of Illinois
Course Review
This a course all about data structures and algorithms in C++. It is an intermediate level course and does require some prior understanding of any programming language. It focuses more on the object-oriented programming aspects of C++ and its other advanced features that you need to learn to get to the next level.
You start right away with an introduction to object-oriented data structures in C++. You will lean how to write a program in C++, how to set up a development environment for wiring and debugging C++ code and how to implement data structures as C++ classes. Next, you move on to ordered data structures. Here, you will learn new data structures for efficiently storing and retrieving data, lists, trees, arrays, linked lists, queues, stacks, binary trees heaps, AVl trees, B-trees, calendars etc.
Lastly, you focus on unordered data structures and algorithms needed to implement hash tables, disjoint sets and graphs. These are the fundamental data structures that are used for unordered data and leaning about these will allow you to code for advanced applications.
There is a significant focus on applied learning. Which means you will be completing weekly challenge problems that will require you to implement fragments of C++ code to achieve specific tasks. You will also have several longer-format coding projects where you will have to build C++ programs to achieve advanced tasks like editing images, manipulating data structures, solving graph search problems and so on.
Summary
- Time to Complete: Should take around 50-60 hours depending on your prior skill level.
- Offered fully online and on-demand via Coursera’s eLearning platform.
- An intermediate level course that has been designed to get you ready for building advanced C++ applications.
3. MicroBachelors® Program in Programming & Data Structures from New York University
Course Review
Another comprehensive course on C++ and data structures from New York University’s Tandon School of Engineering. This MicroBachelors’s program is closer to an undergrad degree than it is to an online course – but with the distinct advantage of completing it from your home in its entirety and at your own pace.
The program is divided into four exhaustive and detailed courses. The first is an introduction to C++ programming where you learn about the fundamentals of programming in C++, iteration, decision branching, data types, expression etc. The second course more advanced topics like functions, computation complexity, arrays and strings.
Next we move on to data structures with topics like pointers, dynamic storage, recursion, searching and sorting being explored. The courses go into significant details and should satisfy the most discerning leaner. The last course covers advanced data structures in C++ which includes file processing, linked lists, stacks, queues, trees, binary search trees, tree balancing algorithms and so on.
On successful completion of all courses you will be awarded with an official certificate which is a significant personal branding opportunity and you should leverage it appropriately on your CV and LinekdIn Profile.
Summary
- Time to Complete: Should take around 200-250 hours based on our skill level. This is a proper undergrad level course and should take you several months. But you can complete at your own pace.
- Offered fully online and on-demand on edX – an eLearning platform created by Harvard and MIT.
- An advanced, college level C++ course for the discerning leaner.
4. Coding for Everyone: C and C++ Specialisation from UC Santa Cruz
Course Review
This is the most beginner-friendly course for learning C++. It actually starts off with C to get you familiar with the basics of computer programming and then moves on to the more advanced features of C++ like object-oriented programming and also semantics and syntax. This approach seems to work well enough.
The first half of the specialisation focuses on C. This includes concepts like lexical elements, data types, flow of control, simple functions, advanced functions, recursion, arrays, pointers and so on. You will also be taught about structured programming techniques.
The latter half of the specialisation then move son to elements unique to C++. You will learn how to convert C programs to C++, C++ functions, generics, classes and object-oriented programming, using safe input/ output, default constructors, conversion constructors, copy constructors, list and dynamic memory allocations, basic container classes, iterators etc.
You will also learn about the Standard Template Library and how to use iterators to access container to produce highly efficient generic algorithms. You will learn about Hex as a graph and inheritance. C++ move semantics, Monte Carlo programs, and the idea of design patterns.
Summary
- Time to Complete: Should take around 72 hours depending on your prior skill level.
- Offered fully online and on-demand via Coursera’s eLearning platform.
- A beginner friendly course that starts off by teaching you the very fundamentals of programming eases you into the more advanced and powerful C++ language.
5. Introduction to C++ from Microsoft
Course Review
This is a short introductory course to teach you the basics of C++ from the guys over at Microsoft. This is a useful introduction that may be used to get some programming understanding before moving on to some more advanced courses.
You will learn C++ syntax, language fundamentals and how to create functions and basic programs using C++.
Summary
- Time to Complete: Should take around 15 hours. This is a short introductory course.
- Offered fully online and on-demand on edX – an eLearning platform created by Harvard and MIT.
- A basic conceptual course for those without any programming experience.