DEV Community

Natalia Venditto for This is Learning

Posted on

Can you become a successful software developer without a CS degree? My opinion

Last week I read a few tweets that really caught my attention. Most of them targeted the 'anti-academia' movement.

It is not the first time I read some people are anything between skeptical to angry about those who say that you can have a successful career in tech without a CS degree, but these concrete tweets caught my attention because I never knew this particular 'anti-academia' movement existed, and I still have not come across a statement such as 'You should never go to the University!'.

Although maybe such statements exist and are public out there even as tweets, they never reached me in my feed. Or I never read them.

What I have read, unfortunately, are snark comments and dismissive remarks, ridiculing people who work in the tech industry without a CS degree, and saying things like "you can do websites, but cannot work on more complex stuff, like diagnose and disease detection software", or even remarks like "yeah, next thing is becoming a doctor without a CS degree. pffft!"

As a successful software architect without a CS degree, I finally felt like it was a good time to share my opinion.

After all, I have more than once encouraged people to transition from a different career background or no career background at all, to find new opportunities as developers. Just thinking that they may discouraged by a (sometimes) more privileged group of people for making a late-career choice, or for being unable to afford university education and deciding to get there following a different path, is heartbreaking to me.

Debunking some myths

First of all, I want to put things into perspective. People who become successful in tech, without a CS degree, are usually far from less intelligent, or too lazy to put the effort.

People who become successful in tech without a CS degree, usually

  • but not always, have completed university education in another field
  • always have spent an exponentially greater amount of time in self-teaching, including using online available resources and contributing to open-source communities, than those who do have a degree, before they get their first role in tech

People who have not attained a CS degree, but still have become successful in tech usually

  • but not always, have had to postpone or drop their education because of financial, health-related, or other personal reasons
  • but not always, would've loved and would still love to complete their education, even when they're consolidated professionals

I would say that in 90% of the cases if they would be given the chance, they would attempt at completing their university education and getting a CS degree, which is incompatible with being part of an 'anti-academia' movement.

How is it better to have a computer sciences degree than not?

Let me elaborate my opinion. People who do have a university degree in computer sciences, while still studying, usually

  • learn foundational or low-level concepts in a structured way, which is very important to understand high-level concepts
  • but not always, have access to a tutor or professor, to dissipate their doubts and help them apply the newly learned concepts
  • but not always, do not need to spend personal time finding the right learning resources, since they're provided

Also once they've attained their degree, they usually

  • almost always have more opportunities to be hired, since lots of companies have it as a hard-requirement
  • always are less prone to be immediately discarded by recruiters, upon sending their CV, for not meeting this particular requirement
  • almost always have more career progression opportunities
  • but not always, are paid more than their counterparts that do exactly the same job, but do not have the CS degree

Can we compare studying to be a doctor to studying to be a software engineer?

No. And why?

One of my siblings is a doctor, so my opinions are shaped by my experience of living with her, as she was studying. In Uruguay people don't go to Campuses. They stay home while they study, especially if they live in the capital city, Montevideo.

Let's talk about sources

The source of anatomy and pathologies knowledge for doctors, historically and from centuries, has always been actual, real, living and dead human bodies. I will not share details on how those doctors close to me dissected human parts on the same table I was having my meals. Well, ok, I guess that's enough detail. And yes, that happened. Those body-parts, unique and ultimate source of knowledge to understand anatomy and pathologies, were obviously provisioned by the university.

Let me begin by sharing with you my opinion that probably the doctors you would like being diagnosed and treated by if you had anything serious, are the ones that have the most amount of clinic practice and not those that are university professors, and rely almost only on theoretical knowledge.

Clinic practice is obviously not something you can teach on youtube. It would be unethical because you would have to disclose private information about a human being. It is unlikely anyone wants to visit a doctor that streams on Twitch as they perform you a colonoscopy or explores your naked body.

I know there are a couple of reality shows that feature this, but it is a very extreme exception.

Unlike the act of exploring a human patient, diagnosing them and treating them (which by the way also involves laboratories for analysis with expensive equipment not available to doctors at home while they Twitch, and prescriptions of law regulated medicines), building and diagnosing computer systems and programs in front of everyone else is a lot simpler, cheaper, and ethically acceptable.

Do I think a person could become a good, self-trained doctor if all the bibliography used by doctors was open-sourced, made available from online repositories, and doctors live-streamed their practice with patients (and body-parts) and people put the same amount of time they sometimes put to become developers? Possibly. But my guess is that, because of the ethical implications and obvious other legal issues, that will never happen.

However, even the most obscure and in-depth details about computer sciences, are available to everyone online, already.

Conclusion or tl;dr

Should you study at the University to learn computer sciences and get a degree? My humble opinion is that, if you can afford it, money-wise and time-wise, is: YES! Go for it!

