How to learn to code in 2021 (for free)

Learning new technical skills can be intimidating, and coding has a way of giving people (including myself) headaches during the learning process as it challenges our logical thinking, but it is incredibly rewarding with each new challenge solved and allows a level of creativity that very few technical fields offer. My goal is that by the end of this article you’ll have a better idea of where to start your coding journey to level up your skills and solve problems in the future!

Which language should I start with?

Python is the go-to language most people recommend starting with since it’s lenient with the syntax and easier to read than others. Python is used in various fields such as web development, game development, data science, and artificial intelligence/machine learning. If Python isn’t your thing, don’t worry! There are other popular languages that people start with such as C, Swift, and JavaScript--which are all found in things we use everyday. When you’re first starting out, learning the fundamentals is more important than which language you use. That part comes after you figure out what you want to build. Programming languages have their commonalities when it comes to their logic and flow, so once you learn one, it becomes much easier to pick up more in the future as needed.

(Warning: a common myth is that knowing more languages makes you a better programmer, which isn’t necessarily true. While you should always be open to learning new languages and tools, it’s better to be proficient in a handful of languages rather than so-so in 20 languages).

What tools do I need to get started?

You don’t need a $3000 computer or a massive high resolution monitor to start building software, any modern computer will do whether it’s a Mac or a machine running Windows. From there, all you need is an internet connection, a text editor (a popular favorite is VS Code, it’s free and gets updated frequently with new features), and the willingness to learn and push through any challenges you face.

That’s it! There is a 99.99% chance you can get started learning on the device you’re reading this article on today.

What are the best places to learn how to code?

There are countless resources online today that are free where you can learn how to code. It really comes down to how you learn best. Is it books? Videos? Exercises? Below I’ll list some of my favorite free resources where I learned to code, ranging from general programming to web and iOS development:

General Programming

Automate the Boring Stuff: a free PDF to get started with programming in Python. It starts with the basics such as variables, conditional statements, and loops before getting into more practical implementations such as automating Excel spreadsheets, sending emails and text messages, and more.

Web Development

Traversy Media (YouTube): My favorite resource when it comes to learning anything related to the web. Brad is an amazing instructor and has videos using various languages and frameworks ranging from Python, JavaScript, and PHP. My favorite videos are his “crash courses” where he’ll teach the basics of a language or framework in an hour or so.

Net Ninja (YouTube): If you’re more into structured lessons, Shaun from Net Ninja has playlists with topics ranging from CSS animations, HTML, modern JavaScript, and cloud platforms to help pick up new technologies quickly in bite sized lessons.

Freecodecamp.org: In my opinion this is the premier platform to learn how to code. It starts with the basics of HTML and CSS to get you to build basic pages, and you can earn certificates as you complete their courses. There's even a section that prepares you for job interviews with coding tests. The best part of the platform is there's a large community behind it, so if you're ever stuck there's always someone around to help. They recently added lessons in Python, starting with the basics of programming and then progressing into more advanced topics such as data science and machine learning.

iOS Development

Sean Allen (YouTube): Sean consistently puts out solid content to teach you the fundamentals of iOS and explain complex subjects with ease. I was able to help build an iOS application at my current job with the help of his videos.

Let’s Build That App (YouTube): Brian does a spectacular job of helping iOS concepts connect together by rebuilding popular apps such as Facebook, Twitter, YouTube, and more on his channel. Though Swift gets updated each year and some of the syntax in older videos may be outdated (the syntax has become easier to understand so it's for the best), the core concepts are still relevant.

Hacking With Swift: My favorite place to learn iOS. This website follows a project-based learning strategy where you start out building simple apps, and they progressively get more advanced with the concepts building one another. My favorite part about going through these projects was that many parts of the process get repeated, helping you get familiar with the Swift syntax and using the various features Swift and Xcode offer. The projects also stay updated as the syntax changes with each new version of Swift, so you never have to worry about it being outdated.

Summary

As you can see, there are so many paths one could take to get started. However, when you’re first starting out, learning to code starts with figuring out what kind of things you want to build and then working backwards to figure out which tools will help you achieve your goals. I hope this article served as a good primer and eased any anxieties you had about learning to code. Let me know if you found this article useful and pass it on to anyone you think would find it helpful. Good luck!