Awesome and very inspiring. And this is priceless:
But it wasn't an overnight eureka, and it wasn't intentional. I didn't just walk out of high school, pick up a Ruby book,
meet Tom and PJ, then launch the site GitHub.
Before GitHub came, in chronological order, Spyc, Ozimodo, my ozmm.org tumblelog, ftpd.rb,
Choice, Err the Blog, acts_as_textiled, Cheat!, acts_as_cached, Mofo, Subtlety,
cache_fu, Sexy Migrations, Gibberish, ginx_config_generator, fixture scenarios builder, Sake, Ambition, and Facebox.
I'm in college, I run an entrepreneurship organization on campus, work full-time at a startup, and I'm doing a side project for fun.
Here's my only complaint, to fellow people who work a regular job or startup AND a side project: don't chunk all of your work into the weekend. Try to at least see your code every day, otherwise it's like coming back from a week-long vacation and not remembering your code very well. Ever stare into the sun and try to get around in a dark room? It's like that.
This past week has been particularly bad because we're doing a push on the product and I've had to do some hiring, but usually I'll try and at the very least look over my code every night so I can keep it fresh in my mind (which keeps my productivity just as high).
And wow, I can relate to this:
"All the engineers kept notebooks, of course. Blogs. They'd write frustrated entries, only to have massive elated breakthroughs the following day."
As for the recommendation to learn native JS: I suggest you instead take the route of learning jQuery. Say goodbye to cross-domain, cross-browser, xmlhttprequest issues. Selectors, manipulation, AJAX, traversing, CSS, effects, it's all there and it works really well.
> As for the recommendation to learn native JS: I suggest you instead take the route of learning jQuery. Say goodbye to cross-domain, cross-browser, xmlhttprequest issues. Selectors, manipulation, AJAX, traversing, CSS, effects, it's all there and it works really well.
This is a good example of how javascript is misunderstood and the reason he suggests doing server side js. If you really dive into javascript, you'll see its true beauty and it has nothing to do with xhr, ajax, css or DOM.
Spend some time in jQuery and you'll see how much faster you can move on the DOM, and with half the code.
I don't mean to say it replaces JS, because you will always have native JS. But I would recommend not doing stuff like DOM and CSS manipulation and AJAX in pure native JS. jQuery extends JS and acts as a compliment, not a substitute.
But, I think we both agree that JS doesn't get anywhere near the credit it deserves.
Oh don't get me wrong, jQuery is my js library of choice when doing client side development (and server side in my own little side project), but the javascript he refers to is much deeper than manipulating DOM. Like he says "Learn JavaScript. Like, for real."
You have to learn the JavaScript core and the native DOM first to really understand the motivations and appreciate the beauty behind a framework like JQuery or Mootools.
The idea of making sure to keep your side project's code fresh in your mind is a really excellent one! One of the hardest problems with side projects is being forced to neglect them long enough that it's painful to dive back in.
* Play with Sinatra (learn Ruby)
* Play with server-side JS
* Master JS
* Master an editor and learn the others
* Write a web service
* Learn Objective-C and Cocoa by writing a Useful Small Mac App
* Write Rake in Lisp (learn Lisp)
* Write an RSS parser in Erlang (learn Erlang)
* Rewrite the Ruby Standard Library
* Write a Ruby->Objective C bridge
* Learn another web framework
* Add concurrent task execution to the Lisp Rake
* Write a blog in Haskell (learn Haskell)
* Write Scrabble in Io and learn OpenGL (learn Io)
I'd want to work with someone who lived like this.
I'd like to take this opportunity to pimp my own personal blog at http://www.gittr.com. I have written a ton of documentation about Sinatra, while learning it. It feels like PHP, but minus the nasty parts. Whereas Rails feels like Java minus the nasty parts.
That was my side project, and sure enough, I start an awesome new job in a week and a half. I basically have been doing exactly what this talks about, and it works!
Yeah, but the problem is that this leads to a bunch of good software for software developers. :)
There's a huge population out there with wants and needs that aren't captured by the tastes of a typical geek. That's where the money is, which is why you get so many dumb (dumb in hindsight, that is) startup ideas. The risk is higher doing something outside your own "internal market", but the payoff is higher too.
Anyone who makes a programming environment that's actually liked by most girls will revolutionize programming and make a billion dollars. (Because that person will solve some fundamental contradiction in programming.)
I can think of lots of things I could build for myself that I would love that few if any other people would find useful - I would rather spend my side projects on things I love and a lot of other people would love.
Exactly! I am working on a small Asterisk framework, although Adhearsion does an excellent job, and my own little hack will never be useful; BUT IT IS INTERESTING!
And way better than writing yet another blog in Rails or Sinatra or something. Skip bulding on top of frameworks and get to the ground level.
Next up is a curses-based music player. It's cool to get dirty now and then.
I listened to the video, and I have to say I was inspired. The startup I'm working with helps communities and students, and that's a hugely motivating factor - but I love exploring my python co-dependent species evolution sandbox.
I lost the code to it, so perhaps as a side project I'll learn ruby and rebuild it - then post it on github. Why not?
I would like to emphasize that the side project doesn't necessarily have to be technology related. You might learn more by learning outside your comfort zone. Computers are computers - they take our input - GIGO. I learn more when I have to interact with real people. Like with computers - If you work with cars all day, is working on vintage cars truly a hobby?
I had the pleasure of meeting Chris at eRubyCon last weekend in Columbus, OH. He is a great speaker, and very smart.
I loved this keynote. I guess just do what makes you tick, scratch your own itch, and most importantly, find the time sinks in your life and let go of them.
Every now and then an article or keynote like this comes around and makes our day. Very good keynote by Chris, totally must read for everyone who wants to create something.
This article has a great timing. I just announced my side project on my blog - http://bit.ly/U3AsK. It's called siliconverge.com - Digg for Semiconductor industries.
BTW, article was a great read, though was very lengthy! Very inspiring!