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!

Top comments (77)

Collapse
 
miguelmj profile image
MiguelMJ

What happens is that many, many people think that a CS degree is meant to make you a software developer.

Computer scientists and software developers are different things.

I too want to debunk a myth: You can't find everything on the Internet.
You can become a software developer if you invest the time to learn for yourself and there's nothing wrong with it. In fact, I admire those who do. But you can't become a Computer Scientist by yourself, because researchers want to be paid for their work, and there's a lot to Computer Science that you can only learn if you pay for it (be it in textbooks or formal education). There's more to CS than learning the foundational concepts, having a mentor and access to learning resources.

What happens is that, unfortunately, theoretic background is not very useful for most of daily jobs and not everyone that studies CS can be an investigator. The same happens with Mathematics; a lot of Math graduates end up as secondary level teachers, even though you can become one without such degree. For the same reason, almost every CS graduate end up as a software developer.

So, believe me. People who make heavy innovations in technology need higher education. I'm not talking about success (just look at Zuckerberg), but about heavy contributions to the state of technology itself: artificial intelligence, cryptography, computer architecture, programming language theory, etc

The point I want to make is: I agree with you. I believe that self taught developers have the same place as anyone in the industry. They should be recognized, paid for their work and have no complexes about their education. But it is important to clear the confusion around Computer Science, because it is also true that a lot of developers look down on graduates that have spent money, time and energy on a degree "when they could've just learn the same by themselves".

People that label CS degrees as useless just don't know what they are talking about. And, sadly, a lot of these people are disenchanted students, driven to the university by a misconception of what CS is.

Collapse
 
anfibiacreativa profile image
Natalia Venditto • Edited

Thank you for your elaborate comment!

First of all, I agree with you that nobody should look down on anyone else, for no reason. Degree, no degree, etc.

Maybe you can give me examples of what is provided in Universities to become a Computer Scientist, that you cannot access by other means. My thought is, that like in medicine, biochemistry, and other scientific research fields, etc, the most obvious is (privately and publicly funded) expensive equipment and subjects of study (usually humans).

Edit: ...the most obvious is (privately and publicly funded) expensive equipment and subjects of study (usually humans). As well as materials that are limited or restricted in availability. IE: if I will work in the development of an image assisted diagnose tool, and it involves ultrasound, I should need have enough knowledge of not only programming, but physics and chemistry and probably anatomy (which is also available online) and equipment to generate magentic fields, and subjects to test it on. The first three are online, while equipment and subjects are not. Also that kind of research demands for a legal framework and government authorizations.... I will obviously not get that as a private individual. But the programming skills, so computer skills.... Can I not get outside of a University?

But I am really happy to learn more.

PS: I just also want to clarify that, albeit unfinished, I have CS University Studies. And I basically have not gotten at the University anything I could not get by myself out there.

Collapse
 
miguelmj profile image
MiguelMJ

Take into account I didn't say that you can't access the knowledge by any other means. I said you can also buy the textbooks and learn from them. But this has two disadvantages difficult to overcome:

  • There's a lot of content and a lot of sources that complement each other, so the amount of time to review "the canon" would be disproportionate, and more if you try to keep it updated.
  • You can't prove theoretical knowledge like you do with practical knowledge. As a software developer, I can learn to program, work in projects to showcase, contribute to open source, etc. But the only way to make my theoretical knowledge recognizable is by passing examinations on the topic (and thus getting a degree).

So to answer your question, I'd say that what Universities provide is:

  • Curated content made by the University from the textbooks contents.
  • (In some cases, access to the research done by the professors).
  • Access to examinations that prove your theoretical knowledge.

Don't get me wrong, I won't say that the University system is definitive and perfect. There is a lot of things that the University should change, because they don't always do their work well, but that's another topic and something that the next generations have to sort out. Right now, this is what we have.

I hope I don't sound rude, it's not my intention. Thank you for making this conversation possible!

Thread Thread
 
anfibiacreativa profile image
Natalia Venditto • Edited

You are not being rude at all. You are expressing your opinion, and that's perfectly fine!

So I agree to this, because that was one of my points:
" There's a lot of content and a lot of sources that complement each other, so the amount of time to review "the canon" would be disproportionate, and more if you try to keep it updated.

And I say:
"... have access to a tutor or professor, to dissipate their doubts and help them apply the newly learned concepts
... do not need to spend personal time finding the right learning resources, since they're provided"

Which is another way to put it.

I am not very sure I agree with this part,

