Programmer, ready for the future?

Source: Internet
Author: User
It may be that the first-line of the program has a nose for the title, especially the whole stack of engineers. This article is mainly to introduce, predict the future technical direction. In addition, the text may also have expressed the wrong place, welcome to correct. If you want to see only the parts of the future, you can start from there. After the computer has been produced, the industry has developed rapidly, and has constantly produced new technologies to solve new problems. The replacement of computer language is not regarded as the change of technology. Computer programming language should be counted as the norm, in addition to solving new problems, some of the emergence and popularity of some languages have historical reasons. From the time the computer was just created, the problem of computing was solved. It will take many people a few months to complete the calculation in a few days. This generation of engineers is more in the solution of hardware problems. Programmers (or software engineers) are translating questions into computer languages (which the programmer has always done), or card paper. Programmers should not be a core role in the computer systems of the time. Because most of the problems and challenges are in hardware systems, algorithms. With the decrease of computer cost, the demand of war after World War is reduced, and the economy begins to develop vigorously. The cost of the hardware solution began to become apparent and began to produce a general-purpose computer. The general-purpose computer gradually unifies the hardware standard, and puts more flexibility on the software. The basic model is that Big Mac hardware vendors are responsible for providing computing resources, and programmers are responsible for solving problems. By this time, the programmer's spring came. At the same time, the theory of software development is continuously developing. With the emergence of a variety of languages, basically we recognize the instructions, data, program basic procedures, library functions, such as the concept of various computers. In the future, as the scope of computer application becomes larger and wider, the challenge is more and more. Due to the increased complexity of the system, many systems are not available, even dozens of-bit programmers. (Today's operating systems and search engines are the culmination of decades of hard work for thousands of or even tens of thousands of of people). New challenges have come-software engineering, how to develop and maintain complex systems more efficiently and in a predictable way. The challenges include how to put traditional project management experience into software project management, how to get programmers to adopt a variety of standardized programming styles, and how to build the right team structure. At this time, the importance of the programmer is highlighted, the status of the industry chain has also become higher. Throughout history, tens of thousands of of people used to focus on physical labor or war. Human beings have never concentrated their intelligence on such a large scale to solve problems. At the same time, the size and type of problem solved increased further. Among them, human-computer interaction is a hot and challenging direction. Input, in addition to the keyboard from the typewriter, but also invented the mouse, display, speakers and other human-computer interaction equipment. In addition to implementing the underlying driver code, programmers have an easy-to-use interactive experience at the human-computer interface. In addition to the challenges of algorithms and design, there are also ergonomic and cultural challenges. For example, the Chinese have spent many years and have not madeTo create a wide range of application of the Chinese keyboard and popular input methods, and finally the English keyboard + pinyin into the most mainstream input method. This is the characteristics of Chinese characters caused by the majority of programmers spent a lot of manpower and resources to recognize these cultural laws. In addition, the network is another hot. Programmers connect computers at the bottom and rely on powerful network capabilities to enable people to communicate remotely. In recent years, there have been big data, Internet of things and other popular direction. Programmers from the bottom of the Big Data batch processing, transmission, storage, to solve the performance, reliability and other problems. Because big data is usually less than 100% accurate and complete, big data also allows many programmers to start solving uncertain problems. Other people's handlers have been addressing different areas and types of problems. The programmer's role began to differentiate (and many roles were differentiated from programmers), from development, testing, to architecture design, experience optimization, front-end development, backend development, driver development, database development, it and so on. Throughout the less-than-lengthy history of programmers ' careers, these roles are constantly being created and disappearing. This means that a generation of programmers will either keep learning or leave the industry (and there's nothing wrong with it that many millionaires are programmers). Historically, the problems that programmers solve, the components they use, and the way they think are constantly changing. But there are some unchanging things, such as the basic process of the program, design patterns, software engineering. So many programmers are constantly learning new things, so they can solve new problems. So what is going to happen now and in the future? Here we just want to discuss one: the revolution of human-computer interaction, including the human-computer interaction, and human-computer interaction level two revolutions. (Speak!) All right, that's the new situation with Kinect, HoloLens, and Cortana. The combination of these new products will create a disruptive revolution in existing human-computer interaction. In a nutshell: People in the future should spend less time learning how to use technology, and programmers will have to spend more time adapting technology to people rather than people adapting to technology. For example, a single-wheeled motorcycle does not need to learn how to maintain a balance on a wheel, a four-axis aircraft does not need to learn how to turn, stability, this is a good example. 1, human-computer interaction mode. People live in three-dimensional space, and programmers are constantly simulating three-dimensional space in a variety of input and output modes. First, the display is a two-dimensional output, so the mouse and a variety of touch methods are also designed to be two-dimensional. The two dimensions here are really just a physical plane, except that they are flat input and output ... Where the display is placed, the touch is done on the monitor, and the mouse needs to be moved on a flat surface. What about the keyboard? It can be said that its dimensions are not to one dimension. What is the future input device? It includes holographic input and the input mode of liberating hands. (1), holographic input device. somatosensory, gesture input devices such as Kinect are holographic inputsEquipment. Kinect is cool, but it has to be said to be a prototype of a holographic input device. This is not only because of its tepid state, but also has a lot of room for improvement. On the one hand, the accuracy of the equipment itself is not enough, the scope of use is not 360 degrees no corner, on the other hand there is no strong artificial intelligence to support (AI put in the interactive level of the section, here only the holographic input device). The future of input devices should be to cover the entire space, accurate detection of human micro-motion and micro-expression, and even detect the health of people (Security and privacy is to be considered). From a single technology, there should be no breakthrough problem, but the integration to create the perfect equipment still need a huge investment. (2), holographic output device. Holographic display technology has been demonstrated in many sci-fi movies. HoloLens such augmented reality devices and a variety of virtual reality devices are holographic display devices. These devices are still at a very early stage, but they have already brought a lot of shock. This wearable device is the main carrier of holographic technology before the breakthrough in physical technology. In addition, there will be a variety of taste, tactile devices, which all add up, covering all the human sensory organs, can be called holographic output device. (3), Cortana-class voice assistant. One of the most revolutionary of these is the further liberation of both hands (how does that sound so familiar?) )。 This is certainly not the same as the free hand of human upright walking, but its revolutionary is commendable. Or that sentence, this kind of voice assistant is still in the embryonic stage, their main challenges in addition to speech recognition, mainly in the later to talk about the level of interaction. Cortana, unlike a mouse keyboard, needs to learn how to use it, on the one hand, to a fixed position or a fixed posture. Now Cortana will be able to use the mobile phone, but further development through the Internet of things can be further developed. The challenge for programmers is coming: (1), manufacturing, integrating these devices, and even inventing new equipment. These devices need to provide the perfect experience, seamlessly combining people's movements and senses, and making them feel natural. (2), at a higher level, how to collect fuzzy, a large number of input, and transformed into a computer can handle the determination of the command. Compared with the traditional input method, the amount of information is increased in order of magnitude, except that the space becomes three-dimensional. (3), how to improve the efficiency of input, reduce learning costs? Programmers need to consider how to improve the efficiency of the input. Not only is the coordinates of the mouse and the screen changed from two to three dimensions. Think about how the Iron Man entered it? (4), how to let the device output the most natural experience? In particular, holographic display equipment, to solve the problems such as dizziness need a lot of debugging and research. (5) and most importantly, how to build a new experience model with these devices. For example, where should different kinds of applications be placed, and what is the presentation method? What kind of action is the most efficient and natural? TheseIt takes a generation of products to continually iterate to deepen our understanding of new experiences and to unleash the capabilities of the next generation of holographic devices. 2, human-computer interaction level. The current way of human-computer interaction, although many products known as the experience is very good, still need people to adapt to equipment. Not only the way of input and output, but also the way of thinking, the current human-computer interaction experience has a great increase in space. For example, if you want to travel, you should first study where to go, or surf the internet, or listen to people say, or go to a travel agency direct booking. To travel agencies of course the most convenient, but can not hear firsthand experience, the cost will be relatively high. If you want to study, choose a place, determine the date, buy air tickets, hotels, find raiders, the process to use a lot of search engines, various booking sites, email and so on. It takes at least a few days from the beginning to think about the basics, and it can take several hours to use various tools in the middle. And the rich? It may take only 5 minutes to complete the process: Tell the Assistant: Want to go out to play. The assistant may ask what kind of place (perhaps not a particular place) you want to go to? Play for a few days? When do you want to go? Then basically confirm and then report the arrangement on it. The core difference between the two processes is the level of interaction. Ordinary people rely on computers to perform task-level interactions, and the rich are interactive at the level of intent. This is the effect of different levels of interaction on efficiency. The voice assistant like Cortana, in addition to freeing up both hands, is also a very natural input method. This has allowed programmers and scientists to learn more about the intentions behind people's language, thus increasing the level of interaction between computers and people. Open AI components such as Project Oxford and Azure machine learning really bring toys from many years of lab to the world. It's just like Siri's release, though it's not the best, but without it, there won't be a quick launch of Google Now and Cortana. All right, one more time: Although Project Oxford is just a prototype, Project Oxford's launch gives the industry a higher-level interface standard for AI components, reducing the barriers to learning and application of AI. Especially in the language model. In addition to the openness of AI components, it can be expected that the various data models of big companies based on big data will soon be shared. Based on them, AI applications will soon be everywhere, and all programmers will be able to create smarter apps so that everyone can have their own personal assistants. If you can't get the value of your personal assistant, watch the movie "Her" and see how AI helps with phone and email. On the other hand, in this wave of artificial intelligence, hardware companies are also starting to build processors using artificial intelligence algorithms, which also represents the beginning of a new generation of programming languages and concepts. The level of interaction is more challenging for programmers: (1) The biggest challenge is learning and adapting to new programming concepts. The previous processThe order is all if. else + While such a deterministic structured program, programmers want to start learning how to write meta-programs. The program is written to adapt itself to the needs of individual users, rather than write a program that adapts to all users. The programmer's code will be directional, coordinated, and no longer a stack of details. (2), large open brain hole, how to combine holographic interaction and Internet of things technology to improve the level of human-computer interaction. Help people do things 10 steps and 5 steps, 5 steps and 1 steps. For example, under what circumstances do you want to drink water, raise your head to show that you want to turn on the light, or even no specific action; really help people manage time, coordinate schedules, not just a schedule. In summary, the future described here may take 10 years, 20 or more. Maybe our generation of programmers is out of the lake. Hot spots will no longer be the invention of various languages, the discovery of various engineering management methods and software design patterns, but how technology to further people-oriented, and promote productivity development. The challenge for programmers is to learn and explore new ways of input and output, as well as to learn completely different programming concepts such as AI. Free pick up the Lamp Brothers and original PHP video tutorial CD/"PHP" Essentials Edition, details of the Advisory website customer Service: http://www.lampbrother.net
  • 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.