|
Re: How Did You Learn How To Program?
My first year with 339, I went into build season with virtually no programming experience - just a tiny bit of experimentation with VB. The first time I walked into a meeting, the programming mentor intercepted me and asked, "programming and electronics?" I said yeah, that sounds interesting, and ended up on the programming team. That season, I didn't do much coding at all. In fact, I didn't write anything myself; just added debug statements and changed constants in others' code. I recommended a few algorithms for autonomous, but other members and mentors took care of the actual implementation because I didn't have the knowledge to do it myself. That year, I picked up some of the general concepts of programming but didn't fully understand everything I was doing; this lead to, for example, me being confused about the difference between preprocessor macros and global variables.
The next year, my second in FIRST, I was more capable. Halfway through that build season, I wrote my first complete function - in Notepad, no less - an algorithm that used a gyro sensor to keep the robot moving forward along a straight path. It didn't work at all initially, but I kept tweaking it and working on it (without mentor assistance), and eventually made it work so well, we failed to notice when one of our CIMs burnt out because the software corrected for it perfectly.
That Summer was the last one before we switched to the new control system, and my mentor wanted us to prepare for the change, so I learned C++ and we discussed how we would design the program once the new control system became available. This is where I really made the jump to a self-teaching programmer. I loved the concept of object-oriented programming and became an expert in C++, to the point that my mentor wanted me to "dumb down" my code so that new students could better understand it. I was using templates, multiple inheritance, functors, and who knows what else. He also explained to me how compilers and programming in general work, so I began to understand the purpose of the constructs I was dealing with. We even went into optimization for a bit.
In 2009, my senior year with 339, I wrote the majority of the robot code from scratch. Looking back, it's amazing how quickly I jumped from not knowing anything about programming to being a self-motivated expert in the subject.
__________________
Go directly to queue. Do not pass pit.
|