One of my problems with blogging (and honestly, just about everything I do) is that I have a big, grandiose vision of what I want as an end result. Then, when I start to work on it, I directly extrapolate the time my first few steps take over the whole project, and end up thinking that the big vision will just take too long. For instance, I have several draft posts with nothing but a title and a link I want to discuss, but since writing is harder than reading, I leave them as drafts. Because of this, I end up sticking with things I know how to do well because I can start quickly, make predictable progress, and work towards a finished product. Two things where this works well: reading books (I read tons, 1-2 a week of all sorts) and programming in C#. I found .Net when it came out in 2001. I was in college programming in C++ and biting back swear words after every SEGFAULT, and I was completely tickled at the thought of a language where you didn’t have to manage memory. I started programming C# in my spare time and every job I’ve had since I graduated has been .Net related.
Fast forward to 2006 when I interviewed for a job, completely bombed and realized that I just wasn’t that good of a programmer. There was no question that I was smart and could figure anything out, but I had only worked on little problems. Some of my jobs dealt with big systems but I worked on a small, self contained part of them. My side projects hadn’t been anything significant so they didn’t stretch my capabilities much either. So I realized that not only had I not learned any Computer Science theory since I left college, but I was actually regressing as a coder (no more writing web crawlers, chess programs, programming languages, or operating systems)! I realized that this was a first class ticket to unhappiness and out of the computer profession and I decided to change.
It was about this time that I discovered that the Internet is full of people who write well about lots of stuff. (It’s also full of crappy writers but that’s beside the point.) Among others, I found Joel Spolsky, Paul Graham, Jeff Atwood and .Net Rocks! (among others). I quickly realized that this was a valuable resource. Since I grew up, went to school, and started working outside of traditional tech hotbeds, I didn’t have a good network of peers and mentors, and I read as much as I could to make up for that. Everything was great, I was learning and improving, and I was very up-to-date on current happenings in the tech world. But I fell into a trap. (Can you spot it?)
I was reading about software development instead of doing it!
Since reading was one of those predictable, scheduleable activities, I was choosing it over the unpredictability of learning to code better. I became like Intellisense – I knew everything that was going on and could point you to anything you needed, but I wasn’t actually doing any of it myself! None of this reading led to new, more complicated projects, and it got to the point where I was reading blogs, articles, and news sites for an hour or two a day. This might not sounds like a lot to some people, but if you take 24 hours, subtract commute, day job, sleep, meals, family time, and household chores (harder to be a slob when you’re married and have kids), spending 1-2 hours reading left me with no chunk of time big enough to take on a programming project.
Once I realized that, I decided to refactor my life and habits to move towards my goals (why not, it worked like a charm for starting a family!). I cut 50 or more feeds from Google Reader, cut back on the non-technical books, and discussed my goals with my wife. I now have 1-2 hours a day that I can program, experiment, try new things, and improve my skills. I decided to use a web startup as the vehicle for doing this, which has some pros and cons:
Pros:
- A big project that touches on a lot of technical areas
- I get to apply both development and business/entrepreneurial lessons I’ve been reading about for the last 18 months
- Potential big payout (?!?)
- Big project promotes consistency, discipline, follow through
Cons:
- 1-2 hours a day isn’t much compared to what full-time founders spend
- Less concentrated coding time
- Decisions biased towards business success as opposed to pure programming knowledge
In the end, I think the pros outweigh the cons, especially since the cons only apply to programming and the pros apply to many areas. Next, I’ll talk about some of the decisions that I’ve made in preparation for the startup, as well as technology decisions in general.
Leave a Reply
You must be logged in to post a comment.