Friday, September 11, 2020

Learn Coding from Scratch in 2020 using these best Books, Courses, Websites, and YouTube Channels.

How do you learn to code? This is the most frequently asked question to me. I receive this question almost every day on Facebook. Well, the answer to this question is not so simple because the people who ask these questions are beginners, and we need to explain this into a lot more detail than others. The answer is also different depending upon who is asking this question? If someone from a computer science background is asking, then its a lot easier because they know a lot of related stuff, but if it someone who is not from a computer science background, then you need to explain some more things to them along with your answer. I'll try my best to tell you how to learn to code, but if you have any question, then you should ask in the comments, this way, I can guide you better.

To start with, let me tell you how I learned to code and why that's not the correct way. I learned to code when I was in college, pursuing my computer science degree. Before that, I heard about computers but only for games, downloading songs, and a few other things in a cyber cafe.

My only access to a computer where I can code was in our college lab, and the only material I had was some books borrowed from the library.

Whenever our lab happens, I just try to type the code which was written in the book, step by step, word by word, hoping that it will run when I complete the typing. It never happens, despite copying, there was always some error, and then the rest of my lab was to solve those errors randomly.

There was no internet on the lab and no StackOverFlow, or online forums to help you. This was a difficult and slow process to learn to code, and it took me months to learn to code and write a program for something non-trivial.

My real break to coding comes when I started writing games like the Tic-Tac-Toe, Breakout, Tetris, and Super Mario Bros, that's where I learned how to use data structure like array and list, how can I use a boolean variable to make a player dies, to show a different tile at a different place, etc. Since I love playing Nintendo games in those years,  I finally started loving coding and never looked back.





How to Learn Programming and Code in 2020?

That was a painful and slow journey for me to learn to code, but that was 20 years back. In today's world, it's a lot easier to learn to code with interactive websites like freeCodeCamp, CodeCademy, and a lot of online tutorials on Youtube and online courses on Udemy and Pluralsight.

Now, let me tell you how you can learn to code today, step by step:

1. How to start Coding?

If you are a complete beginner, I suggest you start with interactive coding websites like freeCodeCamp or Codecademy. They are best for the absolute beginner to learn to code, and there are two main reasons for that.

1.first you can jump right into code without downloading any software or setting up your development environment. This is one of the cumbersome and tricky processes, and beginners quickly get stuck here. These websites allow you to code right in your browser, which means you can focus on just coding without worrying about the setup.

2. Second, quick feedback and learn-by-doing experience. When I code using freeCodeCamp or Codecademy, I learn a lot the reason is the right mix of theory and practice. For example, when I was taking Codecademy's Learn Python 3 course, I can read on the left side of the panel and try the same concept on the right side of the board.

This enforces the learning and ensures that your mind works. Also, there explain is very meat, no fluff, and very well written.

How to Learn to Code in 2020? Best Websites, Books, Courses, Youtube Channels and Tips


Now, if you are someone who learns more by watching videos than reading, then there are a few more options for you.


1.1. Pluralsight

Pluralsight has a lot of quality courses to learn almost anything, but you can take their Python fundamental course to learn to code. You can watch their videos while traveling or commuting to work and practice when you reach home or office. They also have an interactive platform where you can practice.




1.2. Udemy

This one is another excellent place to buy video courses. Udemy is basically the mother of all online course platforms, only next to Youtube. The best thing about Udemy is that you can purchase outstanding quality courses at a throw-away price of $10.

For example, if you want to learn to code using Python, then buy the Jose Portilla's class Python 3 Bootcamp course, which is trusted by more than 1.5 million people, and you can get it on just $10 on various Udemy flash sales which happens every month.



1.3. Educative

This is a relatively newer online learning platform which focuses on text-based interactive courses and hands-on practice on browser without setting up any environment. This quick feedback learning session really helps to learn new programming and software engineering skills.

You don't need to skip forward or wait for the instructor to finish, you can learn from your own speed. Similarly, you don't need to spend time setting up the environment and getting stuck there, you can practice the concept you learn right there in the browser.

Educative have a lot of great courses to learn Python, Java, Ruby, JavaScript, and other modern programming languages, but their coding interview courses are really great, like Grokking the System Design Interview and Grokking the Coding Interview Patterns, both are great courses to learn essential skills to crack any coding interview.

They also provide a flexible option to either buy individual courses or purchase a subscription to get all access to all courses. If you are serious about your learning, getting their subscription will provide you more value becuase it cost just $18 per month for an annual plan.




2. Solving Coding Problems or Katas

Once you know the basics of programming like conditional statements (if and else, switch), loops (for, while, do-while), functions, classes and objects, data structure and a few algorithms then next thing is to use those concepts in practice, and there is no better way than solving some coding problems from interviews or doing Katas.

You can find a lot of coding problems on the internet, many of them in this site itself like I shared 101 coding problems a couple of months back, which you can solve to further consolidate your programing fundamentals and develop some coding sense.

There are also some useful websites like Codewars, where you can practice katas, small programming challenges to learn to code better. The good thing about this site is that katas are contributed by the community and structured well. There are also test cases and hints and solutions available from other people who have solved the same katas.

Many times you learn a lot by looking at the solution of other people. They also use voting to push the best and intelligent solution at the top so that everybody can benefit from them. I strongly suggest you take a look there.


