Every senior developer was once a beginner programmer. And each of us at the beginning of this road faces one major challenge: finding a reliable source of knowledge.

Where to search for knowledge in the IT world, where it becomes outdated in a short time? How can you maximize your development curve?

What sources do we have?

We have a very comfortable situation right now. The number of places from which we can get something important is large and is still growing.

Programming schools / studies

These are usually in our native language and led by specialists, with learning taking several days to years. While studies can be free or paid, programming schools are never free, and the cost is not small. You should give a lot of thought before making a final decision.

Also, it is worth considering what to study. At programming schools, the emphasis is on a specific technology or narrow IT field, with a high level of detail. Studies give a wide knowledge of various technologies, giving a solid general foundation and an understanding of programming.

Bootcamps

These last up to several months and are very intense. They are usually focused on a specific programming language where, under the guidance of an expert and mentor, you develop your skills. This type of learning requires self-discipline. It is worth mentioning that bootcamps are also paid.

Training / Workshops

Lasting up to a few days. Due to the limited time available, these focus on a narrow issue. There are different levels, with some workshops for novices encouraging them to explore the topic and others for more experienced people.

Usually, you must pay for attendance, but there are also free workshops organized by various companies. They also allow you to get to know the company “from the inside”.

Documentation

This is the most formal way to learn and the information is almost always checked. Although you can come across well-written, current library documentation, containing detailed examples and explanations; there are also those that are incomprehensible, outdated or sloppily created. Unfortunately, the degree of accessibility varies.

It is worth learning how to use the documentation. Sooner or later this will be the main place of obtaining information as documentation is a basic tool in the work of a developer.

On-line courses

The most interesting form of learning for people who like to listen rather than write. On-line courses give the freedom to learn whenever you want, at your own pace.

On the internet, you can find both free and paid courses. Prices range between a few dollars, up to several hundred dollars.

Blogs / Vlogs

They focus on selected issues, talk about the problems encountered in their author’s work and sometimes share thoughts on the code. The range of offerings is large, so you will find an article that is at your level of knowledge, with a basis to further explore the topic.

Conferences / meetups

Conferences are for more experienced members of the community, not only because of the ticket prices but because of the narrow issues that are usually presented at a higher level.

Meetups are the most diverse of meetings. A lack of entrance fee and a casual atmosphere are their greatest advantages making for a great way to broaden your horizons and contacts. It is worth looking at the agenda before deciding to participate.

Social media

A surprisingly interesting source of learning, starting from discussion forums, through posts on groups, to short tweets.

Many experienced developers have their own Twitter account where they publish their thoughts, take part in discussions, share blog posts. This is the best source of inspiration and information.

Conversations

An often-underestimated source of knowledge. We have many conversations during the day, some of them relating to programming or problem-solving. Hints from experienced developers are always valuable, as they open you to new perspectives.

Stack Overflow

Stack Overflow saves developers time every day. It’s is the most popular forum to help, explain and inspire, with the high probability that someone has had a similar problem. Although Stack Overflow is an ordinary forum, the answers are at a very high, substantive level.

GitHub

You can find a lot of packages, libraries and projects on GitHub. What’s more, you can investigate someone else’s code, allowing you to gain inspiration and knowledge. They are often created by very experienced developers.

GitHub is a great source of knowledge not only because of the code but also because of its interesting discussions and explanations.

Practice

Nothing will be effective enough in the long run unless it is combined with practice, the most important part of learning. By creating your application, you encounter real problems, and in this way, learn to solve them and to think algorithmically.

It is only when we write that we notice difficulties. We then pay attention to the details necessary in creating a working application, finding out about our limitations and learning what we don’t know.

It’s great when, in the beginning, you can cooperate or talk with someone experienced. I also encourage you to take advantage of various programming competitions or hackathons.

There are many places where you can learn. Not all will be suitable for you. A senior developer will get more out of a conference than a beginner. A programming school is a good place for a junior developer, rather than a senior. But regardless of what you choose, you will always gain knowledge.

And a very important note – paid courses are not the only way to become a good developer.

I know this from my own experience. With neither a programming school or IT studies, I managed to get to a great company, and I don’t regret the effort I put in to get here.

Successful learning!