Careers for someone who can code
July 25, 2011 9:02 AM   Subscribe

I'm good at programming computers. But I don't want to be a software developer. What can I do for a career and what should I be doing now to make it possible?

I like coding. I have a natural aptitude for it. It's one of the few things in life that comes easily to me. But this segment by Zed Shaw really rings true to me. I'm pretty sure I don't want to be a professional programmer or software developer. I've heard enough horror stories about long hours and impossible deadlines that it doesn't sound like a particularly great job. (I'm a pretty type-B person, I want my work to be chill.) More importantly, there's more to life than just doing the one thing that comes easily to me.

My question is technically two parts, but they're very connected to each other.

First: any suggestions for fields I could work in? I know research science involves some programming, but it's difficult to get research jobs, plus I don't have any idea what field I would choose. Academic CS would be interesting but limiting, again because I don't want to live my life just doing the one thing that comes easily to me. Finance pays well and you get to solve really interesting problems, but I'd feel sort of dirty, and long hours with a bunch of super-competitive alpha males sounds terrible. These can't be my only options; I'm sure the hive-mind knows fields where computer skills are useful, where I could solve interesting problems, and that don't have to be stressful or miserable.

Second: what should I be doing now in terms of classes and internships? I'm going to be a sophomore at a liberal arts college. I thought I would major in physics, but the lab portion of E&M showed me that I don't want to. Now I'm leaning towards a math major (I actually like it, this isn't just a fallback). Our CS department is acceptable but not great (plus again I would rather expand my mind than get really good at this one thing). also, where should I be aiming to work in the summers?

(There are a lot of previous questions that are very similar to this one, some from programmers who want to get out of software development, which makes me think my intuition here is right. But none of them seem to have very concrete suggestions about what to do.)
posted by vogon_poet to Work & Money (17 answers total) 31 users marked this as a favorite
i have my masters in computer science, but don't program, my focus in grad school went to computer security, (scholarship though NSF/DHS, cybercorp). and now i work as a 2210-it specialist in the gov't law enforcement doing some system admin work (some programming, but mainly network maintainability), sharepoint admin (more programming, especially when making custom workflows), investigative analyst (lots of DB work and link analysis, which knowing how programming works, helps!), network forensics (tracking network intrusions through logs), and i'm about to delve into computer forensics...

i think the "programming mind" helps solve lots of problems, especially if you understand how the tool you are using for analysis was built, you can use it much more effectively.

and, for "fun" i teach computer science at my old university as an adjunct professor, mainly to keep my CS skills in check...

if you have any questions memail me...
posted by fozzie33 at 9:15 AM on July 25, 2011

cyber corp link:
posted by fozzie33 at 9:17 AM on July 25, 2011

First off, not every coding job has long hours and impossible deadlines. Once you're in the industry you learn where you can expect that kind of work environment, and if that's not what you want in your workplace, you don't apply to those places. I think there are a lot more chill jobs in the software industry than there are in most other industries I can think of, frankly. Yes, life is easier if you're a hard-driving, type-A, get-things-done kind of person - but I'd posit there are very few jobs out there of which you couldn't say the same.

Unless you're a very, very exceptional college freshman, you haven't even scratched the surface of where computer science can take you. I think my first truly mindblowing CS class was in my senior year. So, you may want to stick it out. At this point I don't think you can actually really know if CS is compelling to you or not. I thought it was deathly dull when I was where you are in your education. I'll tell you right now that it's not just coding that you'll study as a CS major, and coding is just one of the many things you have to be good at to get a job in the industry.

I guess I can't really sympathize, because coding didn't come easily to me. It was hard every step of the way and it's still hard every day when I go to work. I stick with it because I like what I can do with it, so it's worth the struggle to me. But my husband is the most natural coder I've ever met, and what this means is that he gets to come up with his own challenges and make his own mark. He can be creative and entrepreneurial and he loves it.

If I were you, I'd double major in computer science and something else, for now at least. If programming is as facile to you as you think it is, the CS classes will be easy and boost your GPA, and if you find when you graduate that you can't get a job in the other field that you really like, you can take on some software work until employment in the other field picks back up. And maybe along the way you'll find that CS is more fun and awesome than you'd thought.
posted by troublesome at 9:19 AM on July 25, 2011 [4 favorites]

and to add, i am also type b, an introvert, and like a chill atmosphere... another nice thing about that type of degree is that you can qualify for direct hiring authority in the federal government, meaning you don't have to compete with others if an agency wants to hire you.
posted by fozzie33 at 9:19 AM on July 25, 2011

