📜 ⬆️ ⬇️

What is it like to do Kotlin: an interview with Andrei Breslav



There is no shortage of technical materials about Kotlin, there are many places to learn about korutin or nullability. But the other side remains much less illuminated: what does the language development process look like? How are decisions made? What are the tasks of the "most important person"? Does he still have time for anything else?

And now, when Kotlin 1.3 is about to come out, we asked “the most important” Andrei Breslav not about the Korutins, but about something completely different: from what he did to Kotlin to what psychotherapy is useful for.

- You are a developer of a programming language. Did you do something like this before?
')
- Before that, I taught programming a lot and was engaged in academic work. It was a research activity on domain-specific languages ​​(DSL), essentially purely speculative, without users. Now everything is different: a general-purpose language, a bunch of users and tasks related to real-world development.

- Why do you need all this at all?

- This is quite an interesting engineering activity. It is unusual, with great dedication - if you manage to do something good, you get a big effect. Once - and globally changed what people write. When I started working on Kotlin, it was clear that this is potentially a product with a large number of users. The risk, of course, is high, but the motivation, in turn, is also high. This is interesting because the system is complex, involves a lot of different knowledge. These are probably the most important things: great effect and complex and interesting tasks.

- This is all the motivation for the techie. In general, in life - why are you doing this? You could be, for example, a politician or anyone else.

- The question is complicated. I chose a profession early enough. What I did then, what I liked then, was what I devoted a lot of time to. I liked programming at school, I programmed a lot, I went to study at the university. Then he quickly switched to teaching, doing it at first full time, about eight years, probably, then - in parallel with the programming work and then finally switched to the development of Kotlin. I also tried to study science, computer science, but in the academic world I did not like it.

- In the public consciousness, the development of a programming language is the very computer science.

- Well, in the public consciousness often mixed concepts. The development of a programming language is an engineering job, computer science is the study of something new, some scientific novelty is needed here. To obtain a scientific result, it is necessary that the results be at least somehow measurable or proven. In the case of a programming language, it is extremely difficult to measure something commonly used. There are people who are engaged in the development of academic languages ​​- an incredible amount of scientific works have been written in Haskell, and it is specially built so that it can be used to prove theorems. According to a language like Kotlin, the theorem is extremely difficult to prove, because it is simply not for this. From the point of view of mathematics, mainstream languages ​​are very dirty, it is very difficult to formalize something there. People try, small versions of these languages ​​are made for this. And it turns out that the evidence that was written for these small versions may not work for the big ones. Not so long ago there was an article about Ross Tate and Nada Amin about the fact that the Scala and Java type systems are unsound. This is precisely due to the fact that the small models that were considered before did not take into account one important property of a real language.

- What do you think about this?

- It does not matter. Mainstream languages ​​are dirty because it just doesn't matter. Very few people suffer from the fact that there are no pure mainstream languages. This has no noticeable effect; people have both used Java and will use it despite this article. Similar to Scala. For a long time it was not known, for example, whether the Java type system is decidable, whether it is possible to write a correct compiler - then it turned out that it was impossible. So what? Real programs can still be compiled. With the Scala type system, it was originally known that it was insoluble. But this is not important, because we still write programs with our hands, and we still do not write such strange programs that no modern compiler can compile.

- What is important?

- This is a very interesting psychological and philosophical question. Obviously, it is important for people not to be annoyed. For example, from the experience with Java: we know that if there are a lot of words to be repeated, then this is annoying. It can be seen that modern Java is excellent in the direction of enraging less. Kotlin was largely invented in the wake of the fact that some things were very enraged, and Java was not developed. You need to feel that the system does not really resist the way you want to express your thoughts. Here I have something in my head, I want to write something, and if I need to break through the programming language for this, it is painful. That is, if it is necessary to do it all the time, it is hard, if rarely, then it is normal. I think this is one of the most important emotional things.

We are now seeing some polls that Kotlin is “one of the most favorite languages ​​on the planet, people who use Kotlin love him very much”. It is very nice. Why it happened so hard to say. First, of course, there is the effect of HYIP, because the language is new, when a “new toy” appears, this in itself is like. But it seems that, indeed, Kotlin is not very enraged, that is, he has less resistance compared to other languages ​​when you implement on him what was born in your head. It is obviously important for people how short or long they express their thoughts. It is important for them not to repeat the same thing many times. It is important how easy it is to read programs after they are written.

