What is the point of programming, and why am I programming?

It’s a question that comes to my mind from time to time, infrequently, but each time it comes along with questions about my career or purpose in life that make me feel a little confused and uneasy.

In my career of more than a decade, I always seemed to find a reason to continue to love programming at every stage, until it was no longer able to answer the question again. Over and over again, I began to understand the meaning of programming…

! [](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a8f3f45cf24f4a80b10889f46a3a517c~tplv-k3u1fbpfcp-watermark.image)

Programming is a skill

Back when I just graduated from university and became a programmer, I was so enthusiastic about technology that I constantly bought all kinds of technical books. Almost all my spare time was used to study technology and improve my programming ability.

As a result, I soon became the most outstanding one in coding efficiency and quality among the new recruits. The skills I accumulated during that period have also become a solid foundation for my future work. Programming as a skill has been deeply embedded in my body.

Even today, I still miss the time when I had nothing else to do but focus on technology. I was excited by every line of excellent code I could write at work, and even more delighted by every bit of technological progress I could make every day. Everything was so simple, and the meaning of programming for me at that time lay in the technology itself.

Programming is about solving problems

“With great power comes great responsibility.” The famous line from the movie spider-man can also be applied to a programmer’s career.

With the improvement of technical ability and recognition in work, my position changed from junior programmer to senior development engineer and later architect.

Accordingly, in addition to programming, a large part of my work time is spent communicating with users and analyzing their requirements.

For me, the process of changing roles was difficult and even painful. I had to use my weakest communication skills to interact with users, and the technical language I was used to was sometimes difficult for them to understand.

I quickly realized that I was no longer the junior programmer who just passively accepted assignments and got the job done.

In addition to technology, I need to be able to break through the programmer’s thinking and discover the real problems behind the user’s needs.

I have become more practical than before. I no longer deliberately pursue technical sophistication, but try my best to choose the most effective technical means to solve the problem from the point of view of itself.

At this point, the meaning of programming also changed. It was no longer limited to the technology itself, but became an ideal tool for solving problems.

Programming is both expression and creation

A few years later, when the question “Why program?

The next time this question came to me, I was already in my thirties.

For most Chinese programmers, that is old age, and there are many who think that programming at 30 is not good enough.

Of course, I always laugh at these questions.

In fact, I had a lot of opportunities to change before, such as going to business departments, or changing to management, etc., but I chose to stay in the technical position, because I think programming is still my favorite, and maybe the only thing I’m good at.

This period also became the golden age of my programmer career. I wrote the core framework of the company and the core algorithm of some important business systems. I enjoyed this time because I felt very little technical constraint, and I was more like an engraver with a knife, using programming freely to achieve what I thought was good.

Programming is no longer a skill or tool for me, I am expressing myself and creating through programming. This feeling brings me great freedom, and I also feel unprecedented joy and fun from it.

Programming is meant to leave a trace

I ended up in a management position, which involved a lot of factors that I couldn’t control (including the environment, family, economy, etc.).

But I still prefer to be called a programmer or “old” programmer. Just as I always put full-stack engineer at the top of my “title” in my self-introduction, I still work on open source or personal projects I love in my spare time.

When I asked myself “why program” again, I had a different insight: Maybe we program so we can leave a mark.

The company was recently struggling to upgrade an old system that had been running for nearly 20 years. In order to upgrade the system, everyone had to dig deep into the framework of the system and read the underlying code.

We read about the database connection pooling code implemented by a retired colleague, Bill.

At that time, JAVA was just popular, and there was no framework like Spring, or standard persistence layer like Hibernate or MyBatis. All the database connection pool and core persistence layer code in this system were written by my American colleague. These codes made the whole system run stably for nearly 20 years, and everyone couldn’t help but admire his superb technical level.

I also know a CTO who develops securities trading software and is probably in his late 50s, but he still writes the core code for those securities trades himself.

When I asked him why he kept writing code at his age and position, he told me that when he saw the code he wrote supporting hundreds of billions of securities transactions every day, he felt very excited and proud, and constantly hoped to make it better through his own efforts.

My American colleague would not have heard the zan sigh for the code he wrote more than a decade ago, nor would shareholders have known that the CTO was writing the code underpinning their daily transactions.

Those excellent code is they left their mark, we are not sure how long these traces can retain, maybe a few years, perhaps more short, but they are used in our daily life has a important value, and a new future will build on these tracks, maybe I think this is the meaning of programming.

I seem to understand the meaning of programming, but I know that one day in the future, I will certainly ask myself the same question — why I want to program, I hope that by that time I can still be that love programming, with a ingenuity of the “artisan” bar……

If you want to deeply learn C and advanced programming – Programming Club [click here]!

** Involves: **C language, C++, Windows programming, network programming, QT interface development, Linux programming, game programming, hacking and so on……