Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In my experience, the software domain prefers engineers, but we do have non-technical graduates developing better software. Though an engineering degree helps you to get a job, many people are from non-technical background. For people coming from a non-technical background, what was your initial experience? How did you manage to get a software job? What else, apart from good coding practices, is necessary to become a good developer?

share|improve this question

closed as not constructive by Thomas Owens, Walter, ChrisF Oct 27 '11 at 8:52

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

7 Answers 7

up vote 19 down vote accepted

I have a masters degree in music composition. After a stint as a bicycle messenger, I got a job doing tech support at a company that made music software (I was sort of an expert in midi and making windows 3.1 play nice with audio). On my first day, I found out that I was also going to be testing software. Later that day, I found out that I was going to be the network administrator.

I found that programming and music were quite similar. I learned VB (and related languages) and C. Eventually, I felt it was time to move on, and on a whim I applied for a job at Microsoft. I got the job, and nearly 16 years later, I'm edging up to partner level and have cross company influence in software testing.

The most important thing I've learned is that a passion for continuous learning is critical for success. If you are confident that you can learn anything, you will be able to take on any obstacle or challenge. I'm lucky that I'm a quick learner - it's a skill that continues to help me in my career.

share|improve this answer
Upvoted. This is inspirational story :) –  Krom Stern Oct 26 '11 at 14:13
+1: If you are confident that you can learn anything, you will be able to take on any obstacle or challenge. –  KK. Oct 26 '11 at 14:49
Funnily enough some of the best developers I've ever met were music majors . . . –  Wyatt Barnett Oct 26 '11 at 14:56
I've heard about a programming company (years ago) that would only hire programmers that played a musical instrument. –  Clockwork-Muse Oct 26 '11 at 17:10

I have a CS degree. My coworker has a BS in Physics. Shortly after he was hired, we were both assigned to work on a Python based project (a language that neither of us knew). After 6 months he knew python better then me.

My friend has a Biology degree. I told him about a algorithm question that 9 out of 10 the job applicants that I had been interviewing could not answer in half an hour. He had it in 5 minutes.

It's not the degree. A lot of folks with a CS degree can not program their way out of a paper bag. If someone can program, s/he can learn algorithms.

That's my 2 cents.

share|improve this answer

Here I am!

Ten years programming on my own, studying "scientific" and classical subjects in high school.

Sometimes people with a technical diploma know less then me, because I had passion pushing me while they had to study because they 'had to'. And now some them even hate computers...

(I don't think it counts, but I dropped out of university having followed only 3 courses in computer engineering).

share|improve this answer

My educational background is Economics and Statistical Analysis. Though the Econ degree is a BSci degree, so I wouldnt call it strictly 'non-technical'. One of the reasons I went that route (in addition to being interested in economics) was that I was already a decent programmer by the time I got to college, and thought it would be good not to restrict myself to one subject.

I got into professional development because my first employer after college, a research company where I was hired for my statistics background, noticed I picked up anything computer related obscenely quick. So when they needed a program, they had me write it.

The Econ degree has, imo, been very valuable. A couple of employers have mentioned it made my resume stand out because they liked the idea of a programmer who understood business and financial topics (even if that wasnt strictly what Econ is about, I went with it...). But more importantly, its a very useful way of thinking, in understanding trade-offs, cost-benefits, efficiency, cause-effect, how different complex systems and processes affect each other... all useful skills in development.

For recommendations... if you want to become an expert programmer, program. Write software. Learn from doing. I'm not the only person here who will tell you there's little correlation between programming ability and the type of degree the programmer has, if they even have one. Some people are just meant to be programmers, so thats what they'll end up getting drawn to no matter what path they start out on.

share|improve this answer

I don't have an engineering degree but I do have a B. Math where one of my majors was Computer Science which should be close enough in some ways. Does that count as a technical degree? I'm not a P. Eng though I'm not sure if that is sufficient or just necessary to meet your requirement here. My university years being 1993-1997 was just as the dot-com boom happened so it was kind of easy graduating into that field in a sense and then I've just stayed in web development and tried to improve some things year after year.

share|improve this answer

I had been the physics (actually astrophysics) route. I had figured I'd do research doing stuff like blowing up star models on computer. Never did anything like that professionally, but there are a lot of programming jobs for people who understand math and hard science. Few have had any formal CS training. I had an intro Fortran course 40years ago. Thats better than most scientists who end up programming, they get a position that needs a computer solution, and they are handed a syntax manual and told to get on with it. At least in phsics is mostly about problem solving, so such people can think about an issue, propose models, and figure out some way to approximate a solution.

I ended up in supercomputing, squeezing the most out of scientific algorithms, and even a bit of HW design. This was because of a combination of intense desire plus luck. I'm probably a bit of a hack programming wise, but I know how the hardware works, and how to mash algorithms and datastructures together to make stuff fly.

share|improve this answer

My educational background is a degree in business with a minor in economics. I learned a bit of computer science in high school programming classes, Visual Basic 6 and some Java. One summer I decided to try developing an idea I had for a web application which required me to learn some PHP and javascript. Unfortunately it never really took off. When choosing what to take in university, I decided to go with business rather than computer science since finance and economics seemed a bit more interesting to me at the time.

In university, I decided to freelance in web development to earn some money. Again, these projects involved mostly PHP and javascript. I also put my Visual Basic experience to use in various business-related co-op jobs. I also joined and founded a couple clubs at university where I served a more technical role in terms of developing websites and software. What I was developing required quite a bit more design-savvy than my freelance projects which forced me to learn what works from a maintainability perspective. I also read quite a bit online on software development and also purchased a few books like Code Complete and The Pragmatic Programmer to really try to hone my skills since I enjoyed the topic. I also took the time to learn other programming languages like C, Python, and Haskell.

For my last co-op term, I applied for and was hired to work for a medium-sized software company (a .NET shop) and really enjoyed the experience. They felt during the interview that I displayed more knowledge than the computer science students they had interviewed at my university. I'm still working for that company now and really enjoying it.

I guess my advice would boil down to:

  1. Read a lot about software development and related fields, both online and in books
  2. Program a lot, try different languages and different types of programs, and do at least a couple non-trivial projects
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.