We get asked this question a lot. By kids who want to learn to make robots and parents who are looking for robotics activities for their kids.
Something my lecturer used to say to us at university comes to mind 'To learn programming, you have to actually program'.
It's true. A bit like learning how to play football. You can read some tips on how to control the ball better, you can watch other players and see what they do well, but ultimately the only way to be a real football player is to play the game. And to become a really good footballer, you have to play often and practice the right skills when you're playing. i.e. just shooting penalties will not make you a good footballer.
The same is true for programming, engineering, electronics and robotics. To be good at these subjects you need to be doing them on a regular basis, but also approach them correctly.
For example most of the books on programming have the same format and are exceptionally dull.
They take you through variables, If statements, while loops and so on but using really dull, lifeless and pointless examples.
No wonder people get put off. I recently enrolled on a java course and one of the main projects and examples used to teach the more difficult concepts was creating bank accounts! How many people is that relevant or interesting to?
So my approach, when I am learning and teaching, is now much different.
Instead of trying to get through books and pointless exercises I set myself a task or project which I find interesting and that will make use of hardware or software that I have not had much experience with - teaching kids is great but constantly teaching the basics can have the side effect of forgetting the advanced stuff!
Some of my current ones are:
Make a game using a touchscreen - this way I will learn to use new hardware with a purpose
Refresh on machine learning and neural networks - but do it in a language that I don't know and learn that at the same time
Build & program a drone - this will involve combining a lot of the skills and knowledge I already have but in a new way.
Learning like that is much more fun and rewarding.
When you've set yourself a project, you will likely have to go and research and learn specific topics. But because it is all relevant to a project you have chosen, you are much more likely to stay motivated.
So if you are new to programming, I am slightly biased, but I think the most enjoyable way to learn is to make something physical. This could be a robot, a bluetooth controlled lamp, a safe with a keypad lock etc.
Or, second to this, a game, app or website. Something that has a useful output which you can use and other people, like your family and employers, will understand and see the effort that has gone into it.
So once you know what it is that you want to make how do you actually start?
Sometimes there are books available that work through a specific project that might be very similar to yours. I have a Make: Bluetooth book which is brilliant. The only downside to this is they tend to give you all of the code, so you may find that whilst you have a working project, you didn't really learn or do much to achieve the end result.
Similarly, doing an online search for your project title will likely bring up some how-to websites that could be a good place to start.
Contact some local companies and tell them what you are trying to do. They may offer you a range of things from a helpful email to some free kit.
There may be some workshops running local to you. If you are in Bristol, Bath, Gloucester or anywhere near the South west, drop us a line and we'll give you the dates for our next iLearning robot workshop.
Get in touch
If you're starting a project or want to learn programming, or robotics or anything similar you are welcome to drop us a line and we'll be happy to help out.
Also take a look at our online course, it takes you from beginner level to being able to make a robot using arduino.