views:

815

answers:

17

Or let me rephrase:

What's an occupation that's involves very similar skills/abilities to programming, but that isn't IT-related at all?

What kind of jobs would someone with the "programmer" mindset be likely to do well in?

I've had many different responses to the question, ranging from "architect", to "engineer", to "nothing is the same as programming".

Your thoughts?

+22  A: 

Car mechanic.

It's all about debugging and incredibly vague client requests.

Dana
And ripping off clients :-)
paxdiablo
haha! :D .
Trap
+6  A: 

Composing music. You program other's people brain by means of sound, which gets compiled as emotions. There's also a lot of math involved, and knowledge of patterns. The mindset is the same.

Of course, if you refer to "recycling yourself" in terms of career, eg. if you are a programmer and want to become a composer, that's a different story altogether, and you will probably not be able to, unless passionate or extremely skilled by nature.

Stefano Borini
+1  A: 

The way to approach a problem and solve it at the end is extremely similar to how engineers think.

Since programmers are not only "problem solvers" but more "solution finders" I believe engineering is as close as it gets to develop in any given language.

alfredodeza
Considering the requirements for an engineer and computing science degree actually overlap......and we hate eacother.... I'd say they're very similar.
Mark
+1  A: 

Anything that requires:

  • Critical thinking
  • Problem solving
  • Self improvement
  • Self motivation
  • Abstract thinking

I think that is the requirement for any college graduate level jobs.

JTA
+1  A: 

Architect. An architect draws a building from their own knowledge of how someone else will build it, and figures out all of the ins and outs of how the building is put together.

Ultimately, a compiler builds what a programmer writes into binary, we as programmers just write up the plans for how it will work when its built.

Corey Sunwold
Actually, civil engineers do that. Architects are more involved in the design section. At least in this part of the world (central EU).
ldigas
I have a good friend who is an architect and I understand what you mean. There is a lot of overlap really depending on the specific job. I think it still works as an "analogous" profession because architects still have to know a substantial amount about building to create well thought out designs.
Corey Sunwold
It's too vague a similarity to be drawn to an analogy, but ok ...
ldigas
+2  A: 

Just a guess, never tried the job myself: Air traffic controller.

Edit: I know this horse is dead, but I can't resist. Check out the fourth item in the list :-)

Job Activities for: Air Traffic Controller

Monitor Processes, Materials, or Surroundings

Getting Information

Analyzing Data or Information

Identifying Objects, Actions, and Events

Communicating with Supervisors, Peers, or Subordinates

Making Decisions and Solving Problems

Processing Information

Evaluating Information to Determine Compliance with Standards

Dan Breslau
I'm afraid I'd have to disagree with this. ATC leaves absolutely no room for creativity whatsoever. Most programmers I know are highly creative people, and would quickly become burned out in an ATC position.
Greg Hewgill
@Dan: Not to mention mistakes. There is no room for Null Pointer Exceptions at ATC :)
OscarRyz
Both points are well taken, but not persuasive. I'd hope that programmers who develop ATC software strive to avoid NPEs. And on the other side, the stories I've read indicate that there *is* a need for creativity -- mainly, but not only, in the form of judgment -- in the ATC's job. (I do agree that ATCs tend to burn out sooner.)
Dan Breslau
@Dan: NPE appear in development and QA environment for sure. Production MUST be NPE free. At ATC there's not such a thing ( mmhh they may pass an extensive training though, that would be QA? ) :)
OscarRyz
+2  A: 

According to Paul Graham, painting.

:-)

Rick Copeland
+4  A: 

Cola and junk food taste tester.

samoz
+24  A: 

Believe it or not, Lawyer. The job involves very carefully explaining your position (requirements) to another entity (the computer), within an incredibly complex framework of rules and regulations (language + compiler).

Greg Hewgill
I've actually heard this from lawyers, as well.
Rick Copeland
Yeah, I'll buy this - Frameworks are like law, and lawyers that are deeply familiar with large and numerous bodies of law are very valuable, just like programmers who are deeply familiar with the most important frameworks are valuable.
Ben Collins
Bzzt, Lawyers are also SOCIAL interfaces. It's not just lawbooks and absolute rules. Much more important is influencing people, judging personalities, evaluating duplicity, public speaking... those social/people/communication skills tend to be the antithesis of the programmer stereotype. Patent lawyer, OK, that's close, but not general litigation lawer or especially trial lawyer.
SPWorley
I had a really good professor who told us lawyers make VERY good programmers, and from time to time the other way around. He used the same reasoning.
Mongoose
@Arno: emphasis on programmer **stereotype**. If you're anything more than just a lowly programmer, you'll deal with clients a lot.
Mark
I disagree. At least with the lawyers from where I come from. Here they are very bureaucratic, they show no imagination. They are as square as a brick. Probably some developers may fit in this profile too, but I think great developers do think out of the box. Lawyers ( again, at least from here ) never think out of the box.
OscarRyz
@Greg: I read your comment on ATC, creativity was the word I was looking for, thanks. Lawyers from here have -1 creativity ( they are more like crakers, they know some tricks and they apply them when they see the "security hole" ) but can't come with new stuff by them selves.
OscarRyz
How strange. I said exactly the same to someone this evening.
Mark
I've got to disagree with this one. Lawyers (at least trial lawyers which I assume you're talking about since you mention "explaining your position") use arguments in a very fluid environment where there is no black and white. That's nothing like computers, something's either wrong or right when you tell the computer.
paxdiablo
programming requires good logic, and being a good layer requires overriding logic with pseudo logical arguments :)
Alexandr Ciornii
+3  A: 