But if you did not have the chance, or don't see that chance for you in the future, should you desist from the dream of being a successful, self-taught software developer? The answer is: NO! Go for it!

Latest comments (77)

Collapse
 
udeshgn08 profile image
UdeshkumarGanesan • Edited

Of course, it is possible to become better developer in web development even without CS Degree because web design is related to media and art, creativity is enough, really. But, that kind of mind set won't be successfull if some one wants to become Java Developer without degree, if someone wants to develop graphical software application for fields like space engineering, aeronautic engineering. It will rip them into pieces, if they have similar mind-set, I mean firstly won't even get hired in such fields.

Let me tell you a funny thing about me, I partially know C and C++ for almost 12 years and still learning. I begin to learn languages HTML, CSS, JS just few months ago and now I can feel I am able to design pages like pro. Like you said plenty of resources available and it's the coolest stuff to develop. There are some things that we can actually do in computer science without schooling, but most part of work in CS, need a strong foundation, honestly.

And, if we look back the history of computer science Internet is a giant technical thing and that web design is just one tiny part of Internet. The reason why I mention about web development here is because the large part of group of people are from there, who constantly keep on saying do not go to college. I would advise them please stop playing with others life/vision. Try thinking about a project aimed to clean the polluted part of internet, as the complexity increases you will know why strong education is still needed))

Collapse
 
cseder profile image
Chris Sederqvist

In don't want to re-ignite the fumes of this fire, but I feel that you're getting some important points through, although I also feel that much of this is now debated to the point where it simply isn't more to say.

All I wanted to convey (even though I get a bit carried away at times) is that a CS degree would give you, if nothing else, some really important math skills that would be pretty hard to acquire if not forced upon you, unless you have a special aptitude for learning advanced math concepts on your spare time, in addition to all the other stuff you need to learn if you're going to pursue a more "data science" related position, as this math is absolutely required in that area of work.

Collapse
 
northbear profile image
northbear

As for me, The first question should be what do you mean by saying "being a successful developer"?
Do you mean having a decent salary without a degree? Sure, There is a lot of examples. For instance, Bill Gates is one of those guys. And by the way, he wasn't a great programmer.
Do you mean it is respect from your colleagues? Most creators of the first computers Atari, Commodore, and so on mostly had no any degree in CS. But No doubt there are very respectful guys. And so on...
If you are enthusiastic, love to learn, and share your knowledge, becoming successful it will be a point of the time. The CS degree may help you. And may not...

Collapse
 
anfibiacreativa profile image
Natalia Venditto This is Learning

Thank you for commenting. I think being a successful professional, at least for me, means that you (and two points you mention)

  • are able to perform at the same capacity and get the job done
  • can aspire to equal pay for doing the same job
  • are respected and trusted by your colleagues
  • are respected and trusted by management and clients
  • can benefit from identical career progression opportunities

just as those who do have the CS degree. Of course, not all organizations will provide that. But usually the organizations that treat professionals with experience and without a degree like second class, also treat their juniors as less. It is all about the culture.

I still want to stress that at entry level the degree will definitely help, especially to land a first job, and will give professionals a baseline and important foundations, that otherwise they will have to work very hard and sacrifice a lot of personal and leisure time to attain.

After a certain point, professionals with and without degrees will level out, providing they have the same amount of experience, and again, opportunities.

Collapse
 
cseder profile image
Chris Sederqvist • Edited

I'll give you my own experience regarding this exact question.

Just a little Background Info

I've worked as both a systems engineer on the networking and server / hardware side, where one generally don't needing much programming knowledge, but certainly is an area where the blurry line between "scripting" and "programming" is often encountered.
I've also worked many years as a "generalist" kind of developer, where I've done everything from systems related programming in C to developing UIs in MS C#/.Net and most of the stuff between, including general MVC-style application programming in C++, Python and C#.

I've worked with teams of developers that primarily had university-level CS education as a base (as this was a requirement) and some (if not most) also had Masters Degrees in their chosen area of expertise, like database technology, application design etc, at least some sort of post-graduate / Bachelors degree specialization.

Me personally have been through the base part of the mentioned formal education for a Bachelors Degree level, in general "Information Technology" as it was called back then (maybe still is), but nothing to write home about in terms of software development and programming languages, methodologies or other concrete areas that one needs to survive as a developer today.

Now, what was I saying?

As already mentioned by others, the distinction between "Computer Scientist" and "Software Developer" is an important distinction to make early on.

I'd go so far as to say (putting on my flame-suit) that YES, you can become a brilliant developer, without doubt, even become an excellent "developer" without any formal CS education, given that you have aptitude for learning.

I've met a few through the 20 years or so in the industry that blew my mind, and they had no formal education, barely finished high-school, some didn't even bother doing that, as they were too deep into learning "the important stuff" (programming) already.