The idea of ​​the readability of the code has long sprung up in the minds. There were several generations of programming languages ​​that were hard to read. Probably the brightest of the later examples is Perl. And in the old days, for example, some APL is a very bright representative. Now, more or less, everyone agreed that reading a program is much more important than writing. By the way, the programs have become much bigger and more complicated than before, which also pushes this idea. I want to somehow deal with this complexity, to somehow contain it. Therefore, for example, many hate boilerplate - the “obvious” code, in which there is nothing substantial, I want to skip it when reading, but bugs can still be hidden there.

It is important for people to be able to reuse some structures in their programs. I don't want to write the same thing a thousand times. I really want to bring out some general structures to the library. And the means of abstraction in programming languages ​​is always not enough to reuse everything. This is the law of being. Everything in the world can never be reused. But you can choose a class of things that occur frequently, and learn how to reuse these things. Therefore, in Kotlin, for example, there appeared some abstractions that were not present in other mainstream languages, for example, the delegated property or inline functions as a structure in the language. Other languages ​​experiment with other abstractions. For example, Scala has an incredible number of abstractions, Haskell has many abstractions that are not found anywhere else, and so on. These are all attempts to make so that some things can be reused, so that what I once did is useful to me many times later.

These things are obviously important. Of course, people are still important and just the culture around them. If there is an ecosystem, there is a community, there is an opportunity to communicate with someone, get answers to your questions, there are libraries that are developing, some kind of infrastructure - it is very supportive, people feel that the system is alive, it is nice to be in it.

- Do you somehow do something that supports culture?

- We are trying very hard to work with the community, it’s pretty friendly, people like to answer questions, suggest something to newcomers, discuss some difficult things. The community is alive, we use slake, there we have some incredible number of people - tens of thousands, it seems. Naturally, not all active, but nonetheless. There are many active users who communicate with each other. We work with them - we answer questions ourselves, and we try to make sure that everything is civilized. We also help to organize user groups, they already seem to be under two hundred, if I'm not mistaken. This is also a very pleasant story, it is cool to look at the map of user groups, they exist in many places - from the largest technical centers to countries that are unknown to me in Africa. We try to support active people in the community. If someone writes a lot of posts, makes some tutorials, writes libraries, we try to somehow highlight these people, support them, give them the opportunity to speak. We hold our KotlinConf conference, people send their reports there, we select the most interesting ones. So we work quite actively with the community.

- I understand correctly that you yourself also answer?

- I do not answer very often, I do not always have enough time to monitor this, but it happens that I answer. Sometimes we arrange some purposeful activities. Once there was a video engine , when we collected questions on Twitter and streamed the answers, I sat and answered questions. There was also a pretty successful “Ask me anything” on Reddit.

“When we were looking for people who could talk about programming languages, libraries, etc., it turned out that the skill“ good programming ”and the skill“ good speaking ”are things that are not so common. How do you find and pick people for yourself? How should the person who should simultaneously think about the user and code should come out?

- Fortunately, such people need a limited number. It is clear that every developer should to some extent think about users. In this sense, if a person programs very well, but programs something abstract from users, then we are unlikely to find a common language with him. To some extent, everyone should take care of the user. There are some small number of people who work a lot with users, that is, people who have such tendencies. This is not very connected with the ability to incendiaryly tell a long report; this is a slightly different activity. Generally speaking and writing are very different skills, and there are people who write with great pleasure detailed detailed clear texts and at the same time do not like to speak, because this is a different format of interaction. There are people who love both. This is just my case, but I much less like to perform with slides than to engage in some kind of lively dialogue. Fortunately, on TechTrain I had a Q & A format : people asked me questions, and I answered. Because every time I give a report, I have a feeling that the structure of the slides that I had invented in advance was somehow incorrect, so here, according to this logic, the story would have cost a little different, but the slides are on the way not change, and it interferes.

- The usual question: what pushed you to make the first report?

- Now I will try to remember how it was. It is very simple to say when the first report about Kotlin was - we announced Kotlin at the JVM Language Summit in 2011, and there was the task to announce the project as loudly as possible. And we wanted to collect feedback from the experts. And just that year I went to make several first large public reports, these were my first speeches in English. That is, I was pushed solely by marketing necessity.

- Are there any amazing observations from the reports? Something you didn't know about people?

