
Last summer, we launched the “10 Questions for a Programmer” column, and over the course of 10 issues it was quite fun. Good people who do not always have access to a huge audience, were able to speak out. Someone found understanding, someone stumbled upon criticism.
Before the 11th issue, we took a short pause, which lasted too long. Correct, back. Now you again have the opportunity to wonder about yourself. The format is almost the same, we just updated the questions a little, and we will do it in each subsequent issue.
')
If you have something to tell you about yourself or a powerful question has matured that the whole community will break your head - write to me or
baragol in person .
And in the first issue Dmitry Yavorsky (
ekabandit ) from Yekaterinburg. He tells how RZD saved him from the WannaCry virus, rejected the offers of Sberbank and, as it were, legally influenced the industry.
1. Tell a working story that you will proudly retell to your grandchildren.
I will remember for the rest of my life how, for the first time, I remained to perform the duties of a chief at Russian Railways - to manage 50 employees of different ages - just at the moment of the attack of the Wannacry virus.
It was Friday night. I was already at home, I just opened a beer, and spam about a worldwide virus attack began in the media. Then the information went into corporate conversations. I quickly finished the bottle and went to work. We disconnected from the Internet, no infections were recorded. After spending two more hours at work, I decided that nothing serious would happen and went to bed again.
At seven in the morning, the head of the security department already gave me a huge list of servers where I needed to update Windows. After another 3-4 hours, Microsoft released an update on windows 2003, which was not supported for several years. The list of servers that need to be updated has increased significantly, and all free people had to be called. By that time, we abandoned attempts to revive WSUS, which for unknown reasons did not work, and began to update the server manually.
We had fun during the update all weekend, quickly deployed 2-3 servers from scratch that went into the blue screen after installing updates, watched the game on the projector (by the way that weekend Russia beat Slovaks 6: 0), deleted dozens of forgotten servers.
In the end - a great event for team building, and more than one server infection in the Yekaterinburg data center.
I knew that I would work in IT from school — I wanted to follow in the footsteps of my parents. Despite the fact that I was in the literary class, we had a strong teacher in computer science. Participation in various competitions made it possible to periodically skip lessons. There we were taught to write on Pascal. I remember my father told me about the operator GOTO, for the use of which I regularly received in class.
The teacher at that time had connections in Yandex and offered to go for an internship or study. But with my youthful maximalism I told her: “I don’t like Yandex, I use Google”. Go back and give yourself a slap.
After school, I entered the railway university on a targeted basis (with subsequent training at Russian Railways) for the specialty "Information systems and technologies." I thought that I would continue to develop programming, but for four years (and two years after the magistracy) there was only a semester of programming in assembler on a piece of paper and a semester of Delphi.
From the 3rd course I started working at Russian Railways, where at first I was an enikeyschik. A lot of working time was spent on preparing coursework and playing CS or Warcraft. After I worked for a while, they began to trust me more, and then I became acquainted with the great world of administration. Most of all I was hooked by IBM WebSphere, later I even was on the expert group in Russian Railways on this product.
2. The Dzhunovsky case for which it is still a shame
I remember that at the beginning of the administrator’s career, I deployed a server for some of my needs and decided that it was necessary to update the Apache Tomcat configuration from a productive server.
Having connected to both servers, I did everything exactly the opposite - I updated Tomcat on a productive server. After a couple of minutes, when the incident arrived, I switched to the reserve, and on the productive server I set everything up again. I managed to do everything in ten minutes, accusing the monitoring system of false positives.
My fraud came to light in half a year, when the users were transferred to this server, and nothing worked for them, because I forgot to correct the configs.
As a developer, there were no such cases. Although there were rumors that the monitoring server I wrote periodically placed one of the important Russian Railways systems due to the large number of requests, but I do not believe in it.
3. The most painful of your current problems that you haven’t yet solved
Now for me the big pain is to understand Rx.js with its Observable and pipe. For me, this is some sort of Angular heritage. At conferences and in tutorials they say, in order to understand Rx.js, you need to change your way of thinking, to understand some hidden truths. But while I'm doing copy-paste from other parts of the code and in home projects I use redux-saga.
Now I have a trial with Railways. I studied on the target and went to courses, and this provides for payment if you do not work out a certain number of years after graduation. RZD did not provide me with installments, which is due to me according to their regulatory documents. It is a pity that some individual managers do not know how to part well with employees. This makes up an opinion about the whole company, although during the work I managed to meet people from different cities and different professions, and the people there are really cool. In general, in the Russian Railways, a very developed youth policy and individual units invest a lot of strength in the development of soft skills of employees.
4. How do you choose your job?
When choosing a job, I consider only options on my stack. Now it is React, Redux and in the near future I do not plan to get off of them.
The second important factor is the team. I prefer to work with colleagues above my skill, who have something to learn. Recently began to pay attention to the size and profile of the company. If it is large, and IT is the main profile, you will not have to be a system administrator at the programmer position.
Well, I think it is worth mentioning - although this has already become the standard for programmers - a floating beginning of the working day, the opportunity to work from home or take time off at any time. The rest is a matter of money.
5. Why have good programmers become so hard to find in recent years?
(Question from Ivan Shmakov ishmakov from Voximplant)I see several reasons:
- Now the concept of good programmers is shifted towards media.
- Existing education does not give you the opportunity to get even a junior position. At the same time, the knowledge gap is increasing every year due to the outdated curriculum and the rapid development of the sphere.
- Many people become programmers because of relatively high salaries and just a big industry hyip.
- Again, due to the lack of programmers, now even in the top Russian HR companies they use active hunting. And if a specialist is really good, then besides yours he probably already has 2-3 offers, and he may not even be looking for work.
6. Imagine that the graduation Junior, Middle, Senior does not exist. What scale to introduce to designate competencies? Where do you put yourself in it?
(Question from Lisa Shvets Schvepsss from Dodo Pizza)Does it exist? There is no generally accepted list of skills for each grade. How not cool, it all comes down to renaming this gradation. Well, for example, if viewed from the perspective of a manager, the levels will be as follows:
- Independently does not solve a big problem.
- Independently solve the problem, but the quality of the code and speed leaves much to be desired.
- Well and quickly solve the problem with an acceptable quality code.
- Among other things, the point will be able to discuss the feature with the customer (pumped soft skills + understanding of the business process).
Assessing oneself is not quite objective, but would still put itself on the third level.
My most memorable interview was at Sberbank at Middle Frontend Developer (it was Sberbank, not Savings Bank). When I was invited to an interview, I already had an offer from another company, but anyway I decided to go - probably more for the experience.
There everything went in several stages. First, I answered questions on JS, three days later I talked with the head of the unit. With him we talked about my photos in VK with Sheregesh and at which ski resort it is better to ride, about my experience of participating in projects as a manager, diplomas, certificates.
A couple of days later they sent me an offer that was lower than the others. I refused. Then another meeting with the manager took place, and I was leveled off with an average amount per year, taking into account quarterly and annual bonuses. In the last telephone conversation, I was invited to talk with employees of the security department, who left the company from which I accepted the offer. They should have described to me why you should not go there. I understand that there are not enough specialists in the market, but this is a very backdoor.
After this interview, I concluded that large companies are more willing to look at diplomas, knowledge and certificates than on a real skill.
7. What features should be in an ideal programming language / framework / other tool and what should not be there?
The ideal feature for a language is good documentation from the creators. Take Javascript as an example. There is a very detailed specification of ECMAScript, it is certainly suitable to understand the anomalous behavior of certain parts of the code / functions, but I think it is not worth learning the language.
Every language is good as long as it solves your problems. With the advent of the ideal language, there will be a halt in development, and a person will emerge (possibly a company) that will manage the industry. And for further development important competition.
8. If you have the opportunity to legally influence the industry - what will you do?
I will introduce a tax on the creation of front-end frameworks. Joke.
In Russia, for starters, I would put the state IP code in the opensource. I think the community would solve many problems with accessibility and bugs in the state systems that we have to use.
I would open, somewhere in the south of Russia, a special zone for the development of IT companies with lower taxation. It could have been something like Silicon Valley. I think this is a good move in terms of the openness of the Russian community for the world, the retention of intelligent specialists in our country and, since such a trend has now been built, then import substitution.
9. If you had unlimited resources (time, money, power, people), what would be your personal project?
I would be developing a smart city. I would start with Yekaterinburg, with the problems that I see in everyday life myself. For example, roads. Now I travel by car to work 20 minutes, 60 minutes back, or even more. I would implement artificial intelligence, which, depending on traffic congestion and the presence of pedestrians, regulates the work of traffic lights throughout the city.
10. What do you say AI, who has become smarter than you?
I would force myself to learn. Or offered him to design the life of an experimental city under AI control and tell him what this would lead to.