📜 ⬆️ ⬇️

The basic instinct of a coder is to eliminate inefficient solutions from everywhere.



Adaptation of a passage from Clive Thompson’s book, Coders: Creating a New Tribe and Re-Creating the World

Shelley Chen worked as a business analyst at a computer company when, in 2010, she met Jason Ho through mutual friends. Ho had a great height, a slim build and a sly smile, and they immediately found a common language. Ho was a programmer and he had his own company in San Francisco. He also loved to travel. Less than a month after dating Ho, Chen was surprised by buying a plane ticket to meet her in Taiwan, where she temporarily moved. Soon they were already discussing a joint trip to Japan for four weeks. Chen was a little worried because they were not so familiar. However, she decided to try her luck.

It turned out that Ho had a very hard and strange route plan. He was very fond of ramen noodles, and in order to try as many of her options as possible while visiting Tokyo, he compiled a list of all the noodle cities and brought them to Google maps. Then he wrote a special program that ranked restaurants so that a couple could visit the best restaurants while visiting the sights. He said that it was a “rather traditional” task for algorithms, a type of what people learn in college. Ho showed Chen the map on his phone. He said that he planned to keep notes, noting in detail the quality of each dish. Wow, she thought admiringly, albeit a bit suspiciously. "And the guy is a bit of that."
')
But also Ho was witty, well-read and funny, and the journey was a success. They ate noodles, drank beer at a match for sumo, visited the Emperor's Palace, stayed at the hotel, where they shot “Lost in Translation”. This was the beginning of a seven-year relationship.

Ho has been doing such strange things as noodle optimization for many years. As a child he lived in Makon (Georgia), and he had a TI-89 calculator, as he told me. Once he was flipping through the instructions and found that it was possible to write programs on one of the BASIC variants on the calculator. As a result, he learned how to program and recreated the game The Legend of Zelda on a calculator. On a computer, he learned Java and after school went to the Georgia Institute of Technology to study computer science. In principle, he was interested in abstract concepts of algorithms, but most of all he liked to use a computer in order not to do repetitive routine things. “Every time I had to repeat something, I got bored,” he told me.

In the last year of college, Ho founded a company that made forums in which students studying the same courses at different colleges could consult with each other. The company has not gained enough users, and he closed it. He was invited to an interview at companies such as Google and Microsoft, but he was not interested there. He did not want to work for his uncle. It seemed to him that as an employee he would not create something valuable enough. Yes, of course, in this place you get paid. But most of the cost of labor goes to the creators of the company, its owners. He had enough skills to create his product from scratch. He just did not know what to create.

A few months later, he had an idea when he was visiting his parents in Macon. He and his father, a pediatrician who had his own practice, went to the supermarket. Father had to buy two registrars of the time of arrival and departure of employees - such old-fashioned machines, where employees insert cards, so that the machine records the beginning and end of their working day. In the store, this car was sold for $ 300 apiece.

Ho was amazed: Surely the recorder technology has not changed since the Stone Age? “I can't believe that such things still exist,” he thought. He realized that he could quickly bungle a site that performs the same task, only better. Employees can be flagged with the phone, and the site will summarize their watches automatically. “Don't buy a registrar,” he told his father. “I'll program it for you.” Three days later, he presented a prototype. Employees began to use it, and, to Ho's joy, were delighted. This system turned out to be much more efficient than a registrar working with papers.

He laid out the website, called it Clockspot, and after four months he had a new client, a law firm. After receiving the first payment, Ho, who worked in the library of the institute, almost jumped out of his chair. He received money for his software! Nine months later, Ho's company earned about $ 10,000 a month from cleaning companies, home care firms, and the administration of the city of Birmingham (Alabama). For two years he worked without interruption, improving and debugging the code. In the end, he debugged it so well that Clockspot worked on autopilot. Besides himself, Ho needed only a full-time customer support agent. He received a good income, and he had plenty of time for travel and other interests. He optimized the efficiency of his life.


Jason Ho, the founder of Clockspot, is trying to optimize his actions with code

Like any reasonable person, you should have noticed how the software absorbs the world, according to the well-known phrase of the investor Mark Andriessen. You saw how Facebook swallowed up the social sphere, Uber absorbed urban transportation, Instagram gave a strong impetus to selfie culture, and Amazon delivered purchases within 24 hours. Typically, technological innovators praise the fact that their services are changing the world or making life more convenient, but at the heart of all this is speed. Everything that you did before - you were looking for a taxi, gossiping with a friend, buying toothpaste - now it happens faster. The principle of Silicon Valley - to take the action of man and unscrew his metabolism to the maximum. And, perhaps, you were interested in why it works that way? Why do techies insist on speeding everything up to the limit, optimizing it?

