Quote:
Originally Posted by julianh72
I'd suggest you take a look at Arduino - the hardware is really cheap, and readily available from Jaycar, eBay, Amazon, etc. There are thousands of "recipes" available to get you started on any project you can think of. The official website https://www.arduino.cc/reference/en/ is very well-documented.
The coding language is C++, so it is a modern structured computer language, and the skills you develop can be translated into other languages if your horizons broaden.
|
+1 to this, and start with basics, Many people use the word coding to mean almost anything these days even html. But its best to learn if you have a target result you can work towards. even the simplest task will have challenges you can learn in debugging when things dont work as you expect or you want to improve the performance or you want to make it modular to work with something else or you get a crazy idea to add to it at 3in the morning. And this is just with a text output program, if you want a graphical interface and interactivity with a user those are simple to think of but huge to write yourself. And writing yourself forces you to think for yourself, not just expect to take some code from someone else and have everything solved. Its the problem solving yourself thats of benefit to you, it will help you in any spect of work and life where a problem arises it gives you skills to think creatively and efficiently, just using others stuff teaches you to be dependent on others to do your work for you. All of this is language independent, whatever language you learn in is irrelevant a course starting from dot should still give you the methodology skills you need to work through any problem in practical terms. The workforce doesn't need people who understand X language, jobs needing that are usually a business has an old legacy system and the person looking after it left so they just want a slave to keep it running . Plus there are so many languages that have common roots and often you find the same code is present in a bunch of languages anyway so moving from one to another is easier if you learn one for yourself well you can pick up others fast where you need to and certainly understand reading what the code is trying to do.
Arduino is really cool and you get to learn practical electronics stuff too. One of my early Arduino project was The Ringo robot, It could do some things with its sensors like line following. Sure I could buy a line following toy robot if thats what I wanted, but I wanted to learn to code. First problem is the hardware is fixed so at times I wished it had other sensors in other places, so I was forced to think how to better use the limited hardware It came with, then try to find and understand the sensor limits like how thin or dark a line had to be in order to be detected it doesnt automatically detect any old line it was jut basic IR sensors so I had to learn to see how the sensor sees in order to code for detecting then the speed it can detect becomes another. Limitation as a moving robot can easily just be moving too fast and go over the line. Then how does a line compare to empty space like a table top edge to avoid falling off the cliff. So much extra stuff comes to mind as you code and test and having something physical to observe and test with and you find all sorts of problems you’d never consider. So its a really engaging way to keep you coding andwith the community as you learn. The Ringo came with line following code and I eventually tested theirs against mine. I intentionall started from scratch with my own and never looked at theirs, when I did I saw they used a different apptroach order to the sensors than I didso you have different people tackling the same problem in difference ways. Both producing a working result. So I started to play with refinements to make mine faster and drive better a line circuit without going off course etc. I made a le mans circuit, very abstract but based on lesarthe as my test track trying to work out ways of deciding to accelerate without knowing the course (you could code to a track shape but scale up you want self driving cars to tackle wherever the road goes safely) and I tried to use different colours to see if i could colour code road ahead. Your imagination is the only limit. Arduino code is a loop it just runs through so theres a challenge if you want to retain information otherwise its lost and recalculated each time through, but maybe you want that for some information but not others, you constantly get strange hurdles to figure out. Which is a great practical challenge for you to learn, you might find others solved similar issues in different ways. Some might give you better options to expand with . After I had my robot zipping safely around my track I wanted to work out how to time it and designed and built an ardunio timer box, it used ultrasonic senors to detect the ringo passing the “finish” line and time each lap, I used a wheeled map measuer to measure the circuit length then I coul get funky and work out speed in m/s and kph, fastest lap time, avg lap time, distance run etc and display on an lcd screen for me. The reason Arduino is in schools everywhere now is because its so power as a learning platform and yes some come with an apps with blocks you place in line to build up a programs which simplifies learning to write code yourself for children but still and arduino robotics kit will be a great place to start for anyone wanting to learn to code anything in any language. But python is also great and maybe php if you are thinking workplace practicality, Regardless start with a beginners learn to code level course and dont turn away because they seem to write simplistic things, but it the methodology that you learn in these courses , what they are building is useless to you learning and if you skip it because its too simple you learn nothing and are a waste to humanity ;p
Yes you can learn on your own or attend a course. The difference is you really, If you are lazy and get distracted and bored easily you are not likely to learn anything on your own and a class is probably what you need. It has to be something you want deep inside not just because you want to be trendy and tell people you’re a coder and show off, nobody cares. And you will probably show off to people who have been coding for decades doing real coding.
If you buy books try finding a good reference book (that looks like a dictionary with all the code terms in alphabetical order for easy reference, its always essential to have a reference to quickly look the syntax of terms you havent used much, that and a starting from scratch type book to hand hold you through understanding the methodolgy of how to code, how to debug, how to optimise etc and work through it cover to cover. For years I’ve used Khan Academy (free online traning), just to learn things that interest me that I never learnt in school, or to relearn stuff Ive forgotten its an awesome resource so have a look at what they have that might help you out anything related to the basics of computer programming will be vital regardless of language. They probably have Python courses, maybe not arduino. Almost nobody programs anything with compiling involved anymore, its more something scriptable and often meant for web based applications.
Anyway good luck.