Skip to content

jamezmca/learn-to-code-land-a-job

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Learn to Code & Get Hired as a Software Developer 🔥

I taught myself how to code and landed a job as a software developer when I was up against hundreds of other candidates with more experience and better qualifications. In this guide I'm going to teach you everything you need to know to do exactly the same.

Career transitioning into tech was the best thing I ever did and I want to make it possible for everyone else to do the same!

Follow this guide if you want to:

✅ learn how to code for free
✅ get hired as a software developer
✅ learn how to build your own amazing software applications

By the end of this guide you will...

⭐️ know the best roadmap to learn how to code and gain the skills and knowledge you need to be a great programmer
⭐️ know the most effective methods to self-teach coding and effortlessly retain all the information
⭐️ have a portfolio of projects of the calibre needed to make you a credible candidate, show employers that you are the best, and get you hired
⭐️ know the secrets to becoming the top 1% of job applicants and succeeding over individuals who are more experience and better qualified than you

Table of Contents

We have a lot to cover, but everything you need to know is included in this guide so you don't have to take any notes!

  1. The Job Market
  2. The Fastest Way to Learn to Code
  3. The Three Paths
  4. What to Learn
  5. How to Learn Most Effectively
  6. Where to Learn
  7. About AI...
  8. How to Get Hired in Tech

So let's get started 🔥

The Job Market

Before we dive in to the content, let's discuss the dreaded job market!

The job market sucks. Applying for hundreds of jobs only to be ghosted or rejected is soul crushing. It's true - I don't deny it. When I landed my software developer role, I was applying to jobs with 200+ (sometimes even 2000+) other applicants. It's a savage undertaking.

Yet even in this miserable job market, someone self-taught is getting hired - I ended up getting numerous job offers without a qualification or relevant work experience. Even today, I still receive plenty of messages from people who have followed my guides and landed their software developer jobs without having any prior experience or relevant qualifications. At the end of the day it's a bit like climbing Mt Everest; it's hard, it's even gruelling, not to mention risky. But if want to stand at the top of the world, then you need to be the top 1% of applicants, and this guide will instruct you on how to be that person.

And as a final note before we dive in, there's one last thing you should know.

I've since been responsible for hiring new developers, and I've seen what these hundred, if not thousands of applications look like. And it's actually good news!

Most of the applications are tragic.

So next time you feel overwhelmed by the numbers, just remember that many of your competitors are garbage. There are still going to be some mighty contenders, but by the end of this guide, you will know how to stand your ground against the best of them and land your software developer job ✅

The Fastest Way to Learn to Code

So now let's talk about learning to code, and more specifically, how to learn to code quickly and efficaciously.

Learning to code is hands down one of the best things I have done in my entire life. I love coding; I love it as a career, I love it as a creative outlet, I love it for all the opportunity and quality of life improvements it has allowed me to make.

Learning to code is an experience I think that anyone can benefit from for more reasons that I have time to list on this page. And the best part about it is that you can do it 100% free and all the resources you need to become a proficient coder are available to you in the wonderful realm of the internet.

That being said, self-teaching programming is no mean feat; many people have tried and lots have fallen short of becoming proficient, overwhelmed by common enemies such as tutorial hell, imposter syndrome, or the age old misinformation.

If you want to succeed, then there are a few rules you need to follow so to ensure you avoid the common pitfalls that many others succumb too.

  1. Do not 'path hop'

Path hopping refers to following numerous different pathways or roadmaps in order to try and become a programming. Nowadays there are many options, but if you try to follow all of them you will very quickly find yourself overwhelmed by the sheer volume of information available on the internet.

Instead, choose one pathway, one roadmap, and follow it exclusively without being distracted by what everyone else is doing. If you find yourself ill-contented with this pathway after giving it a solid shot, then only then do you have my permission to try another roadmap or path (which you should follow exclusively). This can be challenging if you have commitment issues haha...

I will show you my recommended roadmap shortly!

  1. Embracing failure

Everyone thinks that software developers or programmers are just people who know how to code. This is a flawed understanding of the profession. We are actually professional problem solvers, who use code as a tool to solve these problems.

And the thing about problem solving is that it takes practice, where every failure is just another problem where you can practice being a problem solver. Even when I'm failing on something I have no idea about, I trust in my abilities as a problem solver to research and learn about the problem and ultimately try and try again until I find a solution that works.

You need to be bull headed, and remember that failure doesn't make you a bad programmer. Every failure is a chance to learn what doesn't work, and that brings you one step closer to the solution that does work!

  1. Overstepping

