I set myself the goal to update and improve my skills and knowledge in web development. In this post I’ll tell you what steps I’m doing for this and why should everyone practice this. I hope that those who want to develop professionally and not stand still will take benefit from this post.

Why not just develop your skills at work

Years of experience does not save developer if all this time he solved the same tasks with the same stack of technologies. How it seems to me correctly to assign a junior level to such developers.

To prevent such a scenario, programmers should find such tasks themselves that will force them to learn new technologies and expand their knowledge or learn new technologies and look for suitable tasks to consolidate the knowledge gained.

Steps

Next, I will describe the actions that I undertake by myself to improve my skills.

Read

Reading

Think before you speak. Read before you think.

Make a list of literature that is suitable for your purposes. For example, for me it looks like below.

Books:

  1. PHP Objects, Patterns, and Practice. Matt Zandstra.
  2. Code Complete: A Practical Handbook of Software Construction. Steve McConnell.
  3. JavaScript: The Definitive Guide. David Flanagan
  4. Others

Articles and web resources:

  1. Bash
    • https://www.bash.academy/
    • https://www.learnshell.org/
  2. PSR PSR-1 PSR-2 PSR-4
  3. and many others

Top up your list and read in your free time and on weekends. One book a week.

Practice

Practice

Practice make perfect

In parallel with reading, consolidate and deepen your knowledge by performing tasks appropriate to your level. These can be exercises from the book you are reading or web resources. For example I use the following resources:

  1. Exercism - Download and solve practice problems in nearly 30 different languages, can receive feedback on submissions, for newbies and experienced programmers.
  2. Codewars - Learn through solving problems (Katas and Kumites) in different languages and of varying difficulty and complexity. You can also achieve points with each problem you solve to rank up!
  3. Codecademy - Interactive coding lessons in many languages.

Code

Code

Don't learn to code. Learn to think.

Think of an idea for your project and implement it in free time using the technology you learned. Below is a list of projects that you can implement:

  • Blog
  • Online store
  • Forum
  • Weather forecast website
  • Website with current exchange rates

Or you can participate in the development of one of the existing opensource projects. For example, I forked the repository of Laravel framework and next week I plan to make the pull request into the main repository, resolving one of the issues.

Bonus step

Register on stackoverflow and in your spare time help people solve their problems. Personally, I try to answer 4 questions a day and now I’m in the top 2% of month.

StackOverflow

If your native language is not English then improve your knowledge of language skills:

  • Learn grammar
  • Increase your vocabulary
  • Improve pronunciation and overall ability to speak English

As for me, I do an English on the way to work and back.

Summary

Steps for dominance:

  • Create a list of books to study and read one book a week
  • Practice, do exercises
  • Work on your project or participate in existing opensource project