Improve yourself as a programmer
Tags: programming, beginners, productivity, career
Published: 2024-01-06 17:05:20

Sometimes we are stuck. Therefore it is nice to have peoples which pushes us in the right direction. This weekend one of them sent me a video https://www.youtube.com/watch?v=q-_ezD9Swz4. 

This is what I have learned from this.

## Learn how to learn.

As programmers we need to learn a lot, however, if you have your formula it's much simpler and more effective. I heard that 

> **WE REMEMBER**
>
> 10% of what we read
> 20% of what we hear
> 30% of what we see
> 50% of what we see and hear
> 70% of what we discuss with others
> 80% of what we personally experience
> 95% of what we teach others
>
> - **Edgar Dale**

Of course, there is a Feynman's method, but I still working to implement this in my circle of learning.

Why learning is important

- rapidly changing technologies
- code is a tool for your customer, it needs to solve the problem
- adaptability, sometimes you are not in control, you need to adapt your knowledge to the situation and learn fast to fill the gap.
- independent learning, not everything is in documentation, by practice we discover many useful things, but it takes time.
- productivity, if you are more efficient in learning then you have more time for other activities, therefore is good to be efficient.

## Your Motivation

What excites you and why you code are the proper questions. 
You need to know whether you want to code because of your career or you want to write an app or it is simply your hobby. But I think it is nice to have some fun or a strict reason to do this, because when problems appears then you can fall back on your motivation, without asking yourself (x100)

> Why do I do this?

## Fundamentals are the most important

the author says that you need to use specific technologies when you need to solve specific problems

-   Web -> HTML/CSS/JS after this you can learn backend
-   Mobile IOS -> swift
-   Mobile Android -> Kotlin, Java
-   Mobile Android and IOS -> ReactNative, Flutter
-   Video games -> Unity (C#), GODOT (C#), Unreal (C++)
-   Machine Learning -> python

I agree, however, I think there are other possibilities and if you want to write the game, you can do it in JS, but it will be a game in the browser, so use proper technology for your problem. 

## Avoiding Tutorial Hell 

You need to have a limit to watch tutorials and simply to use the knowledge, which you gather for it.

You need to challenge yourself to solve problems and use the skills that you learned.

This help you 

## Build Portfolio

The projects that you wrote will speak for themselves. 

> Code will tell the truth

## Circle of Learning

- write code (not try to be perfect at first time)
- learning 
- iterating
- improving

For me first point it's quite hard. I have many thoughts, I can do this think in this or that way, and waste too much time. Instead of writing a code and measuring the results or simply asking someone with more experience.

## Buddy/Mentor or Share your code

If you share your code with others they can give you feedback and your circle of learning speeds up. Same situation if you have a Buddy or Mentor, who can verify your ideas and help you improve your code. Code Review is a good tool that can help us to become better programmers, and many of us like open source projects.

So as the author of the video says
> You have to work very hard 
and now you know, what you need to work hard.