BUT I don't believe that becoming a successful "Computer Scientist", like those who makes advanced AI solutions using Machine Learning, Computer Vision, Deep Learning and those things that belong under the large AI umbrella, is possible for MOST PEOPLE. But there are a few exceptions to any rule, right?

Why do I think so? What are the exceptions?
This can be answered using ONE word: "MATH".

Unless you have spent most of the time you didn't go to college / university learning
advanced linear algebra, probability, multivariate calculus, optimization and few other topics, you'll have a hard time learning both the huge amount of math required to create solutions that uses any form of AI, in addition to all that goes into the field of good software engineering.

Also I'm a firm believer in that no correlation exists between using a framework and actually understanding the technology.

So, the one-liner is:
It depends on what you want to develop.

Collapse
 
anfibiacreativa profile image
Natalia Venditto This is Learning • Edited

Thanks for sharing your in-depth opinion! My next question would be...is university education, in your opinion, the only valid source of maths/physics knowledge? Excluding the fact that it will provide it in a structured way and for sure pre-select what is relevant, offer you a professor to guide you, etc, which has already been established, I would not say so. Most of the fundaments have been public domain for millennia.

Also...what of people that have incomplete university education, so credits for those areas but no degree?

Collapse
 
cseder profile image
Chris Sederqvist

I've tried to answer some of that in other parts of this thread.
These are important things you're asking, and I'm amazed by how easy people seem to think it is to develop real world software that actually does something more than satisfy a need for entertainment.
We are becoming more and more dependent on quality software as years go by, yet, many think that getting something to run is the same as getting something that keeps running for years and is built on a solid foundation of modular components and well tested for both bugs, scalability and changes in external technology that most systems depend upon.
This IS a deep subject. Developing software is deep s*it knowledge if you want to get it right.
There IS a reason for the Masters Degrees people take in software design and software architecture.

A coder is not the same as an engineer, no more than a driver of a sports car is a mechanical engineer or even a mechanic!

Collapse
 
bataknesia profile image
Sanggam Situmorang

like it

parpinign.xyz

Collapse
 
cemkaanguru profile image
cem kaan kosali • Edited

I studied Geologilical Engineering 🌍 but I quit, because I was working in an 🖀 ISP and interested in internet.
It's been 20 years now I am 45 years old. 👴🏾
Last 20 years I designed software from ground to up. I am living with big-O notation. I can sense O(n2) even before a bottleneck. But they still compare me with 23 years old software engineers. I feel like I will cry most of times.

Computer science is the study of algorithmic processes, computational machines and computation itself. As a discipline, computer science spans a range of topics from theoretical studies of algorithms, computation and information to the practical issues of implementing computational systems in hardware and software.


check two links to compare

Web Skills
andreasbm.github.io/web-skills/

Computer Science
london.ac.uk/courses/computer-science

Collapse
 
cseder profile image
Chris Sederqvist

Rest assured, you knowing what those fundemental building blocks of algorithmic efficiency is all about and why is still going to seperate you into a different league.
This is (and will still be for many years to come) what makes great software great.

Collapse
 
anfibiacreativa profile image
Natalia Venditto This is Learning

Keep it up! What is really important is that you know you are an expert. Their opinion... is their problem . Usually that kind of rudeness is about them, and not you.

Collapse
 
dmcdivitt profile image
dmcdivitt

Having no degrees and successful in many ways, I want to say academia provides an important need in society for research, tradition, formality, and focus not otherwise possible. If a person has the opportunity to attend, please do that. Not having the opportunity, or simply not having the guidance at that time in life, requires greater resourcefulness later. I feel a stigma for not having a degree, though Peter Jennings and Bill Gates lack that. With talent, intelligence, and knowledge of one's own capability, allow any dismissive attitudes simply say to avoid those people and work in a happier environment. Build a resume through contract work which works just as well as a degree.

Collapse
 
cseder profile image
Chris Sederqvist

I'd go for the CS education for anything that could potentially affect the lives and health of others, directly or indirectly.

In today's society, that is pretty much everything, like medical equipment, technology assisted controllers in cars, engines, airplanes, satellites, boats, cranes, trains, traffic management systems, phones, pacemakers, yeah, a few things.
Basically, almost anything that is NOT a GAME or some kind of entertainment related stuff.

Collapse
 
anfibiacreativa profile image
Natalia Venditto This is Learning

Thank you for contibuting with your experience!

Collapse
 
donynuransyah11 profile image
Dony Nuransyah

based on my experience if we're not have any degree in Computer science then we will stuck in senior dev or tech leader level but won't gonna be VP or C level except we own the company , so just built our own company and we can be anything we want😅

Collapse
 
cseder profile image
Chris Sederqvist

