I am interested to hear experiences from companies and start ups who need to train software engineers in ROS. Do you have them install ROS locally or use something like The Construct? Do you assign them a mentor?
My general approach has been:
- Point them at the wiki/tutorials to get ROS installed locally (they’ll need a dev environment at some point anyway)
- Have them continue the tutorials to get a basic understanding of what ROS is and why we use it, as well as the basic commands for launching nodes, looking at topics, etc.
- Throw them into our codebase, which is ideally well-documented enough to have more information about launching specific configurations.
ROS is just another piece of the codebase for new employees to learn as they contribute, it just has better documentation and resources than any internal documentation I’ve worked on (oops). Best practices and other tips come from code reviews, standups, or one-on-one meetings with more experienced devs.
The learning curve doesn’t ever stop with ROS, just like any other technology.
For new joiners who have somewhat of an experience with ROS (say writing a pub/sub based off a tutorial, or moving turtlesim) I prefer going the project way - give them something to build which is not exactly available in tutorials (but 90% is).
I’ve also worked with people with zero background in ROS, and robotics - the curve was naturally longer. I went all the way from setting up a PID based line follower, and then essentially guiding them as to why they should be using it. In short -
- Emphasis on why they should be using something motivates to learn them it better.
- Project based learning.
I generally avoid cloud platforms, most of our development is offline and setting up infrastructure is as important (perhaps more) as the “pretty” code itself.