📜 ⬆️ ⬇️

Programming is not hard physical labor, but it still sucks

Peter Welch
April 30, 2014
About the author. Peter Welch is a writer and programmer, author of the book "And Then I Thought I Was a Fish", author of the blog "Still Drinking".


Image: Joe Raedle / Getty Images

Every friend of mine, at least twice a week picking up something heavier than a laptop at work, sooner or later in conversation casually throws something like: “Bro, you don’t wear to wear. I just worked a 4700-hour week, digging a tunnel under Mordor, using a screwdriver. ”
')
They are right. Mordor sucks, and digging a tunnel is much more laborious than poking keys, unless of course you are an ant. But for a tick, let's agree that stress and madness are bad? Fine. Welcome to the world of programming.

All programming teams are recruited by madmen from madmen


Imagine that you have joined the team of engineers. You are excited and full of ideas, perhaps you have just completed your studies and come out of a world of beautiful engineering solutions that awe the aesthetic union of usefulness, economy and strength. First you get to know Mary, the leading project for the construction of a bridge in a densely populated urban district. Mary introduces you to Fred after going through the fifteen security checks that Dave set up, because Dave had the sweater the day before and when the sweater was stolen from the table the first and last time. Fred works only with a tree, so you ask why the one in the project, because the bridge must withstand traffic from cars full of mortal people crossing a 200-foot canyon above the rapids. “Don't worry,” says Mary. - “Fred will take the walkways.” "What paths?" - "Well, Fred is good at walkways, and they will add to the bridge of attraction." Of course, they will be without a railing due to the strict “No railing!” Restriction imposed by non-engineer Phil. No one knows what Phil is doing, but it is definitely full of synergy and somehow connected with top management, with which none of the engineers want to get involved, so they allow him to do what he wants.

Sarah, meanwhile, found several advanced paving techniques and included them in the project, so you have to bypass them during the construction process, since each one needs its own support and safety requirement. Tom and Harry have been working together for years, but they have a dispute about using the metric or imperial system. It was decided to use the system, depending on "who first gets to that part of the project." It became a headache for installers, and they stupidly twisted, hammered and boiled all of what was at hand. Also, this bridge should be suspended, but no one knows how to build suspension bridges, so they added a few extra supports halfway so that everything would not collapse, but the suspension cables would leave the cables, because those seemed to hold some parts. No one knows what, but everyone is certain that these details are very important. After everyone met, you are asked to share fresh ideas, but you don’t have them, because you are a rocket engine specialist and you don’t know anything about bridges.

Would you drive along such a bridge? Not. If he was somehow built, then all those involved would be executed. And yet, every program you have ever used has been written in a similar manner, banking software, websites and a commonly used utility that was supposed to protect information on the Internet, but it did not protect.


Image: Peter Welch

All code is bad.


Every programmer, at times when no one is home, turns off the light, pours a glass of scotch, puts light German electronics and opens a file on his computer. Each programmer has his own. Sometimes he wrote it himself, sometimes he finds it somewhere and understands that he must save. He looks over the lines and sobs over their beauty, but suddenly the tears become bitter as soon as the programmers remember that the rest of the files are the inevitable collapse of all that is good and right in the world.

This file is a Good Code. It has meaningful and logical names of functions and variables. He is laconic. There is nothing obviously idiotic about it. He never needed to live in the wild or follow the requirements of salespeople. He does only one, down to earth, specific thing, and does it well. It is written by one person and never changed by another. It reads like a poem written by someone over thirty.

Any programmer starts writing such perfect little snowflakes. Then on Friday he is told that he needs six hundred snowflakes by Tuesday, so he begins to cheat here and there, and perhaps copies several snowflakes and tries to make them together, or asks a colleague to help him with those snowflakes that melt, and then all the snowflakes turn into some formless lump, and someone puts a portrait of Picasso to him, because no one wants to see cat urine absorbed into his spoiled snowflakes, melting them in the rays of the sun. Next week, they all stick snow on anyone, so that Picasso doesn't fall off.

There is an opinion that this state of affairs can be corrected, if standards are followed, only there are more “standards” than things that computers can do in principle, and these standards are improved and spoiled in accordance with the personal preferences of the people who they write, so there is no such code that would not get into the real world without doing a dozen of the same things by a dozen of even remotely different ways. The first few weeks at work are just learning how the program works, even if you understand all the languages, frameworks and standards used in it, because standards are unicorns.

There will always be darkness


As a child in my bedroom was a pantry. She was strangely made. From the outside, she seemed ordinary, then you went inside and found a recess in the right side of the wall, creating a comfortable little shelf. Then you looked up, where the wall behind the groove went farther, into absolute nothing, where there is no light, and that you were instantly defined as a place for daytime hibernation for all the hungry monsters that you frightened off with a flashlight and plush toys every night.

That's what it means to learn programming. You study useful tools, then you look around, and around other useful tools, and these tools reveal to you the bottomless horror that has always been near your bed.

For example, let's say you are an average web developer. You are familiar with a dozen programming languages, hundreds of useful libraries, standards, protocols and everything like that. Nevertheless, you need to learn new things with a frequency of about one a week, and do not forget to check hundreds of familiar things in case they are updated or broken, and be sure that they continue to work with each other and no one has fixed the bug in one of them, which you used to do something, because it seemed very clever to you once, on weekends, when you were drunk. You are fully competent, and everything is fine, and suddenly everything breaks down.

“Sho for nah?” - you exclaim and start to catch the problem. It turns out that once an idiot decided that once another idiot decided that 1/0 is infinite, he can use it as a symbol for "infinity" to simplify his code. Then the non-idiot rightly decided that it was idiocy, something that the first idiot had to decide, but since he did not, the non-idiot decided to become a goat and make it a compilation error. Then he decided not to tell anyone that this was a mistake, because he was a goat, and now all your snowflakes are urine, and you can't even find a cat.

