32

I'm currently doing a BS in Physics but I am good at Swift, CSS, HTML and JavaScript.

How can I get a software engineering or web development job without having a degree in them?

  • 13
    I did, and have been in the field for 20 years. You may want to reword your question as "what are the ways to get into a field without a degree in that field", or something like that. As it is worded, this question is likely to get closed – Richard Says Reinstate Monica Jun 22 '16 at 13:45
  • 1
    @davidK No Im doing BS in other subject but I was wndering that im good at programming languages so can i get the IT jobs? – Muhammad Fahad Jun 22 '16 at 13:52
  • 5
    @MuhammadFahad What do you mean exactly by IT job? Many people think of non-programming jobs when they hear that word. – Brandin Jun 22 '16 at 13:53
  • 7
    With a degree in physics you could consider something higher up the food chain than web dev - CFD analysis bigdata etc – Pepone Jun 22 '16 at 13:57
  • 9
    Software is the perfect field for this sort of thing. Spend some time on TeamTreehouse.com or some other coding site to make sure your skills are rounded out, make a couple really well put together apps on your own for a portfolio, and you will have a good chance. Especially with Physics--lots of apps can be made that need physics – Jeff.Clark Jun 22 '16 at 15:42

14 Answers 14

42

It's very subjective, but you most certainly can get a career in software development without a degree in that field. I know a very excellent programmer who has 2 master's, one in humanities, the other in library science.

It's an uphill battle though, especially getting that first couple of jobs. Once you get some experience on your resume, you'll use that to get other jobs and so on.

Personally, I don't have any degree. But even with 30+ years experience, I still get refused to even be considered because I don't have one. It's just how it is.

The bottom line is yes it's possible, but it's not easy. I should also note that my best friend from high school also does software development and architecture. He's a Ph.D. in Genetic Botany.

  • 13
    +1 I would add as general advice that there are enough places where a degree in that field isn't a hard requirement or that exp can be substituted for a degree, especially in IT. And yeah, I still get excluded as well for the same reason. So, you, me, Bill Gates, all in the same boat – Richard Says Reinstate Monica Jun 22 '16 at 13:53
  • 1
    Woz did go back and get his. That must explain why he's in such high demand still. :) – Chris E Jun 22 '16 at 14:28
  • 24
    @RichardU Not only are you all in the same boat, but the three of you have a combined net worth of almost $80 billion! A good boat to be in! – corsiKa Jun 22 '16 at 17:36
  • I only have a Master's Degree in Physics and have been in Software Dev for ~ 10 years. I've never had any experience "get refused to even be considered". The vast majority of software jobs out there require a numerate degree, rather than a CS degree. I've found that a Physics degree trains you to think very Functionally and Object Orientated, which is a major advantage. It however disadvantages you in that you will have no experience in Algorithmic complexity. Physics will NOT overall hold you back in a career in Software. – Aron Jun 23 '16 at 5:25
  • I don't have a degree of any sort and I've never been refused an interview for a programming job. I agree it might be harder to land a first job, but once you've got a couple of projects under your belt people really don't seem to care. The key is to make yourself marketable, which means learning what people in your area are hiring for and learn that. Java and JavaScript are the hot-ticket tech in my area, a glance at the job postings on Monster or Dice should give you an idea of what's marketable where you live. – TMN Jun 23 '16 at 18:22
26

One thing missing from the other answers is that having domain knowledge in some field AND strong programming and development skills is an extremely powerful combination.

Anecdotally, this is the defining aspect of my own career. I have a BS and MS in Civil Engineering but work primarily as a software developer. The work I do is all related to my field and I find that my skill set fills a rather large gap in the workforce. One big advantage is that while developing software you have an incredible insight into how it will eventually be used and what will make your product better. Additionally, the marriage of traditional skills with developer skills will provide the insight to re-engineer a lot of common tasks in your industry. Finally, software development is product development; that experience will set you up for a management position eventually.