"You can't prove theoretical knowledge like you do with practical knowledge. As a software developer, I can learn to program, work in projects to showcase, contribute to open source, etc. But the only way to make my theoretical knowledge recognizable is by passing examinations on the topic (and thus getting a degree)."

because out of not having a CS degree, my way of demonstrating that I have knowledge, is practical and from experience. So I can reference many clients and projects that are in production, etc.

Of course, that is very difficult for other applications of computer science, since it will be extremely difficult to put a satellite in orbit without entry to a project, tools, the satellite, the thousands (millions!) of euros of fuel to launch it... So it is highly unlikely to get past the gate without a CS degree, and only via professional experience, there.

But maybe let's agree to this: web development is a part of software engineering, which is a part of computer sciences. Ergo, you absolutely can become a software developer without a degree, and if you put enough effort and dedication, you can be very successful.

For anything else, taking another path that is not the University, will be extremely hard.

Thread Thread
 
miguelmj profile image
MiguelMJ

Thanks, Natalia.
"because out of not having a CS degree, my way of demonstrating that I have knowledge, is practical and from experience. So I can reference many clients and projects that are in production, etc."
This is totally valid with software development. But not about theoretical knowledge that has no direct applications on the market and has interest only for research (this happens with a lot of mathematical knowledge). This is what I meant before with the difference between software development and computer science.

But, as you say, for software development that is not required. A degree doesn't magically improve your code quality, only experience and dedication. I totally agree with that. University might be the better path for a scientific career, but it is far from the best option to become a successful developer.

Thread Thread
 
anfibiacreativa profile image
Natalia Venditto

Thank you for the amazing conversation! I wish the internet was like this, all the time. 🤝

Thread Thread
 
miguelmj profile image
MiguelMJ

It's been really cool and nice. ¡Gracias!

Collapse
 
tracker1 profile image
Michael J. Ryan

Just want to say, you'd be surprised what kind of equipment you can access, learn and work with. I worked on elearning software for the better part of a decade. I had to learn about aerospace equipment well enough to create simulated training software that accurately reflected the interfaces in use since you don't necessarily want a bunch of students working on multi million dollar equipment attached to jet engines while learning.

I also have no formal education beyond squeaking by HS. What i do, however, is read voraciously on technical subjects and can usually gain a solid grasp quickly. I always found school mind numbingly slow and boring. I don't think I'd do well in a university setting, and don't look down on those that need that kind of structure laid out for them. It's just not me.

You'd also by surprised how much you can learn and forget over the course of a couple decades.

Thread Thread
 
anfibiacreativa profile image
Natalia Venditto

Thank you for your input, Michael! There are so many possibilities and experiences and points of view, as there are people. And they're all very valid.

But I am glad you shared your experience and it even involves expensive equipment.

Collapse
 
miguelmj profile image
MiguelMJ

Sorry for the long answer, it is just that I would like people to stop looking down at each other only because they don't understand what their actual differences and similarities are.

Collapse
 
anfibiacreativa profile image
Natalia Venditto

I wish everyone would be so engaged. So please, do not apologize!

Collapse
 
oliverarthur profile image
Oliver Arthur

The best explanation I have seen on this topic. 👏👏👏👏👏

Collapse
 
cseder profile image
Chris Sederqvist

@miguelmj :
I agree totally with what you're saying here. Finally. There is still hope...

Collapse
 
moseskarunia profile image
Moses Karunia • Edited

A lot of people often misunderstood

"being successful in CS without formal education"

with

"being successful in CS even though I'm lazy and not willing to learn seriously and you have to validate my opinion regardless".

Because it's easier to berate something else (like education institution) instead of their own self. You can always find something positive from everything (e.g. formal education makes it easier for people to recognize me, and self-taught makes me more agile in keeping up to the latest tech). Or we always try to succumb ourself to a negative aspect of everything. At the end, it's our point of view which matters the most.

And, the silver lining is always, not to take social media (especially twitter), rants seriously.

Collapse
 
anfibiacreativa profile image
Natalia Venditto

Definitely. This is why I make a point in "people successful in tech without a CS degree, are not lazy, and spent a great amount of hours in self-education"

It demands a huge effort to become successful in this industry, unless it is served to you in a silver platter, even if you DO have a degree.

As for the rants, absolutely, but there are a great amount of people looking for resources to educate themselves, in social media. And I am sure reading those insidious comments, is not very motivational.

Collapse
 
cseder profile image
Chris Sederqvist

Like I said in another answer, I don't think there is any correlation between the two.
You can drop out of high school and become a brilliant programmer, earning more than you can spend if you're creative, have awesome ideas and a fair share of good luck and timing.

