I am a young veteran system administrator, and I am learning to program because I want to continue being a "sysadmin" ... do you understand me?
What then leads a sysadmin to learn to program?
With the increasing advancement of new technologies, cloud services, and accelerating software delivery, job demands are changing. The use of services hosted in the cloud, infrastructures in pay-per-use has exploded and it is requested to automate everything possible. You need a change in mentality and in the way of running a company's systems.
Systems is changing
The world of computing is changing drastically for us, that is a fact. On a personal level, I see this change as an opportunity to grow and be able to adapt to the new market, making an effort to understand how to take advantage of these new technologies. In my opinion, the figure of systems administrator -classic- begins to fall short, and I think it should evolve to something else or it will disappear with the shutdown of the last servers.
This leads us to a need to understand how the automations, scripts, databases and else programmatic technologies that more and more are entering the world of systems. You don't have to be an expert, but you do need to know how the programs work, understand what they do, or why they may be failing.
The figure of the system administrator has changed,
you have to adapt to change or
prepare for a sweet death.
First impressions of a sysadmin programming
As a systems administrator, it seems strange to us to start programming, since at first glance it has nothing to do with what we usually do every day. In addition to being strange, it is complex, because mentally you have to change the way you think and understand things.
I feel that to start programming you must have a open, positive attitude and eager to start in this world. It is something completely different from what you are used to and you will have to change your way of thinking. Programming you can have multiple ways of performing a task and very different from each other.
The first shock comes when you see that
there is no single way to approach a task.
Most of the tasks of a systems administrator are based on a series of basic actions or instructions that you have to know how to carry out, such as resetting a locked password, reinstalling an application, creating a server, managing an application, or updating. something. All these tasks are done following a pattern, a way of acting, and lead to a known expected outcome.
On the other hand, to program there is no single method to approach the activities to be carried out, you can do it in a thousand different ways and you can use different methods. At first that conception can be a bit confusing and strange, but once you get used to it and accept it, it is very useful and comforting to have multiple paths to reach the same end.
Even so, in my own experience it is not easy to learn and get used to programming, there are many languages and each one has a completely different structure and syntax. So that I recommend you start with a simple language like Python and dedicate that time to understand and acquire the way of thinking of a programmer, since the most essential thing is to change the way of thinking and open the mind to all the ways it offers to implement solutions for any action.
In short, I advise all sysadmin not to close in on their functions and dare to get closer to the world of programming. That knowledge is very useful in the present and will be fundamental in your future.
You might think that programming is something really complicated,
but if you feel like it and
you choose a simple language,
it does not have to be this way.
Given this, start in this world with Python it's a good option. It is a fairly intuitive language (I don't think I'm writing this?), With a simple syntax, object-oriented, interpreted, not compiled, and cross-platform.
This is how I have entered the world of programming. It has allowed me to adapt, get fluent and move faster and faster Up with that motivation! In a couple of months you will be carrying out programs with some complexity.
My particular recipe has been the following:
Start a Python programming course so that my first steps are a bit guided and not go crazy. A very positive experience.