If your goal is to become a developer, then you have no shortage of resources.
The first coding bootcamp appeared around 2011, and over the next few years, they exploded in popularity. There are now countless in-person (Covid19 screwed that up a bit) and online bootcamps. Additionally, there are tons of platforms and online courses, some completely free (like freeCodeCamp).
All these programs are great, but for the most part, they focus on one thing: web development.
The common path goes something like this:
- Learn some backend development
- Practice and build a portfolio
- Apply for jobs
This obviously is a little oversimplified, but it is a very popular path that new developers follow, and a decent path to be honest.
So why am I writing about this?
If this is something that you are considering, I would like to talk you out of it, and present you with an alternative!
Back in 2017, I was catching the "development bug" and I wanted to be one of the cool kids.
After finding an online program that was a good fit, I proceeded to spend the next few couple of months learning web development. I loved it, but I bumped into the following two problems:
The explosion of bootcamps and the wide availability of online resources has been a blessing for those who want to get into the industry.
It has never been easier to learn if you are willing to put in the effort (and often, a decent chunk of money).
What that means for new developers though is that the competition is fierce! When there are multiple applicants for the same web dev position, having the skills alone might not be enough. Applicants need to have a strong portfolio as well as experience and additional skills to stand out. Many have to start out with an internship.
Web developers will always be needed, but when companies tighten up their belts, UX/UI and web dev teams are often the first to be affected.
It is not that those skills are not valuable, but they are often viewed as less critical to the continued operation of most tech companies.
Additionally, it seems that every day new technologies and frameworks are coming out that minimize the need for large web development teams. Large organizations will always need web devs, but many are getting by with smaller teams, or even outsourcing their work to freelancers.
The bottom line: web development is still a great career, but it is getting more and more competitive and difficult to break in to, especially for junior devs without a lot of experience.
Let's talk about what is arguably one of the hottest and most in-demand skill in the tech industry right now.
Simply put: it is the usage of modern development technologies to architect, build and support complex cloud infrastructure.
A cloud developer is essentially a developer that knows how to build and automate actual infrastructure. To be successful, a cloud developer needs to have one foot in the development world, and another in the infrastructure and operations world.
The availability of public cloud computing is fairly recent (about 10 years or so). Understandably, one might come across many job descriptions that intersect or even fall under cloud development. For example: DevOps Engineer, Cloud Architect, Cloud Administrator, SRE, etc. All of these titles share some (or most) of the same core technical skills. Do not let the job titles confuse you.
As practically every company moved to the cloud (or currently in the process of moving), demand for cloud experts soared and has not slowed down.
To add to that: many cloud providers like AWS responded by providing more services. If you access the AWS console for the first time, you are bound to be overwhelmed! There are dozens and dozens of services, and new ones keep getting released. Most organizations need experts (or teams of experts) to help them navigate this complexity.
It turns out that very few people out there have the skills described earlier.
This is a bit of a generalization, but traditionally, tech professionals come from one of these two backgrounds:
Software development background: which includes most computer science majors and self-taught developers
Operations background: which includes system administrators, network engineers, support engineers, general IT practitioners, etc.
Very few happen to have skills that span both of the backgrounds described above, and that's where the sweet spot is!
As someone who has been on the hiring side, I experienced this firsthand. I recently helped interview candidates to backfill a position on my team. We interviewed many candidates: some had strong infrastructure and system administration skills but could not write a simple "for loop", while others were strong developers but barely knew what an IP address was!
Economics 101 tells us that when the demand is high and the supply is low, price goes up.
This theory indeed holds up: if you look at any industry report, cloud jobs are consistently some of the highest paying.
Building fancy interfaces and colorful buttons is a lot of fun, but cloud development is just a whole other level (ok that was a mean joke - I know there's much more to web development).
As a cloud developer, you are often building and automating pretty impressive infrastructure. You architect massive systems that can scale to accommodate thousands or millions of users/requests. You get to touch so many aspects of technology: one day you might be automating CI/CD pipelines, and the next day you might be implementing the latest in serverless architecture.
You write code (sometimes a lot of code), but that is not the only thing you do. The variety of the skills that you develop keeps you engaged.
As an example, in my current job, I write a lot of code, but I also do a fair amount of design and architecture, communication with other teams and stakeholders, technical documentation, security, even support and troubleshooting.
The skills that you need to develop as a cloud developer might seem overwhelming, but it does not have to be that way!
At a high level, you need the following skills:
Cloud: there are a few major cloud providers (like AWS, Azure, GCP), so picking one and gaining expertise in their offering is a great idea
Code: you need to become a competent developer, so picking an object-oriented language that is also cloud compatible is highly recommended
Tooling: this could be optional, but there are countless tools and frameworks, some more important than others, so learning a couple (based on your interest) might be very beneficial
Depending on your background, you might be able to transfer many of your existing skills over. For example, I came from a traditional IT operations background so I was able to translate that to the cloud (by picking up some cloud certifications) but I needed to work hard to develop my code skills (of which I had none) and I also had to learn a couple of cloud tools.
Your path might be different than mine, but it is very likely that you will need to supplement your existing knowledge, or even build it up from scratch if you are new to tech. No matter where you're starting from, you can easily break into this exciting field.
If you would like a step-by-step program, I have put together a short free ebook that will help you through the process:
I hope that I did not offend anyone by disparaging web development! Please take my tongue-in-cheek comments with a grain of salt.
Truth is: web development is still a lucrative and exciting career, but I do think that it is becoming a little harder to get into.
If your passion is in web development, then you should definitely pursue it. For me, I decided that I was more interested in moving packets than moving pixels. And despite my persistence, I struggled endlessly with CSS! And believe me, I tried...
But if you are curious about the cloud and looking for a career that is guaranteed to challenge you and keep you on your toes, then give cloud development a chance.
If you have any questions or comments, I would love to hear from you!