Getting a programming job for non-CS majors
March 28, 2014 5:52 AM   Subscribe

If you work in some area of computer programming, but didn't have a degree in the field, how did you get your start?
posted by drezdn to Computers & Internet (15 answers total) 18 users marked this as a favorite
I know of some people who got their start by becoming intimately familiar with certain types of scientific equipment. By starting out in a technical role they eventually drifted towards the software side of things and it is their technical expertise in the equipment that makes them valuable despite formal CS training.
posted by ian1977 at 5:54 AM on March 28, 2014

I'm in IT consulting. I call it "programming-lite" (it's in databases, so we use a lot of SQL and be able to communicate). I took a required C# class from my business major, was able to get an internship at a place where I did some basic C#/excel coding.

That little bit of experience got me the job I have now, as the company I work at has hired business majors, (really anyone they think can learn).
I've been working in IT consulting for around 5 years now.
posted by sandmanwv at 5:55 AM on March 28, 2014

Luck, I guess. Out of college I worked as a phone rep for a couple different customer service groups between 1998-2000. Bored out of my skull I used the little bit of HTML knowledge I had to weasel my way into doing some small side projects (and learned a bit of JavaScript in the process). I used that to get an interview as an entry-level web developer in late 2000 and soaked up everything I could along the way. It might be harder to do now, but it might be easier too: companies are less obsessed with degrees and professional experience; being able to show competent contributions to one or two open source projects you care about would be a good way to get a foot in the door.
posted by yerfatma at 6:01 AM on March 28, 2014

One good place to start is QA. I, and many other developers, started our careers there. There is a lot of development you can do in QA, mostly centered around test automation, but writing tools can be useful too.
posted by BenevolentActor at 6:17 AM on March 28, 2014 [4 favorites]

On his website a few years back Shamus Young published his, rather lengthy, Autoblography which covered, in part, how he became a programmer despite little formal training (and certainly no degree). Not all of the entries cover programming, but I think the first one to do so is this. Here's a later entry about his attempts at getting a degree in programming. And his first official job working with computers, and the start of his career as an official programmer.
posted by lharmon at 6:20 AM on March 28, 2014

I messed around with teaching myself programming for a year or two before I quit my job and enrolled in a 10-week full time developer bootcamp where I learned Ruby on Rails, some Javascript, TDD, version control, etc. I got a job as a junior software engineer working on a web app about three weeks after I finished.
posted by mskyle at 6:35 AM on March 28, 2014

My Master's was in statistics, which at the time meant experience with mainframe stats packages like Minitab and SPSS. That, plus a computer technician certification, got me a job as a programmer's assistant (yes, assistant), where I learned how to actually program.

In other words, I was lucky.
posted by Mogur at 6:37 AM on March 28, 2014

My experience is probably too old to be of any help, but I started by being a "super user" of the software that my customer service group used. I was the goto person for anyone on the team who had questions about how things worked. I started learning how to write queries on the databases. This was really old, before everyone had data warehouses with report-writing software on the front of it.

One of my team members convinced our boss to send me (and her, there are perks to being an instigator) on a business trip to the corporate headquarters city where we met an old friend of hers who knew how to write SAS programs on the mainframe and he spent 3 days teaching that to me, which I went on to master. On another occasion, a new database was created for us and they needed someone to run queries, so I took the FOCUS book home over the weekend and came back on Monday writing programs for that. Another girl joined our group who knew how to run Natural/Adabas programs and she showed me how to do that.

Once that whole department moved to headquarters and everyone who didn't move was laid off, I was able to use my "about to be laid off" status as a favor to get an interview for entry-level positions in the real IT group, and the interviewer heard my story and marched me right over to HR and told them that I was to be hired as a level-2 programmer on the spot. I was a Natural/Adabas programmer for over 20 years at 3 different companies. My degree is in Elementary Education and I spent 2 years as a middle school teacher before I started working in the customer service dept where I started out. Employers don't care about the degree once you've got experience.

Now I'm a Business Analyst who spends most of my days reading the code to see what it does before I ask a developer to change it. Because I've been both a user and a programmer, I am really good at providing that translation between what users want and what programmers can deliver.

(On preview) it's not so far off from others: figure out a reason to learn stuff on your own up to a certain competency, get an entry-level position and learn like crazy on the job until you are a master of it.
posted by CathyG at 6:46 AM on March 28, 2014 [3 favorites]

I am a programmer, worked as one for 8 years now, and I don't have a degree in CS. My degree is actually in psychology and english. HOWEVER I do have a 2 year college diploma for a computer programming course. Everyone here has either a CS degree or has a diploma for a programming course. I can recall only one person who was hired as a programmer that didn't have any formal programming education. He apparently started in the finance department of some company and that slowly, over I think about a decade, morphed in to programming. Don't ask me how, I have no clue. However, he was by far the worst programmer we ever had, he wrote the messiest, poorly written code I have ever seen, and he lacked very basic skills that good programmers need. My point isn't that all people who don't have formal education in programming must be terrible. I'm sure there are tons who are legitmately great programmers and are entirely self taught. However, a lot really aren't any good and there are often some pretty significant gaps in their knowledge, and a lot of employers know this and hire accordingly. In my 2 year college program we started with ~40 people, many of whom felt they were already "a programmer" and this was just a formality. The vast majority of them failed to complete the program because they actually had no idea what actual programming entailed. They thought writing HTML was programming. Only ~7 people graduated. It wasn't because the other 33 people were all idiots (a couple were, though). I think it was largely because being a good programmer usually means they naturally think in a very organized, procedural way, and this isn't something that can easily be taught or learned. There is an element of natural born skill set that lends itself to being a good programmer. Not everyone can learn how to sing well, and not everyone can learn to be a programmer.

