About software and software engineers

Source: Internet
Author: User

Not long ago, at the Sanlian bookstore in Huaihai Road, I picked up a book about the world's famous architectural design, which described the Creative Background and design inspiration of each building, there are some major design sketches and completed photos. It reminds me of a book I recently saw about the software model. It is also a case study of system design. There are also UML diagrams and screenshots of some user interfaces.

The analogy between a software architecture and a building architecture is such a cliché. However, every time these drawings appear in front of you, they are so friendly and sightly.

One is the design of the corridor and window sill structure in the real world; the other is the logic of information transmission and display in the virtual world. One must abide by the laws of materials and mechanics based on atoms and molecules, and the other is the operating rules of electronic devices such as CPU, memory, and disks. One carries the characteristics of human civilization and different cultures, and accommodates people's sports activities or home life; one builds human virtual life and popular fashion in all walks of life in the digital age.

However, for a long time, when people mention an architect, they may think that he is a well-dressed, elegant, and artist-specific gentleman. If he is a software engineer, he may think of him as an unrefined, incoherent weirdo. If he is working for a small company, he may often have red eyes and thin bodies, and there is no savings.

Everyone said that there is no distinction between high and low occupations, but in fact, doctors are more respected than the postman, even if the latter is always in the storm all day long, the hard work and compensation are not the same as those of the former.

The story of a doctor cited a typical communication case. Since ancient times, Western doctors have used the uncommon words in Greek to create cultural barriers, in this way, "professionals" and "amateurs" can be used to separate people with slightly medical knowledge from ordinary people, so as to be unique and superior.

As a result, at least from the perspective of communication, when software engineers use too many terms in the construction industry, despite promoting public understanding of the software and software industry, and some reflection on software engineering itself, but it will fade out its professional identity in the subconscious. Today, the IT world is also filled with various specialized words characterized by short letters, but these thumbnail letters are so easy to remember that every high school student knows the meaning.

In fact, there are still too many different places for software engineers, and some places are so exciting. On TV, I saw the design scheme for the new ghost tower. The cloudification design of a Chinese architect won the best creative Award, and it is also recognized as almost impossible to achieve the idea. The basic physical knowledge tells us how mechanical strength of building materials is needed to support such irregular skyscrapers in the wind and rain.

The Virtualization (or abstraction) trend that has been prevalent in the software industry has kept programmers away from the limitations of physical laws. The earliest virtualization should occur on the CPU and instruction set. In recent years, Java2 and. Net put programmers farther away, and objects or streams completely replace the memory area, disk storage, or network data packets. As a result, more programmers only need to focus on their businesses and models, and then discuss reuse. This topic is hard to follow in other engineering fields.

Coupled with a variety of domain-oriented frameworks and platforms, most programmers work almost like writers or painters, just to put the information flow and logic required in real life, use code to make a sketch instead of a traditional pencil. The points and lines that make up these sketches are also virtual logic, so programmers are closer to art than architects, and they can be empty.

Virtualization also brings some confusions and troubles to the software. On the one hand, it still comes from the constraints of the law of physics. This is also the reason why the software is still an engineering rather than an art. It also makes those complaints unexpected, there are no unfeasible idealists under attack. On the one hand, it is also the professional identity of software engineers. When they do jobs that can be done by high school students every day, when they watched India's Pyramid Model of Software creation flood, software engineers, especially in developing countries, began to face various very realistic problems.

Fortunately, even at the technical level, the magic of virtualization is not always as magical as it sounds. An American named Joe mentioned a "vulnerability abstraction law" in his small article on Software Engineering ": "even though there are so many advanced development tools that can help you complete a lot of complex work at incredible speed, one day you suddenly have to learn a lot of underlying operating mechanisms, it takes more than two weeks to design a mechanism that bypasses the Virtual Layer to fix the problems that this advanced development tool missed in virtualization work ". This situation is everywhere in the Age of VB, MFC, and COM. net will be better, but to write high-quality code, a novice programmer still needs to make great efforts to figure out what is packing and unpacking. These vulnerabilities have finally created some thresholds to reject the massive it migrant workers and give them some respect to experienced programmers.