- Especially nothing surprising. Still, I taught a lot before, and in general, the basic things are clear. For example, not all people come to the report to learn something. I doubt that even half of the audience comes to really learn something. Many who come to talk with the speaker. For example, when a person is known for some reason, like me (“one of the creators of Kotlin”), people come to my report not because they want to learn something about Kotlin, I ask some question, but simply because This is a report of a person about whom they had heard before. Some people come to show themselves, and this happens both constructively and not. Sometimes people who have come to show themselves ask very interesting questions. I'm not sure that they are aware of this, but what their task is - they want to somehow speak, ask interesting questions, because they have some thoughts. And sometimes you want to show yourself, but you couldn’t find an interesting question, then the questions turn out to be strange. Well, there are those who want to teach something to the speaker or all those present. Sometimes it is very funny when a person comes and, instead of asking questions, simply formulates his opinion, gives a whole speech.

- Was there such a person who taught you something?

- About "taught" is hard to say. Maybe it was, but I just did not remember. But it is clear that when people express some kind of opinion, it is usually representative - some group of people think so. In this sense, this opinion is always valuable. Another thing is whether it is valuable to express it in such a format - when you ask a question on a report - it is already difficult to say. But in general, any opinions, in particular, those that seem to me incorrect, are important, because what is important is not only what is actually true, but what people think. If someone has a chain of arguments in his head, even those that I can disprove, it is important for me to know that it arises, and then I can interact with it. In principle, this is all useful. Another thing is that it is always presented in different ways.

We had at an early stage, even when Kotlin did not release himself, there were all sorts of ridiculous conversations. Somehow we spoke with Stephen Colborn, and he argued with us a lot about the fact that writing types on the right after a colon is terrible, it is necessary to write types on the left. And it was clear to everyone who had at least a little immersed in tongues, that this is a point of waggards with blunt-tips - nothing, it doesn’t matter. Pascal was already popular, Scala - what difference does it make which type to write from. Where it is more convenient from the point of view of the structure of the rest of the language, there it is necessary to write. But there are people who believe that this is really very important, and are willing to spend a lot of energy to discuss it. It can be strange, but you still have to formulate some arguments, because such a person is not alone, it didn’t just happen. Steve didn’t just cling to it, and the rest didn’t care - no, there was a fairly large group of people who thought it was important. About syntax is often the case. Programming languages ​​are quite complex, and not much of this area is easy to understand. And the syntax is clear, the syntax is simple. Firstly, many people were taught how this all is formed, the university often has a course on formal grammars. Yes, even if I did not study, all this is not very difficult to understand, and therefore there are a lot of opinions about the syntax. And there the farther (the semantics of the execution time, the type system, and so on), the fewer opinions, because it is difficult to understand. And this is a pity, because generally there is a lot of interesting things to discuss, but basically all the energy of discussions is dissipated somewhere in the area of ​​syntax, no matter how sad it is.

- Everyone is discussing what they understand. Okay, go ahead. You work not alone, but in a team. Does the team also form some kind of representative group?

- Of course. We, of course, the opinions of people within the team play a big role in the development of the language. And the team is chosen so that the opinions are relevant. In general, JetBrains is a company that is very dependent on dogfudding. We all actively dogfudim our products (this is from the English expression "to eat your own dog's food" - if we do something, we use it ourselves). And Kotlin we also use ourselves, and in the Kotlinov team, and beyond. Feedback from the inside comes the fastest. We must understand that we have a specific case. For example, we would really need some language features in the compiler that no one else needs.

- Can you give an example?

- There is such a global dispute about pattern matching. In functional programming languages, it is customary to have pattern matching, and in Kotlin it is not. There is only a fairly limited option. And at some point we deliberately did not make full. It was once designed, but we did not implement it. The feature is quite large, complex, and for an object-oriented programming language it is rather dirty. We looked at the complexity of the implementation of this feature, and decided to try not to do it and see what will happen. Have tried. It turned out, of course, that the compiler could be written more comfortably. And everything else - it seems that most users do not care. Of course, there is always a part of people who knows that there is pattern matching, and they really want to use it in those rare cases when it is relevant. But it seems that, as always, 80+ percent of user cases do not require this feature.This is all pretty funny, because now Java is trying to look in the direction of pattern matching, and Brian Götz and I talked about this more than once. I tried to agitate him, that it is not necessary to complicate Java so much, and so everything is not easy in many places. But Brian says that people need patterning, he has his own arguments. I still do not really understand how weighty his arguments are. But now we have a chance that they will add this feature, we will see what they do and decide there.

- If you add.

