DEV Community

Julia Torrejón
Julia Torrejón

Posted on

What are the main benefits of being a self-taught developer compared to being educated with a degree and mentoring?

According to a Stack Overflow Developer Survey:

Two out of three developers are self-taught - Many developers don’t have computer science degrees.

Self-taught developers dominate technology: 69% of the developers who responded to the survey are at least partly self-taught, and fewer than half hold a formal degree in computer science. In a trend spreading to other fields, many are choosing ways to learn that offer everything but a degree: online courses, bootcamps, on-the job training, and collaborating with peers.

Top comments (8)

Collapse
 
ben profile image
Ben Halpern

A couple benefits IMO:

  • You bring a different perspective than "classically trained" software developers/computer scientists. E.g. By definition you can offer more variation in experience.
  • Unless you were literally doing nothing in your life, you have different applicable skills gained when CS folks were busy learning CS. Maybe you studied economics, psychology, philosophy, basket weaving, whatever. It's another skill CS folks missed out on.

Not that people with traditional backgrounds don't have certain advantages, but in a world of tradeoffs, us self-taught folks come out on top in certain ways. 🙂

Collapse
 
scott_yeatts profile image
Scott Yeatts

I'm an odd duck (at least I feel like one :D)

I started learning how to code in the early-mid 90's. Nothing fancy, just BASIC and graphing calculators. I got really fascinated with web sites and building things with HTML (JavaScript and CSS came later).

Fast forward a few years and I've gotten 'pretty good' according to back then me. At the time and in the economy that I grew up in, if you told people you wanted to write code as a job, they laughed at you and told you to get a real job (like at the factory, or on a farm, or in a call center). So I bounced from job to job for a while and finally joined the US Army.

Long story short, I ended up in a headquarters building instead of on the field like the other grunts, and they figured out I knew how to code (in addition to my other duties), so I took over customizing some Sharepoint sites (IE: Actual template and code level changes, using libraries to make customize online calendars and things like that). I felt like a super-hacker, but it was cringe-level code when I look back at it. It was the first time I got paid to code and I never looked back :D

After the Army I used the GI Bill to go to school for CS, while working part-to-full-time as a software engineer. The first couple of years in school were amazing for me. Data Structures, Advanced Web, even intro to programming helped me pick up skills that I didn't know I didn't know (I had an Associate's Degree going in, so I mainly took Major classes and started out, I think, as a high-credit Sophomore).

Then we got into Operating Systems and a few other classes, and the further I went the less it had to do with actually implementing code, and more and more into abstract theory about computers, which is valuable and necessary education in order to push our technology further and further, but I was in my early 30's with a family. I had been writing code in one form or another for 20 years, and I wasn't looking to get a Master's degree or a PhD, I just wanted to write good code and have fun doing it!

I dropped out as a Senior, because I got a steady full-time job. I kept saying I was going to find time to go back, but working on a team with a good mix of people pushed me further than my classes ever would have.

Ultimately, I think if someone wants to code, and enjoys it, they end up self-taught and consider college (or college equivalents) as a supplement to fill-in the gaps in their knowledge.

If someone sees coding as an economic choice (It's a high-paying field/solid career choice) they end up learning to code in college. There's no value-judgement in that, I just think it's two roads to the same place.

The fact that self-taught is a viable option in a career like software engineering is an AMAZING thing that will probably only be an option for another twenty or thirty years (If we're lucky), but for my part I'm glad to be a part of it :D

Collapse
 
simonhaisz profile image
simonhaisz • Edited

Please note that my answer has the bias of me being a traditionally educated CS person who mostly works with people of the same sort of background.

The main benefit that I've seen is around efficiency - both of time and money. Everything you could want to learn in our field is freely available somewhere and often in a format that is easy to consume. If you know what you want to learn, and if you have the discipline to learn it on your own time properly then you can be in a position to apply that knowledge in a job significantly sooner than an equivalent college or university education would provide.

Those ifs are important. Depending on the type of person you are, how your learn, etc. it could be that you are not well set to be an independent learner at this stage. In which case maybe you flounder around for a while and end up in the same place at the save time as if your had went to school - but without the same student debt. Since I know there are a lot of Americans on this site I know that in of itself can be a huge bonus. I live in the 51st state so I have a different perspective on that.

I suppose another benefit is around continual self learning. Because of how fast technology moves, it's often said that anything older than 5 years ago on your resume is irrelevant. If you've been teaching yourself from the get go it likely you'll find it easier starting up to date.

Collapse
 
mcastagnasso profile image
Mauro

Being self-taught might indicate you are curious, pragmatical, like hands-on experience and willing to learn new things on your own.

In my experience, both approaches complement each other. A formal degree will expose you to fields of study you may not be interested per se or do not know they exist, but could expand your understanding and knowledge. For example, engineering or math courses that are not a must to be a software developer, but would help you to be more prepared and have more tools to solve problems.

At the end, it's all about continuously learning and enjoying the journey.

Collapse
 
kspeakman profile image
Kasey Speakman

Currently our field is young enough to still experience significant growth spurts. It takes time to develop and validate college curricula, and growing this fast might mean they are outdated by the time they enter the classroom. Even if you get a degree, I think some amount of self-teaching is unavoidable. So it is less about self-taught vs degree and more about how much is self-taught. (For those who have a choice.) Either way, a mentor's guidance can further accelerate learning.

Collapse
 
bgadrian profile image
Adrian B.G. • Edited

Hmm, I think that the ability to stay up to date and keep learning is more developed? Because you are not used to someone else pooring knowledge in your head.

Another one could be a tendency to pragmatism and business solutions, rather then CS perfection and beauty, but it is just a stretch.

Other than this let me disproof others

  • Students can also have real project experience
  • Usually self taughts did not join the CS space while when they were students, so they usually do not have X years of experience where students have X years of school.

A big lack of self taught, that few ppl are mentioning it is the network. From the university you start your career with already a few dozens or hundreds peers you already know, and probably will follow the same career. Having a network is priceless.

I am a breed of both, did informatics economics batchelor, but CS is mostly self taught. I did not learned or care much about it when I was a student.

I can say that depending on the career, the lack of a CS backgroind can byte your ass, or not. As Im making a carreer shift now, I had to learn basic and advanced CS after 10yrs of development in which I never need it.

Collapse
 
rhymes profile image
rhymes

I don't have a college degree so I don't know how it would be if I had one (other than more points of visa applications I guess).

The main benefit of being self taught is, in my case, having imposter syndrome towards those with higher education which as a side effect clips my ego which is a benefit after all :-D

Seriously speaking: I don't really know. The fact that the degree is not required by law to exercise the profession means that I have seen genius software developers with philosophy degrees and "meh" software developers with CS degrees. I have seen "meh" software developers that were hastily self taught and great developers with CS degrees. That doesn't meant that "meh" can't become good or great, it just takes time and... self learning or going back to school to get that piece of paper :-P

Collapse
 
vijaykhatri96 profile image
Vijay Singh Khatri

The very first important thing, you will know that how an algorithm works and how logic you need to create logic.

A Clear Observation is if you are not happy with coding then you cannot write a code with the best execution, it can be you will able to write but the logic is not correct, Maybe the execution of code is wrong.

One of my college friends(ManishFartiyal) is now in IBM and a self-taught developer and I don't think that in my class anyone better than Manish. Every time when I see him in our class he is trying to do anything with the code and now he is the best coder from our class. So the clear thing if you are writing a code with the happiness you will get the best output if without happiness then you are wasting your time.

Read this article:

dzone.com/articles/how-to-become-a...