Hacker and musician living in New York City. More about me.
[Reposting from the Lookmark blog, with apologies to the family member whose Facebook update I single out in this post. If you want to skip ahead, just sign up for Lookmark and tell me what you think.]
When I first joined Facebook, I updated my status and added photos often. It was a place for me and my actual friends to have actual conversations—a welcome change from Myspace, which had been filled with animated GIFs and lots of quote-unquote “friends.”
Five years later, I barely update my Facebook at all—maybe once or twice a month. When this update from a family member appeared in my News Feed a few months ago, I knew my relationship to Facebook had changed permanently:
Facebook has achieved their goal of building the best social graph on the Web. And that’s why I stopped updating—every single update is shared to 700 current friends, former friends, random people from high school, coworkers and former coworkers, professional contacts, immediate family, not-so-immediate-family, and randoms. Each update now forms a piece of our Timeline, to chronicle all of our life events for posterity.
I stopped sharing because I don’t want every link I share to be permanently archived and viewed by any of my friends and family, or the HR department for my next job, or my future kids (if Facebook is still relevant by the time they’re old enough to use their iPhone 19).
This is exactly the problem that startups like Path are trying to solve. Path is meant to be a new, virgin territory—a place for your real friends and family. It’s also the reason that I will never use Facebook Social Reader apps, like the Washington Post app, which automatically share all articles you read to your Timeline. I don’t want to share every article with my 700 friends, and I don’t want to permanently, publicly archive it on my Timeline. And I don’t want to see every article my 700 friends read, either.
Automatic sharing can be very compelling, though. When Last.fm launched (way back in 2002!) it was one of the first services to take advantage of automatic sharing—by simply installing the AudioScrobbler plugin, you could share everything you played in iTunes, automatically.
While brainstorming ideas for new apps, I thought: “What about a Last.fm for news, a browser plugin that shares what you read automatically?” I built a prototype of the concept in a few days back in April to test the concept. When I showed it to my cofounders, we all agreed that it was very compelling, even with a total of 3 people using it—so we’ve spent the last few months building and refining the product. We call it Lookmark.
Lookmark is a Chrome extension that automatically and privately shares what you’re reading from sites you choose (like the New York Times or links from Hacker News) with the friends you choose. Lookmark solves many of Facebook’s sharing problems because we designed from the ground up it for private sharing with a small group of close friends. It’s become an addictive source of news and conversation over the past few months—and we’re just getting started.
We’re slowly opening Lookmark to new users. Interested? Sign up at Lookmark.com and add me as a friend. I’d love to hear your feedback.
I’ll admit it—I love programming, and I have since I was a kid. This makes me a nerd, but at least I’m an honest nerd.
Code is a unique medium. There’s no activity better suited for the achievement of flow, which Wikipedia defines as “the mental state of operation in which a person in an activity is fully immersed in a feeling of energized focus, full involvement, and success in the process of the activity.”
There’s something really special about hacking away on something and then, after hours or days of struggle—making it actually work. And that joy of completion, of having heroically struggled and then solved the problem, happens again and again. A good programmer working on a hard problem has little dopamine bursts firing in their brain all day.
I’m still not over it. And I think many people would benefit from (and enjoy!) learning how to code.
A computer on every desk, and in every home
Steve Jobs gets most of the credit for being a revolutionary technology leader, but Bill Gates was equally, if not more, visionary. In 1980, Gates defined the mission of Microsoft “A computer on every desk, and in every home.” It’s difficult, now that we we all have incredibly powerful computers in our homes, cars, and pockets, to remember how insane this was at the time.
Microsoft executed that insane vision nearly flawlessly.
Computers became integral to many jobs in the 1980s and especially the 1990s, as the Internet penetrated workplaces and Microsoft’s Office software became ubiquitous. New software dramatically changed the nature of office work.
We’re about to experience another dramatic change. The New York Times recently published The Age of Big Data. You should read it, but let me summarize: As computers become part of more things (phones, cars, toasters), they will generate more and more data, and we’ll need smart analysts to make sense of it all. Office workers will experience a big shift like they did in the 90’s,as the ability to analyze data becomes more integral to every job—from management, to marketing, to design, to front-line information workers.
I believe that simple computer proficiency will no longer suffice as software takes over more aspects of work and life. Not that it’ll be necessary for all office workers to become masterful programmers; but those who can write simple programs to help automate their daily work and make sense of piles of data will have an advantage.
This change means more people will have the opportunity to experience the joy of code. Unfortunately, learning requires hard work, and most people haven’t been educated in the basics of computational thinking.
How will all these people learn how to code?
Learn BASIC now
When I was around eight years old I asked my parents to buy me a book called Learn BASIC Now. (Amazingly enough, Amazon still sells the book for a penny.) I remember sitting down at the computer in our living room and working through the book’s exercises in QuickBASIC, a programming language included with most PCs at the time.
Within a few weeks I was able to make simple video games, and by the time I was in middle school I was asking my parents for related stuff—more books, then an Internet connection, then a domain name (which cost $100 at the time!) and Web hosting service, so I could help others learn.
One of the most popular games I wrote as a kid had primitive graphics that looked like this:
This wasn’t state-of-the-art for 1994, but it was playable and maybe even fun. I called the game Lander. The goal was to safely pilot your ship to a landing strip on the moon, avoiding obstacles along the way. I really enjoyed making games and sharing them with friends and on the Web—it was a great motivator for me to improve as a programmer.
But what worked for me wouldn’t work today. The everyday systems we use have become more complicated, and it’s harder to create a simple program of acceptable quality.
Most DOS users would be able to find and run GW-BASIC or QuickBASIC, two programming languages that shipped with the operating system—but although current Macs ship with several powerful languages installed, most newcomers wouldn’t know where to find them. If they could, the Terminal would seem scary because the Mac user interface covers up its text-based underpinnings.
Even then, creating a text-based program wouldn’t seem that impressive—the simplest iPhone apps come with beautiful, animated interfaces that react instantly to our touch, courtesy of Apple’s design tools. A text-only number guessing game seems pretty lame by comparison.
Learning to code in 2012
So how does one get started, given the complexity of today’s computers and the high expectations of users? Thankfully, many startups and universities have begun tackling the problem in innovative ways.
Udemy offers a class by Zed Shaw called Learn Python the Hard Way for $29. Zed also offers a free HTML book for the course. Zed’s premise is that the best way to learn is by doing, so you’ll be doing a lot of typing. This seems to me like a Good Thing.
Another startup called Codecademy offers a unique way to learn—simple, step-by-step tutorials that run in your web browser, allowing you to interactively learn how to code without installing any software or buying any books. They’ve recently received a lot of press for a 52-week program called Code Year. When you sign up for Code Year, you receive a weekly code lesson via email which you can complete on their website. There are also Q&A forums where you can get help with each lesson. Hundreds of thousands of people have signed up, including high-profile folks like Mike Bloomberg.
There are tons of other great resources, far too many to list here. The Khan Academy has great video lectures; Google offers excellent Python tutorials; MIT offers their Intro to Computer Science and Programming, and Stanford offers an Intro to Computer Science and Programming Methodology..
Regardless of which method you end up trying, if you want to learn, find something that appeals to you and stick with it. Don’t get discouraged; the rewards will reveal themselves over time.
Learning to code is like learning to play an instrument. Some people will achieve basic easier than others. But for nearly everyone, becoming a good programmer will take many hours of deliberate practice; it’s not something you can achieve in hours or days, no matter how many tutorials you read.
To be a great programmer, you have to really want to learn; it’s not going to happen in a day or a week. Thankfully, you probably don’t need to become a great programmer unless you plan to pursue a career in software engineering. You can learn enough code in a short time to improve and automate some of your daily work.
I hope that the changes ahead as we enter the “Age of Big Data” give more people the opportunity to experience the joy of code.
I’d love to hear from people who want to learn code. If you find a particular resource linked in this post helpful (or terrible), or you think I’ve missed something, please let me know.
It’s been almost five years since I started my last startup.
I remember clearly the heady blend of optimism and anxiety that came with filing our incorporation papers, followed by the pride and sweat and joy of brainstorming, building and launching our first real product.
I just started a new startup with two great friends, Amit and Drew, and those feelings are back. The five intervening years have brought successes, failures, and hard-learned lessons, yet I couldn’t feel more sanguine about the future.
I should probably be more worried about the months ahead—there’s nothing to anchor me and my cofounders except our own determination and wits. It’s a long, hard road, and startups fail for a lot of reasons.
Yet despite all that, I still feel optimistic.
I’ll do my best to correct my mistakes from my last go-round. Yet even if I fail this time, I feel like I’ve already won. Inertia is one of the strongest forces in the world—there are so many different things acting to prevent one from doing something, from making something. And somehow, we’ve managed to give ourselves the opportunity to really create something awesome.
All we have to do now is make the most of it.
Paul Graham summarized a core tenet of internet entrepreneurship simply: “You make what you measure.”
There’s something magical about putting a number somewhere you can see it every day, whether that number represents daily profit, new customers, or something else. Suddenly one wants to improve, especially when the metric is paired with a pretty graph showing one’s improvement over time. It becomes a game, and everyone loves a good game.
I’ve employed this tactic at nearly every company I’ve started or worked at, measuring as much as I can—then choosing key metrics to create a company-wide dashboard that I could look at every day. It’s remarkably simple and effective.
I got sick a few weeks ago and spent too much time in bed, lazily wandering the Internet, where I ran across a compelling video about the benefits of 30 minutes of activity a day. The kicker, if you don’t have a few minutes to watch it: 30 minutes a day of pretty much any exercise—walking included—has been shown to offer dramatic health improvements, in mood, sleep, heart health, and more.
I was convinced, and wanted to take action. A computer programmer’s life is necessarily sedentary, and I wanted to counteract the negative effects of too much inactivity. So I bought something that had been on my wish list for awhile, the Fitbit Ultra.
Fitbit is a small, wearable device that provides dead-simple measurements of your physical activity. It measures the number of steps you’ve taken, floors climbed, distance traveled, and calories burned. Fitbit also functions as a basic sleep tracker—when worn on your wrist at night, it measures general sleep patterns, including the number of times you awoke during the night.
After carrying the Fitbit around in my pocket for two weeks, I can unconditionally recommend it to anyone looking to improve their health. It’s been fascinating to see my physical activity throughout the day—
and my patterns of sleep at night—
Counting the flights of stairs I’ve climbed each day has already encouraged me to skip the elevator more often at home. I often find myself taking longer routes while walking, or walking instead of taking the subway.
It really works.
That said, the device isn’t perfect. Right now it must have an optimistic idea of my stride, because its distance measures (and hence calories burned) are off by a fair amount. I’ve been meaning to measure my stride accurately but it’s difficult to do when you live in a tiny apartment.
Also, while the Fitbit can measure exercise like running and elliptical machines easily, it can’t measure activity that won’t trigger its pedometer, like swimming or using a stationary bike. Fortunately, the website lets you log your exercise and can compute calories burned for you.
It’s too early to say whether I’ll be as enamored with the Fitbit in a few months as I am right now, but so far the entrepreneur’s maxim has held true: you make what you measure.
If you’re trying to live healthier, try getting a Fitbit.
When I started my last startup, I kept quiet about my work. I didn’t tell anyone what I was working on, didn’t blog or tweet or promote myself or my apps.
I put my career in stealth mode.
At the time, I had several reasons to stay quiet. I wanted the freedom to explore multiple projects without the pressure of committing fully to one of them. I hated startups’ “About Me” pages, full of smiling people bragging about themselves in the third person. And if my startup failed, no one would know—I could quietly move on to the next project.
Five years later, I see this as a huge mistake, maybe the biggest one I’ve made in my career.
Because I have almost no public presence on the Internet, you probably have no idea that I’m a programmer (let alone a good one) unless you know me personally. Yet I spent most of my time from 2007 through 2011 writing thousands of lines of code, powering apps used by millions of people.
Now, most of that code is dead. Thousands of hours of my life, literal years of work—gone.
My cofounder and I wrote some pretty cool libraries, including:
- a simple command language to allow a server to dynamically control iPhone app flow, such as pushing a new ViewController, popping up an alert, etc (called SICC, pronounced sick, for Server Invoked Client Commands)
- many Rails hacks to allow seamless caching, distributed reads and writes, and database sharding
Some of this code lives on in the apps that my cofounder still runs, but nobody knows about it. Like most of my work from the past five years, it’ll probably languish and eventually die. But If we had open-sourced any of these libraries, I’d wager that at least one (and possibly more) of them would still be living today, because they solve real problems.
I recently left my job to start a new startup. One of my goals is to open-source as much work as I can, because I want my code to be used and improved by others. And I’ll write about what I’m doing, so I can share my successes and my failures.
I don’t want to repeat my past mistakes. I’m going to make my work visible, for better or worse. So I’m taking my career out of stealth mode.
There’s some discussion on Hacker News as well.
See all 21 posts »