- Well, it is very likely. Judging by how optimistic Brian is, I think they will add sooner or later. How long it will take, however, is not clear. It should be noted that in Kotlin it is not that there are any traces of pattern matching at all, there is something quite similar. Due to the fact that we have smartcasts, there is a when expression, there is a destructuring assignment. In general, a very large part of pattern-matching user cases is covered in the language. We with him are not able to do only complex things. And here it seems that they can not be able to. But if it turns out that it is still very necessary, then it will become easier for us to write the compiler.

- Can you tell us a little about the team - how do you live?

- We live a lot of fun. We are already very many. When we started, I was the only full time developer, but that was a long time ago, 8 years ago. Since then, we have grown a lot. We are already about 50 people, we are sitting in different offices. In St. Petersburg, most of all, but there are people in Munich, in Novosibirsk, perhaps, they will appear in Moscow. There are some isolated isolated people. There are several teams inside the project. We have a team that deals with the front end of the compiler and, as historically, the JVM backend. There is a javascript backend team, Kotlin / Native, a library team that deals with all libraries, an IDE command and another tiling, a build tool in the first place, an incremental compilation, and so on. We have a fairly diverse profile, we do a lot of things, so there are a lot of coordination tasks: all teams need to,doing different things, for each release came together at one point and gave something useful.

— ? , , — « , , , »?

- No, this is, of course, not working. First, it is impossible to keep track of everything. I mainly do language design and some general strategic issues. This means that, in some form, different considerations come to me that someone who has a pain, I have some thoughts about our strategic line of development. We are trying to somehow combine it with the current capabilities, with the technical situation: what happened to us (or did not happen) in the compiler, and what hurts us in the infrastructure, where we have accumulated technical debt or something else. This is all you need to make up and decide what we do in the next big release. This is a collegial work, absolutely not in one head. We look at all this with such a group of persons: the language is designed by one subgroup of persons, the technical part is the intersecting, but not identical, subgroup of personsthere is also Q / A, which is quite powerful in order to understand what to look for, where we have problems, where it is not clear to the user - support and Q / A do it. And from all this diverse information we get a picture of where our priorities are and what we should pay attention to. In this sense, I am the person to whom they come to, if it turns out that it is not clear what to do. For example, it is necessary to choose between two incompatible reasonable strategies, this is already solved with my participation. And the design of the language on me is locked in the sense that the language must be logically consistent inside, all solutions must pass through any one head. Today is my head.where it is not clear to the user - support and Q / A do it. And from all this diverse information we get a picture of where our priorities are and what we should pay attention to. In this sense, I am the person to whom they come to, if it turns out that it is not clear what to do. For example, it is necessary to choose between two incompatible reasonable strategies, this is already solved with my participation. And the design of the language on me is locked in the sense that the language must be logically consistent inside, all solutions must pass through any one head. Today is my head.where it is not clear to the user - support and Q / A do it. And from all this diverse information we get a picture of where our priorities are and what we should pay attention to. In this sense, I am the person to whom they come to, if it turns out that it is not clear what to do. For example, it is necessary to choose between two incompatible reasonable strategies, this is already solved with my participation. And the design of the language on me is locked in the sense that the language must be logically consistent inside, all solutions must pass through any one head. Today is my head.one must choose between two incompatible rational strategies; this is already solved with my participation. And the design of the language on me is locked in the sense that the language must be logically consistent inside, all solutions must pass through any one head. Today is my head.one must choose between two incompatible rational strategies; this is already solved with my participation. And the design of the language on me is locked in the sense that the language must be logically consistent inside, all solutions must pass through any one head. Today is my head.

— - . , , , , , . ? , , — ? YouTrack , — .

- The company and the project are a little different conversations. JetBrains has projects with a completely different internal organization. Traditionally, at dawn, JetBrains was a team of autonomous developers, each had some kind of responsibility area, and everyone in it more or less decided everything that happened: what to do, how to do it, communicated with users and so on. . And in some projects this model still dominates. The IDE is quite a viable thing, at least, while the IDE is not huge yet. There are projects that work on Scrum, someone works in a vertical organization mode, where someone at the top decides how to do it. It is clear that there is still some independent activity there, but there is some more vertical structure. As for us, it is difficult to say where we are in this spectrum.We definitely do not have Scrum, we have a fairly lightweight process, which we eventually formalize more, because we have to coordinate more and more people - after all, 50 people are completely ad hoc difficult to coordinate. Now we are just trying to formalize our planning a little more, so that we understand more precisely when we are going to be in time, because teams sometimes cannot understand what priorities anyone has and some failures occur, fortunately, not very noticeable from the outside. .because teams sometimes cannot understand what priorities anyone has, and some failures happen, fortunately, not very noticeable from the outside.because teams sometimes cannot understand what priorities anyone has, and some failures happen, fortunately, not very noticeable from the outside.

