5 things veteran programmers should remember

If you are comfortable with the status quo and are already planning how to use your superannuation, then you are not the subject of this thread. Of course, I still want to congratulate you, it's almost over. But if you're like me and find yourself getting older but still can't resist the urge to code and build things, read on.

I used to be a systems software engineer, but when I was about 40 years old, I got hit in the back by entrepreneurship. I think it's a cool thing to start your own company. I built VCs and got some fancy titles at some very small hungry startups. I'm confident I'll be a good CEO, a not-so-bad manager, and even if I don't code anymore, I can hire some good programmers and managers - for high quality and innovation.

I followed my heart and fought as hard as I could. Then, at 54, I got older and started to feel a little overwhelmed. Memory also declined. I can't learn as fast and as much as I used to.

Alt text

These negative thoughts of mine were strengthened bit by bit because of all the new creatures I saw. So many new technologies are coming in like a tidal wave. I hate node.js, I think web development frameworks are horrible, and mourns some terms like agile and extreme programming that I consider sacrosanct but fall into clichés. I long for the good old days when everyone regulated behavior, carefully coded and tested.

Then one night, while I was watching an old, unremarkable movie, "Star Trek," James T. Kirk in it exclaimed that he felt like he was getting old, like a candle burning little by little. Without hesitation, Spock said in his usual confident and logical style:

