📜 ⬆️ ⬇️

A few things to remember about the age programmer

If you are one of those who “worked still There-That!” And “did That-That!”, And now you happily retire - this article is not for you. Just thanks for the hard work and congratulations. But if you, like me, even after becoming a little older still feel a passion for programming, rejoice at the sight of the code and cannot resist the desire to write something else, then continue reading.

Most of my life I worked as a software developer. But once, at the end of my fourth decade, I fell for the bait of entrepreneurial gain. I then believed that creating your own companies is great. I found some venture capital and organized a couple of small startups to implement my own ideas. And so I became, as it seemed to me, a normal CEO and not such a bad manager. And, although I did not write the code personally, I could hire good programmers, manage the quality of projects and implement innovations.

I accepted the idea that my best code was already written - in the past. I was already 54 years old (quite a lot!) And I probably could not write code as well as before. Who knows - maybe I have already started to refuse memory, well, or I just learned everything that I was capable of learning in life. My attitude was reinforced by observations of the reality surrounding me. All the new technologies looked freaking out to me. I hated Node.js. I thought all web development frameworks were terrible. And I complained that the classic ways of software development have collapsed and turned into a set of clichés that are now being combined under smart names like Agile or “extreme programming”. I missed the days when people wrote a specification for the future of software, programmed it, and then carefully tested it. And when in each article there were no thousands of slang words.

')
One evening, we watched the good old Star Trek and James Kirk said that he was getting old and running out of steam. Spock immediately replied to him, as usual, in his confident and logical style:

“It was your mistake to accept the promotion. Command of the ship is your only and best possible fate. ”


I missed the rest of the movie - thought about this phrase. Have I done the same thing? Not for nothing, did I turn to the work of a manager (in which he was only moderately good), instead of surrendering to his own fate and talent? Fortunately, I soon found the answer to this question and it was: “Yes, in vain.” I forgot that writing the code was my very “only and best possible fate,” and the code I wrote was my most important creation in life. My first company was built around a piece of code written by me, and even today some of it still works. And after some period of self-digging, I threw away all my stereotypes that “the industry is no longer the same”. I started learning new programming languages. I was lucky and even before I turned 57, I finished developing one of the best software components that I had the opportunity to write in life. It was a product for a small local startup. He was good: he had an idea, architecture, implementation. In the end, he really meant something!
As a result, I decided to write a few thoughts for those people who, by virtue of their profession and age, are already in the same boat with me or will be there sooner or later.

1. You knew what you were going on.


As we get older, we all get tired. We get tired of the endless waste of time with minimal results. We get tired of seeing the same mistakes happening again and again. We start saying things like “life is too short for that.” And as our friends approach retirement, we often find ourselves envious of their reliable, boring work, which will soon give them the opportunity to go on a well-deserved rest. The idea of ​​starting all over again, spending the next 20 years on this journey seems ridiculous, does not find understanding with the family (especially if its members are not involved in software development).

Yes, when we remember the times when we were just starting to write software, it was incredibly exciting. Technologies were created and changed on the fly. So many problems still had to be solved, new challenges arose every day, it was necessary to invent and re-invent something. Software development was a new frontier of human knowledge, where discoveries were constantly occurring and opportunities arose. For many of us, being on this sparkling point of progress has become the brightest event and experience in life. It attracted us. And now, my friends, we have arrived. We are no longer young and we have enough experience, mistakes, and knowledge about how computers work at a low level, we have much more than the average of people in our field. To stay on a horse, you need to learn to think differently than you used to do it. You should not be frightened by the need to get rid of everything you knew before and learn a new language like Swift, Python or Go. Yes, it can take years. You will make mistakes, new mistakes that you have never had before. You will have to linger and figure out to understand which toolkit is by far the most relevant. And you will see how young people are overtaking you, not because they are smarter or more insistent, but because they are not afraid to plunge into some new-fashioned technology, which did not exist 3 months ago. But this is exactly the atmosphere that you need. Again. Just as it was when you were just starting out.

This is what you subscribed to. If you really want to be a programmer - drop your doubts, drop the fear of aging and do not worry about the fact that your choice is different from the choice of your peers. Just stand again at the start of this treadmill and enjoy the fact that life doesn't exactly end when you run. She's just getting started!

2. Accept Chaos


