Just sent my resignation letter and this is my plan.
My immediate plan is to plug the most obvious holes in my CS and math education. Being an art school dropout, I have plenty of those, but there are a few that I really want to address now, because otherwise I know they will be nagging me at inopportune times.
I'll also be catching up on the reading recommendations in the Library section of this site. I've read most of them already, but I'm sure many of them will make more sense now.
In parallel to such reading, I'll finish a pet project with no business aspirations, which I want for personal use: a subset/bastardization of the editor part of Jef Raskin's Humane Environment (AKA Archy). I plan to use that as my programming editor from then on. I did a couple prototypes in the past and I know I like it. I don't like Archy itself because of its compromise of using alt keys for leaping; I got myself a thinkpad-like keyboard with buttons under the space bar for this purpose. Again, this is something I had put on hold for too long, and I want to give it a chance before I commit full force to a startup.
I'll timebox 4 months for this although, in good programmer optimism tradition, I hope I'll be done earlier. After that, done or not, I plan to put out a few cheap startup failures fast. This is much in the spirit of the common advice to novice Go players: "lose your first fifty games fast". I'll just brainstorm for projects that I can execute by myself in, say, one month. At the end of the timeboxed period, if the project is not anywhere near shippable state, I shelve it and move to something else. Otherwise, I throw it at people and see what happens. Then follow up on the ones that get a better reaction.
From this I expect to get some basic competence in business (esp. marketing and dealing with users), system administration, and fluency in web programming (my background is in user interface design and programming for a MMOG). I also expect to get something I can show to potential cofounders so they can evaluate my taste and my ability to execute. And who knows, maybe something more ambitious grows out of one of these ideas.
My goal is to be able to apply to YC with a straight face in winter 2008 or summer 2009.
Please let me know what do you think about this. Don't pull any punches; I'm interested in criticism, objections, and alternatives, rather than moral support.
Thanks for reading this far!
51 comments
[ 3.7 ms ] story [ 145 ms ] threadBest of luck.
As for the time, as I said in other reply I feel I'm more limited by age than cash.
Thanks for the feedback!
added an article you are probably familiar with just the other day ~ http://rchi.raskincenter.org/index.php?title=Core_Principles
Archys core principles are ...
"... I did a couple prototypes in the past and I know I like it. I don't like Archy itself because of its compromise of using alt keys for leaping; I got myself a thinkpad-like keyboard with buttons under the space bar for this purpose ..."How about adding mouse support?
Think it was in a Woz podcast I heard woz saying Raskin had a thing against mice and liked keyboards better (but everywhere I search I see the contrary - suggested 3 button mouse for mac etc ~ http://tinyurl.com/2lespx )
ahaa ... here's that pesky Raskin article ~ http://tinyurl.com/5e22z So he was against the mouse & loved those keystrokes. As for the source? It's first hand from Mr Mac himself, Andy Hertzfeld on http://folklore.org
On editors and hacking and writing unless you build in some sort of functionality to both syntax highlighting and parsers that recognise various languages, text formats you might have to cut+paste/drag & drop which easiest with a mouse. Don't discount using other editor applications for editing, validating.
At least that's what I've found.
The things I want to learn are fundamental enough that they'll apply to any programming task. I have tried learning as I go, and I agree it's best for most skills, but I've found there are learning tasks that demand more dedication.
Then again, this may just be my procrastinating self at work. :)
Screw fundamentals (sounds like you already have a decent base, anyway) -- just build something that someone wants to use/buy (preferably find a co-founder who you can brainstorm ideas with-- find a co-founder when you already have an idea is sometimes more challenging).
But if you're like me, you're not looking for one more trick, rather you're looking for a way of synthesizing what you already know, and building a rich framework onto which you can add new learning over a career.
(From Norvig's review of SICP at Amazon.)
This is not an objection to your advice. I will consider doing what you guys say.
I barely remember anything from the book, other than the pointless factoid about MIT's first president dying while saying "bituminous coal."
A better approach would be to get the problem sets for the SICP class, and see how far you can get without actually reading the book. Then just read enough so that you can finish the problems. Maybe use javascript instead of scheme, so it isn't a complete practical waste.
If you do have an idea, don't wait for the straight face. Developing a prototype is fast and you can get something ready to show people your idea quickly. Get out there fast and often but the trick is to focus on obtaining funding if that is your ultimate goal, developing your idea can come after the initial money is in the bank but again that all depends on your financial needs.
I do have a couple ideas but they are too implementation heavy, and I don't want to commit for so long before having tried lighter alternatives first.
Finally, I really feel I have some homework to do before I ask anyone for their money and attention.
Thanks for the comments and the encouragement!
I left my job last April, and barely made it 2 months without income. If you're not ready to start your company right now, then I recommend figuring out what you can do otherwise to improve your situation. In my case, I got a job at a much better company that's close to Boston. I'm learning a lot, I'm meeting tons of smart people, and I'm close to dozens of good schools.
Anyway, good luck, and stay upwind.
I do have time pressure, for different reasons. I'm 32 and while I can see myself doing some less life draining types of startups at an older age, the time is running out to do the wild thing.
I don't have a cofounder and I'm not in a good location to find one. My immediate plan is to become and establish myself as great cofounder material by cranking out a few failures on the cheap, while I try and find likeminded people online. I'm willing to move to a hotter startup hub to find a cofounder, but due to living costs I'm hesitant to do it before I have something to show my abilities. [PS: I guess there are also visa issues; I haven't studied this yet.]
Thanks for the feedback, and good luck to you too!
Where are you located?
You have a point, though, and I'll watch out for motivation lows. Thanks for the heads up.
One crucial reason for quitting my job is indeed to focus on learning tasks I had set for myself. It's lack of focus, not time, what has been dragging me so far.
The first task is to finish absorbing SICP. I have read the book and watched the lectures before, but only as a quick first contact, skimming most of the latter parts and not doing the exercises. I've found that even this light exposure has made me a much better programmer. This time I'm going more exhaustively, writing down short summaries of the chapters and doing all the exercises as I find them.
As for math, I'm more interested in building some math muscle and intuition, rather than any specific knowledge. I have started reading Concrete Mathematics, by Knuth et al., and I find it very demanding but practicable. With my weak math background, this would take forever, and be too easy to put on hold, if I did it on the side of more urgent obligations. I tried.
I have other books and learning tasks in the backburner, but yes, those I can learn on the side. The above are the ones I want to finish before letting other focus consuming projects into my head.
I've found that the Archy-like editor project is a good playground for the ideas in SICP. The design is sound and well specified, so I can focus more on the programming part. I plan to use this as my hacking environment in the future.
I hope to be done earlier than four months with the tasks above. I'll try and hit two months, but I must admit my estimates are often short by a factor or pi, so a 2x padding seems right for a strict timebox.
There are other topics to reply; I'll do so in replies to the appropriate comments.
When the project is finished, reevaluate. You may be surprised at what you think then.
If you mean doing contract/consulting work, I'm not interesting in that at this point. As for close interaction with customers, I can't agree more. I learned that lesson the hard way as an user interface programmer for a persistent online game. We got most of our feedback on the game forums, and game players are very opinionated customers. It was so much better to talk directly to them rather than being mediated by game designers. And definitely better than implementing in a vacuum only to find out later that what you did is not what they wanted.
Because no consumer will pay the $10-20K or so it takes to develop a product prototype from an idea on paper. The customer wants to pay the $19.99 for a finished product - and then maybe not.
There are 7 million small businesses in the United States. Almost every one of them needs SOMETHING readers of this site can provide. Many of them are desperate, but don't know where to turn.
When they pay you for something, you don't have to pay them back and you don't have to give them equity. And you learn 10 times more by doing than reading or surfing. And they will "connect" you to others.
I have learned many technologies by reading, surfing, and playing. It was fun. And it usually led nowhere.
On the other hand...
I learned Visual Basic on the job by converting a local radio station's programming software.
I learned HTML on the job by building intranet reports from flat files for a local office supply distributor.
I learned Javascript on the job by building a front end for a local clinic's call center.
I learned PHP/MYSQL on the job by building mini-apps for several local small businesses.
Starting to get the picture?
I wasted almost no time learning what was cool unless I needed it. And I ran into problems I never would imagine if it wasn't for these jobs. I can't imagine learning anything any better way. I run into techno "know it alls" all the time. After 30 seconds, I can tell they read about it, but never did it. The day I become one of them, just shoot me.
If independently, your business skills must be excellent - to get so many clients who would not choose an off the shelf solution.
But in any case, these are not products.
I have one piece of advice for you. Make sure that some of your early failures include other people. Many issues that bring down startups at their core are about people, not technology.
Better still: build something with someone else, who you can then start a startup with.