From the day I wrote my first coding program, it took me two years to land a job at Amazon and another two years to get into Google. That’s because I achieved all this without a computer science degree or bootcamp. I made countless mistakes along the way, which made my path to becoming a software engineer longer than it should have been. I watched numerous YouTube tutorials, paid for various Udemy courses, and spent hundreds of hours learning things that didn’t add any value.
If I could go back in time and undo all the things that didn’t work, I would be in the exact same situation as today within six months of starting programming. That’s exactly why I made this video. Today, I will remove all the useless fluff and give you the fastest path to go from a beginner to a full-time software engineer. Before I begin, there are three major mistakes that can slow down your progress in becoming a full-time software engineer in coding. I will also share these three mistakes along the way, so stay tuned for that.
Best ways to learn coding
As a new programmer, the first decision you need to make is “Which programming language to learn?”. To answer that question, let’s talk about what a beginner wants from a programming language. Number one, the language should be easy and intuitive to write. It should not require learning very complex syntax. It should be as close as possible to writing in English. Next, the coding language should be versatile and have many applications. As a beginner, you don’t want to learn a new coding language for every new project you want to build.
In other words, the coding language should have great returns for the time you invest in learning it. Lastly, the programming language should be fast to write. You shouldn’t have to waste time spelling out the declaration of a new variable or simple iteration through a list. In other words, it should be concise and get the job done in minimum lines of code. As some of you might have already guessed, Python is the language that solves all these problems.
It’s almost as easy as writing in English. It has numerous applications like coding web development, data science, and automation. Python is extremely fast to write when compared with other popular languages. That’s because it requires fewer lines of code for the same amount of functionality.
As an example, here is the same code written in Java versus Python. Personally, I started out learning Java and used it for all my coding interviews. Recently, I switched to using Python and it improved my interview performance by at least twice because it’s so fast to write. Having said that, Java and other popular languages have their own advantages and you will have to learn another language at some point in your career. But I do believe that Python would be the best language to start with.
Now that we know we should learn Python, let’s talk about how to do it. This is where most new coding programmers make the first major mistake that slows them down. The mistake most beginners make is that they learn by watching others code. Let me explain this by telling you how most people learn programming. Most newbies would go to a course provider like Udemy and look up Python courses. Then they pick one of these 20+ hour courses thinking that these courses are long and detailed and therefore good for them.
And then they never end up finishing the course. That’s because 20 hours of content is not the same as 20 hours of great content. Some people will go to YouTube and watch someone else coding without ever writing any code themselves. And watching these tutorials gives them a false sense of progress. That’s because coding in your head is very different from actually writing down the code and debugging the errors. So, what is the right way to do it? The answer is very simple: you should learn by coding.
For this, you can go to this free website called learnpython.org. On this website, just focus on the basic lessons for Python and don’t worry about data science tutorials or any advanced tutorials. That’s because even if you learn advanced concepts right now, you would not be able to remember them until you have actually applied them to a real-world problem.
You can always come back to learn the advanced concepts of coding in the future when you need them for your projects. If you look at a lesson, each lesson first explains a basic concept and then asks you to apply those concepts to a problem. Feel free to play with the sample code. Think about other problems you can solve with the concepts you just learned and try to solve them in the exercise portion. Once you’re done with the basics, you’re good to move on to the next steps.
In the spirit of learning by coding, we would do some projects in Python next. In the beginning, it’s very hard to do something on your own, so we’ll take the help of experts. Go to YouTube and look up this video called “12 Beginner Python Projects” by freecodecamp.org, which by the way is a great channel to follow. In this video, they build 12 beginner Python projects from scratch. These projects include building Madlibs, Tic Tac Toe, Minesweeper, etc., and all of them are very interesting. They walk you through the implementation of all these projects step by step, making it very easy to follow.
But before you start watching this tutorial, there are two things you should know. One, you should not watch this tutorial casually. Follow along if you really want to learn programming and become a software engineer. To follow coding along, you would need something called an Integrated Development Environment (IDE) to build these projects. An IDE is an application where you can write and run your code. There are several popular IDEs for Python. This tutorial uses VS Code, so you might want to download VS Code and set it up for Python before starting on this tutorial.
Once you have completed this tutorial, you are ready to work on your own projects. Working on building your own projects will help you in multiple ways. Number one, it will introduce you to how software engineers work in the real world. You will write code that will fail, and you’ll debug it and repeat it over and over again. This is exactly what a day in the life of a software engineer looks like. Number two, you will build a portfolio of projects by doing this. You can host your code on GitHub and put the link in your resume. This will help you attract recruiters and get your resume shortlisted.
Lastly, building your own projects will give you confidence that you are ready to tackle new challenges as a software engineer.
But what kind of projects should you work on? You can think of any projects that you find interesting, but here are some examples I found: You can build a web crawler or an alarm clock or maybe an app that gives you Wikipedia article of the day. Some example projects that I built were a spam filter, an algorithmic trading engine, and an e-commerce website.
Now you have a great resume and you are confident about your programming skills. Let’s start applying for software engineer positions. Wait a second. This is actually the second major mistake new programmers make. You see, in an ideal world, having good programming skills and a great resume is all you should need to become a software engineer. But unfortunately for us, tech companies like to play games with us in interviews. They ask specific kinds of programming questions in interviews.
If you don’t prepare for these questions, you might not get the expected results. So let’s see how to prepare for interviews.
All interviews are based on this one course that is taught to all computer science graduates. This course is called Data Structures and Algorithms. Fortunately for us, Google has created this course and made it available for free on Udacity. And the best part is that this course is taught in Python. In this four-week course, you’ll learn about different algorithms related to searching and sorting. You’ll learn about coding data structures like maps, trees, and graphs. Don’t worry if you don’t know any of these terms right now; I am sure that by the end of this course, you’ll be a pro.
For that, just keep two things in mind: One, be regular and finish this course. As I mentioned earlier, most people start courses and never finish them. So make sure you take small steps every day and make regular progress. Two, make sure you complete all the exercises they give…