I’m reading Cocoa Programming for Mac OS X, Third Edition, by Aaron Hillegass. In Chapter 1, he has a section called How to Learn. I think this applies well to any subject, whether it’s computer programming or art history. And this is a great section containing ideas I should implement the next time I do a computer programming class. Aaron writes:
All sorts of people come to my class … Inevitably, the people who get the most from the class share one characteristic: They remain focused on the topic at hand.
The first trick to maintaining focus is to get enough sleep. I suggest ten hours of sleep each night while you are studying new ideas. Before dismissing this idea, try it. …
The second trick is to stop thinking about yourself. While learning something new, many students will think, “Damn, this is hard for me. I wonder if I am stupid.” Because stupidity is such an unthinkably terrible thing in our culture, the students will then spend hours constructing arguments that explain why they are intelligent yet are having difficulties. The moment you start down this path, you have lost your focus.
I used to have a boss named Rock. Rock had earned a degree in astrophysics from Cal Tech and never had a job in which he used his knowledge of the heavens. Once I asked him whether he regretted getting the degree. “Actually, my degree in astrophysics has proved to be very valuable,” he said. “Some things in this world are just hard. When I am struggling with something, I sometimes think ‘Damn, this is hard for me. I wonder if I am stupid,’ and then I remember that I have a degree in astrophysics from Cal Tech; I must not be stupid.”
Before going any farther, assure yourself that you are not stupid and that some things are hard. … [Emphasis mine.]
Aaron has put into simple terms exactly what I’ve thought for years. Some people think computers come easily to me. I can do anything on a computer. Find anything, create anything, publish anything, promote anything. Yes, I can. But it’s anything but easy. It has taken a huge amount of hard work for me to get to where I am today. And yes, I often still think “Damn, this is hard for me. I wonder if I am stupid.” Not in those words, but it’s the exact same idea that floats through my mind.
Sometimes I think I should drop out of Computer Engineering and Computer Science and go for the “easier” plain Computer Science degree. Then I remember that I have a 3.82 GPA, and that many students would be happy just to have a 3.5. Sometimes I think computers are just too hard, even though people say I’m good at them, it’s just too many sleepless nights, too much stress. And then I remember that I’m better at computers than anything else.
Sometimes I hear other CS students talking about technical stuff that’s way over my head, and I think “Damn, this is hard for me. I wonder if I am stupid.” And then I remember that I’m at USC, I have merit-based scholarships, I’ve done internships with JPL and Google, and that I can do it. Even at my level, I remind myself that I’m not stupid. Some things are just hard, even if some people claim they aren’t.
So stay focused. Keep plugging on. You’ll get there. I’ve experienced it many times.
When I first wanted to create a computer program, it wasn’t easy. I spent days searching for info about compilers and how to start. When I wanted to program for Cybiko, it was hard. But I made it work. This is an important part of life, and I’m glad Aaron Hillegass appears to have captured it so well. You are not stupid, and some things are hard.
So go and do something great.