We have the following scheme: there are subcommands, subcommands have timlides, information flows through them. At the same time, a lot of things inside are solved independently, collectively. We mainly make important decisions by consensus. We usually talk until everyone comes to a more or less general opinion, only if it is not necessary to decide something very urgent. In this case, the decision can be made very quickly, abruptly: “we do this, we do not do this, we will discuss later”. But this is very rare. Scientifically, this is probably called "synchronous organization."

- Does work affect the balance of life?

- Very influential. Work takes an enormous amount of time.

- Does it turn out that you work 24 hours and sleep in the office?

- I can not work 24 hours. Once upon a time in my youth I had a year when I worked about 80 hours a week. The following year I decided that I would never work that way again, because it is physically very hard. I have to monitor the distribution of work and personal time quite strongly, because otherwise I just get very tired, stop thinking and fall into a sad state. I work a fixed number of hours per day and consciously try not to work on weekends, in the evenings. In general, I try to spend time outside the office on other issues. In parallel, I have another project, a startup about the search for psychologists and psychotherapists . This is also a job, but different, and there is some allocated amount of time that I do.

- Do you work after work?

- No, I try to do everything in this order: on certain days I am engaged in one project, in others - another project. If you do it all in a row, then you can go crazy. It’s very hard to work for several hours on one thing and then several hours on another.

- Regarding your second project: you are a developer, what does psychologists have to do with it?

- Although I am a developer, but I do not cease to be a man? I have a feeling that the usefulness of psychotherapy is very much undervalued in modern society. People have already learned that going to the gym or to the pool is useful, many people have learned that it is useful to grow somehow - someone reads books, someone trains applied rationality, something else. This is the development of various "organs", functions of the body. And you can develop that which is connected with awareness.

It is difficult to briefly describe what a psychotherapist does. What interests me most is the translation of the decisions that we make from the automatic mode (when I did something and I don’t know why, and didn’t know at all what I could do differently) to more conscious (when I did something, I I know why, I know that I could have done it differently, and I made the choice consciously).

Disclaimer: it is physically impossible to make all decisions consciously. It is very good that we have some kind of automatic mechanisms, because otherwise you can just go crazy. Every time thinking your head about every thing you do is too much time and effort. But at the same time, being able to make those decisions that are important, make consciously, it is very important, because it gives freedom. Freedom, from my point of view, is just an opportunity to make your own informed choice, and not to go along some kind of rails that are prescribed by culture, parents, traditions or something else. This is one of the things that, it seems to me, is a bit undervalued in modern advanced society, although the very value of such freedom to make your own decisions is. And a tool that is very useful for getting there is undervalued. And it seems to methat it is worth somehow to promote this idea to the masses.

I once thought that I would somehow advertise it all, but I was seized with conscience, because now I’ll start advertising it, and they will ask me where to find specialists who will work with us. I did not have an answer to this question at that time, and therefore I went to work on a project that helps me find such a specialist. It turned out that I’m not thinking about such things at all. I found like-minded people with whom we do this project.

Now there are some other projects that are trying to do something like that. So we have everything for real: competition, excitement. I really believe in our project. We, it seems to me, stand out in that we pay attention to some things that are inconvenient to pay attention to from a business point of view, but it is very important from the point of view of result. We are committed to selecting the psychotherapists themselves at the entrance, very strictly, according to their professional characteristics. If you received a recommendation from us, then it will be a very well proven specialist, professional. We spent a lot of time to formulate the method of how to distinguish good specialists from not very good ones, we work with scientists from the Moscow research institute PI RAO. This technique is quite versatile, and we are confident that the specialists we offer,really good. In addition, we collect feedback and make sure that we no longer recommend those who do something wrong. This is exactly the part to which our colleagues from other projects pay little attention, you need to pay more. We are still trying to learn how to pick up automatically, which is quite interesting.

In general, I believe that psychotherapy is useful, and therefore I try to make it more accessible.

- What is the trigger? When should I go to psychotherapy?

- There are two approaches to this issue. The first is when there is a feeling that something is not comfortable in the emotional sphere: I am sad all the time, the same emotional situation repeats itself, I get frustrated all the time when they say something to me, I have everything in a relationship with a partner time repeats the same thing - for example, such a circle a year long, etc. In such things, it makes sense to deal with the therapist, because, firstly, it is very effective, you can quickly learn a lot of useful things, and secondly, these are things that are very difficult to realize yourself, even if it seems to me that I understand everything - 100% that's not true. And the point is not that I am not smart enough to understand everything in myself, but that consciousness has limited possibilities for reflection:we are trying to study the same tool with the same tool called “the brain” - physically the same, not the same, but the same.

