In the fall of 2012, I walked into my graduate advisor's office and asked her which computer science class she recommended for me to enroll in. I explained that I was a complete novice in programming. She suggested Introduction to C Programming.
After attending a few lectures, I discover that the majority of the students I spoke to in this introductory course had some prior experience in programming.
Six weeks and 80 hours of work later, I dropped the course.
Enter spring semester of 2013. I enrolled in an easier computer science course, Introduction to Computer Programming via the Web. I breezed through the first quarter of the course, executing HTML and CSS with ease. Then, we started Javascript (JS). That feeling of constant anxiety and stress from my previous computer science course returned in full fashion. It was too late in the semester to drop the course, so I asked a friend for help.
One afternoon he walked me through my JS code and explained how you could add a few pieces of code here and there to test if your functions were working as intended. What he showed me was a very basic form of debugging, the process of identifying and removing errors from computer hardware or software.
Neither he nor I understood the impact this 60-minute tutoring session might have had on my career trajectory.
Looking back, it is not hyperbole to say this was the most important lesson I have ever learned in computer science and technology.
If you have never written any code before, imagine your assignment was to draw the perfect bird. Every time you finished the drawing and turned it into the teacher, the teacher would immediately decide if it is correct or incorrect (i.e. binary outcome). The teacher would rip up the paper every time it was not flawless. If you asked the teacher what was wrong, they would explain to you the issue in a foreign language (i.e. computer error language). Eventually, after the teacher has ripped up a few dozen attempts they might accept your drawing and your score goes from wrong to correct. Having read that story, you might not think my next statement is so bold (pun intended).
Nothing in the academic world tests your patience and ability to withstand constant rejection more than learning to write code.
The only thing that provides solace when learning to code is if you understand the fundamentals of debugging. Now, when I draw a bird the teacher will provide feedback if the beak looks good, if the color was appropriate, and if the size makes sense. With all of that feedback, you are much more likely to have your submission be correct without so many rejections.
Whether you write code regularly or not, the fundamentals of debugging can be extremely useful in your life. They apply whenever you need to use any kind of software application or tool.
Based on my personal experience in technology, here is a list of my favorite debugging tips and tricks for various software apps and tools.
Web applications are computer programs that a user accesses through a web browser. Common web applications are Facebook, Gmail, and Salesforce. If you are having issues using a web application, the issues can often be resolved with one of the following:
Importing data files (e.g. xls, CSV, pdf, etc.) to web applications or within a piece of code is a common task. Common issues tend to be related to the following:
When it came to learning computer science and programming, I wish my professors emphasized the importance of learning to debug code. I hope my tips and tricks can reduce your anxiety and frustrations when writing code.
Oh, and I saved the best piece of advice for last.
If you cannot solve a problem, sleep on it and return later.
Seriously.
Coming in with less stress and a fresh perspective can help you identify solutions in minutes compared to the hours you spent the day before. This advice has paid dividends for me time and time again. The other day I spent 5 hours on a JS script getting nowhere.
I came back to the problem several days later and quickly learned it was a cache issue when I reopened my browser. The only time when this advice does not work is when there is no time. Be careful out there, fellow procrastinators!
Image Source: Scrabble letters - Unsplash, Brett Jordan