With all due respect, it is definitely a mistake if you accept the promotion. Commanding the ship is your first and best destiny: the rest of you is simply useless. -Spock
, did I make the same wrong choice? Is it a mistake to switch to management (to do something I'm barely good at) instead of sticking to what I'm really good at?

But, luckily, I quickly realized that the answer to this question was "yes". I forgot that being a software engineer was my preferred best destiny, and my coding skills hadn't improved in any way over the years. First successful company based on a piece of software I wrote, still using most of the code to this day.

So, after a year of thorough self-reflection, I started to learn a new language and started to ride the waves. I'm really lucky that at 57 I even designed and created one of the best software I've ever written for a small local startup.

If you and I have the same problem and are both gradually moving towards the "dead end" of old programmers, then welcome to read some of the suggestions I have summarized and extracted, I hope they will be useful to you.

The first thing: do not forget the original intention

As we get older little by little, we get tired of dealing with things. We get tired of spending a lot of time doing things with little success. We get tired of seeing the same mistakes made over and over again. We began to sigh "the deceased are so reluctant to give up day and night". In the face of those friends who are about to retire, we start to envy them, envy their safe, reliable, and sometimes boring jobs, and envy that they are about to get their pensions and can live a comfortable life.

Starting a business from scratch and spending 20 years living a different life sounds absurd, and honestly, my wife still rambles about it.

However, when I came back to this field again, it felt like writing software for the first time, and a kind of excitement of being a little more than a newlywed came spontaneously. Rapidly changing technology. So many unanswered questions. An endless stream of new inventions and re-creations. Software has become a whole new field, full of new ideas and opportunities.

For many in our group, being on the cutting edge is the most exciting job. It attracts us like a magnet. And, we can do it! We older programmers have more experience, more failures, more successes, and a better understanding of how computers work than most in the industry.

Of course, these are not enough, you have to put in some effort to stay relevant. You need to learn, to learn new languages ​​like Swift, Python and Go. Yes, it could take years! And it might make you make mistakes that you've never made before. You'll be stagnant and you need to know which toolkits are relevant. You'll see young programmers leave you behind, not because they're smarter or more agile, but because they're just rushing forward without any scruples. This is exactly what you need to do. Go ahead as if you were just starting out in the field.

Don't forget your original intention, if you really want to make some contribution, then please tie up the devil in your heart that you are worried about getting older and afraid of gossip. Don't confine your thoughts, life will not end with your old age, as long as you want to fly, then every moment is a new beginning.

Second Thing: Don't Fear Chaos

There is an old saying, "the more things change, the more they stay the same". In fact, many things have changed less than we expected. We assume that programmers today fully understand the programming process. But it's not. We thought the days of bugs and mistakes were over. But they are still rampant. We expect less time to be spent experimenting and changing Zhang Yixian. But it is not.

But from another point of view, things today are completely different from the past.

I first started programming on an HP scientific calculator, and the only programmers I ever saw were on TVs, in lab coats, when Unix was a 6-year-old kid, and the kernel consisted of only 20,000 lines of code. Even into the mid-1980s, software development was still an independent activity. Home computers, while functionally sufficient for real programming, do not provide the toolsets and knowledge that the average person needs to learn to code efficiently.

I don't know how many programmers existed in the 1980's when I was involved in this line, but really not many. Because it wasn't until 1988 that the U.S. Bureau of Labor Statistics began calculating this number. At that time, there were about 100,000 professional programmers in the United States. Among them, there are no more than 7,000 senior programmers.

Today, the latest IDC survey estimates that there are approximately 18 million developers worldwide, and nearly half of them are non-professionals. The Linux kernel GitHub codebase contains 9.8 million lines of code and has nearly 6,000 contributors. Also, the Linux kernel is just one of 10 million code repositories on github. Google's enterprise codebase alone has more than 2 billion lines of code.
There is a lot of code coming out all the time.

very many.

Today's software is more of an extreme sport. Anyone can join in. You'd better get used to the status quo, because coding has become an emerging first-in-class skill. When every school on the planet starts learning programming for 10-year-olds, we can't count how many developers will enter the industry.

Those of us, experienced programmers to put it mildly, need to accept the status quo of today's society learning programming in a hurry. Just like running, many, many people run, but most of them are amateurs, only a few are promoted to professionals, and only very few are truly qualified for the Olympics. To be successful, then you need to let go of your preconceived notions of software and embrace this state of chaos.

Because of this chaotic status quo, the software world can be described as a mixed bag. People have reinvented things we knew how to do years ago. They are creating seemingly redundant libraries. They are creating new technologies. Probably not necessarily better, but will be easier than the previous approach.

This was a golden age of software growth and invention, and tools became readily available.

In order not to get kicked out of the industry, you need to get back on your feet and compete with other people, even if they are 30 years younger than us. We old programmers should also thank the younger generation for adding our wisdom, experience, and knowledge to these new codebases and teams, reducing confusion and improving the chances of success in new directions.

So don't be afraid that you see new buzzwords, and don't be afraid of obvious imitations, learn to see the essence through the phenomenon. Learn the attitude of the strong, learn from their experience and learn how.

Third thing: don't leave sesame seeds and lose watermelon

My favorite programming adage is, "Improve software more by removing code than adding code". This should be the motto of every programmer. You need to learn more than you think. Anything that might get in the way of your learning -- whether it's an old program you should abandon, or an old idea -- will stop you from progressing.

As a seasoned programmer, our toolkit contains many solid technologies that are the foundation of our skills. This can be a blessing as well as a curse.

Often, I can write a parsing routine faster than importing a pre-written package. I usually need to make sure the package is "correct" (ie: my way of doing things) before I write it. I've come to realize that this instinct of mine is out of date. I have to try importing open source packages. If I find it "incorrect" in this way, then I should be looking for good, reusable code, not reinventing it.

In most cases, experience is the enemy of innovation. The only real way to progress is to doubt everything. Only after you've tried a new approach and tested it to see if it's better or worse can you decide what way to do things. This is like a filter, only accepting method ideas through personal experience, and filtering out thinking methods obtained only through inspection and review.

Often, this is time-consuming, so resist the temptation to go back to old habits. After all, the final harvest is yours, so be sure to stick to this method path. Like the first thing I said, don't forget your original intention. Over time, you'll get used to finding a great new set of tools in your toolbox, and go check each of these techniques to see if they're worthwhile and worth keeping.

How to make these decisions is also one of the most important skills, and intuition plays a key role. Fortunately, you have decades of experience and a sharper intuition than most people. Just don't let your biases get in the way of your right thinking.

Fourth thing: You are not old

Let's say you're 20 years old, just in your second year out of college, and you discover that you not only love writing software, you're good at it. And the people around you, your peers, are also working in their own direction. Some start an incredibly small software company by creating an app or exploring an online product idea. Some start businesses even earlier. When John Meyer was 19 years old, his app company TapMedia had nearly 40 apps on the Apple App Store!

Frustrated, discouraged? Worried about getting old? From now on, it's still not old.

What does a 20-year-old have that you don't? That's right, they have: unrelenting drive and endless enthusiasm. But what you have is more important than that: experience, knowledge, and failures that allow you to avoid more obstacles.

If a 20-year-old fresh graduate can't successfully start a company until they're 25, you won't need that much time! Because you don't need to go through so many failures and setbacks. What's more, you have a wide range of skills, such as sound management and the right expectations, and these really mature skills can make you better.

No matter how old you are, as long as you have the determination to execute on your goals, you can achieve your next software success within a few years. Don't waste your life in hesitation and hesitation. Everyone grows old, and no one can stop the years from passing by. So why not achieve something while getting older? trust yourself.

Achievement is not the preserve of young people. Arthur Rubenstein, one of the world's greatest pianists, has won wide audience recognition for his outstanding performances for 80 years. Julia Child, a famous chef, only started learning to cook when she was in her 40s. Roget, although he invented the logarithmic slide rule when he was young, no one would have thought that at the age of 73, he actually created "Roget's Thesaurus"!

So stop thinking that building companies and writing new software is only for young people, you can too. Still, as you get older, there are some things you can't ignore. That's what I'm going to say below...

The fifth thing: health is the capital of revolution

Remember the days when you worked all night trying to release the next version as quickly as possible and still felt energized? Put on your headphones and immerse yourself in the sea of ​​code. There was only the warm light from the screen in the room, which contrasted with the trash can full of Coke cans and the mess of pizza boxes.

Gone are those days. When you're older, if you're going to start a new project, then you can't do it this way anymore. Because your physical condition no longer allows it. Your body is now more like a business partner. If you cooperate well, you can assist you in your work. If you do not cooperate well, it will drag you down.

Don't deny it. Dare you say that your muscles don't hurt every now and then? Are you not having a pot belly now? Presumably doctors often tell you to lose weight and exercise more. Optometrists are even starting to recommend that you wear "near and far" glasses. ...

In short, you need to change the way you live and work. Physical problems in this area can be overcome with exercise and some lifestyle changes. A healthy body allows you to cope with challenges without being overwhelmed, and enables you to be stubborn, ambitious, and calmly deal with risks and responsibilities.

Change doesn't happen on its own, it requires your management and discipline. But this is often the stumbling block for us to start again. Because we have so many responsibilities around us. family, children, and family financial obligations. Most people take these more seriously as they get older. Taking risks and learning the technology again often feels irresponsible.
Continuing to define yourself as a programmer for the rest of your life may mean you never want to retire. Because if you are not careful, you will encounter new things anytime, anywhere. It's this irresistible learning mindset that drives your career advancement.

Hopefully these five things I mentioned above will serve as your spiritual food. And I want to remind you again that no matter when you start, it's never too late. Regardless of your background, there is always important work that can be continued. If you're a business programmer, the business world is still in the throes of software disruption. If you're a web designer, then I'd say that web 8.0 hasn't shined yet.

Of course, if you are an iOS programmer, then I suggest you write an excellent email app, I don't know if you can do it?

Translation link: Code Agricultural Network
English Original: Five Things Old Programmers Should Remember
Translation Author: Code Agricultural Network – Xiaofeng

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326614593&siteId=291194637