|
Re: Learning programming
I would personally start with something simple (not robotics related), because most of the coding isn't syntactical so much as controls related. I would focus on how to think using a program - how to make a program (i.e. the robot) take in data, process it, and make a decision. Algorithms are key - how do you do things in sequence? How do you do things in a sequence that will never change? How do you do things in a sequence that should dynamically change? How do you do things simultaneously?
Unfortunately, most of this knowledge can't be learned out of a book. Syntax and basic conditionals, sure, you can get out of any book on introductory programming. But state machines, control flow, multithreading, and signals analysis (even at the FRC level) are things you really have to get by actually doing them for real. At CHS Robotics, we start our students on RobotC on simple NXT robots, so that they can learn these subjects by actually applying them to problems (Or at least, we tried doing this).
Of course, this is all assuming that you want to learn programming to help program your robot. But if that's not the case, I would definitely suggest going after Java (or Python) using the online tutorials. If you just want to mess around, go after Java (it's simpler, nicely documented, etc.). If you want to do algorithms development or data analysis, Python (or if you absolutely want, Scilab/Matlab) (faster, easier to develop in).
__________________
Nathan Hui
B.S. Electrical Engineering, UCSD '16
FRC 2473 (CHS Robotics), Team Captain '12
FTC 4950, 6038
|