There is one obvious reason for this: they do this according to market demands. Capitalism generously rewards anyone who can improve the process and get a little margin. But there is one more process with software. For coders, efficiency is not just a tool for business. This is an existential state and emotional nourishment.

Programmers can have different life experiences and political views, but almost all of those with whom I spoke get the emotional pleasure of taking something ineffective — even if a little slower than necessary — and tweaking it slightly. Removing friction from the system is an aesthetic pleasure; The coders' eyes burn when they discuss how to speed things up or how they managed to eliminate annoying human actions from the process.

Not only software developers are subject to this drive for efficiency. Engineers and inventors have long been experiencing a similar motivation. In the early years of industrialization, engineers increased the automation of everyday tasks, raising morale. The engineer was “the liberator of mankind from despairing monotonous work and burdensome labor,” as engineer Charles Hermani wrote in 1904. Frederick Winslow Taylor - the inventor of " Taylorism " who contributed to the founding of production pipelines - fiercely fought with "awkward, ineffective or wrong movements of people." Frank Bunker Gilbreth was annoyed because of unnecessary movements in everything, from laying bricks to fastening his vest, and his production partner and wife, Lillian Evelyn Gilbret, designed the kitchens so that the number of steps required to make puff pastry with strawberries decreased from 281 to 45, ”as enthusiastically wrote in The Better Homes Manual magazine in 1931.

Many of today's programmers experienced insight as a teenager, finding that life was full of incredibly stupid repetitive actions, and that computers were very good at coping with them. (Doing math with her long list of boring exercises inspired many coders with whom I spoke). Larry Wall, who invented the Perl programming language, and several of his co-authors wrote that one of the key virtues of a programmer is laziness, the kind of programmer that makes your unwillingness to do mechanical work inspires you to automate it.

And as a result, this efficiency focus can be difficult to turn off. “Most engineers I’m familiar with everywhere see inefficiencies everywhere in my life," Krista Maby, a San Francisco programmer, told me. - Inefficiency in boarding, well, or anywhere. They are just beside idle things. ” She, walking along the street, dreams that all pedestrians more effectively use the sidewalks and pedestrian crossings. Janet Wing, a computer science professor and director of the Institute of Data Science at Columbia University, popularized the phrase “computational thinking,” describing what Maby said. It includes the art of seeing invisible systems in the world around us, a set of rules and constructive solutions that govern our lives.

Jason Ho had the talent to see it and try to bring these invisible systems to the ideal. I met Ho and Chen at a San Francisco ramen restaurant a few years ago. Ho managed the Clockspot project, although he himself was so well-functioning by the time that Ho had to work on him for several hours a week. “He says that he works 20 hours a month, but it seems to me that I did not see him working so much,” said Chen. (Since then, the couple broke up, but they remain on good terms). Ho spent a lot of time traveling. Once he even repaired a Clockspot breakdown while in Everest Base Camp.

But his work on optimization and programming does not stop. When he wanted to buy a house, he wrote software that could be used to feed information about houses on the market — location, prices, environment statistics — and it would calculate the value of real estate in the long run. In first place, the program put a condo in Nob Hill. He bought it. He hates shopping, so he bought dozens of identical t-shirts and khaki pants — a classic coders strategy that eliminates friction when making choices about clothing.

A few years ago, Ho decided to do bodybuilding, which he threw himself in a particularly insane optimization challenge: how much could he swing? He carried small scales with him to restaurants and weighed portions of food. “He tracked absolutely everything he eats on a huge spreadsheet,” said Chen. Ho shyly showed me a table in the phone - a huge monster, where all the nutrition ingredients for the gym were tagged, for 3500 calories per day. He went to the gym, and invented ways to work out in normal conditions. If he passed by a metal pipe, he would pull up. If you passed the dumpster, then lifted it over the edge.

After two years of training, he finished second in the amateur bodybuilding competition. He rummaged through the phone to show me photos of that period. In one photo, he is oiled and posing in his underpants in front of a sun-drenched window. He looks like a greek statue. “I reduced the percentage of body fat to 7,” he said. He says that it was nice to be so pumped up, but in principle he was just interested to see if that was possible.

