hustle

That time was so much more glamorous

A realization has been dawning on me as of late, one that I’ve always known, but that is easy to forget, easy to misplace, easy to neglect. The best way to learn anything is to do it, to struggle through, to forge on, to fight and gnash teeth and curse at. There is no knowledge as highly regarded as that which you have to work for.

I’m not even particularly certain how this all came about, it seems to have been a culmination of things. I didn’t intend to but somehow I ended up putting on my plate a bunch of new stuff to learn around the same time. Git, ruby, rails, blogging, prosper, hosting my own domain, and testing (Testing being a decidedly late addition). This blog was the genesis of a lot of it, that and just being curious.

I had my first post back on October 2nd of last year, as of writing this 112 days ago. At that point I didn’t really know anything about the 7 topics above, I started the blog using Google’s Blogger platform, it was an easy onramp.

After a month or so, I was encourage by some friends to move the blog to my own domain, which you are now at. I also kicked off the prosper project around the same time as starting this blog. I played around with ruby and a crazy friend convinced me to try out rails. I moved prosper to GitHub and began learning git. Now prosper supports 19 backends and has gained over 100 unit tests in the last few days.

Here’s the kicker though, I don’t know what I’m doing. I never really did, I just started doing stuff, and have been running ever since. There have been days when I’ve gotten 5,000+ hits on this site, several days with several hundreds of hits and I’ve been steadily increasing the daily reader count. I don’t know how I did that, I just kept writing, I liked it, I promoted it over twitter and hacker news if I thought I had written something insightful, and I guess that is working. The same thing with prosper, I saw a need for something that didn’t exist, I had a vague idea of how to make it, and I started coding. I’ve rewritten and refactored it piece by piece to the point that it supports all kinds of things I never thought it would. It’s due for another architectural change after I finish these unit tests.

If there is one key thing I could convey to anyone reading this is to hustle. You will never be prepared for the things you are capable of doing. You will achieve your greatest accomplishments not by building up a grand framework of skill and then deftly creating something glorious, but by starting small and persevering in making it better and better. It is never an easy road and you will gain a grand framework of skills, but you have to push your boundaries to grow.

This came together for me last night, I was working on a rather tricky bit of rails and broke something. I hadn’t gone too far into it and so I typed rake db:rollback and git reset head --hard and was back to a working application. I stopped myself for a second and thought about what I had just done, how improbable it all was from where I was just a month ago. I then thought about what I was doing in rails, and thought about how earlier in the day I was wrapping up prosper functionality in unit tests and finding regressions, and how I would have to write some cucumber tests for what I was doing, and I realized that 112 days ago I didn’t have the vaguest idea of any of this.

I would love to put a triumphant “I’m just so damned smart and talented and handsome” paragraph here, but that’s not the case. I just steeped myself in this stuff, I worked in git daily, I read about it, watched screencasts, I bought agile web development in rails, I got design patterns in ruby, I hustled. And you can do it too, take the first step today.

The first step that you should take is to invest yourself in something non-trivially. Want to learn rails, then go buy agile web development in rails, want to learn github, move an active project out there, want to learn linux, reformat your machine so that’s all you have. You have to invest yourself, it plays a trick on your brain that makes it want to not waste that “investment” by quitting. If you can burn your boats (Hernán Cortés reference) all the better. I had no choice but to learn git or else I couldn’t keep working on my project, and as a side bonus I got the joy (and frustration) of working in git everyday.

Get out there and hustle, learn something new, do something that scares you, reach beyond your grasp.

This entry was posted on Friday, January 22nd, 2010 at 1:57 pm and is filed under philosophy.
You can follow any comments to this entry through the RSS 2.0 feed.
You can leave a comment, or trackback from your own site.

36 comments

Great message Matt. I started blogging a little earlier, last February on a typepad hosted blog. I wanted more flexibility and my own horribly long domain name VictusSpiritussupercalafragilisticthisdomainistoolong.com so wordpress was the way. Somehow late summer I became to determined to learn “web programming”. It started with a little php, but rapidly grew to cover scala/lift, python, and finally ruby/rails.

I’m just a tiny bit familiar with git now (pull, commit, and push from just a couple repos, haven’t done that fancy roll back yet . I do like it, when my cofounder and I use it, although his bandwidth is flakey now so dropbox works easier.

I really don’t know what I’m doing, but I sense that simply moving IS the right direction. Glad to see you experiencing and sharing the same concept. Jives with a post I did to counter an earlier one of mine, Procastinate until you’re ready.

Still wish you had DISQUS, maybe one day they’ll make it work better with your style tastes. Be well.

Great post. As someone who has recently told himself that I’m get my photoshop and illustrator skills up as well as finally do a website for myself, my band and some friends, I’ve been trying to use the same approach. So far, its been working and it’s great to hear about other people doing it, too.

That is exactly how I got to create my website. I tried creating a personal website using some free hosting servers for years but I never got to do it, finally, I decided to buy a domain and web hosting from GoDaddy, it only costs $50 a year but that was enough to get me to do it.

Thanks for the blog post though, now I’m thinking of doing the same thing for the project I’m working on: buy a domain for it.

Excellent words! This applies to anything (with the possible exception of neurosurgery.) Just make and create and do what you need to get it done, and the rest will follow. I know too many folks who are afraid to start anything because of lack of knowledge, and it boggles my mind why they don’t just begin and see what sticks.

Can I do better? Sure. Will I do better? Definitely. Ain’t gonna wait though.

Read your article that was linked to a Lifehacker.com article. I was instantly inspired. I was tasked to create an internal website for my department and never really completed a website before. I always felt I needed to take a class first or read a whole book before I got started. Now that I’ve read your article, I am ready just to dive in, learn, and make mistakes and not feel bad about it. Thanks for your inspiration.