A psychotherapist in many ways acts as a mirror. He should not give you advice; one of his functions is to reflect, to give me the opportunity to truly see what is going on in my head. I will take all the decisions anyway, I will set all the priorities, but another person can help me to find out what is really going on there. It is important that this is just a professional, because, generally speaking, telling everything that is going on in my head, to some person who, in general, it is not clear how he will react to it, can make me unpleasant, do something that in the future it will affect me (or even tell someone else) - this is simply dangerous. Therefore, it is important to find a specialist who, firstly, works environmentally friendly, and secondly, is bound by a non-disclosure obligation. This is very different from a friend or relativebecause with them I have some kind of relationship, and if I tell you something, it can affect this relationship. And in the case of a psychotherapist, no matter what I say, I don’t really risk anything.

- It's like when you talk to the compiler.

- Well, I don’t know, the compiler is very offended at me, but can not say anything in response, this is a little bit different.

So, this was one reason to go to a psychotherapist - when there is some discomfort, something does not suit you, you want to improve something. Another reason - when you just want to develop (even when everything is in principle comfortable, everything is in order), it seems to me extremely useful to note some things that you do automatically. Here I am doing something that seemed to be important, but I do not know why. It doesn't seem to bother me, but if I find out why, and I get the freedom to make decisions at this place, I will be even better. This, in my opinion, is a good enough reason to go on psychotherapy.

— ? , - .

- This is very interesting in terms of terminology. The word "awareness" means different things. There is a story about meditation or mindfulness, other practices of bodily awareness are very useful things from the point of view of managing attention, the ability to concentrate. It helps psychological comfort a little more - it helps to relax better, with easier stress, etc. This is closer to physical exercise, it is about fairly low-level mechanisms in the brain that allow you to train some attention control. People who strain the brain a lot certainly benefit because they train this place and may have more control over where attention is directed and what proportions of energy are given to which area of ​​consciousness. This is one story. Another story is a conscious choice, it is not the same.Conscious choice - the thing is also quite useful, not only in the work of the engineer, but wherever you need to make decisions.

For example, in life there is a lot of controversy. It is clear that there is often no best opinion, therefore there are some disputes. And the fact how constructively the disputes go is directly dependent on the awareness of the participants. This is such an important part of the culture of communication: how we can share our personal opinion and objective reality - where something I believe in, and where there is an external fact that proves something irrefutably. People often confuse it, and even in all sorts of psychotherapeutic groups and at trainings there are many wonderful exercises that are aimed at ensuring that a person shares that this is his opinion, and this is some kind of external reality. There are practices of non-judgmental communication, non-violent communication, I highly recommend.

And another thing. Everyone has an intuition. It happens when you are sure that you need to do so. Why are you sure? It can be difficult to explain, and you need a certain awareness, rather high, to admit that you don’t know why you want it that way. You do not come up with some strange arguments, you do not try to overpower your opponent with pressure, strength of character, but clearly articulate: “I don’t know why. It seems to me. And if you can justify why it is not necessary, then I will believe you, and if you also “think”, then we just have different intuitions, and none of us are more right. ” This is also very important. I think that, on the whole, such an opportunity to reflect and the opportunity to let go of your ego a little at work helps a lot. This is directly related to the awareness of motivation, with the ability to make an informed choice. You can separate your personal from the objective and the worker.

— , , , , , , - ?