There is such an old saying: "The more everything changes, the more obvious that everything remains the same." Programming is still programming, right? In fact, things are not changing as dramatically as many of us have expected. For example, we thought that programming by this time would become fully understandable and deterministic. This forecast is not fulfilled. We thought that the time of bugs will remain in the past, but bugs still live in modern programs. And we also thought that it would be much less time to spend on searching for possible solutions and discarding dead-end options. But all this is still with us.

But from another point of view, much has changed. When I wrote my first programs, they ran on a scientific calculator from HP, all programmers who could be seen were wearing white lab coats, and the Unix operating system (the latest at the time) consisted of 20,000 lines of code. Even in the mid-80s, software development was a rather strange, rare, and isolated subject area. Home computers, although they already had enough power to develop software, still did not give access to the tools, knowledge, and tools necessary for effective learning programming.

I don’t know how many programmers there were in the world when I started doing this in the 80s, but there weren’t really many of them. Until 1988, their number was not even reflected in the statistics collected by the Bureau of Labor Statistics. By that time, there were 100,000 professional programmers in the United States, and only 7,000 of them were senior level.

The industry I joined was a specialist industry. Commitment and discipline were basic requirements. Today, the latest IDC study counted 18 million programmers in the world, and about half of them are not professional developers. The Linux kernel consists of 9.8 million lines written by more than 6,000 authors. And besides it, there are still 10 million repositories on Github, and 2 billion lines of code in the Google code base. A lot of code is being written today. Awful lot of code.

These staggering numbers show a general interest in programming and computer literacy. Stackoverflow reports about 32 million active users per month, and only 26% of them are from the USA. And you know what? Only 5% of these people are over 55 years old. Once access to the world of software development required discipline, commitment and expensive equipment, and today 80% of Americans have access to everything they need right from the comfort of their homes. And this is used by the younger generation, displacing their parents from the profession.

Today's industry is completely different from the one I remember. Today, software development is something like an extreme sport. Anyone can start to do this, write some code, be careless, fall off a cliff and break the hell out. It is no coincidence that modern Agile uses terms like “sprint” and “scrum” (scrum). You better get used to them, because coding skills are already basic literacy. If every school on the planet teaches children programming from 10 years old, soon 18 million programmers will become a drop in the ocean. Those of us who have some experience understand what this means. On average, every application you encounter will be a piece ... it will not be of very high quality. As in any mass sport, the majority of participants will be amateurs, only some of them will show promise, and only a few will reach the level of participants of the Olympiad. To succeed today, you need to drop all preconceptions about software development and embrace chaos.

Because of all this chaos, the world of software development is today a hefty mess. People invent bicycles that we successfully used decades ago. They write obviously redundant libraries. They create new techniques that are not necessarily better than the old way of doing something like this.

But in addition, there are stunning new ideas, invented by people who thought outside the well-known basis. Languages ​​like Go eliminate a number of difficulties introduced by the once classic OOP and open the way to a new, beautiful simplicity. Coroutines change the very paradigm of how people think about multithreading. We live in the golden age of software development and tools for work are available to everyone.

To stay in the game, you need to jump on the field, grab the ball and start playing with the other players, even if they are 30 years younger. I will even say more: we, the older generation, have the responsibility to add our experience and wisdom to all these modern code bases and new projects. This can reduce chaos at some local points and increase the success rate of some projects. Maybe even ours.

Thus, instead of taking every new term and technology that you’ll hear about from a young programmer who has just re-discovered something obvious, upgrade your internal filters. Learn to see future winners and learn to help those who will become Olympic champions — you and your experience can do it. I am sure that the topic of the stupidity of the younger generation of programmers will be hot at the next congress of Old Programmers, but I personally am not going to participate in this congress. And I do not advise you.

3. What you throw away is more important than what you leave.


My favorite programming proverb says: "Software often gets better from removing a code than adding it." The same applies to life, especially the life of a programmer. The number of things that should be studied is breathtaking. Anything that stops you from doing this, whether it is your old program or an old idea, hampers your progress.

If you are an experienced programmer, there are already many things in your toolkit that are time-tested and work accurately. This is your luck and at the same time your huge problem. Often I can write a function to parse something faster than find and connect the appropriate library. And besides, even if I decide to use the library, I want to be sure that it does its job correctly and by “right” here I mean “the way I would have done”. And gradually I began to notice that my instincts become obsolete. I have to import the open source library and try it. And if it turns out that it is doing something wrong, I have to try to improve it in order to create some artifact of the code being reused, a bit better quality than it was before my intervention.

