After moving to work as a programmer in a foreign company, I wished I had learned some skills before that, those skills that many developers know but are not widespread enough to allow me to know them yet, or that makes them seem so important to me some time ago, until I saw who They master it and use it in their daily lives, so they sound like chick Norris to me.
1- Touch typing skill
This skill is one of the well-known skills that I wish I had learned as a programmer and practiced it long ago, the skill for those who do not know it is to write on the keyboard without looking at the letters, just by touching the letters to find their places and using all your fingers to write at the same time, this skill saves a lot of time and Effort, many of us want to write faster, or sometimes you want to turn off the lighting in the room to relax your nerves from lighting and writing a little, or perhaps discussion with a friend on the Internet and discover that you cannot do both, that skill is generally one of the most important skills for developers or programmers, If you learn this skill, it will make it easier for you to type on any keyboard, even if it is without explanation on every key or the keyboard is not prepared for writing in Arabic, for example, I wish you had invested in it previously.
2- Use Emacs or VIM
As a programmer, many text editors are available for programmers, some of which date back to 3 or 4 years, such as SublimeText and Atom, and some of which are more than 30 years old that you can rely on. A long period of nearly 30 years, a large community of developers, most of them are skilled programmers in the field of software development, many additions and improvements, I always felt that it was difficult to use one of them, but in the previous period I discovered that many developers are currently using one of them. And they are so powerful that your productivity will double when you use one of them for a long time. Initially, switching to one of them is difficult because of their reliance on different methods of editing and not relying on the mouse (mouse), but you must rely entirely on the keyboard, if you learn the first skill and use one of the two programs Emacs or VIM will double your productivity.
3- Use Linux for at least 3 or 4 years
Although I have used Linux for a longer period, I preferred to include it here because as a programmer it is considered one of the most important skills, the first of which is that the tools that Linux distributions provide such as apt-get, yum, grep, ls, top, kill, dd, mv, rm, touch and a very long list. Your use of these tools is an important point in your favor because they are tools that deal with minute details in the system, to use all of them you have to understand that tool and how it works, mastering as much of these tools provides you with better knowledge of operating systems and how they work, using a Mac or Windows system provides a layer From the abstraction between the system and the user, do not give him the details that the developer should know, after you master the Linux tools you can return to dealing with Windows or Mac, this will not make a big difference to you, and of course it depends on your transition to the type of development that you do.
4- Try something new every day
This sentence may be a bit stretchy, but as a programmer it is always important to discover new tools or programming languages, move to a different context, this provides new ideas for you that you can always implement in your projects to improve a feature that you are developing.
5- Be faster the second time always
I did not do that and I wish you had been aware of this point for a long time, you should not waste time repeating the same thing in the same way every time, you can write your own tools, improve your current tools, for example if you as a programmer use a command in the Shell and every time you return to a place to copy and paste it into your shell, you should think about adding it to the Shell as a short alias command, if you are doing a set of steps to do a certain task each time you have to think about writing a small program to do it for you, if you continue By doing this, maybe your life will be better and more efficient. Each time you save time in the long run you can invest in the previous point, or save you half an hour that you may spend with your wife or little girl.
6- Get a personal server on the Internet
It does not matter its capabilities, what matters is that you as a programmer have full control over it, instead of using Dropbox, for example, you can use Seafile to do the same service, but in person on your own server, host your personal website on it, write programs that do some of your tasks periodically such as getting On news headlines or soccer results, a 24/7 device can do a lot for you.
7- Consider your computer as a temporary device
Keep a backup copy of all your important files, if you are changing the settings for the programs that you use, put them in a safe place, perhaps in one folder that is uploaded every period on the server machine that we talked about in the previous point, write a simple program that can convert any new device to a valid device To work, it downloads all the applications you want and copies the files from your personal server. This will save you a lot of time. If your device crashes one day and you lose hope in fixing it, you will have to work quickly on preparing a new device. This small program you wrote will do One day save a day or two from setting up a new machine.
There are many skills, but the previous skills are the most important thing that I discovered that I missed in the recent period and I wish I had learned them years ago, if you discovered that there are skills that you should have learned as a programmer, you can share your experiences with us through comments or even by sending an article to be published on the site There is a large community of developers and any experiences that can improve the way we work and our lives in general.