Almost any field in which you must work with computers extensively will benefit from an ability to program, if only because you will be able to automate the grunt work that other people have to do by hand. My fiancee works in Accounts Receivable at a law firm and I helped her with some Excel stuff so she can do a job that took her predecessor 4 weeks in 4 days. Not that you want to work in accounting, but some knowledge of how computers actually work and what you can do with them can make you a superstar.

If you can write, and you understand programming, you can find a niche writing for a programming audience. Not only does this pay better than garden-variety technical writing, but it has better job security. The trend has recently been to make applications so easy to use they don't need much end-user documentation, but there will always be a need for documentation for developer tools and APIs, and these are constantly being invented and updated. You will also have a leg up in automating your workflows -- the company I work for has automated nightly PDF and help builds and validation of 25 documents, much of it is stuff I wrote myself in Python over the last couple of years.
posted by kindall at 9:29 AM on July 25, 2011

Response by poster: I think my first truly mindblowing CS class was in my senior year.
I'm kind of interested to learn what it was about.

Computer science opens many doors, all over the place.
What are the doors? What should I be looking for?
posted by vogon_poet at 9:30 AM on July 25, 2011

Best answer: If you think that you're good at programming, keep taking classes until you get to ones that challenge you. CS at advanced levels can get truly mindbending and if you can get to that level and thrive, you'll have no problem finding a job, I would guess.
posted by empath at 9:38 AM on July 25, 2011 [1 favorite]

CS is about so much more than just programming. If you've only done one year, like it was mentioned above thread, you haven't even scratched the surface. Being able to program is almost a means to an end - like being able to write English is necessary to be a (english) writer. There are so many fields and disciplines in CS - AI, distributed programming, graphics, operating systems, etc etc - I can't even being to list them all. It's not just big business apps and iPhone games :) Being able to automate things in your daily life (also mentioned up thread) is also an amazingly handy skill to have.

As for what classes to take - take what interests you. If you like math, graphics are math-heavy. If AI intrigues you, take that first course, see where it leads. Also take those logic-based philosophy courses - they're easy credits for those with a programming background (so easy that CS majors are now banned from them at my alma mater).

For the summers - again, look at trying different things. Don't let yourself get stuck in a rut where you're only exposed to one product/company/environment.
posted by cgg at 10:06 AM on July 25, 2011

There are plenty of software programming jobs where the software isn't the company's end product - programming in-house software for various applications, manufacturing control software, etc. It seems to me that those positions are less likely to be high-pressure 12-hour-day jobs than the ones where the weight of the company rests on the shoulders of its software team; and even at those companies that are software companies there are going to be a lot of different corporate cultures out there.
posted by Lady Li at 10:07 AM on July 25, 2011 [1 favorite]

But this segment by Zed Shaw really rings true to me.

Meh. I've been coding since I was a toddler, and have had plenty of time for it to get boring (about 25 years), and it hasn't happened to me yet.

This rant makes me think of the lyrics to the song Flagpole Sitta'—if you're bored then you're boring. There's about three hundred and fifty million billion ways to use software to improve the lives of humanity. Make things faster, make things easier, help others make less mistakes, help people make connections and stimulate their imaginations… I've said this before but being able to code is quite literally like being an architect and a construction worker at the same time, except with a cost overhead of $0. There are very, very few other kinds of tools and knowledge out there that one can possess that can allow the single individual to have such an enormous impact.
posted by Civil_Disobedient at 10:40 AM on July 25, 2011 [4 favorites]

If you know that programming isn't a career for you, great! Follow your heart and never look back. But if you are swayed by Zed Shaw's words, then I second the sentiments about exploring further. I've been writing software for (hmmm, a bunch of decades, anyway!) and I still jump up and shout with joy whenever I get something working. I sort of got steered into embedded systems and discovered it's even cooler to make physical devices respond in useful ways. Heck, I just bought myself little microcomputer (Arduino) and was thrilled the first time I made an LED blink or measured and printed the room temperature. I'm old enough to retire but I'd still rather make someone's new toys (lab robots, usually) play nicely -- and for this, they pay me!

The point being, there are so many disciplines in which the ability to write software plays an integral part, that if it's something you enjoy doing (not just 'are good at it'), then like the white horse in the whiskey ad, you can take it anywhere - and vice-versa.
posted by TruncatedTiller at 11:55 AM on July 25, 2011

I'm an architect. Some of the 'tools' I have in my toolbox are: being able to draw, being able to model, being able to organize people, being able to think in detail... etc. One 'tool' I wish I had, is the ability to program. I am always thinking about going back to school to learn this and it would dramatically increase my ability to produce architectural forms and images.

I know lots of people who can program and are using their talents in careers that aren't "programming". Architects, Artists, Musicians, Mechanical Engineers, Structural Engineers, Electrical Engineers... etc.

