Programming has changed a hell of a lot in the last few years and we’ve seen multiple new languages pop up all addressing different problem sets and skill levels. The main goal for this article is clarifying some of the basic concepts and guiding you as to where to start if you are wanting to learn how to program in 2017.

Choosing a Language

There are literally hundreds of languages out there, from C++ to Python to Go. Choosing the right one to start off with can be hard and somewhat daunting for someone who is new to it all.

Generally the best language for anyone to start off with would be Python 3 and above. It’s certainly one of the easiest to read languages available and it’s immensely powerful in terms of what you can do with it.

The latest version is currently 3.6.0 at the time of writing this and you can download this by navigating to the Python Download’s Page Here.

In most languages we have this concept of libraries, which are essentially pre-written bits of code that we can easily add to our own code and use. Python is no exception and features thousands of already written libraries that can help you do things like write a web server, build twitter-bots, scrape the web and more.

What Should You Learn First?

If you are completely new to programming then the best place to start is to get a simple “Hello World” program working in your command line. Getting your first computer program written and running quickly is a huge motivational boost and definitely something that kept me going when I first started.

The Basics

Once you’ve gotten your first “hello world” program running then it’s time to start learning some more powerful concepts like if statements, for loops and things like variables. One of the best online resources for learning these things is undoubtedly CodeAcademy.

CodeAcademy’s Python course walks you through basic concepts and starts getting you into the programmer’s mindset.

This github repo has a fantastic list of places that help you learn as well: Learn To Program Repo

Testing Your Abilities:

Once you've worked through some of the basic courses then it would be a good idea to test your new-found abilities with some programming challenges. /r/dailyprogrammer provides some excellent daily challenges.

If these don't take your fancy then I recommend possibly checking out Project Euler which features hundreds of programming but typically factor in various mathematical concepts: Project Euler

Source Control Management

Once you’ve mastered the basics of Python then it’s time to start building a portfolio of all your cool projects and to start learning the basics of Source Control Management.

Source Control Management systems help teams work together on the same projects at the same time from anywhere in the world.

Github has an excellent interactive resource that you can use in order to learn the world's most popular source control management system: git. Check it out here: https://try.github.io/levels/1/challenges/1

A lot of the most popular open source software projects are written and managed using github.

Conclusion

This article is by no means finished. I will be updating this throughout the year as I try to make this one of the most accessible and comprehensive guides on learning how to program in 2017.

If you have any comments or suggestions then please let me know in the comments section below.