March 26, 2020

The Fastest Way To Become A Software Developer

I went from English Teacher to making 200k at Uber in SF, then I left it all behind for my freedom, becoming a remote freelance developer.

Why would you want to become a software developer fast? What's the rush?

We all need income to survive, and being able to profit from development allows you to focus on it as a full-time effort. Most of us just don't have the luxury to go full-time on something before we're getting paid to do it.  

Real learning doesn't really start until you're doing real-world projects. Once you can start focusing on this full-time, and doing real-world projects, that'll bring your learning to a much higher level.

Let's be honest here, none of us have unlimited motivation. Your chance of success is much higher if you only need to focus on something for three months, rather than a year straight, or more. This is especially true when that effort requires giving up your nights and weekends to learn.

My final point here: do you want to work at Google? I'll be the one to be honest with you, regardless of what anyone tells you, your chances of getting into Google for your first job are almost zero. But you can, and should, work your way up to that by getting some real-world experience first.

So if being a remote software developer is your goal, or if you want to start making money online in a reasonable amount of time, with a reasonable amount of success, then this is the article for you.

Now I want to tell you that in 2021 I started Freemote.

Freemote is the remote developer Bootcamp that takes you from zero to profitable freelance developer. If that sounds interesting, just check out the link below this article.

I know you're smart so you're thinking, "this guy's just trying to sell me something, how can I trust his opinion?" But the fact is, the opposite is true here. My opinion on freelancing being the right choice is so strong that I invested six months of my life into creating Freemote, but I'm still telling you how to get into freelancing for free. So let's get started!

We're going to cover three parts: the problem, the solution, and the best approach to becoming a software developer.

Part 1: The Problem

First, let's talk about the problems that almost everyone runs into, including myself: why do most people fail, and why does success actually take so long? I'll make this simple, most people think they have to learn more than they actually do to get a job. Most people start by looking at a college CS degree and thinking "okay I just need to learn all of this stuff somehow." 20 different classes, untold numbers of concepts and programming languages, and all of this before getting paid a dime for programming.

I hate to say it, but even if you learn all of this, unless you're doing it full-time for four years, you still won't know as much as a computer science major. So trying to compete head-to-head is just a losing battle.

The good news is you don't need 90% of this to get your first job as a developer, specifically, if you focus on being a Front-end and not a Back-end developer.

By learning only what is critical to get your first job, you can get employed and start getting paid to learn more.

This basic approach is what Coding Bootcamps set out to do. Many people see this as a magic bullet to get that first development job, and Bootcamps are a step in the right direction to be sure, but they come with their own set of issues:

  • First, they pump out identical armies of developers, thousands per year who are competing for the same pool of jobs.
  • Second, Bootcamps are really expensive. The cost of one bootcamp, Lambda School, is $30 000 to attend. And that's for a fully remote program that you're taking online. I don't think I need to say anything else.
  • Third, if you look at a bootcamp's curriculum, although more focused, the scope is still just way too broad. Full-stack web development, two programming languages, throw a couple frameworks in there, a database. If you're doing a part-time program, it takes a full year to learn all this. If you look at dropout rates, they're quite high. And even if you make it to the end, having spent all this time and money, your success rate is still quite low.

For these reasons, I've been quite critical of coding bootcamps. This is why my recommendation two years ago, when I made my first "Fastest Way to Become a Developer" video, was to focus on a narrower slice of this curriculum: just HTML, CSS, JavaScript and React. This allows you to achieve deeper mastery in this more narrow set of skills, and also means that you can get job-ready faster. With all that said, this is still a great way to get a job at a tech company; however, there is an even faster strategy to becoming a developer, which is beneficial even if your end goal is to work at Google.

Difficulty getting a job in the Tech Industry

We're going to talk about the barrier to entry for getting different jobs in the software industry.

First, let's talk about Google. The barrier to entry here is sky high, the highest. For many, getting into Google is the holy grail. Just getting an interview, let alone passing it, is extremely challenging. The only people I know who were hired at Google for their first job have technical degrees from highly prestigious universities.

The next most challenging is what we'll call a full stack developer job. Bootcamps say they teach you how to get these jobs, and they certainly try to. But as we've talked about, the scope of this is very broad and it takes a long time. And because you're not getting that real world experience, you lose a lot of knowledge before you can really use it.

This also means there is a lot of competition with computer science majors for these jobs. Realistically, bootcamp grads are more often competing for the next, lower barrier, which is Web Dev/Front-end jobs. But this barrier is growing larger every year due to the huge amount of competition of people learning that same stack.

Trust me, I coded on hiring software at Uber. All the bootcamp graduate resumes look the same, and we get an absolute ton of them.