Now the era of multi-core and concurrent computing has arrived, and the software technology will face a profound change. Not long ago, the programmer magazine translated an article in the Journal of the American Computer Society, which pointed out that "concurrency will require programmers to think in ways that are difficult for humans to adapt ". Compared with the challenges brought about by the rapid technological changes in this industry, the threshold for virtual vulnerability manufacturing is already a little insignificant, and the opportunity is just for those who are passionate about the future of mankind and can learn quickly. In fact, I have met many programmers over the past few years. In this case, not everyone can do well in simple learning. The threshold of learning ability is also an important cornerstone for this profession not to become a dock Porter.

It seems that we have confirmed that, when God closes a door in one place, a window will surely be opened in another place. The only thing that remains unchanged is probably continuous learning. Curiosity and questioning have become the ultimate rule for survival in this industry.

Fortunately, today's hands-on workshops on software have become an industry, and you can choose to learn more. If you are passionate about philosophy and new technologies, you can become a technical expert; if you are interested in interpersonal relationships and new methodologies, you can become a manager. If you are extremely sensitive to market changes and are confident that good technology may not sell well, you can also be a business person.

And no matter what role you are, as long as you brand your software, you will be different. If you look at the ipmp project case, you will know why a professional project manager can properly manage a dam construction or automobile production line. Once you take over the software project, but he may not be able to understand the direction at all.

Last year, I went to Wuxi for a tour. A college student worked as an electronic engineer in a medical equipment company there. On the edge of Taihu Lake, we chatted about our work, hardware and software. I told him that the top software engineers in the world should be people with their heads shining and even sparks from their hair when thinking about problems. Software engineers must have an idea, because the software itself is a pile of ideas. There is nothing but an idea. This is probably the most pure software.

To prove my point of view, I also asked him to have time to do an experiment. He used "XX engineering idea" on Baidu or Google as the keyword to search. When you replace xx with "electronic, construction, or machinery, may have nothing to gain, but when it is changed to software, there will be thousands of search results.

I tried to design this experiment. It was actually a book called "engines of logic" that I just read. It mainly introduced the origin of computer science. It was the first time that he used numbers to replace the symbols of logical mathematics. on the draft paper, he translated a logical computation into the world's first program code. So I was thinking that the earliest program should have originated from these logical operators, rather than the elegant lady named Ada. Her program was probably the first code to run on a machine.

Some mathematicians and engineers who were at the same time or earlier in coder were dreaming of replacing machines with humans for reasoning. For example, we only need to input some facts, machines tell us who is the killer and who is the civilian, just like fair judges or smart detectives. In fact, this ideal came from the worship of machines by Westerners during the industrial revolution, which became the earliest source of today's information revolution.

Even though their dreams have not finally been realized so far, in today's field of artificial intelligence, there are still various optimistic and pessimistic debates. Such debates are often close to philosophy, however, what they gave birth to, whether it's science fiction movies and novels, or the entire software industry, is developing wildly.

This seems to be another view of the long tail theory. No matter how long the tail is, how much value it creates in reality, they are still firmly guided by high-end ideas.

We are a grassroots working on the front-line. We want to find out what we are doing behind the numb overtime and impetuous schedule, you cannot forget the ultimate power to promote and support the entire industry. In the face of such power, business and profit have only become a tool and a proof of its own value.

In addition, the recognition of technology is particularly important for our software practitioners in developing countries. unreasonable housing prices and far from mature social systems drive us away from the real interests, developed countries that grasp core technologies are getting stronger and stronger in this positive feedback game. Now we are just a long tail that keeps providing them with profits.

In his book, Mr. Wen also mentioned programmers in the future world. What would that look like? Let's wait and see.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.