Some of you who came to the Sandbox commented on how the tutors are able to take a problem that has been torturing you for hours, and within a matter of minutes, guide you through smashing the biggest obstacles in your way. Other times, they alert you to potential obstacles early enough for you to be able to avoid them entirely. Witnessing these things, you see just how much you need to learn, and though the problems that get solved in the sandbox are relatively simple, you can’t seem to get these kinds of brainwaves on your own. This is when you decide that you are not good at whatever subject you are taking.
This is a common misconception among beginners in technology, especially in programming courses such as CS 180. These mistakes that you see in your code that make you think you were stupid the last few hours not to see them, are a fairly common occurrence in technology disciplines, and that includes experts in the field. Some of us in the sandbox have come to call this the Golden Rule of Technology, and set all of our debugging philosophy around it.
To give you a brighter idea just how global this golden rule really is, let’s take a step away from programming, and enter the realm of a computer discipline that is as far away from programming as you can possibly be: Graphics Design. Unlike programming, you are able to see the results of what you are doing in real-time with the 3D modeling and animation software that is used for making computer generated images and movies. You would think that you can’t have any tiny mistakes here, but that is not true. Even the best and most straightforward tools sometimes create geometry that is physically impossible. Though this does not stop your project from working, it tends to affect coloring negatively and generally make your project look ugly .. Thus the incentive to fix the problem.
In one video tutorial that showed how to create a gun using one of these modeling and animation programs, the narrator mentioned one thing that is true not only for graphics design, but also for programming and any other IT discipline you might be a part of. What’s more, it has a direct connection with the golden rule, and the true differentiator between someone who is good at their subject, and someone who is bad:
A good graphics artist is not defined by how well you are familiar with the tools to create your object, but by how well you can fix the anomalies that the tools create along the way.
By “anomalies”, the narrator is talking about the impossible geometry mentioned earlier.
While studying may be sufficient to become familiar with how the tools work, it will not do the job for the next phase … fixing the anomalies. That requires practical experience, which is given to you through your homework assignments. A beginner will always have trouble with the anomalies, but the more that beginner makes programs and gets to learn the moods of computers and whatever language he is using, the more capable that programmer is in identifying the weak spots in the barriers that you run into while creating your code.
The next time you have the urge to say “I’m bad at this”, stop and ask yourself, “Have I been doing this for more than 2 years?” If your answer is “No”, then it’s too early for you to make any conclusions about your overall ability in the subject.