If you've followed me for a while, you'll know that I'm trying to learn Web Development using the self-taught route. I'm using the Scrimba Front End Developer Career Path. In this post, I will talk about the three different ways of getting into a tech career, their advantages and disadvantages and the different aspects they offer. This will also be the start of a new series of blog posts going down the Self-taught route and what pitfalls to avoid and how to make the most of it.
If you want to succeed you should strike out on new paths, rather than travel the worn paths of accepted success.
John D. Rockefeller
In the tech industry, there are three paths to getting a job: The Traditional Path, the Modern Path and the Lonely Path. I will go into detail about all three routes in a minute, but first, let's look at why there are three routes in the first place.
Originally, there was always (pretty much) only ever one route into the tech industry: University degrees. When computers first emerged from the Second World War, they were built mechanically and took up an entire room (or even a building). Memory was measured in bytes, and "code" was entered by highly skilled operators. You'd have to wait hours for the computer to process your code, and when you got the results back, you'd have to fix any errors you'd made and start all over again. At the time, the main way into the tech industry was with an Electrical Engineers Degree or something related (maybe if you'd used computers in the armed forces, you may get in without the degree), but on the whole, it was one way in. There are stories of people who managed to teach themselves coding (the early version of coding, where you had to read and write machine code and lay out your "code" in punch cards or switches). Much later, in the 70s, it was possible to get into tech without a degree, but you'd have to make a name for yourself, and it was still accepted that you needed a degree in CS or Electrical engineering. Again, some outliers managed to change the way we compute today by just being complete nerds and (essentially) building a computer from scratch (I'm thinking of Steve Wozniak, co-founder of Apple Computers). It's only since the explosion of the internet and in particular, Fibre Internet, when speeds grew fast enough to be able to stream video and hold meetings online that the second age of Computer learning was launched: boot camps. Bootcamps allowed people to learn a lot very fast and become ready for certain tech careers in as little as 3 months. This isn't without its drawbacks, of course, which we'll talk about later, but it did mean that computing was accessible to more people. One could argue that the lonely route was always there, but it's only been widely accepted in the last five years or so. When I was first learning to transition to tech, it was a degree (or some other certification) or nothing. Now, many more companies are accepting people without the necessary degree/certification. It's a slow change, but an important one.
Now we'll go through the three paths that you can use to get to have a tech career. Quick note, I've called it three paths, because some paths are very similar/identical to the one they've been put together with, but I will highlight any differences should they come up.
- Good foundational knowledge
- lots of technologies covered
- expert tutoring and help are available
- Expensive (in many countries)
- long (3-4 years)
- rarely gives you "office knowledge"
- Often require high school grades
If you've ever applied for a job in IT (whether that be programming, app development or anything similar) you'll most likely have seen something similar to this:
Wanted, Junior developer:
2 years experience in front-end skills (HTML, XHTML, CSS, SCSS, JS, Tailwind, Ajax, React, Node, Ruby, Python, C++ and Github all required)
2:1 in Computer Science with Masters's Degree in advanced physics and temporal engineering
expected to work weekends, evenings and nights with a minimum of 10 minutes' notice
Pilots' licence to fly the CEO in the helicopter
MUST HAVE OWN COFFEE
Ok, so I may have gone a little overboard, but not by too much (I genuinely saw a job posting asking for masters for a junior role!). The point is, most (if not all) job postings will request that you have a degree in Computer Science (or a related field). The reason for this is simple: It's a safe bet for the employer that you will have a set amount of computing knowledge. My son has just started his second semester at University, studying Computer Science and Artificial Intelligence. His first semester was learning Java, and after a couple of months, he showed me some of the designs he was making and they were very impressive. This semester, he'll be learning HTML and CSS as well as a bit of Python. He'll probably learn more in three months than I have in the last ten years! And it's not (entirely) because I'm slow or lacking, but because Universities like to give you a solid base of knowledge on all sorts of technologies so that when it comes time for you to choose one, you don't have to stay with one, but can choose from a wide variety. This is what employers like because they know you will have been taught the basics of computing, including algorithm trees, and advanced Maths that can help you. It's a safe bet, and that's all a prospective employer wants. Someone who will fit in quickly with little training (on the technical side, anyway). If you're ever stuck, you can either ask fellow students for help. or go to your lecturer and they will point you in the right direction. There will often be study groups you can join and meet with like-minded people and learn together and clear blockages together, helping you learn other team-building skills crucial for a Tech Job.
But university isn't for everyone. The main thing that puts people off (especially young people) is the sheer cost of university education. In the UK, you're looking at a mind-boggling figure like £37000 ($45687) for the four years of the course alone! That doesn't include housing and general living expenses. And that's a fairly low figure (the one my son is paying), and only if you're a UK resident. If you're from the EU or further afield, it's a lot more (over twice the price). One of the other major barriers is time. My son is studying full-time, and it's still going to take him 4 years. If you're a parent, you may not be able to afford to take 3-4 years off to study full-time. You probably have Rent/Mortgage to pay, childcare issues, food etc. So you could opt to do it part-time, but then you're stretching it out to 6 years, and the prospect of paying a lot more as well as having two jobs: your job that pays the bills, and the job of studying. I tried it but had to give up because of other work commitments. And that's because I could only see a path without a degree. One final pain point I will highlight is that many students will come out of a degree and think they're ready to hit the ground running. Unfortunately, many university courses don't teach you the one skill you're expected to have; Office skills. I'm not talking about the Office Suite from Microsoft, I mean working in an office day to day. Dealing with other people in a work environment, going to meetings and being relied upon to produce work. My son wouldn't know what to do. Fortunately for him, he's chosen to do a year in industry between his second and third years. This allows students to get the skills they would never have learnt at University.
I've lumped these two together because they are very similar as an entry path to a tech job, although they do have some obvious differences that I'll go into. First, the boot camp, because that's what I know best.
- low cost (can be free)
- low entry requirements
- part time available
- quicker than a degree
- A firehose of information
- can be too fast, leaving you with not enough time to comprehend the subject matter
- less regulated in terms of accountability
- companies often oversell
Bootcamps have become popular in the last 10 years or so and saw a great influx in popularity during the recent pandemic when people were on furlough or laid off for so long. The idea of a boot camp is that you start at 0 and end up close to 100 within anything from 3 months to a year. It's a great opportunity if you know you can take a year out of work to learn a new skill and get a new job. You'll either meet in person, in a class-like environment or online through Teams or Zoom. You'll be taught by one or two people who have done the relevant job for a while and used it in practice and can tell you all the little anecdotes you don't get from a book. You'll often be put in a group to do a team project to present at the end of the course and be expected to take an idea of a product from design to finished MVP (Minimum Viable Product). What's more, the company will have a recruiting consultant on staff who will try and get companies to agree to take you on at the end of your boot camp so that you can "walk into" your next job.
Bootcamps are not for the faint of heart, however. The best description I could give a boot camp is a "Fire hose of information". The boot camp I took part in was in DevOps, where we were taught about Agile, Docker, Ansible, Jenkins, Kubernetes, Git, Grafana, Terraform and AWS all in roughly 64 hours. Don't worry if none of these technologies sounds familiar to you, they're used on the Backend of development, suffice it to say that 64 hours to learn 9 completely separate technologies is laughable. Of course, I did some learning on my own in the middle of this, but those 64 hours gave me an idea of what DevOps is, not the workable skills to be a DevOps Engineer. The course I was on was very good, and the teachers were excellent and went as slowly as time allowed them, but suffice it to say, I will require much more time to get a better grasp on these concepts. And that Can be the problem with boot camps. Not all boot camps are made the same. Some will be longer, with more than just a week to learn a technology, but the downside will be the price. If the company can take their time to teach you these concepts, it's not because they're easy, but because you're paying them for it (in contrast, my course was free (to me)). Another issue with boot camps is the providers: You have to be careful who you go with. Do your research. If they're government-backed, all the better (mine was, which is why it was free). But be warned: There be pirates in them there waters!
The explosion in the popularity of Bootcamps has, sadly, caused a proliferation of companies with less than honourable intentions towards your wallets and many people have been caught out by this. Research the company, read reviews (preferably unbiased reviews) and don't believe all the hype these companies will use to sell you on joining their boot camp. If they say you'll be job ready in 64 hours guaranteed, don't believe them. If they say "90% of their students get a job when they finish" look into the data: Is it a job in tech related to the course they just took, or is it any job? I'm not trying to dump on Bootcamps, or the one I took, but do your research and remember: If it sounds too good to be true, it probably is.
I won't say much about this one, as I don't have any experience with it. Suffice it to say that it will often be similar to a boot camp in that you will be expected to learn a lot in a very small amount of time. You will have the backup to help with this too, and you will be working (usually) in the office, but maybe working on siloed code and only pushing your changes once it's been gone over by a senior. The difference with an internship is that you may not have to pay. But you'll be working usually for free, so again, if you have bills to pay, this isn't the ideal situation. Some companies may pay you, but it will be a minimum wage at best. If you're lucky, you may be offered a job at the end of the term, but not always. It depends on the company. Again, the same advice goes for Internships: Do your research and if it's too good to be true, it is. Also, make sure you're not just an unpaid office hand. Make sure you get your hand on the keyboard (or at the very least get to look over someone's shoulder).
- Costs nothing
- can be done in your own time
- you can choose your path
- no mentoring available
- easy to get lost in "tutorial hell"
But the Lonely Path is just that: lonely. You don't get the daily/weekly class sessions with classmates, you don't meet people with similar interests and you can't go to anyone specific when you're stuck on a problem. Sure, you can ask for help on Stack Overflow, but in my experience, you'll often get shouted down by more senior devs for asking stupid questions. On your own, you can feel like it's you against the world and very isolating when trying to face down a seemingly insurmountable task. Starting on your own, you may not know where to start, which can also feel overwhelming. Simply put, you need to find support, both at home (an understanding partner and cooperative children to give you time to learn) and online (to ask those "stupid questions" when you're stuck and help motivate you when you're feeling down). The worst thing about going it alone is the easy trap of falling into tutorial hell.
I've tried all three paths (or at least, sampled all three) and I'm glad that there is a range of paths to get to one final goal. Each has its merits and pitfalls, and whilst some will be ideal for some and not for others, that's the beauty of having all the paths available. The most important thing is to reach the end because there's nothing worse than setting off down a path and losing your way and getting stuck in Tutorial hell, or deciding to get give up and go back the way you came when your goal could be just around the next corner.
In my next post, I will talk about some of the ways to stay motivated on the Lonely path and how to chart your way past the quagmires of despair.