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 up with programmers looking like such slobs all the time? There are hundreds at the company I work for, and for them it's like sweatpants, flip-flops, unwashed, unshaven, the whole bit. I don't expect 3-piece suits, but it's a pretty professional place - they should at least look the part.

Asked by KGB about 8 years ago

You know what makes a programmer a professional? When they write good-quality code that lets the user get done what they want to get done, that lets them do it efficiently, and that another person can maintain long after they're gone. Let me review that statement...nope, don't see anything about dressing any particular way in there.

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 about 8 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!

Why are so many developers such bad communicators (never pick up a phone, ignore emails, don't alert client of delays, etc)?

Asked by Benjiboo over 8 years ago

I was tempted to leave this unanswered--seems kind of fitting, doesn't it? Although I'm guessing that you ask because you're in a snit over a perceived slight from a developer, I'm going to treat the question seriously, since I have a few minutes to kill while my tests run. There's a stereotype that programmers work with computers because they have poor social skills, but get a bunch of us together and add beer and we'll be talking shop until the wee hours. The fact is, programming is one of those careers that's also a subculture, and it's a clannish subculture at that. As for the phone: programmers as a rule hate synchronous communication, which includes the phone and any kind of instant messaging. This is because to code you must concentrate, deeply and for an extended period of time. I've seen estimates that, after an interruption, it takes a programmer at _least_ 15 minutes to mentally return to where they were. A freelancer with in-demand skills (e.g. Rails or iPhone apps) can make over $100 an hour, so every time you interrupt a coder at work, you just set fire to $25. What's more, coding is lots of fun and listening to thoughts slowly trickle out of your head is boring. As for not alerting a client of delays, well, I can't really defend that. Absolutely a programmer should diligently alert their boss or client as soon as they realize that there are going to be delays. But programmers like being the bearer of bad news just as much as anyone else does (i.e. not a damned bit), and there's this temptation to think that if we just work _extra_ hard _right now_ we can pull off a miracle and deliver on time. So, in other words, programmers do that because we're human.

What's the longest coding bender you've ever been on?

Asked by Jay about 8 years ago

In college, I participated in several programming competitions that lasted all weekend. Our strategy was to open the question packets at midnight Friday (the first moment that was allowed), read the question, talk about a strategy for a little while, then get a good night's sleep and regroup Friday morning. The good night's sleep was key, since after that it was just catnaps until 6 PM Monday when the contest ended. So, call it not quite 80 hours.

Long hours during crunch time are the rule in this business, and mental stamina is vital, but being able to occasionally bust out 24+ hours isn't actually that useful. After being awake past a certain point, even if you're technically awake and theoretically working, you're not producing and in fact you're likely doing harm by introducing bugs that you wouldn't if you were alert. Much more valuable is the ability to work 12-16 hours in a day, get a few hours sleep, then come back the next day and do it again the next day, and the next.

What are some less obvious places to look for good devs? I'm going to shoot myself if I have to go to another tech meet-up.

Asked by frizzlefry about 8 years ago

It's difficult no matter what you do to find a good developer these days. Assuming that you have a particular technology that you're trying to recruit someone to work in, and not having a lot of luck, try looking for a good programmer who _doesn't_ know that technology and hiring them to learn it. One of the key attributes of a good programmer is that they don't pigeonhole themselves into thinking that they are an "X programmer," where X is some technology. They're a programmer and they can learn any technology that comes along--and they will. If you live in a place like San Francisco or Boston that has a thriving software industry, find the one guy who knows everybody in town in the business and make friends with him. How do you find that guy? By definition, ask anyone.

Why are most developers socially withdrawn? Is that WHY they go into more solitary fields like programming, or is it the other way around?

Asked by dramatard about 8 years ago

Another old joke: Q: How can you tell an extroverted engineer? A: When they talk to you, they look at YOUR shoes. I think the introversion generally comes first. In my case, for instance, I live with my girlfriend (wipe that surprised look off your face) and have a few close friends--the operative word there is "few"--but I spend a lot more time alone than the average person, mainly by choice.

Do you think there will come a time when there will be tools available such that a non-developer can essentially build websites for themselves? I'm not talking about the Wordpress-type of tools, but rather tools that would allow some to build a reasonably sophisticated custom site.

Asked by royleeeeee about 8 years ago

You can build somewhat sophisticated static sites (meaning sites that always present the same information to every visitor, the equivalent of printed material stuck up on the Web) using Dreamweaver or Frontpage (if they still make Frontpage). If you want to do something more complicated than that, and you can't quickly slap it together out of Wordpress plugins and whatnot, you'll have to learn some programming. Sorry, no way around it. Basically, if you have a tool that's powerful enough to let you do that, it's going to be a programming language, or something roughly equivalent (and comparably complex) but for the interface. The bad news is that it takes a long time to get good at programming. The good news is that it's lots of fun and can come in handy no matter what field you're in. If you like, I could recommend a number of good resources for getting started, enough to keep you busy literally for years.