Strategies I use to learn new technical skills quickly

Strategies I use to learn new technical skills quickly

February 3, 2023

I will use python as a language to use as an example. But you can use any language, system, or process. The principles you derive are what will guide you to learn quickly. Here are the things that came up.

These personality attributes that will help you to learn quickly are these:

  • Resourcefulness
  • Creativity
  • Curiosity
  • Industriousness

You can develop those by focusing on how these are and how they can be expressed. These are also the ones that can be added to your growth mindset. To be able to learn quickly from your failures is to fail a lot as fast as you can. The best way to do that is to be in an environment where this kind of learning is possible. Reduce the time between idea and execution.

bonus points for yourself if you directly execute ideas found here!

Mindset and inner game

Let’s first get address questions that you will keep asking yourself. These are very important to recognize.

What result do I want?

There is something that attracts you to learn new things. Maybe this new technical skill will improve something for yourself or your clients. It also could feel great to understand something for its own sake. Whatever it is, write down that result. It doesn’t matter how specific or vague.

Your goals evolve

The more you execute, the more specific your goal gets. One reason is that you get to understand what is possible given the technical skill you acquire. When you start with the intention to learn quickly, you are best off starting with the first goal you have in mind. However vague it is. From within that place, you change it. Until you understand the real motivator behind the result that you want.

Where do I begin?

Collect information on what you are already doing. This is the thing you identify as a blockade right in front of you. Can you describe what that is? Use the first and best explanation and write that down. Create questions about it and use a search engine to “research” if your problem is something that others have too. Chances are that they already figured it out.

Places where you want to look:

  • Search for the documentation on the program or tool
  • Community forums
  • Source code

When you find a solution, try to understand if they have a similar problem as you do. Do not just copy and paste. We are here to understand and learn to get better, quickly. Not fix and forget. The best way to do that is to copy, paste and additionally change the code the fit the context in which it applies.

Videos are a bit tricky as some can keep you watching instead of doing. If you are someone that likes to turn it practical quickly, this is a good option too.

What do I need to begin?

Have you heard that technical people always say, It depends? The reason is that actions lead to results. So if you want a result, it depends on what actions are taken that will cause the result and in what way that will happen.

Resourcefulness

This is where your resourcefulness comes in. You start with the end in mind and work your way back. For every step you go back, the next step depends on the one where you are. List out the steps. Do not think too long about it. If you don’t know what something is called, give it the name that describes the phenomena the best. Discover the right name or way of doing it by executing the tasks and observing the results. This is the feedback you need to correct anything later on.

How do I know I have accomplished the goal?

To understand when you have accomplished your goal you need to know where to see the results. This is where you can locate what you will use later on as feedback.

These are the questions you can ask:

  • How can I monitor what is happening inside ….?
  • Where can I view logs about …?
  • How can I report on …?
  • In what place is … displayed?
  • Where is … being tracked?
  • Can … be shown?
  • Where is … being processed?
  • What is the place where results are stored?

After having located the results, the last step is to understand what the results mean. This is a muscle you will develop by researching the outputs of the monitoring, logging, and tracking of your projects. The process of doing that is called interpretation.

Your environment

Let’s first create a testing environment where you can fail quickly without it causing disasters to the things you depend on.

Virtually everything

Ways of doing that are creating a virtual environment where your experiments are isolated. You can use that to test without guilt. This removes your fear of doing something wrong because that is why it exists in the first place. Here you really can speed up your learning by testing your assumptions first. This makes taking risks lose its meaning. I mean there are “virtually” no risks but the risk of you losing time worrying.

Virtualization technologies are:

  • Containers
  • Virtual machines
  • Emulators
  • Virtual environments

If you want you can set up a virtual machine. This will take a little bit more resources from your machine. You also can use a container. I will not go over each of those in this post in depth. What I do want to say is that those are really good options if you want to try things out carefree.

Falling and standing up

The next thing you want to know is how to remove this virtual environment and get it back up quickly. This makes it possible for you to start over quickly when you did something in the wrong order. This is not only very handy for virtual environments but also for other projects.

Be careful because you will lose everything inside that environment. That is why backups are important.

When you remove everything you don’t want to remove the baby with the bathwater. This is where you want a way to have a set point that saves your progress. With that, you can go back to where everything worked and improve from there. This is why version control systems exist, like GitHub and GitLab. No more file1, file2, file_final, file_final_final !.

Putting it together

The easiest way to is to create a new empty repository on GitHub and clone it:

# Create
gh repo create {your-repo-name} --private --clone
# Go to the directory
cd your-repo-name/

This enables you to save everything and not lose your progress. Note to commit your code when your code is working and right before you are going to make bigger changes frequently.

Create the virtual environment (python):

# creates the directory with the virtual environment
python3 -m venv env
# activates the environment
source env/bin/activate

Here are the docs about the Creation of virtual environments

This is nice when you for example use libraries. Libraries are code written by developers like you that you can use and build your applications. You can install those inside the virtual environment, which is an isolated one from your host system. That way these programs will not conflict directly with your normal operations.

When you want to stop the environment:

# it is very simple 
deactivate

Additionally, you can remove the library packages too:

# BE CAREFUL not to remove anything you don't want to be removed. 
rm -rf env/

Closing thoughts

We went over the mindset and some of the things you want to think about doing. There is a difference between thinking about what you do and doing it. Closing that gap is the thing to focus on. There are also things I haven’t said because these are not explicit to me yet. I hope you found this useful!

Last updated on