3. Doing Personal projects

Once you have learned programming fundamentals and solved some coding challenges, you are ready for more significant programs, and there is no better way to learn than doing personal projects.

It's a proven technique, and many online courses come with personal projects like The Complete React 16 - The Complete Guide Course by Maximillian and this HTML and JavaScript course by Jonas Schemdtmann. Now, for some people doing a particular project is a most daunting task, but it's not difficult; just start small. If you have friends, then involving them can also be a good idea.



Now, if you are thinking about how to choose a personal project, then focus on your passion; for example, if you like games, then build something like BreakOut, Tetris, or Tic-Tac-Toe, you will learn a lot. In fact, I learned about the array data structure that a board can be presented using a 2D array while building games like Tetris.

Here are some more ideas for your personal projects:

1. If you like to work with data, then you can do something web scraping and build something which shows the top 100 deals for today or maybe find the top 100 free books or courses released online.

2. If you want to understand better front-end, you can build your own website/portfolio.

3. If you want to build a full product, start with a TODO list website, or a blog, or maybe a twitter clone.

This is my 3-point formula for learning to code in 2020. I have taught many people how to code using this formula, but in the past, it was books rather than courses and building standalone projects than web applications or mobile apps, but this formula works.



Best Books, Courses, Youtube Channels, and Tips to Learn Coding

Here are some useful resources to kick start your journey. First thing, I suggest you to learn to code using Python or Java, if you choose Python then there is no better resource than the Complete Python 3 Bootcamp by Jose Portiall on Udemy.

best course to learn Python for beginners


And, If you choose Java, I suggest you join Tim Buchalaka's The Complete Java Masterclass course; if you complete this course end-to-end, you have everything you need to succeed as Java programmers.

best course to learn Java for beginners


Here are some more good websites, articles, and tutorials for people learning to code:

1. Websites

There are a lot of great sites out there which will teach you how to code and allows you to practice coding challenges and perform katas, I have already mentioned Codewars, which is excellent for beginners like you and people learning to code, here are a few more you can take a look:

The freeCodeCamp.org is a great website focused on web development and JavaScript. It's totally free and they are now also adding Python tutorials which make them even more useful.

Then you have sites like Udemy, Pluralsight, Codecademy, and Khan Academy are very similar in terms of varieties of courses, but Udemy has paid courses, Khan Academy is free, and Codecademy is a mix of both (paid and free classes).

There is another site called Educative, which is a bit different because it has text-based interactive courses and code you can run from the browser. It also has some free and paid resources, I have shared some of the free Educative courses as well, you can take a quick look at them to learn Java, Python, and other programming languages.

Also, don't forget the MOOCs like Udacity, Coursera, and edX. All these websites have excellent courses. You can try them at your own pace. The only thing is that they are free for learning but you need to pay if you also need certificates.

I have also chronicled all these resources and a few more in my article about 21 websites to learn Programming for free. If you want, you can check there as well.

best websites to learn to code



2. Books

I love books, and most of the things about code and programming I learned from books, while 2020 could be a year or video courses and interactive websites, books are still relevant. If you are learning to code, I strongly suggest you buy Head First series of books they have books on teaching Python, Java, Ruby, and other programming languages.

1. Head First Python is an excellent book if you learning Python

2. Head First Java is a bit old but still the best book for beginners

3. Head First JavaScript is another solid book for learning to code using JavaScript.


best books to learn coding



3. YouTube channels

I don't watch Youtube a lot, but I follow some programming and technical channels, here are a few of them:

CS Dojo is really focused on programming interview advice, Python, algorithms, and data structure stuff. This channel is from YK Sugishita, a former Google Engineer in Montreal, Canada, now working fulltime as Youtuber. Some of his Python tutorials are really awesome

FreeCodeCamp also has a Youtube channel which is full of absolutely free resources like multi-hour long online courses,

While learning to code, Resources are essential, but too many resources can literally confuse you and become a hindrance than a help. That's why I am not going to give you a lot of options, once you learn to code, you can find a lot of possibilities yourself but to start with just stick with the few resources I have mentioned in this article.

Another thing to note is while coding is fun, sometime you may be stuck, and if you do, don't get dishearten or drop the ball. Ask for help in forums like freeCodecamp forums or StackOverflow, you can also use twitter. There are many people willing to help online, and if you are parts of the community like freeCodeCamp or Codewars, it's even more straightforward.


That's all about how to learn code in 2020, but I am confident that if you follow my tried-and-tested 3-point formula of joining interactive courses, solving coding problems, and building projects, you will learn to code in 2 to 3 months. If you are unsure about which programming language to learn first, I suggest you go with Python. It's simple, easy to learn, and there is a lot of material available online.

Other Programming Articles you may like

Thanks for reading this article so far. If you like this article, then please share it with your friends and colleagues. If you have any questions or feedback, then please drop a note.

P. S. - If you just want to do one thing at this moment to kick start your coding journey, I suggest you start with Python and join the  Complete Python 3 Bootcamp by Jose Portiall on Udemy. This is the best way to learn to code with the world's most popular programming language. It will help in getting results quickly and you will be a much more useful developer.

No comments :

Post a Comment