📜 ⬆️ ⬇️

9 things that I learned as a programmer, and that I would like to know when I entered the magistracy

The article was translated for Habr by the site editorial about payment systems with monitoring of the exchangers Web-payment.ru
Three years ago, I worked at the Neuroscience Laboratory in Barcelona, ​​engaging in the fact that I put various electrodes on people and taught courses in cognitive systems. And today I design and write software for life.

As part of science, I wrote a lot about software, something like — if you want to understand 40 gigabytes of data from brain scans, you have to roll up your sleeves and write a couple of sorting scripts. And I was always a really good programmer, although I didn’t realize it until I graduated from the academy and started working on one small and very ambitious startup - it was then that I learned the whole truth about software developers and - more importantly - about what it means to be in this business. Software development is not just knowledge of languages, libraries, algorithms, and design patterns. This is a special way of thinking.

And this way of thinking would help me a great deal in my work if I were known before my admission to the magistracy.

The following entries are a kind of indication to me young - those things that I learned about, sometimes under very painful circumstances, over the past three years.
')

1. Our intelligence is too overrated


When you are young, you study, and study takes you fully. You are like a big fish in a small pond. Or like a fish, which is two times larger, when you can express your thoughts quite eloquently. In fact, the ability to seem smart and being a good interlocutor allows you to complete the entire course of study in high school and most special education institutions, without really doing any studies at all (which, incidentally, does not apply to physics - you have to memorize formulas). In this case, you can congratulate yourself - you are lucky. On the other hand, it’s a loser, because while you didn’t hit your finger at the school, passing certain things past your ears, others managed to learn something very important afterwards: they taught themselves to be diligent and persistent. Learned to work in a team. And also eight more things, which will be discussed later.

In our society, the concept of intelligence is given too much importance. When I tell people that I worked in a neuroscience lab, they usually react like this: "Wow, you must be very smart." Yes, not stupid - I will note - but at the same time I know a lot of people who, being less intelligent than me, are much more successful neuroscientists.

Our intellect is the key to many doors, but it is almost never associated with direct work. In this regard, it is much more important to be diligent, strict and responsible - and this applies not only to programming, but to any other profession outside the bubble that we call higher education.

2. Give value to everything you do.


Perhaps this “mantra” is also too “worn out”; nevertheless, this is a very important lesson for you, my young friend: whatever you do, regard it as a phenomenon as important as possible. You should never do work just to end it. Of course, everyone likes to read their name in publications, but much more important here is how much you contributed to the solution of a question and how many hypotheses you went through in the process of finding this solution; It is important to correctly analyze the data and compile statistics, how important is how many times you had to redo everything, because at a certain point you noticed a small mistake, because of which everything covered with a copper basin. And if you are involved in writing software, it is also important to be able to plan your work, find source codes, study new paradigms and programming languages, edit your bugs, process and upgrade your own algorithms. And if it doesn’t give you pleasure, and you do the work just because you need to complete it in order to publish or release it as a finished product, you will never become an expert in your field. If you do not have aspirations for this, then you should probably think: maybe, being a scientist or an engineer, or something like that, is just a waste of time for you?

A wonderful sign that you treat your work with respect is when even the so-called just4fun projects take you: i.e. those projects that, it would seem, are not at all necessary to carry out, which at first glance do not contribute to the advancement of your main work. And you just like to disassemble them. And what is interesting, often among the developers, such projects give rise to a variety of software products that are widely used in our daily life and are not particularly attracted to the scientific community. One of my favorite quotes about this is the maxim of Conrad Lorenz:
"A great morning exercise for any researcher: reject a couple of fictional hypotheses before breakfast."

And if in your understanding it sounds silly, then you, perhaps, better to abandon the idea of ​​being a scientist-researcher.

3. Learn new tools


As a continuation of the previous paragraph: devote some time to the study of new tools and instruments. And not only to expand the horizons, but also to find the means that can help you in your work. Believe me, it always pays off with interest.

A great way to learn new tools is to work with the just4fun projects mentioned above. Whenever you create something new, do it differently. Remember, you will never fail with just4fun projects: you don’t need to invest much in them, you learn something and, even if this knowledge is unclaimed, there’s nothing to worry about. No one loses.

Useful tools that I would recommend to each student include:

The solution to a problem always depends on the means at your disposal. Thus, the study of new tools allows you to look at the issue from different angles.

If you are studying at an institute, I strongly advise you to allocate one of the days of the week to study new means. And when the time comes to prepare your candidate's work, set aside two days for this. You can save a lot of time and people will be amazed at your efficiency. If it’s too much for you, and you think that you simply don’t have time for it, consult with your curators - they, for sure, will be able to indicate to you what you should pay attention to first of all.

4. Be a stakeholder and let your agenda be always known to everyone.


It is logical to assume that your curator or manager will always act in the interests of your institution or company. This is their job.

