I figure the completion of my final assignment this semester for Computer Science 61A (the introductory computer science course at UC Berkeley) is a reasonable checkpoint for me to reflect on my involvement in programming. For our last class project, the last few lines of directions read “Assuming your tests are good and you’ve passed them all, consider yourself a proper computer scientist!” Sadly, I failed all the tests for the extra-credit question. Even if I had aced every problem, I don’t believe that adding tiny bits of code here and there to the massive skeleton provided by the course instructors necessarily qualifies me as a “proper computer scientist.” Heading into the future, I want to cling to Professor DeNero’s hand, crying “Don’t leave me!”
I not so much jumped into coding headfirst as doused myself in the lingo, fully aware that much of the information would zoom straight over my head. I enjoyed taking my first project-based CS class last semester, even though it was clear from the beginning that a crash course on Codecademy would barely help me navigate thousands and thousands of lines of Javascript. I felt like I was taking a class on French novels with a rudimentary knowledge of French.
Actually, I thoroughly enjoyed being in over my head. I showed up to random Hackers at Berkeley workshops, learning about back end web development and building bots before I was even comfortable stringing together a string. It was at these laid-back workshops that I first heard of the “rubber ducky” method of working and discovered that even something as simple as an extra letter at the end of a word- “cheep” vs. “cheeps” -would puzzle my laptop. But I pieced together some basic concepts from people who were patient enough to guide me through GitHub, HTML, and CSS. As a bonus, many of the workshop events provided free food.
Halfway through this semester of 61A, I was able to acquire enough Python skill to build this masterpiece…
…which was ten minutes of my life that I’ll never get back.
I admire computer scientists for their talent and hard work. I imagine that the most annoying part of their well-paid jobs is to spend hours looking for that one bug, that one tiny error in the code. When they find it, they’ll proclaim “So stupid! I can’t believe I didn’t see that!” If I learned anything from the class projects, it’s that the bugs are usually right in my face the whole time, flapping their ugly wings. The hardest errors to find in code are often the simplest mistakes.
I obviously have a ways to go before I can properly identify as a computer scientist. I also thought about what defines a computer scientist: the act of programming? The mindset? Both? But that’s a post for another day. At first, I felt like a foreigner in a nation where everyone speaks in code and obnoxious acronyms. After a semester of hard work, I’m at least on my way to acquiring dual citizenship and becoming part robot. Thanks, Berkeley CS!
Wow, I never imagined that this post would drip with so much snark. But I am excited to continue learning about computer science and its potential to improve lives. Hurray for a good use of my college tuition!