Last week, the seventh admission to
the Yandex School of Managers was launched. This time we decided to supplement the program with technical lectures and for the first time added a technical question to the test task. In this post, I will share my opinion on why it will be harder for the manager to know and develop his product without the ability to program.

Everyone understands that to work on a product, especially in IT, knowledge of technology is somehow necessary. For the manager, the words “backend”, “layout”, “database” should not be new. In order to catch bugs or see growth points in a product, you need not only to constantly use it, but also to understand how it works. It is better for developers to come up with the wording “on the mobile Internet for a long time the layout is given” or “in such a scenario a part of the data is not loaded”, and not to say “something is slowing down here, look”. Thus, the manager shifts the generation and testing of hypotheses about what is happening in the problem area to the developer who has “exactly the same leg, but does not hurt.”
')
If the manager, for example, when playing back a problem, opened the browser console, saw network errors in it and came to the developer with data from these errors, or he looked into the data and saw that the backend gave an incorrect json, the situation immediately begins to look like supported by evidence problem, not just a single user complaint.
A similar situation develops with the ability to program. Imagine that there is a manager who roughly corresponds to all points from the
previous post , but does not know how to program at all. How is this person perceived by the rest of the team?
- Hi, I think I need to file an awesome feature A (B, C, D, ...), I want to check how much it will be in demand. Count me, please, what is the proportion of such and such scenarios in the use of our product?
- Hi, my page is periodically crookedly drawn, if users see it too, it's just a shame. Check what is going on?
- Hi, I have a statistically significant change in the metric here in the AB experiment, let's see why?
- Hi, I am writing a post here about our new implementation, please check if I described the implementation details correctly.
- ...
Such a manager is perceived by team members as a permanent generator of additional and sometimes useless work for them. And here the ability to program can help the manager to more effectively organize their work and the work of the team.
Knowing how to program, you can quickly test your own hypotheses, without relying on other people's calculations and not distracting people with orders of these calculations. You can independently calculate how many users have seen feature X, or collect some statistics for the presentation. Many programmers do not like to switch contexts, and the manager's requests to “quickly estimate” something according to the data are distracting and can “knock down the mood for work” for a long time. A manager who can “quickly figure out” himself will pull less of his team, thereby increasing its productivity. What is called grocery vision must be supported by qualitative and quantitative research. And happy is the team in which the manager is able to conduct at least simple quantitative measurements on their own.
In addition, programming skills help validate the calculations that analysts bring. If, for example, the manager asked to calculate the share of requests with some complex set of actions on them, and the analyst brings a calculation in which just the total number of requests does not agree with the manager’s own calculation, he has reason to doubt the correctness of the calculations and reasonably ask to double-check.
Even the most basic programming skills sometimes helps to speak the same language with developers. This at least adds to the manager "karma" among the developers, because how can he set tasks for them, if he does not understand at all, what do they do? If the developer says that you need to take a week to refactor, but the manager does not understand why it is needed, and rushes it with features, and then the developer will have a huge technical debt, the entire project can suffer from this.
It can also help with planning, because it allows you to better understand the complexity of the task, and if the developers say that there is development for three days, and the manager understands what he would have done in a day, then you can more adequately evaluate the time frame and not be afraid to dispute the voiced development options.
In any specialty steep self-sufficient specialists are appreciated. Other things being equal, a programmer with advanced soft skills will prefer to an introvert programmer, as well as a manager who can program and has technical background, in technology companies will be valued more than just a good manager.
Where to start?
Many working files, scripts and some data lie on servers with console access via ssh, so you need to be able to be friends with the command line to work with them. The command line interaction interface is also available in unix-like systems (Linux, MacOS), and in Windows.
If you didn’t work on the command line before, you can start by getting acquainted with, for example, the article
“Linux Basics: Introduction to bash” .
I give specific references only as examples. I would like to end up with an idea of ​​how:
- navigate through the file tree
- create, copy and delete files
- edit files with Vim or nano
- using ssh and scp to share any file from laptop to server and back.
Often, data files are very large and you will not be able to use Excel, for example, familiar to many of you, to work with them. Therefore it is worth getting acquainted with the commands for working with text files:
It will be useful if you end up with the following commands: cat, sort, uniq, wc, head, tail, awk, sed, grep, join.
It is very helpful to know the grep command using regular expressions:
A more powerful and flexible tool for working with data is Python. In order to master it, any online course is suitable, you can start with a
codecademy .
10 minutes to pandas - for those who want to quickly and easily analyze data.
In conclusion, I would like to clarify that the ability to program for a manager is not dozens of books read on python or pluses, not thousands of lines of committed code (although no one will most likely refuse such a manager!). Many companies have ready-made tools, where in the sql-like language, or generally by drag-and-drop of fields in a beautiful interface, you can configure the query for the data and get the report in the desired form. And in this case, “programming” is about the ability to understand the data structure, a critical attitude to the information received and the desire to get to the very depths of your product yourself. However, the larger the project to manage, the more technical knowledge can be useful. The manager may need to evaluate the project architecture proposed by the developers, monitor the availability of tests for all components, suggest what needs to be refactored. Good managers can endlessly develop technical knowledge and dive into the device of their product. Honor and praise to such managers.