The point is, if you're trying to study to go straight to one of these jobs, good luck! It's going to take you a long time, if you can get there at all. Even Web Dev is going to take you quite some time, with the most focused, React approach probably taking you around four months to get it nailed down.

But let me ask you this: what if there was an even lower barrier that you could start with, from which you could then work your way up? What if that lowest barrier even had the same pay as all the other ones?

It's true! There is another type of developer you can become first, it's called a platform developer. Regardless of whether your goal is to work your way up through these stages, or you plan to build an empire as a platform developer, this, if I was starting over, is where I would start.

Even if you don't follow this strategy, I'm sure you'll learn a few interesting insights.

Part 2: The Solution

Effectively, what is a platform developer? Basically, it's Web Development plus a niche. This sounds like more than Web Development, but you're actually going for a narrower slice, which has a lot of benefits for you as a beginner developer.

To give an example of this, you'd have to learn HTML, CSS and JavaScript, plus a platform. That platform could be Wordpress, it could be Salesforce, it could be an e-commerce platform.

The reason this is the best for developers starting out is because the platform takes care of a lot of complexity for you. On the Back-end, there is a content management system that is intuitive and easy to use, and on the Front-end, there are templates which you can modify, rather than building from scratch. So for you, as a beginner, it's much more streamlined and accessible.

Now even though flexible, these platforms do have limitations. That's good news because they require customizations, integrations, and extensions. In other words: code. You might think that, because this development is straightforward and not that complex, the pay must be lower. And it's actually not.

The reason is because there's so much demand for this development and because of the type of people who are demanding it. People using these platforms are usually two things: busy and not technical. As long as you have more technical knowledge than they do, or if you can save them time, then you can offer them a valuable service.

Since Wordpress and platforms like Shopify are quite user friendly, that means the total amount of people using them is much higher compared to, let's say, people building software and service apps using React.

Every person who builds with one of these platforms is potentially going to need development work from you. Effectively, you can start with bite-sized tasks that are at your skill level. That will help you build up your confidence, start learning, and start earning. You can even start doing this while you still have a job, or are in school.

You can get going with this and only take on jobs that you're comfortable with, at first. This means much less friction and much less imposter syndrome. Doesn't sound too bad, right?

Part 3: The Approach

Basic Front-End Stack

Now let's walk through the details of this strategy. First, what you'll need to become any kind of Web or Front-end developer is a basic front-end stack, that is, HTML, CSS and JavaScript.

The good news is, this info is quite available online. You can get it a number of different places for free, and it's really high quality. The only problem with these resources is they cover so much, in so much detail, that it's actually hard to finish them.

They are intentionally broad because they want to hit the widest audience possible. In fact, Web Development itself is quite broad with how fast it changes all the libraries, frameworks, and tools.

So just be careful you don't get in over your head trying to take too many courses. In terms of learning, just watching is not enough. You can't be passive about this.

In fact, as soon as you learn something new, you should be implementing it, or coding it yourself.  

A good course should give you practice and quizzes, but many don't. But it's absolutely critical that you practice. This this is particularly important when you get to JavaScript. As soon as you know the basic syntax, you should start doing practice problems on a site like Codewars.

Once you have HTML, CSS and JavaScript down, you're going to want to build some practice projects. With every project you do, try to step up the ambition and the quality.

This is a step where many people fail because they go straight from watching someone build a project to trying to do one of their own from scratch. That is very challenging to do.

So, again, if you can find a course that gives you "training wheels projects," that is, giving you a similar project first and then a prompt, or doing parts of it for you and then making you do the other parts yourself, that's going to set you up really well.

Frankly, this is one thing that coding bootcamps do very well, but I see it a lot less frequently in less expensive courses. Anyway, cloning popular websites or landing pages will always be a good way to get practice. Just build your own version from the ground up. Try to figure out how to build each section, that's a good way to move forward. The bottom line for web development is this: the most important part is not what course you take, but rather how you leverage what you learn.

Choosing a Niche

With basic web development down, step two is choosing a platform you want to be a developer for. So how exactly do you choose? I already mentioned a few: Wordpress, e-commerce, Salesforce, and blogs like Ghost. Let's go through these one by one, then I'll give you my recommendation.

Blog platforms

First, we've got blog platforms, which are often run by individuals. Unless the blog is really popular, they probably won't have much cash to throw around. Usually, once they have the blog the way they want it, they won't want to tweak it too much.

Wordpress

