Where this post came from

The other day I was training with a friend of mine who in his free time tries to learn how to program that asked me if I could help him to improve his workflow when it comes to learn and to write code.

At first, frankly, I thought I didn’t have much to advice him. Basically because my own workflow is very far from perfect. But then, later on, I began to realize that maybe there were some tips I could give to him.

So here we are, these are basically the advices I’ve given to him. The only thing is that I haven’t given to him yet, I decided to write this post to take advantage of the idea and later I will pass a link to him.

You have to be pragmatic, kid.

Who am I to advice on this

Nobody.

I’ve just been writing code for more than a couple of years now and I’ve been collecting ideas and resources that I then have been using to improve MY working and learning methods.

This post is more of a list of those methods and resources than anything else.

Your editor has to be your best friend

The list of editors I’ve used over the years is more or less the following:

I’m currently using VSCode with the Vim plugin (and a few more, of course) though sometimes I just use Vim.

The most important thing about the above list is that nothing is important. It doesn’t matter how many editors you’ve tried or which one is “better” or “worse” for what you want to do or are doing. At the end of the day the only thing that matters about your editor is that you like working with it. The rest can always be solved with patience (sometimes a lot of patience).

Of course, once you have chosen which editor of all available you like the most you’ll have to work with it thoroughly.

First learn things like the most basic shortcuts and then go to learn more complex ones. You don’t have to remember them or use them all. Only the ones you need.

Watching videos of people configuring their editors or showing their configuration/workflow is a great way to discover working methods or things from your editor that you might no otherwise learn. So look for a couple of YouTube videos if you don’t know what you want to lear next or try.

You don’t have to know everything, just where to find it

I don’t remember where I read it, maybe it was in this book. The only important thing here is what the title of this section says.

You don’t have to know everything about everything, just where to find the information when you need it. And by this I just want to say one thing: bookmarks. Learn how to manage your damn bookmarks.

Leaving jokes aside, this is perhaps one of the most important sections of this port and one of the most valuable tips I can give to anyone.

Keeping a record of every article you read or every video you watch will save you a lot of time. For this, I use mainly Pocket.

I use Pocket but out there are many more services and alternatives that you can check out. As with your editor, the only important thing here is that you find the one you like more.

Your browser will be your second best friend

The first thing I do after opening my editor is to open a browser window. It’s where I look at the docs of the projects I’m working with or where I look for solutions to problems I don’t know how to fix or that I know are already fixed.

That’s why I recommend keeping your browser clean. The faster you can use your browser to find what you want the better.

In my case I use Firefox, where I barely have two tabs fixed and a couple of plugins to keep ads and trackers under control.

Yous OS is also important

The OS under which you work and code is also important. The tools you are going to be able to use or how you are going to be able to use them or not depend on it.

In my case, for example I’m using Windows 10 Home edition these days and because of that I can’t use Docker although it’s a tool that I love and always try to use in my projects. The solution in this case been to use Virtual Box to virtualize Ubuntu.

You need to be aware of these small details in order to make better choices in the future. I also recommend removing certain assumptions from your head about whether one OS is better than another. Each has its advantages and disadvantages.

Enjoy the tutorials

Following tutorials is a good way to learn a lot. But sometimes it is also a good way to learn nothing and waste your time and motivation.

For me a good tutorial has to follow the following points:

  • Source code is available and easily accessible.
  • Each step is very well defined.
  • There is no “magic” in the code (something works and there’s no explanation about why).
  • If it’s a video the audio has to be of good quality.

Another piece of advice I would give you is: be patient.

Some tutorials take their time, other are simply slow. It all depends on the person who wrote or produced it.

The important thing if you think you are in front of a good tutorial, even if it is slow, is to follow it with patience and step by step, taking your time. Especially if you are following a tutorial to get started on a new topic.

Build 💩 as much as you can

Another great way to learn is to just do things. And by things I mean only one thing: things.

You want to learn a language but don’t know how to memoize all that new vocabulary? Build a tool that helps you.

Every time you start a new project you have to repeat the same steps over and over again? Build a tool that automates the process for you.

And if not, just search for ideas on the Internet. There hundreds of post out there with ideas for projects.

One step each day

Consistency is always key. One step each day will take you further than you think. And hey, you just have to take one step a day.

Always leave yourself some time to program. I know you are very very busy, I know you have many many things to do and think about but hey, don’t tell me your excuses. Just do it.

Is always for fun

Taking things seriously is not something I usually recommend in almost any situation.

Almost nothing in life is a race.

As long as you take one step at day, you’ll be fine.