Code-learning paths - College vs Bootcamp vs Self-Taught
January 2021 - 9 minute read
The wealth of information, options, and potential pathways into development can be incredibly daunting and overwhelming for those just starting out. Picking the right path can seem like a huge challenge before you've even started learning how to code!
I think It’s really important to make an informed choice about your code-learning decisions. These are decisions that can have a direct financial impact and ultimately determine whether you acquire the skills needed to become an employable developer or not.
The most popular pathways
There are three popular code-learning pathways. They each have their pros and cons and It’s up to you to balance each and everyone one of them to decide which works best for you. The three main pathways are:
- College (usually computer science degree)
- Coding bootcamp
Before I continue, I'd just like to note that because you attend a bootcamp or decide to enroll in a computer science degree programme (or similar) this doesn’t mean that you won’t need to self-teach. The development space is constantly evolving and it’s moving incredibly fast (especially within the front end), there's so much to learn. Whatever path you decide to take you will inevitably need to get comfortable with self-teaching.
To degree, or not to degree
You're probably wondering whether you need a computer science degree to become a developer. In short, the answer is no. I don’t have one, I’m completely self-taught and I’ve worked on some really exciting projects with industry-leading brands including Google.
However, self-taught developers tend to maintain a bias toward the self-taught route because, well, that’s what they committed to. Equally, those that have computer science degrees can also be biased because likewise it’s something they've also committed to – and in this case a lot of time and money.
I don’t want to turn this into a computer science degree bashing article. I appreciate the work that goes into earning one. A computer science degree brings a host of benefits that bootcamps and self-teaching do not. Namely, a well defined and structured programme for learning, alongside a foundational knowledge of computer science concepts not just limited to programming. Having a computer science degree can also improve your chances of securing positions because of the extensive networking benefits that come with studying at college. Many programmes incorporate a year working in industry, so you end up graduating with a degree as well as a year of industry experience. But just because you’re studying for a computer science degree this doesn’t mean you won’t need to self-teach. In general, when people talk about self-teaching vs having a computer science degree, in reality, it’s self-teaching vs self-teaching plus a degree.
For most of my readers, I suspect enrolling in a computer science degree and finding the huge sums of cash to do this along with the 3/4 year time commitment is probably well and truly off the cards.
In that case, you’re left with a couple of options:
- Enroll in a bootcamp
- Teach yourself
There are some similarities between a bootcamp and a college degree (albeit not many). Namely, a defined course structure, along with a set start and end date. You’ll also be learning alongside other students with similar goals and abilities. Similarly, as with colleges, bootcamps frequently maintain relationships with businesses and partners. These relationships are useful for networking and job opportunities. The key difference between the two is the length of time the courses run for and the content covered.
Bootcamps typically run anywhere from a few weeks up to 6 months in length (with the average around ~14 weeks). They are generally sold as a fast track to development jobs and focus on an intense, accelerated learning experience. You’ll cover a huge range of topics and also pick up several languages, libraries, and frameworks. The bootcamp approach leans more toward ‘learn lots and acquire a broad but potentially shallow knowledge of many technologies and subjects'. Many bootcamps also build portfolio and interview support into their courses to help give students an edge when applying and searching for work. Unfortunately, bootcamps are also pricey and a course could set you back (on average) ~13,500 USD.
Attending a coding bootcamp doesn’t guarantee you a job after completion either. Maybe it did a few years ago, but bootcamps have proliferated in recent times and as a result, the competition for junior and entry-level developer positions is very high. Many aspiring coders will not have the funds available or be prepared to take on the financial commitments associated with degree programmes or bootcamps. In this case, your most realistic remaining option is to teach yourself.
Self-teaching - get ready for a challenging ride
I’ll be completely honest with you, self-teaching is the hardest route to take. You will need to dedicate yourself to some serious learning, you will need to build a strong portfolio and you’ll need to have a really good grasp of the technologies that you’re learning. You’re going to have to go that extra mile to ensure you stand out from other candidates applying for similar roles (of which many will have computer science degrees). It’s an unspoken truth, but being self-taught also implies that more will be expected from you than someone with a computer science degree.
A lot of industry voices have convinced many prospective coders that it's possible to teach yourself and land a job in only a couple of months, which I find a little disingenuous. Whilst I am saying that it is totally possible to teach yourself and land a job (I did it myself), I don't think it's achievable in a few months. I believe it's best to be prepared and well informed before deciding on something that can greatly impact your short and long term future. In my book, honesty is the best policy!
Teaching yourself is hard, very hard. Here’s a non-exhaustive list of reasons why it’s hard:
- You’re isolated learning on your own
- There’s no defined learning structure
- There’s no defined start and endpoint
- You’ll need to manage your own learning time
- You’ll need to find your own resources
- You’ll need to do your own networking
- Getting feedback is more of a challenge
If you’ve decided to self-teach then you might find this a little off-putting, but I truly believe being aware of these things will ultimately enable you to become more effective at addressing them (that is, if you still decide to go for it 😊 ). Of course, I also want you to acquire some useful information from this article so let’s discuss a few ways to tackle some of these issues.
Don’t become isolated
I fell into this trap pretty much from the outset and never really escaped. If you silo yourself and code alone you prevent yourself from new and crucial learning opportunities. Working as a professional developer is an incredibly collaborative and team-based process. You’ll not only be working and communicating with other developers but also, clients, product/project managers, designers, coaches, etc. Here are a few approaches to ensure you aren’t learning alone:
- Join a relevant Slack/Discord community
- Contribute to open source project(s)
- Attend coding meetups (online or in-person)
- Find a mentor
Take learning seriously
Teaching yourself how to code - more specifically, teaching yourself to code well enough to land a job - isn’t something that will happen in a few days, weeks, or even months. It’s going to take a lot of time and deliberate effort. Whatever your circumstances, you need to be able to set aside significant blocks of time to learn.
If you’re able to commit to learning full-time or nearly full-time, I’d encourage you to treat the code-learning process as if it were a full-time job, otherwise, you’ll slip into this weird situation where you feel like you’re on an extended holiday whilst learning some new things. There’s a strong correlation between how serious you take the process and your chances of succeeding.
Whatever learning resources and pathway you decide to follow, you will need a ton of discipline. When you’re not forced by something - such as a deadline or course completion date - it can be tough to stick with something. Setting yourself realistic and achievable daily and weekly goals can be a great way to manage the overwhelming nature of the code-learning experience.
Don’t be afraid of feedback
Don’t put off asking other developers for feedback on your projects and portfolios. If you never receive feedback how can you measure your own progress? Those learning via a degree programme or bootcamp will often have their work reviewed, whilst for self-learners, this isn't so easy.
Contributing to open source is a great way to counter this. Feedback on code you have written should be viewed as an opportunity to learn rather than an assault on your ego. I found that during my own code-learning process, once I started to work with other developers and contribute to open source my progress skyrocketed.
For those who struggle to learn without structure and guidance, you might find yourself best suited to either a degree course or bootcamp. If however, you've opted to take the self-taught route you’ll need to maintain high levels of motivation and be an incredibly disciplined individual (not that a degree programme or bootcamp doesn't require this, it's just intensified when self-teaching). For computer science and bootcamps graduates, you’ll still need to teach yourself things. Don’t think the process ends after your course finishes. A career as a developer is a career of learning.
Regardless of whether you decide to pursue a computer science degree, attend a bootcamp, or teach yourself, there are a few fundamental truths that underpin our chances of success. Namely, that the path you take will not matter if you don’t put in the work. As long as you put in the work, are consistent with your learning, and remain disciplined you will be able to meet with success.