The “it's time tested and works well” approach is often the main enemy of innovation. The only real way forward is to put all that you know to constant doubt. Only after you try any new way to solve the problem, learn its pros and cons, will it be possible to decide whether to take the old proven method or choose a new product. It creates in your brain an effective and flexible filter “I know, because I just tried” instead of an inefficient bunker, “I know, because I have done and worked like this for many years.”

Often this approach will cost you time and push you back to old habits and attitudes. Often, new items will indeed be less stable or flexible and you decide not to deviate from the classical path. And sometimes it will be the opposite. And, as I said before, this is what you subscribed to when choosing the path of a programmer. In the end, when using this approach, you suddenly find that in your usual set of tools a couple of quite good libraries have suddenly increased, several useful utilities, this and that, one-another-third. And that means everything was not in vain.

4. You will never be "too old"


Imagine for a moment that you are again 20 years old. You are somewhere in the second year of university, you find that you not only like learning how to write programs, but you can even write something. And sometimes it turns out quite well. You see people of your own age around you who look to the future with delight. Some of them even begin to work or create their own applications, with the hope that someday some business will grow. When John Mayer was 19 years old, his company TapMedia already had about 40 applications in the Apple App Store.

Rewind forward.

What did that 20-year-old have such a thing that you don't have today? That is: fearlessness and boundless enthusiasm. But today you have not less useful things: experience, knowledge, all your mistakes and all your successes are the most valuable basis!

If a 20-year-old can graduate and have a successful startup before he hits 25, then you can and even more so! You do not need to check all possible paths - some of them have already been passed by you and you know that failure is waiting there. Do you have any idea not only about programming, but also about management, risks, money.

No matter how old you are, your next successful software product is just a couple of years from you, if you set a goal for yourself and go to it. Send your demons to the loft of consciousness. Yes, you get older, everybody gets, you can't stop it. But why in the course of this case and still not achieve something meaningful? Worse, it will not.

Achievements are not only for young people. Arthur Rubinstein, one of the world's greatest pianists, delighted the world with his wonderful game for 80 years. Julia Child (chef, author of cookbooks and host of culinary programs) has never cooked for 40 years. Roger only created his famous thesaurus at 73 years old.

Thus, if you think that creating companies and writing software is only for young people, you should realize that this barrier is only in your head. There is, however, one point that with the advent of age can not be ignored. Which brings us to the next item.

5. Your health is your new business partner.


Remember those times when you could write code all night long and it didn't bother you at all? The immersion in the code was complete, and there was enough energy until the morning, and even for the whole next day. A table littered with cans of cola and pizza leftovers, remember?

This will not happen again.

Your work today will not be built the way it was then. Yes, it was amazing, but then your body allowed it to you, but now it is no longer. Today, your body is like a partner in business: sometimes it helps, and sometimes it does not allow you to do something dangerous. This is a factor that you need to take into account in your plans.

The signs of this are obvious to most of us. The muscles that you didn't even know you have, start to hurt. The doctor insists that you lose weight and do more exercises. And when for the first time the optometrist says the word "glasses", time around slows down and you see the movement of his lips in slow motion, while you are thinking about what you hear.

If you do not have any serious illnesses - all these signs are symbolic. Every well-informed person knows that many physical problems can be solved by exercise, discipline, and some changes in the habitual way of life.

Aging carries with it a whole range of new challenges, but taking care of one's health first of all makes solving all other problems easier. Good health makes any burden easier, and any risk less daunting. Yes, this will have to work on yourself. It will require discipline.

Sometimes a serious obstacle can be the need to take risks again. After all, we already bear such responsibility - our families, children, financial obligations. With age, all this is perceived more and more seriously. Returning to what you started many years ago may seem irresponsible. But think about this: returning to the beginnings of programming in adulthood means that you will never have to retire. There will never be “I am too old for all this” - there will always be something to learn, and there will always be what to do. That shining admiration, with which you once wrote your first lines of code in your first language, may again be with you in the future.

findings


I hope all this brain food reminded you that it is never too late. No matter what you had there in the past - in the field of programming there will always be something to learn, and there will always be something to work on. If you are a business programmer, then you need to know in what chaos the development of all business software is now. If you're a web designer, then I'm sure that even on Web 8.0, everything will still be wrong. And if you are an iOS developer, can you finally write me a normal email client, eh? I would love to look at this.

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


All Articles