The Internet, IP

Male, 37

I've worked at multiple Internet startups of different shapes, sizes and ambitions. Now I'm the CTO (Chief Technical Officer) of another small company with big dreams. I look nothing like the picture above.

If you copy and paste your homework question in here, I will answer with something that will, at best, get you an F on your project, and at worst, will get you kicked out of school. You have been warned.

SubscribeGet emails when new questions are answered. Ask Me Anything!Show Bio +


Ask me anything!

Submit Your Question

76 Questions


Last Answer on September 07, 2015

Best Rated

What's an appropriate hourly rate for a programmer in the US?

Asked by TomTom over 5 years ago

Depends on the specialty. If I were freelancing right now, I'd be charging $125 an hour.

If you had a teenage kid right now, would you advise him or her to go into programming?

Asked by JBM over 5 years ago

Given it was something they were interested in, absolutely! It's interesting and intellectually stimulating work that pays well.

Were Mark Zuckerberg and the developers who started Facebook true geniuses or did they just execute the right idea at the right time?

Asked by MMA83 over 5 years ago

I've actually never used Facebook (though I love Twitter), so my answer may not be worth much here. However, I'll make an attempt based on what I do know. It's my understanding that Zuckerberg is indeed extremely intelligent and a highly skilled programmer. However, the common wisdom in this industry is that brilliance counts for much less than hard work, giving the market what it wants, and a lot more luck than anybody is comfortable talking about. I don't see anything that makes me think that Facebook is different in this regard.

I am a Computer Science major in college right now. What would you recommend I do now to help find a job and make money when I get out into the "real world?"

Asked by Jack over 5 years ago

Fresh out of school, your main problem getting employed will be lack of a track record. This is a double-bind that catches a lot of new graduates: can't get a job without experience, can't get experience without a job. As a programmer, though, there's one excellent way to build a portfolio that other fields don't benefit from. I'm talking about open source software. Anyone can download it, anyone can read the source, anyone can modify it--and, thanks to Github, anyone can put it up online where anyone else can see it. If you interview with any halfway-conscious organization these days, at some point they are going to ask for your Github username, and they ask because they want to see what you have there. So what kind of software exactly should you be writing? Doesn't much matter. The common recommendation here is "scratch your own itch." That is, write a program that solves a problem you have. Once it's in reasonable shape, get it up on Github, write a little blog post about it, and iterate. Definitely make a point of writing and open-sourcing different types of programs too. Apart from showing versatility, you're at an ideal point in your career to explore all the different possibilities. Good luck and welcome to the occupation!

When a new site with a novel UE catches fire, do you as a programmer immediately go and learn the basics of how that UE is created?

Asked by UnPinterested over 5 years ago

Personally I don't. While you have to be a generalist to work at a company this small, I'm much more interested in the "backend," meaning roughly the things that happen behind the scenes. A novel UX like Pinterest (and looking at their UI is a reminder that "novel" isn't the same as "good") doesn't capture my interest like it does that of some of my co-workers. Of course, this doesn't mean that I don't steal from other websites' design when I see something I do like.

Do you think people overestimate the difficulty of coding? Like, obviously it's not easy, but is it the rocket science non-programmers make it out to be?

Asked by Christophe over 5 years ago

Probably! Not everybody is cut out to do this for a living but anyone of reasonable intelligence can learn to do at least a little programming. One good reason to do so is that it de-mystifies computers. There are plenty of them around, and they are here to stay, so you may as well know something about them. To a lot of people, a computer is a magic box filled with 0's and 1's that lets you look at Internets and occasionally sends your checking account number to a gentleman in Nigeria. To a programmer, a computer is a scientific box that operates according to very simple rules applied over and over and over again. Knowing a few of these rules will help you deal with these machines that make up so much of our environment these days.

How long would it take me to become proficient in Ruby if I'm starting with a decent understanding of computers and technology, but no hands-on programming experience? How about for becoming a Ruby expert?

Asked by Crosby87 over 5 years ago

Even though I assume that you probably want to learn Ruby to use Rails, I'm also going to leave Rails out of the equation. The reason is that Rails is a big framework that itself takes considerable time to master, especially if you're trying to get your head around the basics of programming and Ruby at the same time. I don't recommend doing this in any case, because Rails imposes its own conventions on programs that you don't want to get into the habit of using too early. The good news is that Ruby (likewise Python) is particularly well suited for learning on. It's got a gentle learning curve that's forgiving to absolute novices but is still powerful enough for professionals to use. Historically, that's a surprisingly rare combination in a programming language. The bad news is that it still takes a long time to become proficient. Assuming that by "proficient" you mean you can write a program of a few hundred lines that does something you actually find useful, without too many horrendous bugs in it, I'd expect it would take about six months of regular practice. Notice too that I say "practice" as opposed to "study": a little bit of theory is very useful, but the only ways to get better at programming are to write programs, and to read and modify other people's programs. As for "expert," well, I've been doing this since I was a little kid, and now I'm in my middle 30s, and I'll let you know the minute I'm an expert. If you'd like to start learning Ruby--and I heartily recommend this, since programming is seriously a ton of fun as well as being useful--I recommend Learn Ruby The Hard Way, available for free at, with printable or eBook versions available for a very reasonable price (I have no connection with this work or its authors). As noted above, programmers are also surprisingly gregarious (at least with other programmers), and if you live in or near a city of any size there's probably a local group for Ruby programmers open to the public. Good luck!