Learning to code is not a one-size-fits-all process. And what you find easy might be a nightmare for another.

As a result, you might find that sometimes you overstep on your learning journey and move on to something that perhaps you're not quite ready for. This does not make you a failure. It is simply a sign that you should move back a step or two and work a little longer on that material before you re-attempt that step that you are on!

Sometimes one step backwards can mean two steps forwards ✅

If you follow these rules then you will avoid the common plights of many learn-to-coders and accelerate your journey to becoming a programming pro.

The Three Paths

When embarking upon your learn to code journey, not only are there many pathways to achieve one outcome, but there are also numerous outcomes. For example, perhaps you want to be a game developer or work in finance tech, or perhaps a data scientist. Or, if you're like me, then you'll be looking to pursue Full Stack development, or web / mobile application development.

Each of these titles falls within the realm of programming, but they all use different programming languages and technologies; so it's important to learn the code relevant to your desired outcome.

Note that you can always change direction at any time, and that learning one path will lend itself to learning another at a later time!

  1. FinTech / Game Dev - C++

This option is pretty cool if you're psychotic - and that might sound dramatic. But for a beginner coder learning C++ is like driving a Ferarri when you're 12 and are blind. If that's you though, then you have my blessing and I wish you the best of luck, otherwise feel free to revisit this path when you're a little wiser in the way of the code.

  1. Data Scientist - Python

This is an excellent path if you enjoy analysing Big Data. Python is also a very easy introduction to programming (see below for recommended resources to get started).

  1. The Full Stack (Recommended) - HTML CSS JavaScript

This was my personal journey and is the one I recommend anyone to follow if you're goal is to build awesome stuff and get hired as a programmer in the least amount of time. I also think it's the pathway that will give you the best foundation so that you can later go and easily explore new pathways and continue your journey to becoming the ultimate programmer!

JavaScript in this case is the programming language, and the HTML and CSS languages are the backbone of the internet!

See below for the recommended resources to get started!

What to Learn

So, we've decided to become Full Stack Software Developers - isn't that cool. So what do we need to learn? And in what order?

Chapter 1 - The Beginning

We'll, as I mentioned above, we begin with HTML, CSS & JavaScript. I personally learned JavaScript before I started with HTML and CSS, but I would nowadays recommend you start with HTML & CSS and then pursue JavaScript.

And in this chapter we learn how to build some nifty websites (including a personal web portfolio) and make them live on the internet.

Chapter 2 - Building Momentum

Once you're feeling confident making basic websites and deploying them live to the internet to share with your family and friends, you'll also start to understand the limitations of only using this trio of technology.

Modern age programming has introduced what are known as frameworks, which build upon HTML, CSS & JavaScript and introduce many quality of life improvements; that is what we'll be focusing on learning in this chapter.

Chapter 3 - The Full Stack

Up until chapter 3, the material that we will learn is classified as Frontend Development; one of the two constituents that collectively create The Full Stack. In this chapter, we now learn the other half of the equation known as Backend Development.

Backend development involves all the code that goes on behind the scenes to give you the experience you understand as the internet, and it's a chonky boi.

After completing this chapter, you will have the skills and knowledge you need to build some amazing Full Stack applications for the internet, such as the one I personally maintain called hyr.sh - an AI resume and cover letter builder.

How to Learn Most Effectively

Above I covered the fastest way to learn to code, but that information was concerning the fastest pathway to get you to your destination! In this chapter, I'll talk about learning methodologies you can employ to ensure that you soak up all the information like a sponge, and effortlessly retain everything you learn.

Be the Squirrel

A common misunderstanding about good programmers is that they have infinite memory recall and just immediately know how to do everything off the top of their head. Most of us can acknowledge that we've held that belief, but also, as we read it, surely you can hear how insane that sounds right?

If feels like that would be nigh on impossible - and that's because it is.

So here's the first lesson you need to know to become this impossible programmer is to be the squirrel.

Squirrels don't keep all their nuts in their tummy. It would be impressive if they could though. Instead, over a long period of time they build up a repository of nuts in a sacred place in an organized fashion, that they can access anytime throughout the tough winters to stay fed.

Sure they might keep a few nuts handy in either side of their elastic mouths, but for the most part, survival is dependant on this resource that they have accumulated over a long period of time.

So how does this relate to being a good programmer?

Learn then do, if not, kinda forget.

That is how our brains work.

In programming, we learn so much, and we often have to apply this learning in a new context which helps to consolidate it in our minds for all of eternity. But other stuff, we learn, and then never use, and so we forget it from our active/working memory.

