Do You Need A College/University Degree To Get A Programming Job?
In my Programming Career Guide I have a section where I point out that you don’t need a College or University Computer Science (CS) degree to get a programming job.
Firstly, having a CS degree does not necessarily make you a better programmer.
I’ve met and worked with a large group of developers over the years, some with CS degrees, some without. I never found a pattern to identify a better programmer based
purely on a CS degree.
In my experience and opinion, having a CS degree does not guarantee you will be a better programmer, compared to someone without a degree.
Bill Gates and Mark Zuckerberg are just two examples of programmers who have achieved great success without a CS degree. Mark went back and completed his degree at Harvard in 2016, and Bill received
an honorary doctorate degree in 2007 – thirty years after he left Harvard.
While they do now have degrees, I think you would agree that they achieved a lot in their careers without one.
Secondly, having been in numerous interviews as both an interviewer and interviewee, the question about education qualifications has nowhere near as much weight as what
skills and experience you are bringing to the table.
If you can demonstrate excellent skills in software development, that’s going to give you a big advantage compared to someone holding a CS degree without any practical
experience.
After all, you are being hired for what you can do for the company, not for the piece of paper with your qualifications written on it.
With that said, I need to mention that if you are up against someone with a CS degree and practical experience, and you don’t have a CS degree, then all else being equal you
may find the other person might be the preferred applicant for the position.
There needs to be a way to separate applicants for a job, right?
Also, you may come across companies that insist on the applicant have a CS degree, but that’s getting rarer and rarer these days, and with good reason.
Ignoring any applicant without a CS degree seems to be an excellent way to miss out on a large pool of great programmers.
Over the past 35+ years, I’ve seen numerous people without degrees get jobs as software developers. In almost all cases it was because of the skills and practical
experience they bought to the table that got them the position.
Google and Apple Drop Degree Requirements for Programmers!
Yes, Google and Apple as well as IBM are three huge companies that no longer require you to have a degree to work with them. Now, thats not to say getting a job with them will be easy. You will start have to prove yourself and the interview process is aimed at eliminating all but the best programmers. But the point is, you don’t need a CS degree now.
And a lot of other companies are following suit – if you can demonstrate skills as a software developer, you can get yourself a job, even if you don’t have a computer science degree.
Developer Surveys
In Stack Overflows 2017 Developer Survey, which had over 64,000 responses, thirty two (32) percent of programmers said that their formal education was not very important or not important at all to their career success. The survey also showed that 90% of programmers overall considered themselves at least somewhat self-taught. This is a pretty huge statement in my opinion.
The survey went on to say that computer science majors and computer engineering majors were the most likely (49.4%) to say their formal education was important or very important.
That is interesting, right? What seems pretty clear here is that things are changing. About ten years ago, it was almost mandatory to have a degree. Now things are changing rapidly. Gaining a CS degree is no longer the holy grail because companies are no longer making them mandatory to have to work with them. It’s completely possibly to get a job as a programmer without obtaining one.
What should you focus on?
It makes sense to become multi-skilled as a programmer. If you know several programming languages, and/or frameworks, and are able to demonstrate competency in them, then your career opportunities will likely improve dramatically as a result.
It makes sense to focus on core languages widely used such as Java, Python, C++, C and so on. As well as technologies like Java Enterprise Edition and the Spring framework to name just a few.
Of course there are other factors in choosing a programming language so keep that in mind.
The bottom line is if you have excellent software development skills, and can demonstrate them, then it doesn’t matter if you have a degree or not.
So, start working on those software development skills today!
35 Comments
From a US perspective, seems that the timing of dropping degree requirements coincides with the realization that, not only is the cap of foreign talent not going to be raised, its getting tougher to hang on to current people they have. This, of course, has a side affect of raising salaries even more, which is also a hot topic. While this BSCS degree holder will not deny the shortage of talent and the unfortunate astronomical prices people pay for degrees nowadays, an investment in a degree should almost always be counted as a huge plus. The deftness of these people will certainly vary and its unfortunate that some of us allow our skills to dull. Our profession has been key to the democratization of technology, but it will eventually have some undesirable effects down the line which will probably be most apparent in the next downturn. Universities are probably in for a world of hurt. Cheers!
Yes I agree – a degree is a bonus, but not essential. It will help you stand out of the crowd – The good news is in 2018 there are lots of way to get a job, with or without a degree.
It’s more important than ever to keep your skills up and not to let them dull as you say.
This is where websites like Udemy come into play – you can get a course on virtually any popular language or framework and get up to speed with it and keep your skills sharp and relevant.
I started developing in 1983. At that time how many had a degree?
We actually soldered memory chips sockets, created our own hardware and – eventually – could use “advanced” pre-built computers like Commodore VIC 20, ZX Spectrum, Apple IIe and similar.
Despite not having a degree those guys could create a score of nice software and even operating systems. I wrote one of those “mythical” years 80 addictive C=64 video games. Yes, a lone guy could solo code a best seller game. To do so, he had to have a decent all-round, hands down knowledge. I had to know how to create sprites, but also how to sample sound, how to create fonts or how to manually calculate square roots as sequence of subtractions by pen and paper. How to perform complex trigonometrics and vector math, with CPUs that even lacked multiplication and division.
Needless to say, I’ve worked 33 years out of 35, despite not having a CS degree. I am glad that Google and Al are now hiring people based on proven skill and not just on paper.
I totally get all of this Dario – I have owned most of those computers and more.
What a team in history it was – its hard to believe how far we have come in terms of functionality and power since then.
What will the next 35 years being I wonder?
You are right also about solo developers – much harder (but still possible) today.
Overall hiring on skill is sensible for everyone I think.
I’d like to say thanks, I enjoyed this article. It’s great to hear that companies like Google are removing the pay wall and letting the skills of the applicant decide who is the best person for the job. I think many companies will follow suit as the quality of online and alternative learning resources continues to improve.
No problem John. Yes it is really exciting, and I think it’s a good thing.
Are there any python certifications out there? Do any carry more weight than others?
I don’t know of any official ones – Java have official Oracle certification which is recognised – but Oracle is a for profit company.
There are places like this.
https://pythoninstitute.org/certification/
But I cannot vouch for them at all.
I found this article very interesting and it comes really handy to self-taught programmers like myself. I unfortunately encountered that most of the job offers do require a degree or some form of higher education but it’s good to know that this is likely to change in the near future. Anyway, my main interest is to develop my own projects and that’s what got me into programming in the first place, so it’s not too big of a concern. This was a great read, thank you very much.
You are welcome Jacques.
It can be frustrating but companies are slowly starting to realise and change – I think with huge companies like Google, IBM and Apple that its going to become mainstream (not needing a degree) soon.
Tim, Oracle said this officially on their Java website … LOL 🙂
“How Will Java Technology Change My Life?
We can’t promise you fame, fortune, or even a job if you learn the Java programming language … ”
https://docs.oracle.com/javase/tutorial/getStarted/intro/changemylife.html
But I will still learn Java with you because you are such a good teacher 🙂
Thanks Ronald!
Hi,
Thanks for the article and for the explanation! It really gives me motivation to keep learning!
Btw, I have a question for you!
I know that if I want to get really good at programing, I need to pratice alot! So, in your opinion, what is the best way to pratice? I know about a site called codewars, it looks good (although right now I don’t think I pocess the knowledge required to complete most of the exercises), do you think it’s a good choice for practicing?
Thanks for you time writing this article!
Cheers
Joaquim Azevedo.
Practicing can be done a variety of ways – that website sounds like a good way – doing the challenges in computer courses and even just re-watching training videos can help.
Just do anything related to programming and that is good practice and will help you achieve your goals.
The article was very nice Sir. Thank you .
By the way, can you please suggest me what are programming skills that I should learn for getting a job in a company ? I have enrolled in one of your ‘Complete Java Masterclass ‘course . I found it very helpful for me as I am a fresher .What are the other programming knowledge I should know ? Can you please suggest me any sites where I can learn coding as I am a fresher ? Does the online certifications provided after completion of the course have any value during interviews ?
Some other great languages to learn apart from Java are Python, C, C#, and C++. It really depends on the type of job you are looking for.
But Java is a good choice.
You mentioned that you have my Java masterclass course – that would be the best place to start learning.
Udemy provide a certificate of completion for certificates – its valuable, but as much as say an Oracle Java Certification.
Regards
Tim
I focusing on becoming a Data Analyst first and foremost but I want to eventually have experience in all aspects of Smart, connected Products: Smart Apps, Analytics, connectivity, Sensors and Product infrastructure. My backup is security and network building with blockchain tech. I’ve got Python Mastclass and Java Masterclass from Tim. I also picked up a course on Mysql, a database management language that interfaces with SQL. Is there any other language that’s good to learn for a Data Analyst? I heard R was a good one.
My advice would be to start out and get good with Python and Java – they are two staple languages – there are others but focus on just these two languages first and get good at them before looking for more courses.
It’s important that you get good with these languages first and then that will open up other opportunities for you.
I don’t disagree that you don’t need a degree to be a programmer. However a CS degree would teach you what is “under the hood” when it comes to programming. This is where the separation between a “code monkey” that only knows calling APIs vs software engineers that knows how the API works and use them efficiently. As matter of fact, it is more than just programming, a solid CS program should teach you data structure, design patterns, algorithm just to name a few.
Hi Ben,
I agree the right CS degree can give you those skills. However you can now also obtain those skills in places other than from a CS degree – there is a lot of quality online courses for example that will teach just as well (if not better), in faster time, and for countries like Australia where you have to pay for education, at considerably less cost than a CS degree.
I am not suggesting that a CS degree is not valuable, just that there are other options to get to the same destination these days.
One negative thing about doing it yourself would be the need for you to find the right courses to study online, whereas a CS degree already has the syllabus defined. So there is some work needed if you are going down the DIY approach.
So whats the advantages of taking a programming or a course at Udemy because am one of ur students there….will it make one a better programmer or its just a stepping tool?
It will make you a better programmer and able to improve your career prospects – many students have gone on and obtained jobs after going through my courses.
I have taken your course and yes, you are an excellent teacher. I do not know your educational background; however, I am greatly disappointed in your downplay of the importance of a Computer Science degree. A Computer Scientist is more than a programmer, but an architect, designer, and scientist of computer software. Believe it or not, software development is a science. The difference between a Computer Scientist and a programmer is same difference between an Electrical Engineer and a technician. An Electrical Engineer designs the electrical components to solve a problem and a technician builds the electrical components from the design. A person with a Computer Science degree understands how to build software architectures and designs to solve problems and enhance lives. Computer Scientists are the architects of operating systems, secure computer networks, mobile and broadband networks, or even the IDE that the programmer uses. Computer Scientist architect/blueprint the software and programmers build the software, as when an Architect designs a house and a carpenter builds that house from the Architect’s design.
I have found that over the years, that Computer Scientists has done a huge disservice to their profession. They have allowed their profession to be watered-down to the point that software development is simply programming. Any self-taught wannabe sees themselves on the same level as a Computer Scientist, when they are simply self-trained amateurs. I have had many conversation with those types of people. No matter how good of a programmer they may be, they simple failed when you begin conversing about the science of software. Such things a efficiencies of various sorting algorithms, multi-threading designs, networking protocol designs, software to hardware interfaces, state machine algorithms, etc. always end in a blank stare. Understanding the mathematics, operations, and hardware interactions behind every line of code is what separates a Computer Scientists from a programmer.
Computer Scientist, working with IEEE and other professional computer science organization, need to take back the pride and meaning of their profession. Being a Computer Scientist is much more than simple programming.
And yes there are quality self-taught programers; but in my 35 years of being a Computer Scientists, I have found that most produce low-quality, unmaintainable, buggy code.
Software has surpassed hardware in importance. Software is in everything and everywhere. Software has become the critical piece of our society. We need Computer Scientists more than ever now. How would you feel if your medical Doctor or surgeon learned their skills from online courses? Or more to the point, wouldn’t you want the software that operates that medical device your surgeon uses to be designed by a Computer Science professional.
I have nothing against non-degreed individuals who work in the computer software profession. But let’s understand the difference and why those that want to be more than a programmer would spend the time and resources to become a Computer Scientist. My answer to the question would be, “do you want to be the architect or the technician/factory worker”? If you want to be architect and designer, then get a Computer Science degree.
Michael,
Thanks for taking the time to reply – I will have to disagree with you on this one – in general you do not have to go to University to obtain the skills you need.
Sounds like you have been in the industry nearly as long as me :slightly_smiling_face:
I’ve mentored/worked with many computer science graduates who were great but also many who were far from great – two students attending the same course do not necessarily come out with the same skills in my experience.
My point is a computer science degree at a university does not guarantee they will be better qualified for a position.
Of course I’ve met many self-taught programmers as well who produced code at a level you talk about.
I’ve found the skill set to be more about the individual and what they are prepared to put into their learning. As you no doubt know, there is always something else to learn in this game, you don’t reach a point where you stop learning.
As for the Doctor example, no I would not want a doctor who learned his/her craft online to operate on me.
But being a doctor is very much a hands-on thing where there is a need to learn working with real people (patients, doctors, etc).
Computer science does not need that necessarily. It can be taught online.
Again my point is going to university does not guarantee that you will be a a better programmer / designer / architect than someone who learned their skills another way.
Of course the other thing to mention is that online training is getting better and better – I can see a dramatic difference in the quality of content available today vs just a few years ago.
I am sure this will continue to improve over time.
Regards,
Tim
Hi,
I think we can all agree that skills and knowledge are considerably more important than a CS degree nowadays when it comes to getting a progamming job. But how exactly do you show others that you have the neccessary skills and knowledge, if you don’t have a degree? I know you can contribute to projects on websites such as GitHub, but would that be enough to convince your potential employer? Or maybe start your own projects? I know having had a programming job in the past is the best proof of your skills and knowledge, but then again if I were able to find a job I wouldn’t be reading this article would I? So what are the best ways in your opinion to show others that you have what it takes to be a programmer, despite not having a related degree or qualification?
Hi Ming,
Prospective employers want to see that you know what you are doing, so that you can be a productive member of their team as soon as possible.
So yes, absolutely, open source projects are a valid way to show this.
Another possibility might be volunteering for a non profit organisation, or doing some work on upwork where you might take less money for a project in exchange for them giving you a reference at the end of the project.
Things like this would help a lot!
Hi…Sir,
I found this article really inspirational & i also like your blog about be persistent. im glad to hear that Google, apple aren’t giving first preferences to skills and experience rather than how many degrees they hold.
I’m studying computer engineering in Canada. After I completed my 2 sem, I was just able to use PRINTLN in java😅. After taking you course now I’m able to make really good java application also got many compliments from my college instructor for doing well & it’s all because of you.
Again thanks to you also your team. keep doing this,I hope you will reach to your goal of teaching 1 million people very soon.
I’m so glad to hear you have benefited from the course and got value out of the blog post.
Well done on studying and applying the information to create your own programs. That’s great!
Regards
Tim
As a Vintage Geek and hiring Manager for close to 20 years before I switched to Teaching, I couldn’t have cared less if the applicant had a degree personally. It was about what they knew and what they had done, whether on their own or while gainfully employed. Upstarts often would complain about ‘How could they gain work experience if they couldn’t get hired?’
With tech that’s a non-issue IMHO. Whether you got experience building applications in various technologies on your own, or while employed, didn’t matter. It’s about showing proof of what you are capable off and demonstrating a passion to keep learning without me or someone else having to tell you to do it. That’s what I looked out for.
Now granted, some big corps have these silly mandatory gates and dragons you must meet to even be considered, but you don’t want to end up at a company like that anyway. From my personal experience if they scratch you off the list just because you don’t have a degree (regardless of if you have demonstrated a clear aptitude for the field), then you don’t want to work at a place like that anyway. You’ll just be a badge with a number.
Best of luck to you all.
Thanks for that, I totally agree – a piece of paper does not (necessarily) make someone a programmer.
Our thinking is the same with this!
Regards
Tim
Hi Tim!
I’m starting your “Java Programming Masterclass for Software Developers” course today. So far I’ve really enjoyed your videos, and I’m convinced I will enjoy them all.
I totally agree with your post, although I still want to go for a CS degree, because that is my dream, I really want it and I will work hard to get it! I’m 32 years old and I had an opportunity when I was 18~19, but I was too immature, and I was not persistent, I quit, and in the end I became an accountant (So boring). I was not even happy during my graduation ceremony, which was supposed to be the happiest day of my life.
However, I’m much more mature now and I know what I want (I felt totally identified with your video “‘Am I too old to learn coding?”). And I definitely want to be a programmer!
I intend to complete your great course, have fun and work hard along the way, and ONLY THEN, go for a CS degree. I actually think this is a recommended path for someone in my situation (or similar), as I might find it a lot less challenging than going for it without any programming experience.
I don’t want to finish my reply without saying THANK YOU for your wonderful work! Including your inspirational videos/blog posts.
I look forward to leave a rating for your Udemy course, writing to you about how you helped me to get a job as a java programmer. I will work hard to make it a reality!
Take care Tim,
Fernando.
Thanks so much for the kind words, it’s much appreciated. I’m glad to be able to help you.
I wish you all the success!
Regards,
Tim
Do You Need A College/University Degree To Get A Programming Job? • The Learn Programming Academy
atplolrfcod
[url=http://www.g25o0tf374e7xu3p15sa32scq8j10bd5s.org/]utplolrfcod[/url]
tplolrfcod http://www.g25o0tf374e7xu3p15sa32scq8j10bd5s.org/
Anodized Bronze
Bolt
Eas Anti Theft
Electronic Article Surveillance System
Hex Bolt
Electret Masterbatch
myreceiptmybusiness.com
Odsc Al2o3-Cu
Red Masterbatch
Blue Masterbatch
Eas Device
Sun Shade Net Black Green Gsm Sail Color
Anti-Hail Net for Farm and Industry
Knitted Mesh Anti Bird Netting
Fruit Tree Plastic Netting Hail Protection Anti-Hail Net
Rolling Chair For Home
Office Chairs For Heavy People
licom.co.jp
Office Chair For Tall Person
Armless Swivel Chair
Anti-Hail Net for Agriculture Grape Anti Hail Net
Rotating Office Chair