It’s true: software development roles don’t require a formal education. According to Apple CEO, Tim Cook, you don’t even need a college degree to be successful in the tech industry.
But just because you don’t need a degree, doesn’t mean it’s easy to become a software developer. Could you teach yourself? Sure you can, but it’s really, really difficult.
In this blog post, we’ll break down why it’s difficult to teach yourself to become a developer and steps you can take if you want to give this career a shot.
Disclaimer: our advice in this blog post will focus on full stack web development
Why it’s really hard to teach yourself how to code
Becoming a software developer as a total beginner takes a lot of time, practice, and patience. In addition to picking up a new technical trade, you’re also developing a different thinking style that is totally algorithmic.
Teaching yourself on top of a full time job will be extremely difficult, as you need to commit hours of time to learn how to code. You’ll also need some serious mental strength to remain focused and to consistently make time in your schedule. For contrast, even if you enrolled for a coding bootcamp as a true beginner, you’ll likely spend 70-90 hours a week learning to code.
As an estimate, it may take you 1-2 years of part time learning to teach yourself how to build a basic application or website. Which still won’t be enough to become a professional software developer.
Not to mention, learning to code can be very frustrating — no matter what level you’re at, or whether you’re teaching yourself or taking a course. Troubleshooting and bug fixing are important aspects of being a developer. You’ll also have access to all the programming education content out there. It will be difficult to know what’s essential and correct for a beginner (and what’s not). Without guidance, you’ll discover which is which the hard way: by spending hours tinkering with what you’re learning. It could be a painful process of trial and error.
It will be easier depending on your background: formal or personal
Your background could improve your chances of teaching yourself successfully. If you did a programming class in high school and have foundational knowledge, you might pick it up easier than someone completely new to tech. Friends or family in the tech space could also improve your odds of success. You’ll be more familiar with the software development field as a whole, and most importantly, you’ll have mentors to help keep you on the right learning path.
For the record, self-taught developers do exist
Although it’s difficult to teach yourself, there are a lot of self-taught software developers in the tech industry. Every year, StackOverflow surveys their developer community to learn more about them, and more than 30% of the professional developers on the platform don’t have an undergraduate degree in Computer Science/Engineering.
On the bright side, it’s hard but easier than ever
There’s an abundance of universities, bootcamps, and great content online that can help you to become a software developer, and we’re very lucky as 20 years ago these weren’t readily accessible options. While software development used to be niche, with only a few people who really knew what they were doing, these days there are many developers, content creators, and coding courses out there to help you learn.
Steps to Becoming A Software Developer
Ok, now that you know why it’s difficult to teach yourself, let’s cover some of the essentials in the journey to becoming a developer. Whether you choose to be self-taught or enroll in a course, here are our top pieces of advice based off your experience level.
Disclaimer: there are many paths to becoming a developer. We’ll be focusing on web development as your entry point.
Advice For True Beginners
Consider looking at introductory programs, attending a bootcamp, or even attending a workshop at a community college to see if it’s for you. Also check out Code Academy courses and youtube tutorials as a potential starting point.
To recap, here are the technologies to learn and in this order:
Going Beyond Beginner
Time to get into ‘real’ programming as many developers say. It’s time to pick-up a back-end programming language. We recommend any of the below:
- Python ← most beginner friendly
With this back-end language, your goal will be to master the below concepts. These are the fundamental building blocks of programming.
A fun way to pick-up a back-end language is to try to build a small game. If you do some googling, you’ll find a lot of fun ideas to practice these fundamentals.
Advice for the Intermediate Stage
One of your main goals here should be to build a full stack application by yourself. You should connect the front-end that you built in HTML and CSS with a back-end server side language, and connecting that to a database. It will also be beneficial for you to pick up a textbook to dig deeper into a back-end language. Then take this learning and apply more complex programming logic to your application.
If you can build a full stack application, we think you’re in good shape to consider software development as a full-time career.
Features you could build:
- Build a chat feature on your web application
- Create a login process for the users
Going Pro — Master the Technical Interview
Our best piece of advice is to grab a copy of Cracking the Coding Interview and to master the fundamentals taught in this book. This book is essentially an industry-standard in technical interview prep for software engineering roles. It’s highly effective, popular, and used by education providers across the board — from universities to vloggers on YouTube.
This piece of advice may seem underwhelming, but the technical interview is often the most important step in software developer interview process. And this book is one of the top resources out there.
So make sure you have a portfolio of work to show and you’re ready to ace your technical interview.
Final Words of Advice
Becoming a software developer is easier said than done. We’ve only scratched the surface of what you’ll need to learn, but at least you have the essentials in front of you now. Good luck in your studying!
Also consider the following as our final words of advice:
- Find a mentor on LinkedIn or through your personal connections
- Join meet-ups, meet other like-minded aspiring developers
- Don’t underestimate the power of asking for help. Developers love to code and love to help others in the field!