Unfortunately it's hard to predict what needs to be in your active memory, so what we do to prevent losing a lot of important imformation simply due to lack of use is we create a second artificial working memory.

A good artificial working memory contains high value information that is effectively indexed and cataloged for later reference. Even if you forget the thing, knowing that you've seen/done if before, and have access to an explanation of how it works means that for all intents and purposes, it's still active memory, and this allows you to become an incredibly efficient programmer.

In doing this, we become the squirrel, where we store up all this valuable information in a sacred place and index all of it for use when needed. Over time, we accumulate the most reposity of golden information that becomes an extension of our mind, because we know what's there and we know how to access even the most minute sections of it.

As we evolve and the regularitys of our jobs or hobbies change, we can retrieve old information if we use it enough, it might move from our artificial working memory to our actual active memory, and it becomes on call when needed. But because we have this reposity of stored information, we can be adaptive and can simply let our brains use what is needed, remember what is relevant, and resource anything we might have temporarily forgetten in less than a heartbeat.

For example, very infrequently there is a particular one-liner in JavaScript that is used to 'sleep' my program. I rarely use it, so it's very hard for me to remember the actual syntax of the line and code it out from the top of my head. But at the same time, I still need it. And because it's part of my artificial working memory, I can look it up and find it just as quickly as I would code it out myself - cool right.

And this is how you become the impossibly brilliant coder described in the first line of this chapter; it's all about familiarity. Having a global awareness of information as part of your active memory while at the same time building up and maintaining an explicit and comprehensive artificial working memory that is on-call when you need it.

How to Get Started

I personally use GitHub to literally create code repositories. In the the context of learning to code, when I follow a tutorial, I leave code comments all through the code base explaining the key thought processes and explanations provided by the teacher, so that I can always refer back to the code even after long periods of time and understand exactly how everything works. Be sure to write the explanations in your own language per your own understanding of the content, as this process further helps to improve your understanding of new concepts and information.

Then, when saved to my GitHub page, I always know what repositories contain valuable snippets of explained code that I can call on when needed should I forget the exact syntax on any particular day. Overtime this artificial active memory grows with limitless boundaries into an invaluable knowledge bank and natural extension of my brain.

I know it's there, I know how to find it, and upon a brief inspection, it might as well have been part of my active working memory.

Where to Learn

Alright, so we've learned a bit about the most effective ways to learn to code, now where do we get started?

We'll, before I start recommending some resources, I want you to know that learning to code is FREE. One of the best things about learning to code is that it's something you can do without spending a whole lot of money that for many might be necessary somewhere else in their lives.

For me, when I was learning to code, I had to pay my bills and couldn't afford to pay for a coding bootcamp or qualification - so I learned to code for free and you can too.

The Resource I Wish I had

When I learned to code, it took my six months from my inception as a beginner programmer to getting hired as a software developer. That's pretty quick when you consider that many bootcamps will span an entire year, or qualifications even longer, and these don't even guarantee you a job!

Yet even though my experience was relatively fast which was a blessing as I afforded a juicy tech salary, there are many things I would do different in retrospect to accelerate that process.

For example, I jumped between many resources. This was a huge waste of time for me and so now I have a rule that you should only follow one roadmap! There's also so many free resources on the internet that it's hard to know which are good and which are bad. I had to figure all this out by myself and that wasn't a very optimal process.

So to save everyone else from many of the hassles I experience, I have created a free roadmap that anyone can follow, that will teach you all the content you need to know to become the ultimate Full Stack developer, and it even helps you build out some amazing portfolio projects which as we will learn shortly, is essential to helping you land your developer job.

It's always maintained, which means that all the resources are modern and relevant to the latest and greatest technologies! Plus, it's free, it starts from the very beginning and walks you through everything you need to know right up to getting hired, and it's the resource I wish I had when I was on my journey to learn to code and get hired as a software developer.

Not to mention that many people have followed it to completion and landed their own developer jobs - you could be next.

May it serve you well!

About AI

When it comes to sending fear into the eyes of the beholder, discussions about the job market and AI are the two most troublesome opponents. We covered the job market above, but let's take a second to understand how AI could effect this industry.

At the end of the day, it's impossible to say with certainty what will happen, but for now, I haven't met a single person who has been laid off because of AI. Sure it might happen, but layoffs happen every time an industry changes due to innovation.

