So you want to start programming, but you don’t know where to start learning from or even what you need to learn to start programming. Not knowing what to learn is one of the most common problems when people decide they want to become programmers or just to learn as a hobby, simply because it is a field so vast. I will recommend my favorite resources to get started and give you some pointers on how to not lose as much time as I have, in my six years of programming.



The Harvard CS50x online course is essentially just the course available in their university for Computer Science majors, but for everyone, for free, and online. By far the best course on Software Development available on the internet, and it’s certainly worth it if you’re ok with doing some very challenging exercises to get through the tick of it. It’s very hard, but if you complete it, you’re certainly very well directed in the journey of becoming a Software Developer.

  • Hard, but extremely rewarding
  • Learn (almost) everything you need to get started with your projects
  • Completely free if you don’t want the edX certificate


The CodeAcademy courses are amazing if you want to learn in shorter amounts of time, with a predefined path, easy-to-follow content, and good teaching. One of the most famous platforms of all time for learning programming, and I had lots of fun doing their courses a few years back. One of the only disadvantages of CodeAcademy is that I believe you should get one of their paid offerings to make the best of it. But if you want to get started fast and get an idea of what programming is, then the free offering on the website is very good.

  • Easier, but an amazing learning
  • Develop projects, learn step-by-step, practice every moment of the way
  • Mostly free


The FreeCodeCamp organization not only has an amazing YouTube channel with great content, but they also have free courses on their website that get you from start to finish in tech stacks and will put you on your way to start developing your projects. Their courses are very long and have similar difficulty to the stuff you’ll find in the likes of CodeAcademy, but in contrast, they are available completely for free.

  • Huge courses that get you from start to finish
  • Will help you get started with a tech stack
  • 100% free

Python for Everybody

Lastly, but certainly not least is the Python for Everybody course. When you open their website you’ll find this course is available on a multitude of platforms and you’ll do the practice on their website. This course is completely free and very easy for beginners. If you want a good course that will get you started with programming with Python, a very popular beginner language that is very used for scripting, machine learning, and websites, then this course is amazing. If you’ve tested CS50 and didn’t like how hard it was, this is the one I recommend for you, I truly love it and recommend it for anyone just getting started.

  • Get started with a very focused, linear, step-by-step course
  • Video course along with exercises online
  • 100% free


The New Boston

The New Boston is one of the classics in the YouTube software development space. He is most suited if you want to learn just about the programming languages but not much about actually developing projects, albeit he does have courses that will get you started with web development they are a bit dated. Although he has stopped posting new content, the huge archive of videos he has produced over the years has helped millions of developers along the years with his funny, and very educative, video courses.

  • Great, funny, and enjoyable tutorials
  • Good didactic, easy to understand
  • Complete, from start to finish, content


Fireship is a channel by the Google-certified software developer Jeff Delaney. He is very good at showing a lot of content in a very short amount of time. His pacing is very good for starters and experienced developers-alike because he knows what’s important to show and what’s not. If you want to get immersed fast in software development and get to know just a lot of stuff fast, watching this YouTube channel is a must.

  • Great to get immersed
  • Lots of technologies in a short time
  • Fast-paced, frequently released new content

Traversy Media

The Traversy Media YouTube channel is one of my favorites and it has helped me get started with lots of technologies before I had the technical know-how to read the documentation and the high-level view of everything that’s happening to learn stuff by myself. If you’re just starting with a project or technology, or just want to see how some tech stacks work, then you should definitely watch some of the crash courses and tutorials by Brad, he’s amazing.

  • The best crash courses to get started
  • Amazing, up to date content
  • Slower rhythm, great for beginners

Some pointers

Become immersed

To get good with software development you have to become immersed in it as much as you can. This means to practice, to learn, to think about it as much as you can. Obviously, you should have a life, like don’t give up everything just for this, but the more time you spend with software development, even if it isn’t super focused time, maybe you’re just doing some stuff for fun, the faster you’ll learn. Join online communities such as those on Reddit and follow YouTube channels you find joy in watching that talk about software development, or maybe just software in general.

Specialize, specialize, specialize

I’m in my personal opinion you should try to specialize as much as you can as early as you can in your journey in learning software development. If you don’t you’ll end up like someone like me, that after 6 years of software dev knows a lot about a lot of stuff, but not much about any specific thing, and that makes it hard to develop more intricate projects or even get a job if that’s what you’re looking for. So choose a niche and choose the technologies you want to work with as soon as you start to grasp the space and understand the advantages and disadvantages of every technology.

Books are not that important

For most stuff, you can learn about programming you probably should NOT read a book to learn. The nature of programming is ever-changing, and books are static. This means that reading books almost guarantees that you are going to have outdated or at least not relevant content. Some books are (almost) timeless and those are worth it to read, such as books about coding style and organization, however, these are not books you should be reading as a starter to software development.

Develop projects (!!! IMPORTANT !!!)

If you don’t develop your own projects in your free time, then learning to program is going to be extremely challenging. If you don’t really know what to develop then courses like CS50 and some of the CodeAcademy paths have projects that you can develop along the course which will help you. But it is very important past this first stage of learning to develop projects WITHOUT following tutorials or courses because programming isn’t about the languages or syntax, it’s thinking, learning, and adapting, and that’s something that no one but you can teach you.


I’ve gone over some of my favorite resources to get started learning how to code, which could help you get started with software development as a hobby or as a career, as I also gave you some tips to improve your productivity in this journey, based on my personal experience. This is not set in stone, and the resources I’ve listed aren’t going to be the best for everyone, so make sure to research for yourself and learn how to research to have a good time in software development.

And always, have a good one,