Ho showed me another table of his. It was something of instruction on how to live, a way to optimize not only the body, but every second of time. He decided that he wanted to do only those things in which every effort spent would give the maximum result. He made 16 lines with headings denoting his activities. There were entrepreneurship, programming, guitar, StarCraft, shopping, and "chatting with friends and family."

And in the columns he set various criteria - for example, is this activity meaningful, is it simply a means to achieve a goal (vital importance), can it be mastered perfectly, does it affect several aspects of life at once. In the lines of "programming" and "entrepreneurship" Ho noted all the cells. When he came to social activities, such as “communicating with friends and family,” he ticked “affects several aspects of life.” In the cage "to master perfectly," he wrote "maybe."

Many people will find it insane. The idea of ​​the possibility of systematizing the emotional components of life, or of considering social activity as a source of inefficiency, will be unpleasant for many. Ho is sociable and friendly, but for some programmers, people with their incessant demands may seem like a headache, and social interaction is just another fuss that needs to be fixed. This problem techies at the dawn of computers pondered with some concern. Konrad Zuse, a German construction engineer, the creator of the first really working programmable computer, is said to have once said: "The danger of turning computers into people is not as terrible as the danger of turning people into computers."

One evening, I reflected on this topic, plunging into the Quora discussion thread, in which dozens of programmers shared stories about automating the nuances of everyday life. There were some alarming, albeit interesting, stories about the transformation of social communication into tasks like “set up and forget”. “I got complaints from family and friends about what you never write to us,” wrote one programmer who created a program that randomly sent all automatically created texts to everyone. The text began with the appropriate phrase “Good morning / afternoon / evening. Hey, {name}, I wanted to call you, "and then the ending was added to him," I hope you are fine / I will be home at the end of next month, I love you / Let's talk next week when you are free. "

On a hackathon in San Francisco, a middle-aged programmer enthusiastically showed me an application he created that sent an automatic romantic message to a partner. “When you don’t have enough time to think about it,” yes, he suggested that the partner would experience emotional insufficiency, “the program will do everything for you.” Such attempts to improve the efficiency of socialization are found everywhere, right up to the largest technofirms. Gmail has an auto-complete email feature that encourages us to speed up their spelling with an algorithm that makes up our answers for us.

Linguists and psychologists have long noted the value of the phatic acts of communication - various emotional statements used by people in everyday life so that others relax or listen to them: “How are you”, “Awful weather, isn't it?”, “What are you doing in the evening.” And the more I talked with programmers, the more I came across stories about people who consider it annoying as good as the sand in the mechanism.

Christopher Thorpe, a veteran with more than half a dozen technology companies behind him, told me about an “incredibly talented engineer,” with whom he had once worked to fit this definition. “He was very upset when we joked at meetings because it was a waste of time. “Why did we spend five minutes talking to 20 office workers? This is working time. " Everyone laughs, but he believes that this is a loss of valuable time. ” The joke took time 20 people! This guy immediately began to grumble with his math: "Five minutes, 20 times, it turns out that you spent a half man-hour for jokes."

I, in principle, sympathize with the desire of coders to optimize everyday life, since I myself felt pleasure from it. Three years ago, I started working on a book on the psychology of programmers, so I decided to resume my programming classes — sometime in the 1980s I indulged in this on the Commodore VIC-20 — and delve into modern programming languages ​​like Python and JavaScript. And the more I played with the programs, the more I began to notice the inefficiency in the daily routine. For example, while writing a book, I noticed that I often turn to online dictionaries. They were useful, but so braking that after each search the results were loaded for two seconds. I decided to write my own command line dictionary using the site offering the dictionary API. Having played around with Python, I compiled a script. I entered the word on the command line, and with lightning speed I received synonyms and antonyms. Everything was unvarnished, rough, green on black. But how quickly it worked: no need to wait until the browser loads all this mess of tracking scripts and cookies that clog up my hard drive.

Of course, it did not save me an insane amount of time. If, for example, I looked for synonyms on average a couple of times per hour, and assuming (quite generously) that my creation saved me two seconds to search, then I might have saved about an hour per year of annoying waiting. It was hardly worth it. And yet this speed warmed my soul. Every time I looked for a synonym, instant results brought me pleasure. I injected a drug of effectiveness into my vein, and it was enjoyable.

Before I could look back, I was addicted to writing code for small routine tasks. I made a program to clear downloaded subtitles from YouTube; one more - to bypass and archive the links that I tweeted; one checking the school site where my son is studying and sending him a text message when his teacher laid out his homework (he was sick of constantly updating the page).

