A CS student on why being a good programmer is not enough to succeed -- you also need to believe in yourself. By Allison Collier ( CS Student, Virginia Polytechnic Institute and State University)
I started my first semester of college with two years of computer science education under my belt. I took Computer Mathematics in C++ and Advanced Placement (AP) Java. The class I took this semester was called Introduction to Software Design and it was taught using Java.
Before I started college, I knew that if I were to receive a 4 or 5 on the AP Java exam, I could be exempted from the class and moved up to Software Design and Data Structures in Android. Unfortunately, my AP test score was not eligible for college credit because I received a 2. The strange thing was that I knew the concepts, but when I saw the questions on the test, my brain froze.
I was happy that I had an opportunity to go over the material again while applying software design methodology.
In this class, there were three exams. All of them had a free response section that involved writing a solution in code and a multiple choice section that involved figuring out the output of a segment of code (similar to the AP exam). The first exam was easy and I felt confident that I knew the material. Because of the first exam, I thought the second exam would be just as easy, so I didn’t study as hard for it. Of course, I was sadly mistaken and I did not do well.
That exam really did a number on my self esteem as a programmer. It took me back to AP Java and my results from the AP test. Despite studying for that exam, I still froze up and couldn’t iterate through the questions. I finally figured that there isn’t really a way to study for a multiple choice section of a CS exam besides to practice iterating through code.
I realized after the exam that my problem was not completely a lack of knowledge, but it was not being able to get through if-else statements and loops (especially if it was a trick question).
For the final exam, I knew that I had to go through as many questions as possible in order to do well on the multiple choice section (the free-response section was fairly straight forward this time). I went through as many problems as I could before the exam and when the day came I felt ready.
As my teacher passed out the exams, I kept telling myself that I knew what I was doing and that I could ace this exam. I was totally confident.
Then I opened the exam. I tried to work out the first question, but my brain froze and I decided to come back to it. I flipped through the entire multiple choice section, each turn of a page diminished my confidence.
When I got to the last page, I took a couple deep breaths and started from the beginning. I looked at the first question again for about a minute and then I saw it!
I figured out what the output was. I kept moving through each question, taking time to read if over very carefully to ensure that I picked up all of the clues on how the code works, and solved it with ease. Before I knew it, I was done with the exam with about 20 minutes to spare.
As silly as it sounds, it took me three years to learn that being a good programmer is not just about knowing the information. It’s also about believing that you can succeed. I believe what really hindered my performance on the AP exam was not believing that I could pass the exam and stressing out about taking it. I wasn’t calm while I was taking the exam and that was reflected in my score. Because I believed that I could do well on this exam, put a ton of time in practicing, and was calm, I did well on the final exam in my Intro to Software Design class.
I think it’s important to remember that when it feels like you can’t seem to figure out where a bug is in a programming assignment, how to write a solution in code, or understand a specific coding concept, as long as you’re putting in the effort, take a deep breath (or walk away for 30 minutes if you can) and try again. You can do it!
Are you a CS student? What tips do you have for others studying CS?
About the guest blogger: Allison is a freshman at Virginia Polytechnic Institute and State University. She is a National and Virginia/DC Affiliate Award for Aspirations in Computing Winner. She has participated in many student panels and presented a FlashTalk at the 2013 National Center for Women & IT (NCWIT) Summit. Image credit: Berkeley Lab via Flickr.