Programmer

Programmer

ManWithComputer

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 +

Share:

Ask me anything!

Submit Your Question

76 Questions

Share:

Last Answer on September 07, 2015

Best Rated

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 5 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 5 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.

Any big lessons learned you can share about past and present start-ups you've worked with?

Asked by Reubenesque about 5 years ago

I don't know how big these are, but these are the things I'd tell to someone about to join their first startup: * The emotional rollercoaster is normal. It's not like in a big organization where every success and every failure is shared with hundreds of people. Everything that happens feels very personal. * Apple computers are overrated. Buy a commodity PC and install Linux. You'll get more power for your money. * Take care of your body. Make sure you get enough exercise, sleep and water. Snack on fruit and nuts, not candy or chips. Get up and stretch regularly, or rig up a standing desk. Startups are stressful enough already without ruining your health on top of it, and your mind is _not_ separate from your body. If one is in bad shape, the other can only do so well. * The business dudes are not your enemy, but they do bear watching. Don't let them make promises you can't keep. Remember that they need you (a lot) more than you need them. * It's normal, every so often, to wake up and realize that you are in a completely different business than you originally thought. A startup that can "pivot" in a new direction at this point has a better chance of success than one that carries on with the original plan. * Don't start a company where the only plausible exit strategy is getting acquired. Build something that actually takes in revenue.

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 over 5 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.

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 5 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.

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 over 5 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.

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 5 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.