Software Development
When you develop you are only sitting in a chair, in front of your screen, writing lines. Once and again the same commands and numbers.
This is what a person that is watching you from outside see. Probably thinks that programming is based in to learn commands and write them. That you probably are listening to music while programming to fight the tedious work of writing thousands of times the same lines every day. Maybe many people think that software development it’s a purely mathematical, methodic and antisocial work. Every day is the same, same screen, same operations, and the same game rules.
But actually, you are just watching the code, you are thinking. Thinking in your next step to sculpt a new feature or just to improve. Improve the legibility, the performance, the team or just you. You are immersed in the “gold rush”, you are looking for the perfect code. The most optimal solution, the easiest to implement, the less expensive or the one that brings more value.
This obsession has nothing to do with what people believe that this profession is.
And this is probably one of the big mistakes that humans make again and again. The damned prejudices, barriers that we don’t even think that exists. Those of us who have some experience in the trenches know some other things… things that they don’t tell you in the school.
Each person is a world, and here creativity is the key
When we are developing, we give solutions to problems. We do this based on everything we know in that context. We remember what we already know, and think about the effects that these decisions will have in the future, in the short and long term of the software lifecycle.
Taking these decisions is a constant process. Experience and previous knowledge are important, but creativity is more important. Normally when you develop you always face new casuistics. You have to consider a lot of knowledge to make a good decision, but in the end, you are free to decide how to solve it, and that freedom is where you can take advantage of your creativity.
Apparently, you have no limitations, in a virtual world not limited to traditional physics rules, like gravity. In this way, you are free to make any design decision you want.
Famous sentences like “If there is a shell, there is a way” or “If you can imagine it, it can be programmed” are reflections of this infinite limitation world.
With this level of over-freedom, nobody has the key to making the perfect design. But you can learn a lot of good and bad practices, In every branch of this profession, there are good practices. Finding, understanding and applying them will make your apprenticeship grow.
The knowledge comes and goes
If you have been programming for some time, you will have realized that this world is a constant flow of knowledge in all directions. And I don’t mean answers in StackOverflow or Github. It’s like an ocean of information.
In the middle of the over-information era, going alone for a swim in this water can seem scary. You have to develop a sixth sense for the selection of useful information. But luckily you are not alone. You are in a worldwide community. Luckily you will find more experienced people that can help and guide you in the way off learning. Someday you will also pass this witness to others.
In this world, it is important to leave the shame aside and “take the bull by the horns”. Your parents are not responsible for your professional career, neither is the university or your company, only you.
The failure is important
You have to make mistakes to learn, and you have to assume that what you know right now is nothing compared with what you will know in a few months. Doing things wrong, is the same or more important than doing things well.
This search for constant improvement is the only way to progress in any profession. Otherwise, you might feel bad, and motivation is another important key.
Experiment
Currently, software development is an infinite field. It is very useful to experiment with new technologies especially if you don’t know anything, this will give you new experiences and points of view bout the things you think you already know.
You have to learn how to walk first in order to run. Some times, you will deal with new awesome technologies. But what happened when you are not prepared for that? This happens some times and it does only mean that unfortunately, you are not ready yet for that technology. That cannot discourage you!
It’s not just a mathematical world
Develop implies discipline and empathy for the code reader. Code written in high-level programming languages was made to be read by humans, and then, in second place, to be executed by machines.
Motivation is important
Its a world that goes very fasts and it takes many turns. This is something to consider in the long term. So it is important to be motivated and knows how to manage your time, and your health as an apprentice and professional.
And the most important thing: Take it easy.