O desenvolvedor de software autodidata: mito ou oportunidade?

The self-taught software developer: myth or opportunity?

Can anyone be a good developer without a computer science background? Yes, and they can be a great asset to your business.

Imagem em destaque

The Internet is filled with hundreds of courses, books, and guides on how to learn to code and become a software developer. Some go so far as to promise 6-figure salaries with a few months of training. This has led to many enthusiasts trying to break into the world of software development without fully understanding what they are getting into.

Let's get one thing straight: writing code is quite easy. Writing good code is a little more difficult but doable, but writing good code that turns into a stable, profitable, and maintainable product is another matter entirely. Add to the mix working alongside others, reviewing your code, and learning about tech culture and you'll quickly realize that a coding boot camp isn't enough.

The question is not whether self-taught developers can be useful for our company and our projects. Of course they can – talent doesn’t come from a computer science or engineering degree. Instead, it's more interesting to ask what we have to gain from hiring someone from outside these areas.

What makes a good software developer?

The crux of the issue at hand is simple: can a person become a good software developer on their own? And underlying this question is an even more fundamental one: what makes a good software developer?

One might be led to think in terms of coding ability. And although it is undeniable that knowing computer logic is an essential skill, the truth is that talent in programming is not the only quality you should look for in a developer .

In my experience, the best developers have two very different but important skill sets: communication skills and creative problem solving.

A software developer is a person who turns a vision into a digital product with the help of technology and other developers. From this perspective, we need the aforementioned skills to shape this vision, as well as an understanding of the tools of the trade (like a programming language) to make it happen.

Communication skills help us understand our customer's vision and help us convey that vision to the rest of our team. You'd be surprised how many projects are doomed to fail due to confusing requirements or isolated developers.

As for problem solving, knowledge does not guarantee a solution (although the more experience you have, the more likely you are to arrive at it). Knowledge is a tool, a way to facilitate the process of overcoming a task in question. Creativity is the act of aligning tools, knowledge, and problems in innovative ways to find solutions.

In other words, a good developer does not know every programming language out there, but can assess whether a given tool can solve a problem and, if not, show a willingness to learn and adapt to attack the problem from a new angle.

Is being self-taught enough?

Don’t get me wrong, knowing how technology works is essential in our industry. Even the most creative and communicative person will have difficulty meeting deadlines if they have to start from scratch. In that sense, yes, learning to write code and learning about computer/network architecture is extremely important.

Can a self-taught developer know all this? Yes, but there is a caveat. The total pool of self-taught developers is much larger and more variable than what you see in junior developers with degrees.

In other words, you are more likely to find a person with very little knowledge in the field if you choose a self-taught developer than if you choose a new candidate straight out of college. And to be fair, it's often not their fault.

Many people fall for scams and irresponsible courses that overpromise and underdeliver. They take some courses in Python or Frontend, create a beautiful web page as an assignment and are led to believe that this is enough to be successful in the field.

Unfortunately, this happens more than we'd like to admit, which is why we have safeguards in place like coding interviews (even though they're not the be-all and end-all) to catch potential candidates who don't have the necessary basic skills. .

But some self-taught developers don't stop there. They go a step further by creating multiple projects on their own, taking more courses, earning certificates from Amazon and Microsoft , and working with communities on open source projects. And little by little they delve deeper into the field of technology. This is the type of self-taught developer we should be looking for.

What self-taught developers bring to the table

Why should you take a look at the resume of a psychologist trying to break into the field? Or from a person who never attended college?

I think the key word here is diversity , both in terms of opening up paths for minorities and broadening the scope of our business. Let me explain.

Many self-taught developers are taking advantage of the fact that some of these courses are free on social media or very affordable. And we're talking about very talented people who otherwise wouldn't have enough resources to get a full computer science degree, even if they had the talent to do so.

On the other hand, people from outside the field bring with them new perspectives, especially if they have previous work experience. Software development, as a branch of engineering, is a fairly young field with a lot of room to grow and evolve.

One of the biggest risks of becoming an isolated community is losing contact with the rest of the world. While others are changing, adapting and developing new methodologies, we get used to our own, warts and all, and end up settling for what works rather than trying to improve things.

New perspectives question authority, shift paradigms and challenge assumptions. At this point, I always like to point out the fact that one of the most popular software programming paradigms, object-oriented programming, began as a model that attempted to emulate cellular life.

In other words, the reigning programming paradigm was not based on information theory, but rather on biology. If that's not a compelling case from an outsider's perspective, I don't know what is.

Broaden your horizons

If you've been rejecting candidates based on their college degrees or lack thereof, it might be time to start thinking about changing that paradigm . There are many incredibly creative talents waiting for an opportunity to grow and reshape the world of technology.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.