People aren’t comfortable when the problem isn’t given.
This semester, I’m the Lab Assistant for ITP 499, iPhone App Development. This week, I felt that my style doesn’t mesh with the students.
They care about definite assignments. They want to know exactly what to do, and exactly when they are done.
But when I build something, I never quite know when I’m really done. There’s always more I can do. A feature to add. Some functionality to refine.
So when a student asks me, “Do we have a new lab assignment? No? Then are we going to do anything in lab?” — I get thrown off.
Of course we’re going to do something in lab! At least, I hope so!
Sure, there’s no lab assignment. But this lab, in my estimation, is not only about getting the assignment “done” — although that is well-defined in an undergraduate academic setting. My attitude is much more flexible, and much more entrepreneurial. You want to do more than the assignment asks for. You want to go above and beyond.
It may not affect your grade, and thus it won’t show up on your resume. But your programming skills and knowledge will probably (hopefully) come through in any job interview. And if it doesn’t show up there, it will definitely show up in your work. In what you actually achieve, and in what you accomplish with your life.
In most cases, this class is not an academic requirement. You’re here for your own enrichment, in my opinion. And therefore you should get as much out of it as you possibly can.
Sometimes people wonder how I’ve been so successful. Not to be presumptuous, but these are the facts: my iPhone apps have been downloaded over 4.2 million times. And that’s not just free apps: I’ve sold over 47,000 units in paid apps. And even the free apps make money — from ads — to the tune of hundreds of dollars a day. So I earn over $13,000 in a typical month.
It’s not merely a one-hit wonder, either. Brain Tuner accounts for some 2.2 million downloads, and a second hit — Whiteboard: Collaborative Drawing — accounts for the other couple million downloads. I have no doubt that I could replicate this again, should the right idea and implementation come around.
And it’s not as though this is the only thing I can do. It’s not as though I’d be living on the street without the iPhone. Prior to the App Store, I was already making a substantial income from AdSense, and before that, reselling web hosting. I don’t think I’m anything special, either, in terms of physical ability. I do expend incredible amounts of effort, and my motivation is pretty high.
But physically and mentally, anyone is capable of doing it. I want you to do it. I wish more of my peers were just as successful as me, and, ideally, even more so. I believe there’s more than enough to go around.
Don’t get me wrong. I’m sure a lot of my peers will be incredibly successful. But there are just as many who I can see are falling behind, and there’s nobody to blame for it but themselves and their own actions.
To them, the problem is given. To them, the key is something well-defined. Like getting a job.
I’ll end with the quote that ignited this post, a poignant passage by noted essayist Paul Graham.
But what if the problem isn’t given? In programming, as in many fields, the hard part isn’t solving problems, but deciding what problems to solve. Imagination is hard to measure, but in practice it dominates the kind of productivity that’s measured in lines of code.
- Paul Graham, Great Hackers