From the list of intended outcomes at http://www-users.cselabs.umn.edu/classes/Fall-2011/csci3081/index.php?page=syllabus I feel like two of my initial strengths coming into the class are 'writing effective comments' and 'writing loops, and code in general, that are easy to understand'.
Programming is a second career for me, and a big part of my previous work experience involved taking complicated legal and financial issues and making them understandable for a non-expert audience. I think that experience helps me in writing comments because I'm used to thinking through what is most essential to describe without getting bogged down.
Of course, it's much easier to write effective comments when the code is written to be relatively easy to understand. This was a big initial problem for me, but then my lab partner in 1902 last fall helped me see how important it is to track what a program is doing with pencil and paper if you're not exactly sure what's going on. Taking that extra time has greatly improved the clarity of my own code, as well as my ability to understand code written by others. In addition, over the summer I went back to a long Java program I wrote in March and was able to streamline it significantly, which I think will help me see more future opportunities to write code efficiently the first time.
One thing I'm looking to improve on is being able to program in C++ up to an intermediate level. I've mainly worked on both Java and C for class and personal projects in the past and have read about C++ being the most versatile of the three and am looking forward to learning about it. Finally, I'm also looking forward to seeing how the software models like CFGs and regular expressions that I struggled to learn last spring in 4011 can be used to improve code.