Advice:

  • Go out of your way to learn best practices for software development and coding (don't be hacky). There IS going to be a skills gap between you and a CS grad, learning those skills is a big challenge but ultimately enables you to make better software
  • Market yourself as having a strong traditional background plus additional programming skills that will add value to an employer or research group
  • Find something domain specific in your field that you think you can contribute to and make better through software. Start out small and solicit feedback often. You'd be surprised at the impact small specialty tools and apps can have simply because no one has both had the idea and the skills to make it happen
  • +1, I was thinking of including that advice. A friend of mine has a degree in accounting. He writes accounting software – Richard Says Reinstate Monica Jun 22 '16 at 18:27
  • 5
    I wouldn't necessarily conclude that self-teaching programming skills leads to becoming a better programmer. It often times does just the opposite. xkcd.com/1513 – Dupontrocks11 Jun 22 '16 at 20:21
  • 1
    @Dupontrocks11 I don't see anything like that mentioned here? This answer just says that a background in the domain of the software you're building is valuable in building the software itself. – jpmc26 Jun 22 '16 at 22:53
6

It's difficult, but not impossible to get the FIRST job in the field, after you get experience in the field it's easier. There are more employers who require "any" degree than one in the field, and often times experience can be substituted. A standard template is that years of experience can be swapped one-for-one for a degree. I.E.

"Postion requires either a 4 year degree and 2 years of experience or (generic waiver of degree if experienced) "

The best way to get that first job is to build a resume through freelancing and/or volunteer work, so that you can put them on bullet points on a resume...

Experience:

XYZ charity: (volunteer) x-present

  • Designed website for abc department.

Freelance consultant w-x

  • provided website development and support for various clients (list on request)
  • 3
    Love the charity idea. I hadn't considered that. And while I haven't done it myself, being an open source contributor could help too. At least it would give demonstrable work. – Chris E Jun 22 '16 at 14:31
  • 1
    @ChristopherEstep Volunteering at a hospital was how I got back into IT after my stroke. – Richard Says Reinstate Monica Jun 22 '16 at 14:33
  • 2
    At the larger companies, also software-oriented startups, my experience (as a interviewer on interview loops, not as a hiring manager) is that you need a degree in some technical field (math, engr, physics, etc) to get in the door (e.g., past the HR screeners). After that - the interview is key. If you can code on the whiteboard and answer design questions you can get the job. (Whether you get to keep it is a different question.) If you can't code on the whiteboard then you won't get the job no matter what school or what major. – davidbak Jun 22 '16 at 19:54
  • @davidbak I have failed every single tech interview I have ever taken. I'm autistic and I don't do well like that, plus I cannot write – Richard Says Reinstate Monica Jun 22 '16 at 19:57
  • @RichardU - yeah it can be tough if you don't fit the norm - I had a very good friend (lost touch with him) who would have been great where I was working at one time - I referred him in - but didn't get past the first interview because he was thought to be "slow". Well, he was what I would call "deliberate". Thought things through. Didn't just open his mouth and spew. Even in an interview. But that was misinterpreted. But that's the way people are. So in today's environment: if you can't code at the board, you can't code at all, in the eyes of the interviewers. – davidbak Jun 22 '16 at 20:47
5

It's getting harder all the time to do this, and if you do it's harder to get ahead without plateauing, although you can do pretty much fix that by getting certifications. This applies especially to the bigger companies, but it's becoming general in some places.

A lot of people will tell you they've been in the industry for decades without one, and it's true. But decades ago there was huge demand and many places you couldn't actually get a degree. Some of us were around before the internet. Things were a LOT more easy going back then.

But in saying that, it is still possible even in the first World, in the Second and Third, it's still pretty easy. The best way to do it is have something that shows your skills that you can show off to prospective employers, even if it's personal work or volunteer stuff. Start at the bottom and work hard and professionally, get yourself certified when possible and make it your industry.

When you get a job spend a good couple of years there focused on leaving with a great reference. That will get you the next job and set you firmly on track, that's assuming they don't just keep promoting you.

  • 1
    Comments removed. I'll also remind commentators of our Be Nice policy here. – Jane S Jun 23 '16 at 11:42
  • It may be worth considering that demand for programmers still outpaces bachelor degrees awarded for relevant fields, which means there are more jobs available for programmers than there are people with the relevant degree. – KRyan Jun 23 '16 at 15:05
4

Developing software is not in any way regulated. Anyone can do it. So if you can get a job without a degree in that fields depends entirely on your potential future employer. Some will require a degree, some may not.

If you want to know what your chances are, go and check the job ads in your area. Assume you had the education you are aiming for, and check if you would feel comfortable to apply for the jobs you want to apply for.

  • 2
    @RichardU I'm not arguing either in favor of those requirements or against them. I'm just saying "Don't listen to random people on the internet, check the facts in your locality, whether you like them or not." – nvoigt Jun 22 '16 at 13:53
3

Considering a huge number of professional software developers have, at best, a degree in computer science (which is not the same thing), yes this is fine.

I know plenty of people who work in this industry having come from all sorts of degrees. They're usually sciency (e.g. Physics), but you could have only an English degree or even no degree at all and get a decent job if you can prove you'll be any good at it.

  • This verges on off-topic, but I think what a "Computer Science" degree is highly dependent on the school and even person. My undergrad degree was very industry-focused and taught actual software dev skills in classes, but I met people in grad school who only knew, e.g., MATLAB and basic Java because they opted to take mostly theoretical courses. Otherwise I totally agree with this answer :) – user812786 Jun 23 '16 at 15:29
  • @whrrgarbl: You're right. Let's say that for the purposes of this answer, I mean computer science degrees, not all degrees (correctly or not) entitled "Computer Science" – Lightness Races with Monica Jun 23 '16 at 16:00
