The Best Resources for Learning to Program

Brock Joseph Herion
6 min readSep 4, 2020

Learning to code is not as tedious as you might think

Photo by Jessica Lewis on Unsplash

There is no better time than now to learn how to program. Software development is still a relatively new discipline, always changing and evolving. It’s an exciting, fast paced world filled possibility.

With this changing, growing environment, the barrier to entry has also been lowered. The internet allows information to travel almost instantaneously across the globe. Languages have gotten easier to learn, debugging tools more powerful, and help more accessible. With that in mind, I am going to breakdown the best resources that you can take advantage of today to get in you started in the world of programming.

Formal Education

While I think schools need to catch up to the real world in their computer science curriculum, they still hold value in learning how to code. They give you a baseline in languages like C++ and Java and teach you more advanced concepts like data structures and algorithms. It’s a more theoretical approach to programming, explaining how and why things work the way they do.

Another huge benefit is you get a degree at the end of your four year education. While it can be argued that not all jobs require degrees, it helps boost your resume and can help you if you plan on moving into a management position later in your career. Most jobs that still require a formal degree tend to be for development at more formal institutions.

While the positives are nice, there are a few downsides to a formal education. They don’t always teach you what’s new or standard in the industry. There is also a huge cost, both in time and in money, that needs to be invested. Schools are not cheap. You will be down a few thousand dollars and about four years of your life if you pursue a bachelors degree. There is also a heavy math emphasis. You are normally required to take calculus, discrete math, linear algebra, and some elective courses.

This is a good option if you are currently in high school and plan to go to college or are already in college and don’t have a major decided yet.

Bootcamps

Bootcamps are like mini versions of college. They teach you modern tools and technologies and how to build applications in a much shorter amount of time that college does. Usually, bootcamps last around a few months. Some even places for you to live and stay.

Bootcamps are much more practical than college, as they show you how to program and build applications from the ground up. They also teach tools like Git, which are crucial to modern day development. These kinds of things are not always taught in schools.

The downside is the cost and time commitment. While not as expensive as college, they can still run you thousands of dollars. They also cram a ton of material into a short period of time. Be ready to give up a few months to attend a bootcamp.

Bootcamps are great for people looking for a more traditional way of learning how to program that isn’t as long or tedious as college.

Online Courses

This is a pretty large category to cover. I have broken this down into two kinds of online courses, formal and informal. Formal courses are more college-like, but its usually for a certification and taught online. Some examples of this include the CS50 courses through Harvard or the Helsinki Java MOOC course. Informal courses include courses on Udemy or Pluralsight.

These are great to learn a wide range of skills, more-so than what a school can teach you. You can learn languages, frameworks, libraries, and even cloud computing. There is a huge range of things to learn. You are not bound by a curriculum saying you have to learn C++. Want to learn Swift? Have at it. Wanna give Go a shot? Go for it. Want to learn both? Even better! The more formal online classes like CS50 are great options as well. They act as more of an intermediate between a formal college education and an online course. You don’t need to go to school for four years and pay outrageous sums of money for an education.

While much cheaper and more flexible than a college course, these courses can end up being a money sink too. Udemy charges per course while places like Pluralsight charge a subscription fee. It’s really, really easy to start a course and just not finish it. Unlike college, there is no accountability for you to finish your work or the course. That choice to finish lies with you and you only. You can end up wasting a bit of money on courses. You can also end up buying a course that doesn’t have a great instructor. Usually, these courses have reviews on them so you can see how good they are, but sometimes you’ll buy a course that ends up being subpar.

This is great for people who want to learn programming or expand on their existing knowledge.

YouTube

YouTube is a fantastic choice for getting your feet wet in this field. The videos are free and there are tons of tutorials that can get you up and building things fast. Some great YouTubers are Brad Traversy, Derek Banas, and Academind. These resources are fantastic for tutorials, language learning, compares and contrasts between frameworks, and much, much more.

The huge benefit here is that you don’t need to pay for content or courses. There are also tons of tutorials for virtually every language and framework you can want to learn. There is also tons of lectures and talks and more advanced concepts.

The main downside here is it can be very easy to get stuck in a tutorial loop, where you keep building apps from videos. You follow it line for line, but never learn what the code actually does or how to replicate it. Sure you built an app, but what does it do? How can you build on it? Tutorials are great for learning how to put things together, but not as great for learning how a language or framework works in depth.

This option is great for beginners and people looking to start learning how to program.

Books

Books appeal to a specific kind of person. It takes a lot of dedication to sit down and read through a programming book. Some books, like Automate the Boring Stuff with Python are great introductions to learning how to code. The Head First series is also widely acclaimed for learning how to code. It takes a lot of work to get through some of the larger, more in-depth books however. Some books can be a few thousand pages long and not easy to understand. Some go into exquisite detail on the nitty-gritty of a language or theory. Another issue with books is that things are evolving so quickly, the book might go out of date very quickly. Some books can also get really, really expensive.

That said, books can serve as a great foundation to learning. They can provide a wealth of information and more value than an online course sometimes. They can also serve as a handy reference manual if you need to look something up and most books include practice problems that apply both theory and practicality.

Books can be used at all levels of learning how to program.

We looked at a few of the most popular ways to learn how to program. Chances are, you will end up using a couple of these in your learning. You no longer need a formal education to start working as a software developer.

The biggest thing you can do to help your learning to to just start programming. The more you can code, the better you will get at it. It can be hard to take those first few steps on a new project but once you do, you will eventually start running. Keep writing code.

In this field, you never stop learning. It doesn’t matter if you go to school or watch a YouTube video. You will never stop learning and improving your skillset. The more you learn, the better a developer you will be.

--

--

Brock Joseph Herion

I am a software developer who love coding in Python, Javascript, and C#. I am a sucker for learning new technologies and tooling to make development easier.