You are an expert in all of these technologies, and this is good, because your competence allows you to spend only six hours figuring out the causes of problems, instead of losing your job. Now you know another little fact in the millions you already know, because the programs you depend on are written by goats and idiots.

And all this applies only to your field, which is a tiny piece of everything known in computer science that you may never know. Not a single living soul knows all about how your five-year MacBook itself works. Why do we ask you to turn it off and on again? Because we have no idea what happened to him and it is much easier to send him to an artificial person, so that his built-in team of automatic doctors would try to solve it for us. The only reason ITU computers work better than non IT IT computers is because IT people know that computers are small, children with schizophrenia with autoimmune disease and we don’t punish them when they behave badly.

A lot of things are done on the Internet, and the Internet is still hell.


Remember the madmen and the bad code? The Internet is all the same, except that it is a billion times worse. Websites that are smart carts from the supermarket with maybe three dynamic pages are supported by teams of people all over the world, because “truth is everything” (Full quote: “I am nothing, truth is everything!”. A. Lincoln., App. . lane) is violated always, everywhere, for all. Right now, someone on Facebook is receiving thousands of error messages and is vehemently trying to find a problem until everything collapses. In the office of Google there is a team that has not slept for three days. Somewhere a database programmer sits surrounded by empty Mountain Dew bottles, and his spouse thinks he is dead. And if these people stop, the world will collapse. Most of the inhabitants do not know what the sysadmins are doing, but believe me, if they all leave for lunch at the same time, they will not have time to reach the dining room by the time you run out of ammo with which you shot, protecting canned food from wandering gangs of mutants.

You can not restart the Internet. Trillions of dollars depend on an unreliable web of informal agreements and “and soooo go!” Style code with comments like “TODO: FIX, THIS IS A VERY DANGEROUS HACK, BUT I DON'T KNOW WHAT THE WORK” written ten years ago. And I did not even mention the legion of people attacking different parts of the Internet for the purpose of espionage or are happy to make money, just from boredom. Ever heard about forchan? Forchan can destroy your life and your business simply because they suddenly decided that they did not like you, but we are not worried about forchan because another nuclear bomb will not make the weather in a nuclear winter.

On the Internet, it’s okay to say, “You know, it’s kind of like working from time to time if you use the right technology,” and BAM! It has become part of the internet. Anyone with a few hundred dollars and a computer can cut a piece of the Internet and close the gap with pieces of code to your liking of whatever disgusting quality you like, and then attach your small piece to several large pieces, and everything will be a little worse. Even good developers don’t bother to teach the mysterious specifications sketched by organizations of people who want to create unicorns, so half the time they put up with the fact that it doesn't matter anything anyway, and can break at any moment, and we are just trying to cover up somehow This is what we hope no one will notice.

Here is the secret law of the Internet: five minutes after you open the browser, the child in Russia will know your social security number. Have you ticked off somewhere? The computer in the NSA now tracks your physical location to the end of your days. Sent a letter? Your email address was highlighted on a billboard in Nigeria.

This happens not because we don’t care and we don’t try to stop them, but because everything is broken due to the lack of good code, and everyone is trying to make it function at least somehow. Here is your job if you are working with the Internet: hope that the last one you wrote is good enough to last a few hours so that you can have dinner and take a little nap.

ERROR: Attempting to parse HTML using a regular expression; the system awakened Cthulhu. *

It's funny, isn't it? Not? How about this conversation ** :
- Is it called arrayReverse?
- s / camel / _ /
- Cool! Thank you!

Did that person help? With a camel? His answer does not seem adequate? Not? Good. You can still get Jesus. You have not spent so much time reading the code that you started to speak it. The human brain is not very good in the basic logic, but now there is a whole craft that does nothing but a complex, very complex logic.

Huge chains of abstract conditions and requirements line up to keep track of things like forgotten commas. Doing this all day makes you have a slight aphasia (loss of speech, approx. Lane), and when you look at the face of a person who says something, you cannot determine whether he finished or not, because there is no semicolon. You immerse yourself in a world of complete nonsense, where all that is important is a small sequence of numbers, sent to a huge maze of symbols, and the output is a different sequence of numbers or a photo of a kitten.

Brain damage is confirmed by programming languages ​​created by humans. This program:
#include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "Hello, World!\n"; return 0; } 

This program does exactly the same thing as this:
  `r```````````.Hello .worldi 

And this:
 ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. 

And this:
  Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. 

And someone once wrote a programming language in which someone else wrote this:
  #:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :|| open(Q,$0);while("){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/| /:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"n"; #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:| " 

According to the author, this program is “two lines of code that parse two lines of comments, which contain Maya numbers, representing the ASCII characters that make up the journal title, and are reproduced in the form of ASCII art rotated 90 degrees.”

This program won the competition, because of course she won. Do you want to live in such a world? Not. This is a world in which you can smoke boxes a day and no one will say a word to you. “Of course, he smokes boxes and who does not?” Over time, each programmer at the time of waking up from sleep, half asleep sees his whole life and all relationships in it as pieces of code, and then programmers exchange stories about how insomnia causes acid trips and that's fine. This is a world in which people refuse sex for the sake of writing an orangutan programming language. All programmers force their brains to do what they were not designed for, in situations in which it is impossible to find oneself, ten to fifteen hours a day, five to seven days a week, and each of them slowly loses his mind.

</ sermon>

So no, I don't need to lift items weighing up to fifty pounds. In return, I was able to trim Satan’s pubic hair while he eats the brain from my open skull so that a small portion of the Internet can work for a few more days.

___
* Parsing HTML the Cthulhu way
** CamelCase

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


All Articles