1

I don't have any degree and I've been working in software for a few years now. I'd suggest the following to anyone trying to get into the software industry without a degree:

  • Create a Github account and start putting some personal projects in there that you can show to prospective employers. Also, contribute to open source projects.
  • Study basic programming concepts when you can to help during an interview
  • Apply for intern/entry level positions. The first position is the hardest to get, and real world experience typically trumps a degree.
  • There are some companies that put a lot of value on the degree. If they push back about the degree, don't get discouraged, that's just not the company for you. For every company that has this strict requirement, there's many more that are flexible and are searching for the right candidate.
1

Sure you can work in IT without a computer science degree. Any analytical degree prepares you for programming and system work. Get your BS - a lot of companies want a degree.

Languages have advanced so much that you are not dealing with the details like back in the C++ days. And there are so many tools that you hardly ever need to write system stuff like sorts.

With an undergrad BS in Physics consider a Masters in Data Science. It is in demand and very analytical.

I highly suggest you take statistics for your electives. As the volume of data goes up the need for statistics does also.

A field that goes for like Physics and Math that would surprise you is finance. They need a lot of pure analytics.

If you are going to do HTML then do HTML5.

  • C++? try Assembly ;P – Richard Says Reinstate Monica Jun 22 '16 at 18:28
  • 1
    "Back in the C++ days"? Eh?! – Lightness Races with Monica Jun 23 '16 at 11:43
  • I don't care what language you're using, "dealing with the details" is always going to be a key part of programming. What counts as "details" may have changed over the years (I don't worry much about tuning the compiler's use of machine registers nowadays), but each shiny new language/framework/abstraction brings with it its own set of details to master. – user14405 Jun 23 '16 at 17:12
0

As mentioned above, getting your first job in IT as a developer will be the hardest, by no means impossible though.

In my experience, firms tend to look at your experience in the field.

Your first job may be an entry level developer role but that is the trade-off when you're starting out...

  • The job you want for a lower salary

Good luck.

0

There are two major things you need to consider when trying to accomplish this:

1) Do I have enough practical experience in [x] technology to competently accomplish the job I'm applying for in the field, and be chosen over other qualified candidates?

2) Am I presenting myself via my resume in a way that will actually give someone enough confidence in me to give me the job?

For example, if you've been coding in various languages since you were 8 years old and have built a compiler in your free time, and you can communicate the fact that you're an extremely skilled programmer in a way that will convince an HR person to give you an interview, you're set and should be able to make it work eventually.

On the other hand, if you've only toyed around a bit with a few languages and are not actually that skilled, you need to ask yourself if you are actually qualified for the jobs you're applying for. If the answer is no I'd first ask why you are bothering to apply, and secondly I'd expect you will have quite a bit of difficulty breaking into the industry.

Basically it all boils down to: am I genuinely qualified for the job I am applying to or not? And if I am can I convey that in a way that will get me a job?

If you do have the requisite skill then I'd recommend spending a week or two researching IT resume strategies and how to sell yourself, because if you fail in that area you're dead in the water no matter how good you are.

0