- By definition, most of the things that we do, we do unconsciously. There is a lot of work, and if you are aware, you can go crazy. In different books, it is called differently, but, roughly speaking, we have “fast brain” and “slow brain”, “System 1” and “System 2”. The bottom line is that there are automatic decision-making mechanisms that I am not aware of. They are fast, but they were formed without my will. I do not know how they turned out, I somehow grew up, learned something and unconsciously, implicitly learned it all. There is such a mechanism, implicit learning, which, in fact, forms all of this. And there is my slow brain, where I consciously, verbally, can think of something. This is a much looser system. Naturally, they are connected, so what I learned automatically affects my thinking, but I have much more freedom in thinking.But it is much more expensive. I do not have the opportunity to apply it everywhere, but where it’s important for me, I would like to use it. If you look around, everything that people do, in general, everything is unconsciously for a large share, and this is not always bad, but it is often a sign of some kind of lack of freedom: how we choose, what we should do, with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”I do not have the opportunity to apply it everywhere, but where it’s important for me, I would like to use it. If you look around, everything that people do, in general, everything is unconsciously for a large share, and this is not always bad, but it is often a sign of some kind of lack of freedom: how we choose, what we should do, with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”I do not have the opportunity to apply it everywhere, but where it’s important for me, I would like to use it. If you look around, everything that people do, in general, everything is unconsciously for a large share, and this is not always bad, but it is often a sign of some kind of lack of freedom: how we choose, what we should do, with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”If you look around, everything that people do, in general, everything is unconsciously for a large share, and this is not always bad, but it is often a sign of some kind of lack of freedom: how we choose, what we should do, with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”If you look around, everything that people do, in general, everything is unconsciously for a large share, and this is not always bad, but it is often a sign of some kind of lack of freedom: how we choose, what we should do, with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”with whom we live and communicate, how we decide what is important or not important for us, everything depends on it very much. Many of the priorities that we set in life are dictated by culture. That is, some people, as a rule, for a very long time, have formed some kind of idea, which may be completely irrelevant today, and therefore I today make some choice that affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”which affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”which affects my whole life. We are not aware of all this and we think that to make such a choice is the same “natural.”

- Are you on religion now?

- I am about everything in principle, why is it only about religion? For example, there are people who believe that by some age it is necessary to start a family. This age is different for different people, but I know quite a few people who believe that this should be done fairly early and for the rest of their lives. Why "need"? Why is it more important to start a family now than to understand how relationships between people work in general? This is a common topic, when you met a person, you fell in love with each other, everything is great, let's create a family right now, because in fairy tales it is written that this is the most important thing you can achieve in life. In order to be a person, I “must” start a family, and hence the feeling that the sooner I do it, the better. But the sooner I do this, the worse it will usually be.

Once there was a society in which everything was not so, in which no one was absolutely interested in how happy you were in marriage, marriage was a property relationship that was reasonably meaningful at that time. There were completely different ideas about happiness, about the function of the family, and then it was relevant. Since then, everything has changed. The way we evaluate today after creating a family, whether it turned out good or bad, has nothing to do with the way it was assessed by the people, who in some sense dictate to us that we need to do this as soon as possible. These people have become extinct long ago, and we still think that it is necessary to start a family as soon as possible and that the person who did not do this did not materialize. And it's not that you have to start a family late. You just have to think about why I am doing it now, what I can / can't do, what are my risks,and make a conscious decision. Not because my upbringing puts pressure on me, the books I read, or the opinions of other people, my grandmother drips on your brain that you are 25 years old, and you still have no children, what a horror. You can have children at 21 and at 18 — the question is why I did it, how I made the decision.

- Those things that people believe in, these often used delusions build a system. And when you try to change one piece, all the others are pulled too. For example, legal issues are related to family.

- Yes, they are. Legal issues that are really related to the family do not affect everyone. For example, while there are no children, it is worth considering whether marriage is necessary. Someone needs, someone does not, depends on how you want to manage the property. If someone enters into marriage in order to have any legal possibilities, then always please, just explain to yourself that you are entering into a marriage for the sake of these legal possibilities, and not to tie your partner to yourself with a rope. This is a completely normal explanation. Any explanation that is true is normal. The main thing is not to deceive yourself.

There are a lot of stereotypes about the family. For example, a very difficult question: is it good or bad to live with your parents? It is important that many people think about it in the category of “good or bad”, but in fact it is “useful or not useful,” you need to think about it. Or, for example, it is known about me that you can talk with me on the topic of whether our relations should be monogamous or non-monogamous. There is no universal answer for any person, but in culture there is, and this is a contradiction. In culture, it is believed that there must be relationships, and they must be monogamous. It is also believed that they should be heterosexual, and this is generally strange. But nowhere is it shown and proved that it really shouldbe. Relationships may not be, they may not be heterosexual, not monogamous, they can be arranged at all as you please, if people choose it consciously and act not to the detriment of each other. Another thing is that some of this is convenient, something is not, something is useful or not. The question is how to choose. Not WHAT is chosen, but HOW.

- By the way, you are also building a culture in Kotlin. Do you have one universal answer to everything?

