Originally posted on dev.to

Introduction

It doesn't matter if you are an employee or you work from home as a freelancer, there will be a moment in you career when you will end up on some kind of a long term project one way or another.

At the beginning, the project will look cool and attractive, as any other new thing, especially if you don't have the previous experience with the technology that will be used. You will be super excited to work on it and learn the new stuff.

Then you spend six months on it...and then a year, and another year...It feels like you are sitting on a bench and watching a lot of cool stuff passing you by...Something like, oh, Angular...gone, Vue...gone, React...gone, .NET Core...gone.

pass by

No need for further explanation, you get the point :) We shouldn't allow this, and we should always go along with the stream.

The Software Industry pace

I fell in love with the software a long time ago, thanks to my college professor, and I've learned that the industry can rapidly change, therefore, if you don't follow it, the time will consume you and your knowledge will become outdated. The learning part of our profession is never-ending process. I will never forget the sentence he spoke: "If you do not intend to learn to the very end of your career leave the profession now".

Just think about it, in the last couple of years how many changes and additions were in the industry, especially in the frontend domain? How many new JavaScript libraries were created? What did you need to know to set up your web app a couple of years ago compared to the knowledge you need now?

The key part here is that we need to love what we do, and everything we need to do related to it becomes super easy.

Learning Subjectively and by Doing Lectures

We all know how our work can be demanding with all the deadlines and client requests, but sometimes we can grab a free time here or there. If this is a small amount of time, you can use it to learn something what you are interested in or something that is mainstream. During this time you can install you favorite IDE and setup a hello world application with one of the popular frameworks. Try as many configurations as you can, play with it and see what the output is. Remember that you are doing this in purpose of learning therefore nothing is forbidden. Put the code on GitHub. That way you will be able to access the project from another machine, and as another plus, you will learn git as well.

Another great approach is to do lectures. From time to time you can, together with your coworkers, set up a small classroom where you will pick a topic, prepare yourself by gathering the required knowledge, and present it to the group.

During the presentation anyone can ask you questions. By being able to answer or not you will see how well did you prepare and what did you miss during your learning process.

You can create a schedule where each lecture will be presented by a different person from the group. This is a great way to learn together and increase the average knowledge of the entire team.

Learning at Home - Open Source projects

This way is the most common, and often, the only way of learning new things. The main benefit of this way of learning is that you are not time dependent. You can read articles, learn slowly and prepack you test solution as many times as you want. There is no one to rush you and break your loop.

After being comfortable enough with a new technology you've picked up, you should try and create something useful by using it. Set up the solution as an open source project. This is a great way to get some feedback from the people packed with the knowledge about the technology you've used, and besides commenting your project overall, they will probably throw a couple of technical comments as well.

By following these principles I've created this repository.

Knowledge Database

Don't be lazy and create your own knowledge database. Save examples of working code, write down the explanations, bookmark useful links...All of this will come in handy in the future, be sure about it. You will save yourself from the struggle of searching again and again for the same thing on Google and StackOverflow, plus you will have the explanation and comments written in your own words which will help you understand the code.

You setup a GitHub repo with your coworkers and each of you can update it every time when something new and useful is found.

Blogs

Read, read and read. Pick a blog, or your favorite author(s) and follow what they are writing.

But always try to understand what you are reading. Don't just go through an article without focusing. Since you've opened it, you are probably interested in the topic, therefore you might as well try to read it with understanding.

By understanding what you've just read, you can get involved in the discussion, leave a comment, point out to a part that could be done or described better...Going through an article and looking at the cute girl/guy passing by outside while reading is just a waste of time and won't do you any good...in terms of learning and upgrading your knowledge of course :).

Conclusion

That's it. There are the guidelines I try to follow when keeping with the industry standards.

Thank you for reading.