But it would be very hard to be self taught if what you want to do is more computer science related, like artificial intelligence and everything under that large umbrella term.
I'm not saying it isn't possible, but there are a lot of pretty advanced math, that I personally would never be able to learn without a schedule, a great teacher / professor, class-room kinda setup with assignments and all the bad stuff.
Math is learned via repetition to begin with, until you develop a sense of intuitive understanding, and doing this on your own for advanced math in addition to learning everything else needed, like programming language(s), methodologies, best practices for various technologies like databases, developing and using APIs, efficient algorithms, various patterns if you will and the list goes on and on.
This sounds like a heck of a lot to do on your own.

But a great developer, coder, hacker if you like, sure, absolutely possible without math or a CS education. But not the computer science kinda engineer that many out there believes are all about learning some framework. It is not.

Thread Thread
 
anfibiacreativa profile image
Natalia Venditto • Edited

I think Chris we are saying the same, with different words. Through my article, I emphasise the need for hard work, whether you have the degree or not.

So we agree here that it is very difficult, yet not impossible.

I think we can even agree that holding a CS degree does not make an engineer a brilliant, successful engineer, either.

One thing that I certainly disagree with you in, if I correctly interpreted you, is that a self-taught/experienced developer does not care for scalability, best practices, and lifecycle of the software. That people stay "just a coder" after many developing software. I think you're completely dismissing the knowledge a professional acquires through experience and practice.

The gaps in the foundation can be (and usually are) covered and the hands-on experience is invaluable.

But again, it is just one opinion. I don't think this healthy debate is about trying to make others think like you or me. It is about exchanging point of views. The industry will continue to benefit from diversity in backgrounds. And everyone can add value.

Thread Thread
 
cseder profile image
Chris Sederqvist

If you think that is what I'm saying, then yes, you've misunderstood my actual message here.

I say that the mentioned practices can only be acquired through exactly what you say, experience.
Nobody can learn all different practices by themselves or through any school that I know of.
My point was also that, yes, you can be a brilliant developer without any CS degree, but if you're aiming for a more computer science related role, involving AI and the likes, you'll certainly have a hard time learning all the math, the actual programming, plus the various topics that one can only get from having experience from more than one company and for a significant amount of time.

In conclusion, yes, I also believe we're saying a lot of the same here, using different words and contexts.
Sorry for any misunderstanding caused by me not being clear enough, and for getting a bit on the "hot" side at times...

Thread Thread
 
anfibiacreativa profile image
Natalia Venditto

Thanks for clarifying! I had gotten you wrong! Have a great day!

Collapse
 
aminmansuri profile image
hidden_dude

I think loving programming is an important trait. If you hate it, it's going to be hard.

The rest is gravy.

Thread Thread
 
moseskarunia profile image
Moses Karunia

I hate programming, it's hard. Yet I still love it. LOL

Thread Thread
 
aminmansuri profile image
hidden_dude

Do cooler projects!

Collapse
 
cseder profile image
Chris Sederqvist

Sometimes, all you need is a good idea and a basic implementation. The rest is history!
(or pretty soon will be)... :)

Collapse
 
cseder profile image
Chris Sederqvist • Edited

@moseskarunia :
Hmm.. Quite a bit of philosophy and psychology crammed into those few sentences! That's a good way to look at it, actually!

Collapse
 
jwp profile image
John Peters • Edited

If a person doesn't have a degree and wants to pursue one, there are always ways to get it done. For example,
4 Years of Military service allows for GI Bill Benefits which can get your though college. That was my route and it served me well.

Collapse
 
anfibiacreativa profile image
Natalia Venditto

I like that you clarified 'often'. We know that not all, and I think it's always good to avoid generalizations.

Collapse
 
jwp profile image
John Peters

I changed my answer for your review Natalia.

Collapse
 
cseder profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Info Comment hidden by post author - thread only accessible via permalink
Chris Sederqvist

@jwp

"We all know a degree is just a piece of paper testifying to 4 years of mostly irrelevant material for today's IT needs"

If you plan on using any sort of AI driven technology, including but not limited to machine learning, computer vision and deep learning, how is it irrelevant "material" for "today's IT needs"?
Sounds like you don't really know what day it is.

You could easily learn linear algebra, probability and multivariate calculus in a weekend or, heck that's probably on Udemy, right? (Spoiler: Wrong)

"then learning to become a super fluent speaker of your favorite programming language"

First of all, you don't "speak" a programming language and secondly, one language no longer cuts it.

I thought I was old and outdated, but this reply was like time-travel to the early 90's.

Collapse
 
