Trying Something New (My Week With Node.js)
Last Wednesday I sat down and wrote the following:
I want to try something new. Even though I was accepted to university way back in November, I've been pretty busy all year keeping up with my schoolwork. Now, as classes wind down, I find myself with a little free time. Tomorrow [Thursday, May 3] I don't need to go in to school at all. I could spend the day studying for the final exam I must take on Friday — that would probably be the safest decision — or I could try something new.
The result is a web-app I call Who Will I Know There? I think it's pretty neat (it's a tool for finding friends to connect with when you're moving somewhere new) and I hope you do, too.
I often feel as though I'm stuck in a rut with programming. I'll work feverishly on a project for weeks (or months), and then sit back and build nothing for a while.
This has become less frequent as I've grown older, which is nice. I hate not building cool things. Last Wednesday I decided that I'd try to hack on a new project for a week, in a language I'd never used before (node.js) and see what I could come up with.
I hadn't built anything in a while and I realized that I also hadn't learned anything new in a while, either. Learning new things is important to me, so I decided to give it a go: one week, one new language, one (hopefully) completed project.
(actually, I gave myself 12 hours, but I didn't come up with anything worth sharing after that time).
Node.js was a great choice
I'm still terribly inexperienced when it comes to programming. What little I've done has mostly been in Python and C. I've built a couple of web apps with Python (see: Bookshrink, Headliner), but this time I decided to go with something a little different: Node.js.
As far as I can tell it's an awesome language. I'm still getting used to it, and at first I definitely felt as if I were simply writing python with slightly different syntax. It's expressive, it's C-like, and although I don't fully understand the differences in equality testing (
!=???) it's been easy to pick up.
Other than that, the biggest compliment I have is that Node was very easy to learn and use (with the Express MVC framework and Dotcloud for hosting) to get a website up and running very quickly. Prototyping and making changes has been painless, especially because I decided to use Twitter's Bootstrap framework-y thing.
The result — Who Will I Know There?
It's pretty hard for me to hack on something I'm not interested in. So I wanted to build something that would mostly help me out, although it being useful to other people would be a nice bonus.
I recently decided to defer my admission to university for an entire year and spend that time working at a Bay Area-based startup instead. The people at the startup are all far more intelligent than I am, and the experience will teach me just as much (probably more) than university would.
The problem is that the job is in the Bay Area. I'm from Philadelphia, and although I have some family in California, I have no friends in California for me to hang out with. I wondered if I could come up with some sort of application to search my Facebook friends find those who might be able to introduce me to cool people.
I linked to it at the beginning of this post, but Who Will I Know There is that application. I learned a lot while making it, and I think it's pretty slick, but I'd love to hear any feedback you may have! Please do go give it a try and let me know what you think!