Next up let's talk Wordpress, which is a really broad platform that's used to build all kinds of different websites. In fact, much of the Internet is built on it, so there's a ton of work to be found with Wordpress jobs. But your coding skills do have to be quite good because things can get a bit complex with all the plug-ins, and you're probably going to have to learn some php, too.

Salesforce

Let's talk about crm platforms, specifically Salesforce, which I would say is quite a good choice. Unfortunately, Salesforce is used by mostly larger companies, so there's going to be a lower overall volume of jobs. That said, one major advantage it has is you'll be working with businesses rather than individuals.

E-commerce platforms

Lastly, we have e-commerce which, in my view, is the best choice. This could be WooCommerce, Big Commerce, or Magento, which are just Back-end platforms, or Shopify, which has Front-end and Back-end. I put e-commerce development far above the rest for a few reasons:

  • First, the growth of e-commerce right now is absolutely insane.
  • Second, these are businesses, not individuals. Profitable stores have a ton of cash to throw around, but unlike salesforce, everyone and their mom is using something like Shopify to sell online, meaning there's a much broader scope of potential clients for you.
  • Finally, people are constantly customizing and tweaking their stores, meaning they're going to need, in many cases, ongoing development work or support.

Platform Skills

You've chosen your platform, how do you actually master it?

Well, you go to places like Skillshare, Udeme, and the tutorials the platform themselves built and take in these resources as if you were going to be the one using this platform for real. Effectively, in this stage you want to become a pro level user who knows all the ins and outs, but instead of doing it for yourself, you're going to be doing that for other people, You should be building real practice projects here, so real e-commerce stores, blogs, or Wordpress sites, depending on what you chose.

One thing that will help you take this seriously is putting your projects in a real portfolio, with the full intent of showing these to future clients.

In any case, once you've built several projects and read up on best practices, believe it or not you can now offer consulting support to help people get set up and solve problems on the platform.

At first, I know you won't believe this is possible. But consider this: you spent the time learning this, but many other people just don't have time. They have businesses to run or they just don't want to. They might have complex specifications or a large number of pages, products, or blog posts; therefore, they need support to confidently do it right.

And finally, while you're tech savvy, don't underestimate how many people are technologically illiterate, meaning they just suck with computers and could never figure this out on their own. What's obvious for you might not be obvious for other people.

Platform Development Skills

We're getting there. Stage four is to learn platform development. You have all the pieces. So this is the glue to bring it all together. You want to learn, specifically, how development works on your platform and you'll want to get familiar with common tasks and services that people need.

Knowing when to do development is just as important as knowing how, meaning you're able to decide when installing an app or a plugin might actually be the better option than coding the solution. What you have to learn here is highly platform specific, so I won't get too far into it, but just to give an example, on Shopify you have to learn the liquid templating language as well as theme kit, which helps you do development for Shopify themes, how themes themselves work, and how to do a development workflow.

Learning how to do all this in one place is slightly hard... but Freemote bootcamp actually teaches you all this stuff in a structured way.

Getting Paid

Finally, we're on stage five, which is getting paid for your web development platform skills. At this point, instead of grinding to pass the technical interview and sending hundreds of job applications, you can start bidding on real world jobs, or finding direct clients right away. The best part is, you can start finding tasks that are very simple, or rather, at a beginner skill level.

These can be simple things, like changing styles or adding little widgets which, even as a beginner, would be easy for you, but impossible for someone who can't code.

Of course, these are going to pay less, but they will pay. And most importantly, you will be building up real world experience and a portfolio. Overall, your time to first dollar with this approach could be one to two months, whereas the next lowest strategy, the Web Development strategy, is going to take you at least three to six months.

Your learning accelerates when you get real-world projects.

Even if your goal is to get that $400k at Google and the respect of all your friends, this is still a step on your way there. In fact, it will probably get you there faster than studying directly for a high level job.

Let me also say that even if you choose to stay as a platform developer for your whole career, that is a perfectly viable option. In fact, some people even charge up to $250 an hour for e-commerce development, and you can do the math on how much that is per year.

I'll say again that this is exactly how I would get into development if I started over today. So if you want to do it on your own, for free, all the information is here, in this article.

But if you do want more structure, all the resources in one place, a community, and two dedicated technical mentors, well that's the main reason why I teamed up with Jan, a dedicated e-commerce developer with three years of experience, to create Freemote: the remote developer bootcamp. We cover the A to Z of web and e-commerce development, as well as how to make your first dollar freelancing. You'll also be in a community of remote developers from around the world.

Forgive me for the self-promotion, but I've been working my ass off on this for six months, and dumping everything I know into it.

Click to the button below to check it out. Regardless of whether you go for this strategy, I hope I've helped you be more realistic and you're thinking about your learning in a strategic way.