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

Are most programmers generally pro- or anti- "Anonymous?"

Asked by SimonD33 almost 14 years ago

It's hard to generalize about programmers' political beliefs: they range from far left to far right, with an annoyingly large contingent of libertarians.

I designed an app for a computer and now want it to be compatible with mobiles how do I go about doing that ? whats the code?

Asked by smile over 12 years ago

Take out everything that's specific to desktop machines, replace it with a corresponding version for mobiles.

Seriously. Read the answer I posted to your question the other day. That's how you do it.

Can an application created on C++ be able to run and be hosted on the cloud.

Asked by sihle over 13 years ago

There's no such thing as "the cloud" as a single monolithic service. It's a term invented by marketers, and you know how much engineers love marketers and their terminology (*). So let's dig a little deeper. What all cloud services have in common is that they're remotely hosted, run on virtual machines, and are billed on a commodity or pay-as-you-go basis. One class of services here is virtual servers, something like you'd get from Amazon EC2 or Rackspace Cloud Services. This is a virtual machine running Linux, or Windows if you're masochistic, and as far as this machine can tell it's a real computer with all the capabilities of one. You have full root access to this "computer," and can install and run whatever software you like on it. So the short answer is yes, there are some "cloud" services that will allow you to run an application written in C++--or C, or Ruby, or Perl, or OCaml, or Haskell, or... (*) As a rule, not enough to piss on them if they were on fire.

What do your clients or coworkers do that that drives you the most nuts and makes your working life more difficult?

Asked by Tadzilla almost 14 years ago

A multi-way tie between: * interrupting me when I'm thinking (see many comments on the subject above); * bullshitting (programmers don't tend to, since you can't bullshit a computer); * calling meetings that don't need to be held for the sake of having a meeting.

Re: programmers hating synchronous communication, I completely agree, and I'm not talking about impromptu, unscheduled calls. Those suck. In fact, in this day and age, seems like MOST people hate synchronous communication. But what about when there's something that simply NEEDS to be discussed verbally, and you can't even get a dev to take a *scheduled* call? Believe me, as the client, we don't want to be one the phone any more than the dev, but it seems rude/arrogant/diva-ish to just force all communication to be asynchronous b/c that's what the dev prefers. (sorry to be testy, it's a recurrent problem)

Asked by Benjiboo almost 14 years ago

Well, yes, that's a different story. Sounds like the problem is your particular developer.

But couldn't ANYONE can claim "My appearance is irrelevant, it's all about the work I produce"? So what makes programmers special in that regard?

Asked by KGB almost 14 years ago

I think what we have here are two related questions: why programmers can do this, and why they do. We can because we have a lot of leverage in the workplace (due simply to supply and demand) and this is one of the few ways we use it. Also, we don't deal with the public, or even other people in general, very much. We do because, without a reason to dress up, we might as well be comfortable. I also wouldn't underestimate the lingering effects of the early connections between programming and 1960s counterculture (a book about called _What The Dormouse Said_ is said to be good). Take a look at this old staff photo of Microsoft from 1978, and notice how in bad light you could easily mistake them for the Manson Family: http://www.flixya.com/photo/1020798/Microsoft-Staff-Photo-December-7-1978

My dad always used to tell me "You'd make so much writing code!" Now that I'm older, money sounds like a good sorta thing to have. So, what the heck's a progammer and what's an average day?

Asked by Oblivious High.. Schooler about 13 years ago

Money's pretty handy.

 

So a programmer is someone who writes programs for computers. And what a program is, at the heart of it, is a list of instructions.

This can be "low-level" stuff where you deal pretty directly with the basic capabilities built into the computer, like: "Get this number from here, get that number from there, add them together, then put the result over there." Or you can build stuff at a "high level," using a lot of other software other people have already written, that would look more like "If Fred logs in to the system between 2 AM and 4 AM, and records show that he had more than 8 beers that night, cut off his access to email until 9 AM."

This is tricky because computers have no brains and no initiative of their own: their strength is in doing really simple, tiny, mechanical operations on information, but doing them extremely quickly and following the instructions they're given exactly. It's "exactly" that gets you, because if you write some code that you think is telling the computer to do one thing, and what it actually tells the computer is something entirely different, the computer is going to do what it's told, not what you meant. So even though we say a bug is a "computer error," it's almost always actually a programmer error.

 

My day is pretty typical of programmers in a small company: the big company experience is going to be diferent.

I come in to work between 10 and 11 (I'm a night owl), and check in with my co-workers to see if anything notable is happening that day. If something urgent had come up, they'd have called me on the phone already, but now that our site is a little more mature it's gotten a lot more stable than it used to be, and emergencies are a lot rarer. Which is great.

I've got a few people who report to me, so I check on their progress real quick and make sure they have a plan for the day. Then ideally I spend most of the rest of the day actually programming. The key is to avoid a lot of interruptions, because to write code efficiently you've got to concentrate for a long time. You learn to schedule unavoidable interruptions for either the start or the end of the day, so that you're not chopping up your day into lots of little pieces.

About 5 PM we get everyone (there aren't many of us) together in one room and talk briefly about what we did that day. People start to leave after that, and I often have the place to myself for two hours or more, which is a great opportunity to work on hairier stuff that takes some peace and quiet.

I normally try to leave by 7:30 or 8 PM, so I can get home and have a while to hang out with my wife before she goes to bed.

It's not for everyone but I think it's a pretty fun way to make a living.