- Not.The issue of awareness of what we want a culture, we are not enough engaged, we need to work out more. Culture is built implicitly. At first there were few of us, and we somehow communicated, we liked it, everything was fine. Then we became more, we began to grow faster, it became noticeable that different people communicate differently, something does not work, and I want some things to improve. We recently started trying trainings: we train different human skills with some external people, from communication to decision making. The team Kotlin tried only one training for team leads, it was interesting, I liked the result. It's good even as a team building, the opportunity to communicate. And there is a difference in how to communicate: you can drink beer, rub for life, and there is a way to communicate productively. I like the second option more. This does not mean,that it is not necessary to gab at dinner about anything, but from productive communication one can bear some results, there is something to think about - there is a post-effect. It was a good experience, we did it not so long ago, and I think we will do more. Culture is not built according to some model (“it should be like this”), it is produced from the inside. We have an idea of ​​how we are more comfortable and efficient, while talking to each other, we gradually synchronize it, and this is how some kind of culture is built. At the same time, elements of some ready-made solutions are brought outside, processed, thought out and implemented.it is produced from the inside. We have an idea of ​​how we are more comfortable and efficient, while talking to each other, we gradually synchronize it, and this is how some kind of culture is built. At the same time, elements of some ready-made solutions are brought outside, processed, thought out and implemented.it is produced from the inside. We have an idea of ​​how we are more comfortable and efficient, while talking to each other, we gradually synchronize it, and this is how some kind of culture is built. At the same time, elements of some ready-made solutions are brought outside, processed, thought out and implemented.

- It would be funny to have such a culture in which informed decisions are an important part of this culture.

- Frankly speaking, I think that communication with me emphasizes this need a little, because I start to get rather nervous when I see that a person insists on something and cannot explain to me why. I begin to worry that a person, based on these incomprehensible considerations, will continue to make decisions, and suddenly he will be blown into a strange place by the wind - and what will we do then? Therefore, when I argue with someone, I often ask questions “Why do you think so? Explain! ”

“The brain is very smart, even in its current state it can complete the picture“ why do you think so. ”

- Yes, there is such a thing as rationalization. I have some kind of intuitive feeling that I’m supposed to do this, and I can continue to explain with a very intelligent look why, fitting the arguments to the answer.

- For example, what to write types on the left.

- Yes Yes. And this is exactly the case when it would be nice to share "I just like it" and "there are objective reasons to think so."

It is also important to be able to admit your mistakes. Say: yes, it just seemed to me, I'm wrong. The logic helps in this. If I say: “We need A, because C”, and someone said to me: “Listen, no, something A from B should not”, then I can look and see that yes, indeed, it does not follow. Such a moment of insight can happen. I said something, it seemed to me that it was ironic, and then it turned out that it wasn’t, it’s not irony, and it’s possible that it’s not even so.

Naturally, there are social effects. Anyone who must admit his mistake must be sufficiently confident that his social status will not diminish from this. In general, he can often even improve, but it seems intuitively that this is terrible, if I was wrong, I will be less respected. It works not only in the Kotlinov team, not only among engineers, it works among all people in principle. People are very irrationally worried about their social status, so it’s difficult to admit mistakes. But if people around you work with you in the same bundle, and these are thinking people, then the fact that you know how to admit mistakes increases your contractual capacity, confidence in you increases, and in general, it causes respect - the person is clearly quite confident in himself if he can admit: "I just said bullshit, no, it's not like that."Whenever I realize that I said something wrong and someone else has denied me or persuaded me, I try to say out loud that he is right and I am not.

— - . .

- Yes, it does not work by itself, you can train in different ways. I am generally a big bore. When I, a long time ago, became acquainted with some, say, laws of logic, I really liked them, and I often apply them. Apparently, there are many such engineers among engineers, because people often cling to every little thing that is not even important in a conversation. Sometimes it just slows down communication with no visible result, but in principle, it is a good tool. There are others, for example, the very lists of cognitive distortions - this is a rather interesting tool that can hone your reflection mechanism. But it’s very important if you tell someone else that he was wrong, to do it politely, correctly, not to attack, because, of course, it’s important to admit mistakes, but when others gloat, it’s very unpleasant.And next time it will be much harder to admit a mistake.

- Especially if this is some kind of scrum-rally and 15 people are showing you.

- Yes, the more a person shows, the more unpleasant. The greater the social mass of disapproval, the more unpleasant it is. Therefore, it is very important that when we communicate, we do it correctly.

- Can you wish anything / advise our readers on Habré?

- I really wish all people to make decisions freely, both at work and in life. And I think that “free” means, as a rule, consciously.

- Thank you very much!

, « », 19 Joker. , « » .

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


All Articles