This is the beginning of the journey. You want to start coding. The way to do it is to pick up a language and start learning. You can look for information in books, blogs, online courses, youtube, anywhere. There are tons of resources on how to code. Where to start?

First you need to pick up a language. Depending on your background, and your goals, you may start with Python or PHP, both are current and widely used. They also have many frameworks to choose from, once you have mastered the basics. Then you can move to Javascript, that also has its own frameworks (React, Vue.js, Angular, etc.), combined with HTML 5 and CSS, and then something more structured like Java, C, C++, C# and lately Go. These are some of the most common, and used at enterprise levels.

Mastering, or being fluent in any of the previous languages is granted to give you at least an interview, or some freelance projects.

Now, here are some tips to learn the language(s) you choose:

  • Think on a problem you or somebody else have and that you want to solve. The solution for that problem obviously has to be the result of something coded in the language you want to learn. This will give you a guide on what you have to build, and the resources required to build it.
  • Implement some algorithms in your selected language. Qsort, shortest path, binary search, etc. This will make you learn some fundamentals of programming, and will definitively make you better at it. Also, you'll learn to think before you code, which can be harder than it seems.
  • Get involved in an open source project. Look for something you like, contact the people who maintains it, help writting documentation, read and understand the code, what it does, how it does it, and why it does it the way it does. As you make improvements, you may even start contributing with code.

In addition to learning the language of your choice, you also have to learn how to setup your development environment. Select and IDE (Integrated Deveopment Environment), a compiler, a test framework and a source control manager. And finally, a way to deploy it to production, to share your solution to the world so that it tackles the problem it was created to solve.

This is basic information, but enought to keep you bussy for a while. Just after this is when some IT branches start to diverge, but that will be another post.

Happy coding!