How To Keep Improving Programming Skills
Tags: javascript, skills
Published: 2019-07-18 10:26:18

Web development is a pretty dynamic working field. And you should keep up and feel the pulse of it by educating improving your programming skills. If not the reason to keep up with your smart peers, be it for the better version of yourself.

## What's holding back
For me, it's a lack of motivation and laziness. It happens when I don't have a learning/training plan, which guides me and keeps out of thinking about what to do next. And, burning out at work after a stressful period, be it a sprint, feature fest or just lack of sleep.
To get back on your feet and trick yourself into wanting to learn more, I have gathered a shortlist of resources, that helped me in the past, and may help you to find a motivation for learning.

## Resources
#### Challenges and puzzles
Challenges, puzzles, algorithms. My favourites, love it! Always beats learning procrastination. Takes a short amount of time, sharpens your mind, especially in the mornings. There are two platforms where I play and can recommend:
* [Codewars](https://www.codewars.com/)
* [CodeSignal](https://app.codesignal.com/)

Suites for any programming level, everyone will be challenged. An excellent way to remember sorting algorithms, data types, and math.

#### Reads
Keeping a book at the bed table also works, especially if you developed a habit to read something before sleep. Be careful not to choose too technical material; it will be hard to read but easier to fall asleep. Pick something light to read, for example,  soft skills in development. Recently, I read two books by **John Sonmez**:
* The Complete Software Developer's Career Guide
* Soft Skills

Books are easy to read; the author's tone is engaging and fun — tons of significant bits of advice.

If books are too much or don't feel like it at that time, catch up tech news with weekly subscriptions:
* [Node Weekly](https://nodeweekly.com/)
* [JavaScript Weekly](https://javascriptweekly.com/)
* [CSS Weekly](https://css-weekly.com/)

#### Frameworks
Pick the new/trendy framework to learn. Do the tutorial or online courses. You will see new programming patterns, project structures, see things from a different perspective.
For example, not long ago, I picked the Gatsby framework and learned how to generate dynamic web pages reading information from the MD files with GraphQL. Now [my blog](https://spukas.lt) is based on it.
Starting list could look like:
* React
* Next.js
* Gatsby
* Vue
* Svelte

#### Personal projects
Build a personal project, especially if you got tired from tutorials. You don't necessarily have to finish it or commit to it for the long term. Just by starting and creating you will have to think on your own (comparing to tutorials), outside the box, encounter problems that never had and have the opportunity to solve them creatively.
Let's brainstorm what could it be:
* Going to the gym? - Workout logger
* Writing a blog? - Webpage with your portfolio and blog inside
* Like to watch TV series? - Microservice to notify you when your favourite series is on air.

You got the idea.

#### Meetups
Find and participate in local meetups, workshops, or conferences. Excellent opportunity to know about new tech topics, different perspectives, talk with like-minded people and make friends.
Start by searching in [Meetup](www.meetup.com) website for events around you.

#### Personal development plan
Recently our team lead introduced personal development plans for developers who wanted. The plan consists of the skills you are behind and need to focus on more. It targets your daily duties and tech stack of the product. So not only improving your skills but can test them at work and bring more value to the company.

Try asking for a team lead or senior peer for help in building your development plan. Ask where are you behind and need to catch up? What can you learn and do to increase company value?

## Wrap up
Learning and improving your development skills shouldn't be complicated or tedious. Plan, thinking of possible options and do it. And the most important thing is to find what is fun and excites you.

What is your favourite way to improve programming skill?