The only way to program is to be slow

The only way to program is to be slow

There is still a big difference in programming speed between people. Some programmers write code very quickly, while others are often slow. Jeffrey Ventrella recently discussed this difference in programming speed in an article. He is an absolute slow programmer. Let's take a look at his views on programming speed:

My dad always tells me that if you code slowly, you can finish the program faster.

I have worked in many Internet companies in San Francisco. I am now 52 years old, which is relatively old for a programmer. I write code at a snail's pace. In fact, I am more like a designer who can write code.

Once upon a time, I worked with some younger programmers who believed in "fast speed and few changes". We worked together in the same codebase, just like cooking a big pot of soup together. If each of us continued to contribute code, the project would be beautiful and spectacular in the future.

But it didn’t.

The problem is that these young programmers actually have the following idea in their minds: 1. Everyone is replaceable; 2. No one should be responsible for a specific part of the code; 3. Everyone should be able to modify the code of the entire project at will.

They think that now there is a tool like GitHub to manage code contributions in asynchronous time. As long as everyone continues to contribute code, projects and products will come out naturally.

[[123751]]

This is not the case. Programming should never be about using tools to reduce the time of software development.

Programming should be a rhythmic sport. I tend to divide the project into different layers according to different scales and time measurements. Each layer starts with small things such as exploration, experimentation, error, and temporary variables. It is a bit like building scaffolding. When each layer is finally completed, it is a piece of implementation-ready code that can be deployed and expanded. This development process is a bit like going from strategy to design plan to completing a real building.

Sometimes when the building is finished, I will start over again because I think I have a better way of building. This new way is sometimes right, sometimes wrong. In fact, unless you really do it again, you will never know which way is better.

Back to the original question: In the software development ecosystem, it is important to think about the mixture of promotion and support for the entire design process. Without this part of the work, how good a design can the fastest programmer make? Many neuroscientists believe that the flow of neuronal information will have a short blockage and reverberation during the conduction process of the brain, which will play an important role in thinking and perception. Programming design should also be like this, it takes time.

Slow programmed motion

The slow programming movement is explained in Wikipedia as follows: The slow programming movement is part of the slow movement, a software development philosophy that emphasizes careful design, high-quality code, software testing, and thinking, and opposes hodgepodge assembly, bug-ridden code, and overly fast release cycles.

Software development teams around the world are looking for more predictable engineering projects, hoping to promote more sustainable careers for programmers. They propose some practical practices, such as pair programming, code reviews, and code refactoring, to develop more reliable and robust software applications.

In the San Francisco Bay Area, venture capital-backed software development is showing a fever-like heat. Profits are driving software development to move in a completely unnatural and unbeatable rhythm, disrupting the cyclical rhythm and biological clock of design evolution. Rushkoff made this point very clearly in Present Shock.

Another problem is people's increasingly weird obsession with technology and developers' abnormal enthusiasm for tools. People always ask, why are some software and applications so bad? Yes, they are really bad. The reason for the badness is that too many programmers who are obsessed with speed are busy building tools, and then use this tool to support and adapt another tool they built, and then use this tool to support and adapt another tool they built, and then use this tool to help them write faster code.

This is why I think software development needs more "people" rather than "tools". Moreover, these people should not only help with external UI art, but also have to go deep into the software development to ensure that the software resonates and responds more to humanity.

What do we talk about when we talk about programming?

Programming is not typing.

All programmers know this, but most tend to forget it.

It is indeed a great feeling to type in front of a computer, but the pleasure of typing on the keyboard can easily make people forget that programming is a mental activity, not a physical labor. The real meaning of programming is to record human thinking, design, language, logic and spiritual creation in a way that computers can recognize and store.

[[123752]]

My wife sometimes runs into the yard and asks me, "Are you programming?" I say, "Yes, I am programming." In fact, I might be holding pliers to trim the flowers in the pots, or doing something like applying fertilizer.

Plants, soil, pliers, these are all good tools for programming, just like a keyboard, mouse, and dual screens.

Currently, we are experiencing a transition period of economic industry, from emerging to sustainable development. New software products and business models need to be developed, but for the sustainability of the Internet industry, the speed should be slowed down. Writing code is not just about meeting the needs of current users, but also about the architectural foundation of a certain industry in the future. Code should grow slowly and robustly under the care of programmers. Like good wine. Like a baby.

<<:  Ten Years of Litigation: iPod DRM, Jobs, and 8 Million Users

>>:  Hawking's new speech system ACAT will be open source

Recommend

What can be done for overseas promotion? How to do it?

When it comes to how to do overseas promotion , m...

Analysis and application of WebView cache principle

[[191419]] 1. Background Nowadays, App developmen...

How to accurately check the ranking of Baidu bidding keywords?

When many companies are bidding, they require bid...

The entire process of setting up a bidding promotion account!

When we get a new bidding promotion account, the ...

Sharing practical experience in operating and promoting Xiaohongshu

As of January this year, Xiaohongshu has more tha...

The first step of brand promotion: 5 ways to stimulate marketing ideas

Brand promotion is not just a high-sounding conce...

Analysis of China Guangfa Bank’s Private Domain Operation Case

For today’s young people, if they don’t have two ...

A Brief Discussion on iOS Crash (Part 2)

A Brief Discussion on iOS Crash (Part 1) 1. Zombi...

I think this is a good way for Alipay to do it!

Our classmates at Alibaba have always had a hat o...

8 Tik Tok promotion skills to teach you how to play Tik Tok from scratch!

In the mobile era, traffic entrances were Weibo a...

Dacheng 1.0 "Essentials for Being Single"

Dacheng 1.0 "Escape from Singleness" Re...

Albert follows Friends and speaks English easily in 100 days

Albert follows Friends and speaks English easily ...