View Single Post
  #11   Spotlight this post!  
Unread 12-06-2013, 02:49
nathan_hui nathan_hui is offline
Registered User
AKA: Nathan Hui
FRC #2473 (CHS Robotics)
Team Role: Alumni
 
Join Date: Feb 2012
Rookie Year: 2009
Location: Cupertino, CA
Posts: 228
nathan_hui will become famous soon enoughnathan_hui will become famous soon enough
Send a message via AIM to nathan_hui
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