Personally, I've never met an owner of a company or a VP that had anything to do with application development what so ever.
Usually they're from business schools and have the primary goal of increasing revenue, not produce, let alone create good software.

Collapse
 
anfibiacreativa profile image
Natalia Venditto This is Learning

Hi! Unfortunate that this is your experience. I am at Director level already at a very large company. And know people at C-level without a CS degree, too. We all have 2 decades or more of experience, of course.

To name a few notorious VPs of Engineering without a CS, you got David Brunelle, VP of Eng at Starbucks and Sarah Drasner VP of Eng at Netlify.

So, no. It is not so.

Collapse
 
aminmansuri profile image
hidden_dude

3 of the best developers I've ever met didn't have a CS degree: one was a lawyer, the other had a degree in English, and the other in Philosophy.

So it's definitely possible to be a great developer without a CS degree.

But I also think my CS degree gave me many advantages. But it's also because I was very curious and took as many CS classes as possible (I've know people that take the least amount of CS classes as possible).

So your mileage may vary.

I also agree that it doesn't teach you everything you need. In fact, it only gets you started. A lot of what I needed to be successful I learned through experience.

Collapse
 
cseder profile image
Chris Sederqvist

Do you have any examples that illustrates what you're saying?
Like maybe a link to some software that those "3 best developers you've met" have created, maybe even a source control link of any kind that could be a source of inspiration to all those who have wasted their money on a good education? ;)

Collapse
 
aminmansuri profile image
hidden_dude

Also, I'd say that most of the good software development and engineering techniques that people accumulate over the years is rarely covered in depth in CS programs (in the US at least). Most of what I learned was through other books and learning from others.

CS gives a good foundation. But much more study is needed beyond what a Bachelors or a Master's Degree teaches.

Thread Thread
 
cseder profile image
Chris Sederqvist • Edited

"most of the good software development and engineering techniques that people accumulate over the years is rarely covered in depth in CS programs"

This is very true.
These are moving targets, and different practices are used at different companies.
This is a set of skills that can only be learned through years of experience.

Collapse
 
aminmansuri profile image
hidden_dude • Edited

This was many years ago, I have no idea if they've ever done open source.

I didn't say a CS education was a waste of money.

I also didn't say these people didn't have an education. They just had educations in other fields.

2 of them were absolutely brilliant programmers that don't shy away from anything technical. One of has moved onto Machine Learning these days. They must have taught themselves about a lot of this stuff or taken courses about it. I don't know.

The other, shined by his ability to understand customer needs, explain his designs clearly to the team, and then implement them. He was very good at delivering and delivering quality. And being an outstanding part of a very large team and had great people skills. (His degree was law, and he learned how to program with a 1 year program)

As in any field, formal education will always help you (as it has helped me). But there are people who self-learn very well as well.

I don't discount someone because their degree was something other than CS. In the end experience, skill, hunger for learning is great.

I've met some Physicists that were great developers or testers as well.

Being smart, being hungry for knowledge, and dedicated to your craft can always get you places.

Elon Musk, for example, doesn't have a business degree or an Aerospace degree, nor a mechanical engineering degree.

Thread Thread
 
cseder profile image
Chris Sederqvist

I'm sorry, but this does, quite frankly "not compute". It just isn't believable in my world at least:

"The other, shined by his ability to understand customer needs, explain his designs clearly to the team, and then implement them"
"being an outstanding part of a very large team"
"he learned how to program with a 1 year program"
"I've met some Physicists that were ... great testers as well."
Enter fullscreen mode Exit fullscreen mode

Who would get a physicist to do software testing in the first place?

Meet Our New ... tester!

One Good Tester

Thread Thread
 
aminmansuri profile image
hidden_dude

That's fine. I don't need you to believe me.

fyi.. at the end of the 90s many people were flocking to the tech sector to ride the .com wave. The company I worked for loved physicists, and physicists were happy to get more money and get out of academia. We even got some PhDs.

Collapse
 
oskang09 profile image
NG SZE CHEN

My own is a self-taught developer start when secondary school, so i have thinking about should i take a cs degree. Firstly i didn't want to take because of time-wise & money-wise so in the end i only taken Diploma IT in Malaysia. So what i think at last i will prefer people go with a cs degree if you have time & money to do because there always some basic / some learning path u would possible miss out or some good experience from your lecturer. Most important there the "development basement" of your development career.

But there some issues on Malaysia Education also. Subject not an issues, whats the issues was the lecturer is inexperience and wrong educated. What i meet at my diploma was the lecturer is teaching Java wrong, but at last lecturer has said sorry to us about this because of inexperience so for me i may feel it's okay, but from experience my other friends is going to degree, even though lecturer is wrongly teached but still said they were always true, because they are lecturer.

This is my personally opinion, so for other malaysian if have different outcome / opinion about education can sharing with me though.

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more