So you want to become a robotics engineer, right? That’s what all the cool engineers are going after these days. But, before you get all excited about the idea that you’ll be building the next latest and greatest robot wizard, you must understand two coding languages for robotics: Python and C++.
If you’re brand-new to programming, I recommend starting with Python and working your way up to C++. You won’t master either language in a day, and you’ll wind up being thoroughly confused if you attempt to learn both languages simultaneously (with or without prior coding experience). There are a ton of resources out there to learn to code. If you know you want to end up in robotics, don’t waste your time with other languages. It’s just not necessary. Just focus on mastering Python and C++. Furthermore, if you know the job title for the role you’re shooting for, you can confirm which languages are required and ensure that your skills align with what the company is looking for.
In this article, we’ll explore the big two languages, Python and C++, specifically for growing and gaining skills in robotics. By the end of this guide, you should have a good feel for what courses to take to advance your engineering career, get promoted, or land that sick job working on robots.
Python Programming Courses
You can find Python programming courses on YouTube, Udemy, Coursera, edX, and Udacity. Everyone in the e-Learning space has some sort of course on Python. It’s a great first language because it’s easy to read, and has a lot of similarities to English and Mathematics. You can use Python for a variety of applications including the Internet of Things, scripting, web applications, data analytics, and rapid prototyping.
Here are some great starter tutorials and courses to help you learn Python.
1. LearnPython.org
LearnPython.org is a good resource for learning Python and brushing up on your Python skills. The site provides a list of topics that you can click on and read about. You can contribute to the tutorials by forking the Github repository. While that’s pretty cool, it does mean that this resource might have incomplete sections. You might have to spend some time looking up topics and conducting your research. It isn’t as interactive or guided as a course, but it is free, and the information is all there. You just have to decide if you have enough discipline to force yourself to read all of the pages.
For those of you who want the guidance and support that an online course provides, I recommend checking out the next three options.
2. Introduction to Python Programming
Introduction to Python Programming is a good starting point for anyone looking to learn how to program in Python. This course presumes no prior experience and you can use it as a refresher to get you back into the swing of things.
In this course, you’ll learn how to set up a Python development environment, the basic syntax for variables, data types, lists, dictionaries, and conditionals. Set aside about 5 hours to review the lessons and work on the course materials and you’ll be well on your way to picking up concepts as a Python programmer.
3. Python Core and Advanced
This next course is designed for people who already have a Python background and want to enhance their Python knowledge. Python Core and Advanced is advertised as being a comprehensive course for all levels, but based on the topics, I recommend taking this course after you complete an introductory class to fill in gaps that might have been glossed over.
This course has various applications as well. You can use the skills with the intent of going into Data Science, Web Development with Python frameworks, or to enhance your robotics engineering career (ahem).
It’s very easy to get sidetracked into all the cool things you can do with Python programming. But if your end goal is working on robots, try to keep that in mind as you’re taking these more generic courses.
4. Python for Everybody
This is by far my favorite Python course. You can take PY4E for free, enroll in the Coursera Python Specialization or take the courses on edX. If you’re struggling to understand Python, this is a great resource. Python for Everybody is for everybody.
You don’t need any programming experience to start gaining skills in Python. Plus, it’s a very fun language to learn! The PY4E course has a supplementary book (which is optional) if you want something tangible to read and review. Dr. Chuck is an awesome professor. If you’re really into Python and have some basic programming experience, you can probably complete the Coursera Specialization in about a month. (Like I did!)
As a whole, Python is relatively easy to pick up, and it’s used for a variety of advanced computing algorithms. A lot of the research and preliminary development is created in Python and then later converted to C++ or production-ready code. Once you have a solid understanding of Python, it’s time to graduate to C++.
C++ Programming Courses
C++ is a very popular professional programming language in robotics. It allows you to use OOP to manage the complexity of software while also interfacing nicely with machine hardware. If you’re looking to get into Algorithms, Artificial Intelligence, Machine Learning, and/or Robot Operating System (ROS), you’ll need to have a solid foundation in C++.
Whether you’re just starting with programming or you know other languages, here is a list of online courses to learn C++ programming.
1. Learn-cpp.org
Just like LearnPython.org, Learn-cpp.org is a free interactive C++ tutorial built by the community. They offer beginner and intermediate guides that focus on providing information and less on projects and interactive lessons. C++ isn’t the only language they offer. You can also learn Python (as mentioned above), JavaScript, CSS, HTML, and additional popular programming languages!
2. C++ Tutorial for Complete Beginners
Another free option to learn to code is the C++ Tutorial for Complete Beginners. This course teaches you the powerful, fast and popular C++ programming language from scratch, assuming only basic computer knowledge.
I recommend this course if you are familiar with downloading and unzipping files, using the Internet and so on, and who want to learn to program. Remember, C++ is one of the more challenging programming languages to learn, so you can expect to encounter difficulties. With a lot of practice and patience, you’ll learn to code in C++.
3. Learn C++ by Creating
The third option for learning C++ is another Udemy course called Learn C++ by Creating. This course will have you working through a bunch of projects so that you have a C++ portfolio when you’re finished. Each lesson is a project, so instead of watching lectures and then trying to figure out the application, you’ll work on projects to gain C++ skills.
The course only has 1.5 hours of video, which makes it great for working on and digesting in one sitting. You can also use this course as a refresher if you’re prepping for a C++ coding interview and want to get your hands on some tangible practice problems with solutions.
4. C++ Short and Sweet Part 1
Last on the list of C++ courses is C++ Short and Sweet Part 1. This course is designed for students with beginner and intermediate C++ experience looking to boost their coding skills and enhance their resumes.
This course doesn’t assume you have any experience with C++ and is based on the book, Accelerated C++ by Andrew Koenig and Barbara E. Moo. If you’re a learner who likes to work both online and have a tangible book to read as well, then this is the course for you.
There are supposedly two parts to the C++ Short and Sweet Series. The first part covers the first seven chapters of the textbook, and the second part hasn’t been released yet.
(If at the time you’re reading this, Part 2 is available, let me know in the comments below with the link.)
Set aside at least six hours to watch the videos. Out of all of the online courses, this one is most similar to attending an in-person class because it draws lessons directly from a textbook.
How to learn to code robotics online
Regardless of your learning style, you can find a programming course that best suits your needs and helps you advance your career. Remember, it’s not a race to the finish or who can finish the most online courses first. The best robotics engineers take their time and fully absorb the fundamentals. Get good at these concepts and then progress over time.
The best part about using online courses as a resource is that you can play, pause, rewatch and relearn anytime. Use this to your advantage, and if the course allows it, communicate with the instructor and your peers. This will only help reinforce new concepts.
Once you have your feet wet with Python and C++ programming, you may want to direct your learning to courses directly tied to robotics.
How to find relevant coding courses for robotics
While there are a ton of resources for learning to code online, not all of them are relevant to the field of robotics. You can find coding courses for robotics by refining your search terms. Look for courses that have ties to robotics, automation, autonomous vehicles, drones, and AI algorithms. If you know the specific topic you need to learn, then you can search for that directly. Finding a good course on Kalman Filters might be difficult if you don’t know what a Kalman Filter is or why you’d need one. That’s why it’s a good idea to find degrees, professional certifications, and online programs to help facilitate your learning. Udacity has a six-month nano degree if you want to become a Self Driving Car Engineer (and learn what a Kalman Filter is).
I’m a fan of the Udacity nano degree program because you can gain tangible, resume-worthy skills in a very short amount of time. Regardless of if you have a degree, you can polish your skills for a career in advanced robotics if you take your time and learn the fundamentals. The robotics catalog on Udacity is fairly extensive in comparison to other online degree programs. You can learn everything from C++ to Sensor Fusion, to Data Structures and Algorithms. I bet if you stacked these programs together, you’d have a solid foundation for landing any software-based job at a top-tier robotics company.
Finding a good course on Kalman Filters might be difficult if you don’t know what a Kalman Filter is or why you’d need one. That’s why it’s a good idea to find degrees, professional certifications, and online programs to help facilitate your learning. Udacity has a six-month nano degree if you want to become a Self Driving Car Engineer (and learn what a Kalman Filter is).
I’m a fan of the Udacity nano degree program because you can gain tangible, resume-worthy skills in a very short amount of time. Regardless of if you have a degree, you can polish your skills for a career in advanced robotics if you take your time and learn the fundamentals. The robotics catalog on Udacity is fairly extensive in comparison to other online degree programs. You can learn everything from C++ to Sensor Fusion, to Data Structures and Algorithms. I bet if you stacked these programs together, you’d have a solid foundation for landing any software-based job at a top-tier robotics company.
Just “learning to code” isn’t enough
If you want to work on robots and advanced autonomous systems, being great at Python and C++ isn’t good enough. Experience with applied programming and developing software for hardware systems is critical. The best way to gain these skills is to work for companies who are developing robots or automated systems or enroll in specialized courses to help you practice. It’s next to impossible to just “wing it” when it comes to advanced patterns in software development. The best way to figure out what skills you need to learn is to think about the types of robots you want to work on and the specific skills you’ll need to get there. Determine the “end goal,” or where you want to end up in the robotics field.
Is it writing software for self-driving cars or creating flight patterns for autonomous drones? There are so many niches within the robotics field, that it’s critical to figure out what you want to do so that you can take steps in the right direction.
Lastly, if you’re entering into the robotics field from an Automated Manufacturing perspective, know that it’s entirely possible to not know Python or C++ coding languages for robotics and still have a successful career developing controls code for PLCs. However, a lot of the glory robots we see in the media and on TV today are built using sophisticated programs written in C++, not Ladder Logic, Structured Text, or Function Block.
Automated Manufacturing is becoming smarter, and there are a lot of opportunities to develop infrastructure and systems using advanced programming skills. But it’s not nearly at the same level of software development needed to create an autonomous car.