Read books on a topic and take notes. The planning stage is the most important. Also join groups and meet people with similar interest.
Draw. I find that designing things using the internet like Google Images is a great way to get percision sketches. Linux has: LibreCad, Blender, and MeshLab.
Github is the best place for finding similar projects. Combined with the ros wiki are great resources for code.
Creating code repositories on Github is a way to show off your skills in your resume.