If you are interested in learning about coding and computer science, these courses will come in handy. Regrouping some of the best-selling programming courses available online, this selection covers it all for complete beginners to intermediates and advanced programmers who want to perfect their coding skills.
The popular and best-rated courses listed below teach the most useful knowledge and best practices to understand programming, computer science, and their various applications. With courses for all levels, from complete beginners looking to learn the basics of coding are, intermediates willing to make use of their skills to advanced programmers interested in learning new techniques and deepening their expertise, you can be sure to find a course for you.
Carefully selected from some of the most popular online course platforms and delivered by some of the best teachers from top universities and schools, the hand-picked best-selling courses listed below are grouped by level. They can be followed entirely online, allowing you to learn on your own schedule, and allow you to pass exams and gain certificates to show your employers – or not pass them and just learn to practice coding and develop applications on your own.
Priced between 29 and 199 USD, these online courses will take you to the next level and allow you to become programmers and professional software developers at a much lower cost than traditional engineering education. Some “specializations” go beyond these prices as they regroup multiple courses delivered by a university or school with a final certificate. But they will allow you to gain complete training in a particular area of coding or a specific programming language. Attending one of the top specializations listed at the end of this article will also grant you a valuable certificate delivered by top universities and business schools to prove the acquired expertise.
Note that if you are interested in learning to program for artificial intelligence, check our other post on the best online courses for AI, Machine Learning and Data Science.
Disclosure: This post contains affiliate links. If you buy something from one of these links Disfold will get a small commission that will help us keep the site alive, at no extra cost for you.
Note that this post is part of a series of reviews for online learning and self-development:
Courses for beginners in coding and computer programming
These courses introduce the basic concepts of coding, from the underlying principles that make computers work to the basic structures and operations used in programming, and simple programs.
This course is designed for people who are unfamiliar with computers and technologies, it covers the fundamentals of how programming works before learners can embark on a real coding course. Already followed by more than 100,000 students, it will teach you how computers and modern web technology work, and give you an overview of the different programming languages and what they are used for. Then it details all the major concepts of coding, web administration and responsive design, current programming trends, programming frameworks and much more.
Video course duration: 6.5 hours
This course is an introductory programming course for those with little to no previous experience. Already attended by more than 190,000 students, it relies on the programming system and language called Matlab because it is easy to learn, versatile and very useful for engineers and other professionals. It covers the general concepts of computer science and programming and will give you a solid foundation in the use of Matlab.
Estimated completion time: 22 hours
Code Yourself! An Introduction to Programming – Dr. Areti Manataki, Inés Friss de Kereki, University of Edinburgh, Universidad ORT Uruguay
This course introduces the fundamental principles of computing and teaches how to program in Scratch, an easy to use visual programming language. Already counting more than 80,000 students, this course is designed to make the lectures interesting, easy and understandable. It relies on Scratch which is a great tool to understand programming, before diving deeper in various programming languages.
Estimated completion time: 18 hours
This course is designed for parents and kids, teachers and students to learn how to code with fun examples, colorful graphics, and easy-to-follow plain English instruction. This course is designed to be easily understood by absolute beginners, relying upon the ease of use of the Python language. With quick, hands-on lessons, working code downloads and high-definition videos, this course will get you coding your own apps from scratch in minutes.
Video course duration: 6 hours
Courses for intermediate programmers, algorithms and data structures, and language-specific coding
Though the beginner level courses teach general programming structures and operators that can be used in multiple programming situations and languages, courses for intermediary programmers begin to be more language-specific. And even though you can generally apply the concepts learned from one course and its language in other situations and languages, for intermediary level programmers who understand the principles of programming, it is important to master at least one programming language to start applying what they learn.
The following courses are thus grouped by programming language, to help you choose which one is most suitable for your purpose, depending on how you will use coding, and the languages you need to use or master. They focus on the most popular general languages, Python, Java and C/C++/C#.
Programming for Everybody (Getting Started with Python) – Charles Russell Severance, University of Michigan
Already attended by more than 950,000, this course teaches the basics of programming computers using Python. Not requiring any pre-requisites but the simplest mathematics and moderate computer experience, it presents how to build programs from a series of simple instructions in Python 3. After completing this course, students will be ready to take more advanced programming courses.
Note that this course is part of the Python for Everybody Specialization (see below)
Estimated completion time: 12 hours
Designed for people who have never programmed before, already know basic syntax, or want to learn about the advanced features of Python, this course will teach you Python 3 in a practical manner, with complete coding screencast and a corresponding code notebook. Already attended by more than 790,000 learners, this course covers a wide variety of topics, including command-line basics, installing and running Python, data structures, formatting, functions, debugging and handling errors, modules, input/output, and much more.
Video course duration: 24 hours
Already followed by more than 150,000 students, this course aims at being very practical. It teaches how to build professional applications in Python, even without prior knowledge of programming, including webcam object detection apps, data collector web apps that query data from SQL databases and data visualization dashboards on the browser. Relying on a learn by doing approach, it provides step-by-step video explanations together with continuous support from the course instructor.
Video course duration: 23.5 hours
Algorithms, Part I & II – Kevin Wayne, Robert Sedgewick, Princeton University
This two-part course from Princeton University covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Already attended by more than 450,000 students, part I details elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms, it was also followed by more than 100,000 learners.
Estimated completion time: 33 and 36 hours respectively
This course is designed to provide a complete understanding of Java, become a productive software developer, and build your own Java apps. Already followed by more than 400,000 students, it assumes no coding experience and covers the core java skills including keywords, operators, statements, and expressions, Java class, polymorphism, and inheritance, etc.
Video course duration: 80 hours
This specific course on data structures and algorithms is primarily designed for computer science students or software professionals. Already attended by more than 70,000 students, it is designed for people who want to learn data structures and algorithms, from basic to intermediate level. Even though prior knowledge of Java may be useful, it can be followed by beginners and applied beyond Java applications.
Video course duration: 28.5 hours
• C / C++ / C#
Assuming no prior experience, this course for beginners teaches modern C++ programming, with theory and concepts reinforced with live code examples. Attended by more than 60,000 students, this course covers all basic structures (loops, functions, pointers, classes…) before going to more advanced concepts such as libraries, constructors and destructors, overload operators, polymorphic functions, etc.
Video course duration: 39.5 hours
Often considered to be the mother of all languages, C is one of the most powerful languages ever created, which can also actually make you a better programmer in other languages like C++, Java, or C#. Followed by more than 30,000 learners, this course will teach you the fundamentals of the C Programming Language, how to write high-quality code and become an excellent problem solver.
Video course duration: 23.5 hours
C# Programming – Mosh Hamedani
C# is a cross-platform language that can be used to build a variety of applications, including mobile apps, games, web sites and desktop applications. Attended by more than 90,000, 70,000 and 60,000 students respectively, this course in 3 parts teaches you the fundamentals, intermediate and advanced techniques of C# programming and programming with the .NET framework in a clear, concise and step-by-step way.
Video course duration: 5, 5.5 and 3 hours respectively
Advanced courses for professional programmers, specific applications and succeeding during programming interviews
The following courses provide teachings on more advanced programming topics. With game programming, statistics, and coding interview materials and preparation for future professional programmers, these courses dive deeper into some of the most sought-after software programming goals.
Created in collaboration with Epic Games, this course teaches how to create and mod video games using Unreal Engine 4 with C++, the powerful industry-standard language. Already attended by more than 190,000 students, this course dives into Unreal Engine, a free-to-use game development engine used by AAA studios and indie developers worldwide for Windows, consoles, macOS, iOS, Android and Web from a single source.
Video course duration: 43.5 hours
This course teaches how to program in R and how to use R for effective data analysis. As more than 430,000 students, you will learn how to install and the necessary configure software for a statistical programming environment and describe generic programming language concepts needed for high-level statistical language. The course covers practical issues in statistical computing, including programming in R, reading data, accessing packages, writing functions, debugging, profiling, organizing and commenting code.
Estimated completion time: 20 hours
This course is a comprehensive review of Python to help you ace your coding interviews and learn about data structures and algorithms! Followed by more than 40,000 learners, this course takes advantage of the easy to read Python programming language to efficiently teach you what you need to know to get accepted in Python programming jobs. It covers the pre-application requirements, job search, technical and non-technical interview questions, as well as Python data structures and algorithms.
Video course duration: 16.5 hours
This course aims at bridging between self-taught programmers and college-educated students. It helps you get on the same level as someone with a computer science degree by teaching the fundamental building blocks of computer science to ace job interviews. It notably covers the Big-O notation, data structures, and algorithms as well as an array of non-technical questions to succeed in programming job interviews.
Video course duration: 19 hours
Specializations: series of advanced courses on programming and computer science
Delivered by top universities and schools, these series of courses provide a complete view of one particular language or aspect of computer programming. Expecting months of study to be completed, these specializations will teach you thorough coding knowledge to suit your purposes and goals. Though they will require time and assiduity, completing them will be rewarded with valuable and widely recognized certifications that will help you demonstrate your newly acquired expertise to potential employers.
Note that these courses can obviously also be attended separately as needed, and to make your own curriculum to learn the specific skills that will help you achieve your purpose at hand or fit your interests.
With more than 280,000 students already enrolled, the Python for Everybody Specialization presents how to make use of the powerful Python programming language with fundamental programming concepts including data structures, networked application program interfaces, and databases. In the Capstone Project, this series of courses will make you use the technologies learned to design and create your own applications for data retrieval, processing, and visualization.
Estimated completion time: 4 months
- Programming for Everybody (Getting Started with Python)
- Python Data Structures
- Using Python to Access Web Data
- Using Databases with Python
- Capstone: Retrieving, Processing, and Visualizing Data with Python
This specialization dives into the Java language, one of the most in-demand programming languages and the foundation of the Android operating system. Created for beginners and already followed by more than 70,000 students, this Specialization will teach you core programming concepts and equip you to write programs to solve complex problems. Besides, it will also help you gain the foundational skills needed for software engineers: designing algorithms, testing and debugging programs.
Estimated completion time: 4 months
- Java Programming: Solving Problems with Software
- Java Programming: Arrays, Lists, and Structured Data
- Java Programming: Principles of Software Design
- Java Programming: Build a Recommendation System
An Introduction to Programming the Internet of Things (IoT) Specialization – UCI Division of Continuing Education
This Specialization aims at helping you design, create, and deploy a fun IoT device thanks to Arduino and Raspberry Pi platforms. Already attended by more than 40,000 learners, it covers embedded systems, the Raspberry Pi Platform, and the Arduino environment to build devices that can control the physical world. The final Capstone Project will make you design, build, and test a microcontroller-based embedded system, to showcase to future employers.
Estimated completion time: 2 months
- Introduction to the Internet of Things and Embedded Systems
- The Arduino Platform and C Programming
- Interfacing with the Arduino
- The Raspberry Pi Platform and Python Programming for the Raspberry Pi
- Interfacing with the Raspberry Pi
- Programming for the Internet of Things Project
Here is our selection of the best online courses for programming. Did we forget any? Did you complete one of these courses? How did you benefit from it? Let us know in the comments below!