ROS2, C++, Python - What Should You Learn First?
The answer depends on your goals, but here is a practical way to decide.
If you are just starting out in robotics software, it is easy to feel overwhelmed.
ROS2? C++? Python? What about Gazebo, Docker, or Linux?
Here’s the truth: You do not need to learn everything at once. You need a focused path that builds momentum.
In this issue, let us walk through how to decide where to begin based on your background, goals, and the kind of robot you want to build.
The Core Tech Stack (That You Will Eventually Need)
Every robotics software engineer eventually learns this stack:
Linux: Because most robotics runs on Ubuntu.
Python: For prototyping, scripting, and writing quick ROS2 nodes.
C++: For performance-critical ROS2 nodes and large-scale systems.
ROS2: The glue that connects your sensors, logic, and actuators.
So the real question is not “which one,” but rather “which one first?”
Your Starting Point
Here is how to decide:
If You Are New to Programming:
Start with Python + ROS2 basics.
Write small nodes, publish to topics, subscribe to sensor data. You’ll understand the ROS2 ecosystem faster, without the C++ overhead.
If You Know Python Already:
Learn ROS2 concepts deeply.
Then slowly introduce C++ for nodes where performance matters.
Start mixing Python + C++ in your projects:
Write controller logic in C++
Use Python for service wrappers or scripting
If You Come From a C++/Embedded Background:
You will feel at home with rclcpp, but watch out:
ROS2 has its own memory model and conventions
Start with simpler nodes before diving into navigation stacks or real-time control
Learn how callbacks, lifecycles, and executors work in ROS2.
The 3-Layer Mental Model
Think in terms of layers and gradually build upward:
Linux & CLI → Know how to move inside a Linux machine, install packages, manage dependencies, and debug shell errors.
Programming Language (Python/C++) → Pick one, then grow into the other. Python is faster to prototype; C++ gives you performance and control.
ROS2 Ecosystem → Understand nodes, topics, services, actions, parameters, launch files, and how they talk to each other.
Each layer supports the next. Do not skip steps.
💡 Tip
Pick one project and commit to learning all the tools required for it.
For example:
Make a differential drive robot follow a path.
Use Gazebo for the simulation, write ROS2 nodes for control.
Use Python to subscribe to pose data, and C++ for the PID controller.
This “learning by doing” approach will teach you 10x more than isolated tutorials.
You do not need to master ROS2, C++, and Python all at once.
Choose your first tool based on what helps you build something real.
Learn enough to make the robot move, then go deeper.
Keep building. Keep breaking. Keep learning.
Resources to start building today:
🌟 Open Source Robotics Projects on GitHub
📚 GitHub Repositories to Learn Robotics
🛠️ ROS Resources
🚀 ROS 2 Resources
🎥 YouTube Channels & Playlists to Learn Robotics
🏫 Free University Courses
📖 Books to Learn Robotics
🎮 Robotic Simulators
FREE access here - getintorobotics.com
Hit reply: I read every email.


thank you