The other answers discuss some good strategies already for building your resume. Since you are still in school, I have a couple ideas to add:

  • Look into getting an official minor/certificate, if offered by your school - or even a major, if you think it's worth it. This may seem meaningless to you, but to the non-tech recruiter who is just scanning for matching buzzwords, that could make the difference between sending your resume to the trash pile or getting a phone call. (When I was looking for internships, some companies flat-out told me not to bother because they only considered B.S. Computer Science majors.)
  • Look for internships or part-time jobs to gain valuable experience and references. Perhaps your school has student I.T. positions, or a professor needs someone to make a website or app for their study (it was fairly common for my CS department to get requests like this) - ask around!
  • Participate in hackathons or other school-sponsored coding events, which are typically open to any interested students regardless of major. This is a great way to build a portfolio, network, and improve your skills all in one.

As a physics major, I had sell myself a little harder for that first job - but I had a minor, relevant coursework, and some personal projects. After that went well, it was significantly easier to find the next ones and eventually a job. If you feel they aren't convinced of your programming skills, talk up how your physics classes have prepared you to learn quickly / debug / think methodically and logically / insert-positive-quality-here (backing up this claim with concrete illustrations of your coursework or lab experiences, of course).

0

HOW TO GET THE FIRST JOB*

(Disclaimer: I have done what you're trying to do, namely getting a job as a developer despite having a degree in English)

* Answer geared toward the US, YMMV

None of the other answers really do a great job of addressing this aspect, which IMHO is the important one. The way I did it was networking. If you don't have anyone in your network hiring programmers (I was exceedingly lucky in that respect), then you'll have to meet them where they are. Some suggestions for that include:

Go to meetups

Go to your local meetup for language x. You may have to drive a bit if you don't live in a city. Its worth it. Also consider starting one. Ditto your local linux user's group.

Take up fencing

As ridiculous as this might sound, I've been coaching fencing for over a decade and a disproportionate number of fencers are in STEM fields including software dev. YMMV. Look for other hobbies that may be appealing to software developers.

Make friends

Is there some place on or off campus that the CS/EE kids hang out? Go make some friends.

Apply for internships

Been mentioned in other answers but worth repeating: being in school affords the kind of access to unpaid or underpaid experience that it would be likely illegal to officially acquire otherwise. Whether or not that's a good or bad thing is debatable, but milk it FWIW.

You can put stuff on github, load your resume with enough buzzwords to get past HR, etc. but there is no substitute for convincing other people in the industry in person that they should hire/ask their boss to hire you.

-1

Well, I did, more decades ago than I care to remember. I was the only one on a team of 8 who had a comp. Sci. degree. The others had varying degrees, such as French, History, Philosophy and Astronomy (failed).

There was, at the time, a general shortage of software engineers, so companies thought “let’s just take people who are clever and train them for software”. So, the others got to go on nice training courses, while I had to stay in the office and work :-(

I have freelanced for decades , in the USA, several Asian countries and more than a handful of European nations. I would guess that around 80% of the developers I work with do not have a comp. sci degree (although most of them have some form of “hard science” degrees nowadays; electronics is more welcome than English lit).

The good news for you is that Physics is a good degree, since many physicists have some familiarity with coding, even if they are not formally trained.

A very phenomenon in Germany is some who studies to become Herr Doktor of physics, leaves university at age 27 or 28, finds there is glut of physicists and no wok in the field and moves into software. About 70% of my Germany team-mates fell into this category.

Of course, it will vary by country, even by company, but, in general, there is a world-wide shortage of software developers, so you should be ok. Just try to get some demo projects, stuff on a web-site, or an open source project to add extra attractiveness.

-6

Software engineering and web developing are two very different fields. I know very few people who are good software engineers, and ALL of them have degrees in Computer Science, Software Engineering or Computer Engineering or have been working in the field 20+ years. I know many people who are good developers who have degrees in very disparate fields.

I know many Physicists and Electrical Engineers that think they are good software engineers and make my life very hard because all they really can do is program scripts.

Since subtly is lost on this site let me be very explicit, you can work as a developer without a degree in the field, many people do, but recognize that developing web apps and developing architecturally sound software are two different things and you won't be able to do the latter for a couple year.

  • 2
    This doesn't answer the question that was asked. – Jane S Jun 22 '16 at 21:57
  • Software engineer, developer, web developer, programmer, coder etc etc optionally with "senior" in front of them are all badly defined terms used to refer to the same work of making software, and a CS degree is necessary for none of them (I have one). – RemcoGerlich Jun 23 '16 at 14:46
  • @JaneS yes it does, you have to have to read between the lines, and realize it says "yes you can work as a developer, no you can't work as software engineer." – Sam Jun 23 '16 at 15:59

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