My point is, you might want to think about your natural ability to program as a tool that you can use to help you tackle something else you are interested in, rather than a prescribed profession that will define what you do all day.

The way to do this, is a double major.
posted by LZel at 3:04 PM on July 25, 2011

Best answer: I'm very very type B and coding comes naturally to me too. I've been a professional programmer for about a decade. I can't say I always love it, but it can be pretty chill, depending on the project. The thing is, even within the profession, talent varies so widely that if it comes easily to you, you might literally be 10-20x faster than some of your peers. If that's the case for you, then you'll find a lot of deadlines not just reasonable but downright generous.

Programming is consistently rated one of the "best" jobs because compared to other jobs that make similar money, it can be pretty low-pressure. It's really dependent on the company/agency/person/whatever that you are working for, so seek out opportunities that offer a sane schedule. Programmers are needed in virtually every field of human endeavor. You can work for NASA, you can work for McDonald's, you can work in a bank, you can work in a lab, you can work in the government, etc.

To be honest, I have often fantasized about finding another line of work, but I can't think of anything that would come close to the total package that programming gives me. The things that get me sometimes are the physical effects of sitting all day every day (obesity, carpal-tunnel types stuff) which are avoidable if you're careful, the feeling that what I do isn't that important in the grand scheme of things, and occasionally (depending on the project) the tedium.

As far as "expanding your mind," what I did was major in CS, minor in English literature, and read a ton recreationally. As others have alluded to, some subjects within CS are themselves kind of mind-expanding. If you're into math, you'll probably enjoy discrete math (duh), algorithms, data structures, etc. A lot of the theoretical stuff is pretty awesome.

It's hard to know what a job will be like until you have it, so I'd suggest trying to get jobs or internships in the summers at places that will let you work next to people who will be doing the career you are considering to get a real feel of it. (If you're doing CS, get a paying job. Other fields might not be as easy to make money in as a college student.)

Finally consider that your major doesn't condemn you to a life in a single career. The most it does is open some careers to you. A CS degree opens many and provides a great fallback. Say you get a degree in CS and then go on to law or med school and hate it and the job market is shit. Oh hey, you can still be a programmer. What if your degree were in math? Not nearly as many opportunities.
posted by callmejay at 3:20 PM on July 25, 2011 [1 favorite]

Working with IT at a university might be up your alley. Most larger universities have a wide range of different sorts of IT positions. I've worked with a bunch of different IT guys through my department, and I get the impression that this could be a neat job for someone who likes the occasional coding challenge but doesn't want to deal with crazy deadline pressure.

At our school, there are some folks on the IT staff who are really good at dealing with problems like "Well, there's an issue with the plug on a lot of these machines, let's check that first." These folks might not spit out icy code like it was no thing, but they have the tact not to offend self-important academics by asking if the machine is plugged in (even if that's the issue). There are other folks who don't have the social graces given a badger, but they keep the grid running, and can slap together code to take care of the problem du jour way faster than we could.

There might be some cool options for you at a local university...
posted by solipsophistocracy at 5:11 PM on July 25, 2011

Two answers for ya...

I was a CompSci major for a year until I thought exactly what you did - I don't want to sit in a cubicle competing for the best millisecond, and I don't want to obsess over code late at night in lieu of having a life. So I quit and did something else.

1. In some ways I regret the decision, because I've since had friends and met coders who have really cool jobs and perfectly fine lives.

2. At the same time being someone who can take on a coders analytical mindset (and of course being someone who can code!) has served me at every place I've ever been.

I would say this: You don't necessarily have to be a CompSci major to code. And when you get to the hard class (in my case Data Structures and Algorithms) rather than drop out, learn all you can from it. If you don't become a full-time coder, then at some point someone's going to have a problem that only you can solve, and that feels good.
posted by jander03 at 6:33 PM on July 25, 2011

I'm a programmer (since I was twelve), and I'm laid back. I don't work long hours, mostly, except when I want to because the problem is interesting.

I can point to what I've done and say, "there, I built that!" And, because I work in Free Software, I can even tell you how I did it. I can collaborate with people all over the world, and help them solve their problems.

I would say: take a summer job programming, and see how you like it. Worst case, you have to find something else to do with the next few years.
posted by novalis_dt at 8:48 PM on July 25, 2011

Response by poster: Thanks, everybody. All the answers are good, and what I took away from this is that even within software development I can find what I'm looking for, that I wouldn't be locked into anything, and that I should challenge myself.
posted by vogon_poet at 12:57 PM on July 27, 2011

« Older Fire kills everything, right?   |   I want to get gas. Newer »
This thread is closed to new comments.