I have been involved in the hiring process at my current job, and from what I have seen it is getting harder and harder (basically impossible where I work) to get a programming job without official training in programming. Where I am we basically don't even consider programmers unless they have SOME sort of training. Their resumes/applications are more or less binned. It is too much of a gamble to hire someone who is entirely self taught, especially in terms of their writing clean, understandable, maintainable code that follows basic standards like commenting and naming conventions and reusability. Because of that we will choose someone fresh out of school with zero real-world programming experience over someone who has a lot of programming on their resume but no formal programming education 99 times out of 100.

So, with all this information in hand, I need to ask...Is there a reason why you can't get some formal training? It doesn't have to be a CS degree. If this is a direction you really want your career to go in having some official training will be in your best interest. It will make you a lot more employable. I'm not at all trying to dissuade you from pursuing a programming career, but rather just trying to let you know that you would be hugely helping your career if you got formally educated.
posted by PuppetMcSockerson at 6:50 AM on March 28, 2014

Like many people earlier, I got pulled in by doing other tasks in the office. My entry was long enough ago that I was pulling credit reports over a Teletype terminal with a built-in 300 baud modem (note: not really a 'programming' task). Hey, look, he automated that job! Maybe he can do more stuff, too.

That was a while ago--but in my current position, it's not uncommon for people to be pulled into IT positions as subject matter experts with no previous programming or technical training. From there, it's possible to get pulled into more formal development if the person has interest and aptitude.

When I've scanned the corporate job market in my area a few times over the last X number of years, I've become aware of one large local corporation that won't hire programmers (however that's defined) without a related degree. The most common requirements read "degree or comparable experience". "Are your skills up to date?" can be a more relevant question than "What was your degree in?".

I'll note that the definition of "programming" can be different for different people. Colloquially, people may use a very broad definition that includes scripting, integration, report writing, administrative tasks that a more narrow definition might exclude. I think it's reasonable to expect that places that use the more narrow definition would care more about formal training/education.

(I'll also note that I have been on an interview committee to hire a developer where a person was eliminated because they sounded too formal, and wouldn't be a good fit for the group culturally. Yes, it can vary from place to place.)
posted by gimonca at 7:48 AM on March 28, 2014

I'm a developer at a Bay Area company- no CS degree or CS certification. I do have a degree in physics. I got this job because I'd written and distributed my own apps and had a reasonably large user-base. There's no better calling card than having apps out in the real-world that people are willing to pay for and use.
posted by jeffch at 10:48 AM on March 28, 2014

For a view from the other side, I've hired people as programmers who didn't have a CS degree but they did know the subject domain well and had relevant experience programming. In software development there are three key things always at play:

1) The technology. This is what we think of first. This is the knowledge of programming, data structures and the experience to make stuff.
2) The subject. Unless your business involves building tools for programmers, your programmer doesn't know your subject domain.
3) Communication. The language of #1 and #2 are different, so you need to translate between them.

Unless you have some deep technical challenges (scaling, high availability, security, etc) then I think in many times people are better off hiring people who are strong in #2. If you have a subject domain that lends itself to being easily understood or explained (I'll tell you when/if I ever find one) then weight on #1 makes sense.

My point is that if you think about the subjects you know well and lead with that foot you may be surprised to find how agreeable hiring managers are to you not having a formal CS degree.
posted by dgran at 11:54 AM on March 28, 2014

I started in 1998 in entry level tech support for a specific product line. I moved into QA (while getting my AAS in software development), then eventually moved into development (almost finished with my BS in software development).

So, 15 years at the same company is a pretty good way to go, if you can find that :)
posted by getawaysticks at 12:38 PM on March 28, 2014

Find a small software company that does something related to what you are trained in. They will often need all-hands-on-deck, so you'll end up learning programming.
posted by freezer cake at 1:50 PM on March 28, 2014 [2 favorites]

I'm here to to echo CathyG and freezer cake. Becoming a super user of an application is a really great way to dive in informally. A lot of applications have a ton of add-ons developed by third parties (or companies that do consulting and custom work for those applications), and those are often smaller companies that can take advantage of your subject matter expertise and help develop your programming knowledge.

I did exactly that, and I now spend my days buried in consulting opportunities and custom development projects for the original application I mastered, as well as another application that integrates with it. If you've got the business side nailed down, and you've got the aptitude for the technical side, you're in a great position. Anyone who's inclined can learn a good deal about programming, but learning when/how/why to do it to meet business objectives is really critical.

Oh, I also have no degree (not just a non-CS degree, but NO degree). Good luck!
posted by nobejen at 8:22 PM on March 28, 2014

« Older Travel Advice: Bergen and Oslo Norway!   |   Stutter filter: what can I do to best set a... Newer »
This thread is closed to new comments.