Sloan, the sloth mascot
Comment deleted
 
cseder profile image
Chris Sederqvist

If I say what I want to say at this point, I'd get banned, thrown out, call it whatever, so I'll leave it at that.
BTW, if I did report what you just said, so would you.

Thread Thread
 
jwp profile image
John Peters

If you don't have something nice to say, don't say it.

Thread Thread
 
cseder profile image
Chris Sederqvist

That was my point, basically.
You're telling me to "go take my meds, blah, blah", not very nice now is it?

My guess is that you know what you're talking about with regards to pharmacologic treatment ...
Judging from how you behave and look, this isn't something I personally would want to do, but thanks for being open about it.

Thread Thread
 
jwp profile image
John Peters

I replied to you in a less than nice way due to your original crass comments. I don't know much other than I'm glad you are not my boss.

Thread Thread
 
cseder profile image
Chris Sederqvist

At least, that is one thing in which we can both agree! 👍

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 • 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
 
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
 
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

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
 
jackmellis profile image
Jack

As a succesful, self taught, lead developer without a CS degree I can 100% say I don't feel like I've missed out on anything. It may have made it easier to land a first job, but once you're in, your knowledge experience and passion are far more important than any qualification

Collapse
 
anfibiacreativa profile image
Natalia Venditto

Absolutely. Thanks for commenting.

Collapse
 
tracker1 profile image
Michael J. Ryan • Edited

First, software development is usually practiced as a craft, not engineering. Most projects are about business logic, not hard engineering or CS.

Second, it's entirely possible to self study and learn outside a university environment.

Understanding many of the concepts behind software can help, but work that leans on them isn't the most common. Understanding why you might choose Cassandra or Redis or a SQL database for something doesn't mean you have to work in the DB source.

In the end, it's more about rigorous understanding of what the needs of the software are than it is any underlying issue specifically.

I've worked on many applications with fewer than a hundred users and those with hundreds of millions. And not everyone is prepared for that. My experience is many developers along their career paths will create an over engineered monstrosity at one point or another. And/or completely fail at usability issues while delivering the letter of a story.

The sheer hubris and arrogance of many educated developers who are so woke and enlightened irks me to no end.

Collapse
 
anfibiacreativa profile image
Natalia Venditto • Edited

You brought an important point. A lot of the success of being a developer has to do with understanding the needs of others: business, the users. And that, requires social skills, that you're hardly going to learn at the University. And probably, nowhere.

Collapse
 
cseder profile image
Chris Sederqvist • Edited

This would in most cases be the product manager and designer / product team's responsibility.
"the success of being a developer" has more to do with getting things to work in a most efficient, correct, scalable and easy to use manner, as fast as possible, but still avoiding the temptation to cut corners and don't follow best practices, as these will come back and bite you hard.

Thread Thread
 
tracker1 profile image
Michael J. Ryan

While it wouldn't necessarily be the Developer's responsibility... having empathy for the user will generally be necessary for the "easy to use" portion of your statement.

Thread Thread
 
cseder profile image
Chris Sederqvist

Sure, but if so, you still have to be able to connect those dots. That’s pretty much what it boils down to in the end.

Collapse
 
cseder profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Info Comment hidden by post author - thread only accessible via permalink
Chris Sederqvist

Hmm... This answer says... Absolutely nothing...

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 • 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
 
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

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

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
 
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.

Collapse
 
panditapan profile image
Pandita

Please remember that young immigrants have better chances at landing good jobs and improving their quality of life with university degrees (even better if there's no need to re-validate them), especially in South American countries. As a Venezuelan who's almost entire generation had to migrate, having a degree helps a lot!

Collapse
 
anfibiacreativa profile image
Natalia Venditto • Edited

Hi Pandita! Thanks for replying. Yes, like my post says also, having a CS degree is very helful to land a job, and it is probably more certain for immigrats...

But I think it is a totally different concern there. It is more like the degree helps you to successfully get your permit; does not guarantee you become a successful developer.

Collapse
 
panditapan profile image
Pandita

oh yeah, having a degree doesn't mean you're going to be the best developer, I had a teacher who was magna cum laude but wasn't able to keep a job, at least that's what the rumors said. Some of the best professionals out there haven't stepped one foot in a university.

But I do like reminding that a degree helps when you're trying to get a job out of your country because you never know when your home country is going to auto explode one day XD

Thread Thread
 
anfibiacreativa profile image
Natalia Venditto

Oh, thanks for taking care of those who follow our steps. I am also an immigrant. I hear you. 💜

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

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

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
 
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))

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