Writing.

To write a book ( I guess, because I have never written one ) you have to first set your objetives, what do you want to achieve, even if it's not crystal clear. Just like in software.

To write a book, you have to organize and think abstract, lets say you have to analyze the characters, and think how to solve the relationship among them, keep a central line. Add details etc. Just like in software.

Good writers read a lot and learn from what they learn. To be a good writer you have to be a good reader first. ( Not necessarily the same for developers, but it would definitely help read world class level code to learn from them ) Poor writers as poor programmers can write without reading others works of course.

For good writers and for good programmers sometime all that is needed is inspiration. There are sometimes when both just don't know who to get out of a situation where they're stuck. They just go home and probably at midnight the solution comes.

Both require discipline.

Of course, I'm not saying they're equivalent at all. Just pointing out some similarities from may very "subjective and argumentative" point of view.

mmmmhhh Is this a real question anyway?

Regards.

OscarRyz
You don't have to compile writing. The idea of writing 'working' is totally arbitrary, unlike with code where it either compiles (and gives desired results) or it doesn't.
David HAust
Actually the word "compile" and "compilation" comes from writing. At some point all the drafts, handwriting, and all the pieces of the written work are indeed compiled "together" (¿? ) either by writer or by the publisher.
OscarRyz
Plus, you don't have to compile everything you code ( javascript for instance ) In writing you can also not compile and let the syntactical and lexical errors be handled by the end used at runtime ( at readtime I meant ) :P
OscarRyz
+4  A: 

I'd say Doctors/Medical Practitioner, consider:

  • Requires constant learning (new discoveries, keeping up to date with new medical findings etc),
  • Debugging (the human body),
  • Can be client facing (or could be in medical research),
  • Poor handwriting (kidding!),
  • Attends conventions, submit papers etc,
  • Can specialize (optometrist, orthadontist etc) or be a general practitioner
  • Advises a number of options/treatments
  • Bills time and materials.. and sometimes fixed price
  • Has to translate medical terminology into lay terms
  • Can work with difficult staff/clients
  • Can be known to work odd hours/on demand/on call

In the case of one Dr Gregory House, MD.. "Out of the box thinking"/diagnosis :)

Even career progression can be similar.. some doctors move into management, or change fields etc. They almost invariably need to document their findings, treatment and so forth.

RobS
I have thought this my self, but every time I get to the "debugging" part I think Doctors are lot lot better than us. When you have to debug a production code you see the logs right away. Where are the log in medicine? I mean, you can get test but is like we read coredumps rather than plain text log files. :)
OscarRyz
They have cooler testing machines too.. xrays, MRI, though much like production software you can't always trust the client LOL
RobS
Doctors seem to need a lot more memorization. In a consultation they need to provide an immediate complete solution without google or IDE help tools.
Leah
So they kinda have to have built in IntelliSense then! :)
RobS
An ex-boss of mine got fed up with the industry around the dot-bomb and went to med school. He says being a doctor is easier, less stressful, and pays better than software engineering.
Duck
A: 

I like Zed Shaw's presentation ACL is dead because he found out that the policies that companies make about secure access to documents are actually programming. So perhaps even a HR manager is doing something akin to software development.

Jacques René Mesrine
+1  A: 

I say Carpenter, with a focus on fine woodworking. Though building an entire house fits well too. It requires many of the same skills. You have to be decent at math, be able to see the big picture while focusing on a smaller task at hand, think critically, be very detail oriented and it has a nice artistic side to it as well. It is something I like to do in my free time and what I'd probably be doing if I weren't programming.

John
Maybe the process of building would have similar aspects but building something physical is completely different. Knocking something down and rebuilding is cheaper and easier in code. Making one thousand copies for clients and then sending out fixes for those copies is also a lot easier in code then woodwork.
Leah
+4  A: 

Herding cats?

Martin Beckett
No, that's the software manager's job.
Dan Breslau
It's equally sisyphian.
David Berger
That response rocks!
Dan Breslau
+6  A: 

So apparently according to stackoverflow, programmers are similiar to the following: Lawyers/Mechanics/Writers and Composers.

What a shock! We think we can do everything!

Sandro
Except agree :-)
Dan Breslau
Dan: For that comment alone, I'm tempted to downvote this answer!
Arafangion
+3  A: 

In some workplaces, being a computer programmer could be likened to being a prostitute.

You can screw around all day and get paid for it.

LeopardSkinPillBoxHat
hehehe. Your customer pays the hotel? You charge for hours? You have to satisfy all the odd customer nasty requirements? You have to leave the customer happy? uh uh uh??? :)
OscarRyz
@Oscar - I was tempted to add a few more dot points in there, but I'm worried the post might get marked "offensive" :-)
LeopardSkinPillBoxHat
hehe. Just make it community wiki and your reputation will be fine. Actually I'm surprised why this ( the question ) haven't been close already. Is not that isn't an interesting question, it is, it's just not the kind for SO. Make your answer CW and proceed with the extrapoints, add mines in the process. :)
OscarRyz
+1  A: 

Poetry, or music composing. It takes all the structural and creative abilities you need (and should have) for programming and uses them in a different artistic manner. And personally both programming and composing are fun.

Phizunk