The people who will be last to be laid off, are the ones who learn to incorporate innovation and change into their workflow. And this happens by being open to the experience and curious. If you stick your head in the ground and hope for the best, you will be sorely disappointed when you get left behind because of change. Also, if all software developers become unemployed, then it'll be the same for most industries around the world, not just software developers.

So be curious, try it out, and perhaps it might even make you a better programmer that you ever could have been without it.

How to Get Hired in Tech

A common misunderstanding in tech is that if you know how to code, that you can get a job as a software developer. The reality is that learning to code is probably closer to 50% of the battle, where the rest comes down to how employable you make yourself through various means self-marketing and presentation.

This is a good thing and a bad thing. On the bright side, one of the main reasons self-taught coders are able to get hired when they are competing against other candidates who are not only more qualified, but also have more experience, is because even the most brilliant of candidates can struggle to nail their job applications and online professional image. Having skills might win you a battle, but how you sell them is what will win you the war.

This is also a skill set that is often not taught, so self-taught coders are often on quite the level playing field, if not even at a higher standing as you don't fall under the pretence that your qualifications are sufficient to land you a job.

So here is everything you need to know to become the top 1% of job applications and land your software developer job 🔥

If you would like some extra support on how you can win at job hunting, be sure to check out my new course where we walk through the entire process together and step by step cover everything you need to know.

Preparation Phase

Before we start applying for jobs, first we must make sure that when a hiring manager or recruit takes a look at our profile, that we are already in a position to knock their socks off and assure them that we are their ideal candidate for the job. So what goes into creating an appealing online profile for tech roles?

LinkedIn

LinkedIn is a toxic cesspool of lunatics and so it is with great sorrow that I require you to have a nice and tidy profile on the platform.

One of only redeeming qualities of the platform is it's ability to connect you with the people who are going to employ you - and this is incredibly important!

  1. Your title should state “Full Stack Developer”, or whatever it is that you’re aiming to become.

  2. You cover photo should be something visually aesthetic, that is also special to you. Think of it as a wall-paper for your page.

  3. You need to fill out your prior work experience and provide some detail on how any of the roles you have helped historically have developed your communication, team working, self-management and problem solving skills.

  4. You need to complete the education section as above.

  5. You need to add your list of tech skills to the skills section — if you can, try complete the quizzes they have to gain a badge for that skill.

  6. You need to add any certificates you have to the license and certifications section — for example I completed the FreeCodeCamp.org JavaScript Algorithms and Data Structures certificate.

  7. Links to your main active projects and portfolio.

GitHub

GitHub is perhaps going to be your most important online network presence. It's a great place to portray your skillset and employers will definitely be looking here first.

The recipe for success on your Github page is 4 part:

  1. Regular contributions — From the minute you start working on your projects, you ideally need to be making a minimum of 1 commit per day. It doesn't really matter if it's just adding a commented line, make the commit. Check out the Github GUI if you’re afraid of Git in the terminal.

  2. Three Pinned Project — These should be your primary projects, ideally on display in your portfolio too. It's great if these projects demonstrate different skillsets and combined, cover a wide array of tech. I like the following combo; a frontend framework + API project, an e-commerce project, and a full stack project with auth and a database.

  3. Readme.md files — These need to be pretty immaculate. A text explanation / the purpose and intention behind the project, problems you encountered, how you fixed them, and everything in-between. Each should also contain an abstract at the beginning that summarises the project and the technology!

  4. The format should be: Abstract, Introduction to the problem, why you want to fix it, how you’re going to fix it tech used, any issues you encountered along the way, overall reflection, link to live project.

A friendly and professional picture and bio stating the same as your portfolio does above; your personality, pursuits & endeavours, and a link to your portfolio webpage and LinkedIn.

Portfolio Website

Your portfolio is a great place to really bring all your assets together. You can really personalize it to express yourself and put your best foot forward. Ideally a portfolio has a nice and simple intro page and clear links to your subpages/sub-sections, and also your other socials (LinkedIn & GitHub).

There are two essential sub-sections; one is a portfolio page that displays all your of your projects (3 is the perfect number). You'll want to have links to the GitHub code and the live demo for each of them. The second is an experience page that breaks down all of your prior work experience and how it contributes to your hardcore developer skills.

Best if you can acquire a SSL protected domain for your portfolio.

Everything Else (Resume | Cover Letter | The Follow Up)

Be sure to head over the hyr.sh and build yourself a winner resume and generate some cash money cover letters!

The Full Course

Link coming soon for the Full Course on how to get hired where we go through all this content and more, step by step together 🔥


If you have enjoyed the guide, please be sure to ⭐️ star the GitHub repo!

Cheers,
James