Having 10,000 People Over
Today was an interesting day. One week ago, I soft-launched ilearnedtoprogram.com to some friends and colleagues to try to build an initial set of stories. That day, my analytics recorded 36 unique visitors. Today, the site was on reddit and metafilter, resulting in over 10,000 unique visitors and hundreds of new stories being submitted in a 24-hour period.
Here are six ideas about building software and web projects that I’ve gotten or solidified because of this experience.
1. Shipped is better than perfect. Instead of building a whole submission form and moderation/administration page, I used a Google Form and RockMongo. As I would later find out, I had things from the CSS to randomness to the database connections wrong. But also I had the site up and running within a couple hours of sitting down to work on it, and started sending out the link to friends.
2. Ask people you know for support. Without a few initial stories directly from friends, I wouldn’t have been able to get this site started. Reaching out to email lists where people know me personally and professionally helped get traffic into the range of hundreds of visits per day. Using Twitter to engage with people after they submitted a story (sometimes even if they hadn’t specifically left their Twitter URL) helped amplify the message. Because I’m not selling anything, it was easy for me to talk about participation and the purpose of the site without being spammish.
3. Don’t ignore input that helps you reach your goal. This implies that you have a goal. The more clearly you can articulate it the better. My goal with this site was to reveal the range of histories across the diversity of people who know how to write code. I had a friend point out a problem (and solution) with my CSS. I had a commenter on this blog point out some serious issues with a resource I was linking. When people give you this kind of input, it’s natural to feel defensive. Don’t let an emotional reaction get in the way of an accurate assessment of the facts. The goal is the goal.
4. Haters gonna hate. When I started reading the metafilter thread, one of the very first commenters was someone bitter about their own programming career. On the reddit thread, someone complained about how the responses use different prepositions. Caring about the reasons that people post things like that on forums is outside the scope of my mission here. The key question is: Can any of this information help me do a better job reaching my goal? If yes, use it. If no, move on.
5. Care for it like a newborn. Whatever you’re trying to build, it’s probably going to need to grow. You might not get a lot of sleep at first. This active, participatory creation doesn’t follow a formula, but it is pretty easy to do. Just spend your time paying attention to your baby. As traffic started to ramp up, I noticed that my RockMongo interface was becoming unresponsive. This was an early warning sign. I started Googling to figure out how to improve MongoDB performance with PHP.
I was able to test and deploy the fix within a couple minutes, and it’s been smooth sailing since then.
6. Push yourself and deploy often. Part of the reason we’re in this field is that we like learning new things and new ways to do things, right? A week ago, I had never touched MongoDB. Now I’ve got a little experience that will help me refine my understanding of key-value stores and how they compare to more familiar relational databases. Midway through the day I decided to add a URL-driven search feature. After writing a RewriteRule or two and doing a scary reinstall of Apache on the live server in order to add mod_proxy (which mod_rewrite needs in order to handle [P] correctly), this stuff works:
You can play around with the URL; it’s really just a filter. You won’t see these links appear anywhere on the main site, because this way of presenting stories isn’t the core mission of the site. I just wanted to see if I could do it.
ilearnedtoprogram.com is the first extracurricular project I’ve done this year, but it won’t be the last. If you’ve had an idea of your own kicking around in your head, now’s a perfect time to get started! Invite a few people over when you’re ready for us.