However, no company or laboratory is ever something with a living consciousness, i.e. there is no internal interest in them. When we argue about the main goal of a company, we primarily mean the goals of individual stakeholders. The main question here is: who do your curators regard as stakeholders and how important are their interests.

And if your boss believes that he is the only person interested in the enterprise (who is trying to produce the maximum amount of finished products and is looking for fast and efficient ways), leave the team as soon as possible, otherwise you will hang all the dogs. And who else? Not on the investors to hang them. And not on students. Yes, and the rest of humanity is unlikely to be here in business. The bottom line is: find out as soon as possible who and what is busy. And if you do not have the opportunity to remain one of the stakeholders, run. Otherwise, your favorite work will turn into a stupid lesson pursuing the interests of others.

5. Keep your skills in the wings


This strategy has become very fashionable in the technical environment in recent years. It implies the fact that your work, after all, must satisfy the end user. And this concerns not so much action, as much mentality. You must think that all the fruits of your work are useless until they fall into the hands of the consumer. And this should be their goal in itself.

As a student, I most often wrote programs that were supposed to shoot only once on a deliberately defined system. But when you write codes for software that will be used by half a million people, everything is perceived differently - and when I started writing codes professionally, I soon became convinced of this.

There is no point in delaying the work for years in order to produce the perfect product: it is much better to move in small but sure little steps. Write in small pieces, from which you can then assemble a whole. Do not bother your head with how complex the final product must be. Do the basics of the basics, keep your skills in the wings.

6. Know the 80/20 rule


The 80/20 rule is that in order to achieve 80% of the desired effect, you need to spend only 20% of the time, and the remaining 80% of the time you will need to work out the remaining 20% ​​of the work. This is similar to a trip from the outskirts to the city center: in 20% of the time you will cover 80% of the distance, and then you will fall into a traffic jam, the passage of which will cost you much more time.

Why is it important to know this rule? Because people constantly underestimate the time they need to complete a project. Particularly prone to this are scientists and various kinds of engineers. In general, this is just a matter of experience: the more you know, the easier it will be for you to assume that something can go wrong and what obstacles that might have been encountered at the time of the start of work.

If you have no such experience, simply multiply the time you think you will need by 5 and then you can regard the work as almost done after one fifth of the calculated time.

7. Do not sell your soul


I began my studies as a candidate of sciences, guided by reasons that were completely unworthy of attention. For one of them, I even invented my own term - “academic service”. I firmly believed that if I did not follow the basic training program, I would simply bury my talent in the ground. I felt responsible to the people who helped in the development of my academic career - i.e. to professors and those who paid for my studies. It is not right. People who invest in the future can always blame you for the fact that their investments have not paid off. But these are their problems, not yours.

The same applies to any other type of activity. People will always invest their money in you, and, as a rule, do it according to their own interests. But this does not mean that you have to sell your soul to them.

8. Leave your comfort zone.


Here is how I look at the world:


Under usual circumstances, you learn very slowly. On the other hand, if you are worried about something, you may not learn anything at all.

And here is your comfort zone. You know every fish in this pond. You yourself belong to this pond. You know how to solve problems here. And nothing is new under the sun. So if you want to learn something new and grow in your eyes, you must first leave your comfort zone. This is where your training begins. This also starts all sorts of interesting things, and you do not have an ace tucked away in the sleeve.

Of course, here it is impossible not to note the point at which you are the weak link, i.e. your zone of discomfort. You should stay away from it, because in it you are not able to do anything except to lay low and wait for outside help.

So the best position is somewhere in between. It is in the golden middle that you will be able to learn as much as possible and grow to the sky.

“Forget about security.
Stay where you can't be sure of anything for sure.
Destroy your reputation.
Become the talk of the town. ” - Rumi

9. Tame your mind


Sit comfortably, close your eyes and just breathe. Focus on how the air that you breathe out through your nostrils is felt in the area above your upper lip. And nothing more. Just concentrate on that.

How much time will it take for your mind to switch to something else? Five minutes? I do not think. Maybe a minute? Already better. Twenty seconds - or even less? Most likely, so. Your mind is like a monkey that clings to the nearest branch. However, when it comes to learning, other expressions should be used here. There is, for example, this: associative thinking. An excellent thing when you need to do something creative, and the most terrible enemy of concentration. But there is some good news: you can learn to concentrate. For this there are a million special techniques that, in fact, are not very effective. You do not need elbow massagers and special software. You need to tame your mind - once and for all.

However, what worked in my case may turn out to be completely inapplicable to you. For example, I achieved amazing results through meditations (which, by the way, give a lot of other useful "side effects"), but even here there are a great many different styles and techniques that are chosen individually. So the only thing I can advise on this issue is to try to keep your mind in the best possible shape and take this very seriously. Do you think that meditation is a waste of time? Then go ahead to the gym, and do your best with diligence: a few burned pounds are equal to burning a few pounds of abstract thoughts. Also develop your mind's eye. Strengthen your position now so that in the future your mind will serve you well, without being distracted by other things.


Source: https://habr.com/ru/post/228385/


All Articles