Many of my applets were written poorly, and hardly worked; I chose the simplest methods and method of brute force.Studying the code of really experienced programmers, I was amazed at their elegance. I could write a huge and ugly function for screening data, and then see how an experienced programmer would deal with it with a couple of lines of code (working faster). Journalists sometimes admire Google’s huge code base — 2 billion lines — considering it a reflection of its power. But programmers are not surprised by the volume. Sometimes the most productive programmers are those who reduce the size of a code, compact it and shorten it. After spending three years on Facebook, programmer Jinghao Yan assessed his contribution to the company's code base, and found it to be negative. “I added 391,973 lines and deleted 509,793 from the main repository,” he wrote in one of the discussion threads of Quora. (On Quora, it turns out, many programmers are sitting). "So, if I programmed 1000 hours a year, it turns outthat I deleted 39 lines per hour! ”

Programming is reminiscent of poetry, where the brevity of the text gives him power. “In a well-created poem, every word has meaning and purpose,” wrote programmer and writer Matt Ward in an essay for Smashing Magazine. “A poet can spend hours looking for the right word or postpone a poem for a few days, then look at it with a fresh look.” Among the famous poems of the modernists, inspired by the brevity of the old method of versification, haiku, is the work “At the Metro Station” by Ezra Pound :
The apparition of these faces in the crowd;
Petals on a wet, black bough.

[Suddenly the appearance in the crowd of these individuals;
Petals on a branch black from moisture.]
“In two lines and fourteen words,” notes Ward, “Pound draws a vivid picture, full of meaning, and asking for discussion by scientists and critics. That is efficiency. ”

In 2016, I met with Ryan Olson, a leading Instagram programmer. His team has just implemented the History feature. It was a massive update. Olson told me how, in complete exhaustion, he traveled around San Francisco a few hours after rolling out the update - and saw how people had already begun to use it. “It was a very cool feeling,” he said. “Last night I was at the gym, looked around, and saw someone using this product.” I do not know if there was any other way in history to reach such a number of people, ”or when“ so few people defined the feelings of such a large number of people. ”

One thing is to optimize your life. But for many programmers, the true drug is changing the life of the whole world. The scale itself brings joy; mesmerizing how your new code suddenly gains explosive popularity, from two people to four, from four to eight, and from them to the entire population of the Earth. You sped up some aspects of life — how we exchange messages, pay bills, or share news — and see how the waves diverge more and more.

Often, this is how states in the software world are made, so this is accompanied by the mandrazh of power and wealth. Venture capitalists invest in projects that, in their opinion, will grow like weeds, and markets will reward them. And this interrelation of motivations gives programmers of Silicon Valley, who adore efficiency, not only large-scale pleasure, but also an obsessive desire to achieve it.

Among the elite of Silicon Valley is often found contempt for things that can not be scaled. Little things can seem weak. Several times in conversations with major techies, I mentioned Jason Ho's company, explaining that it seemed to me a smart and delightful enterprise, an excellent example of an entrepreneur who ran into an unsolved task. But they frowned. For them, Clockspot was a “lifestyle-related business” - in their jargon, this means an idea that will never fly high enough. They say that this is a good product, but Google can copy it and select its business in a second.

We obviously get our benefits from the nervous, instinctive desire of programmers to accelerate everything around and create abundance. But the simultaneous tireless desire to achieve efficiency on a scale has side effects. Facebook news feed accelerates not only the display of photos with friends, but also the spread of misinformation. Uber optimizes the search for taxis for passengers, but overturns the economy of taxi drivers. Amazon is preparing the delivery of electronics drones flying over the streets, devoid of shops.

Perhaps we, the people whose lives so relentlessly improve, are finally starting to notice these consequences. We are increasingly complaining about the “Big Technocompanies”, we notice how they bypass civilian problems, how they both enchant and enrage. We do not know what to do with it; we like convenience, the way the software constantly states that we can do more by investing less. But doubts gradually accumulate.

It may be unpleasant for us because we, in our everyday life, have also absorbed the romance of hyperoptimization. Look at the streets of cities: employees listen to podcasts at a half speed, hurrying to work, making sure with the help of Apple Watches that they made their 10,000 steps a day, looking through the work mail under the table in a cafe. We ourselves have become like coders, setting up every gear of our lives in order to remove friction. Like any good programmer, we can incredibly speed up the machines of our lives, although it is unclear whether we will be happier.

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


All Articles