Programmer's learning ability-composition and programming, programming realm-the importance of data structures, algorithms, and mathematics.

Source: Internet
Author: User

The programmer's learning ability Confucius once learned the piano with the teacher, and the teacher threw him a piece of music and asked him to practice it. What about Confucius? Trained for more than ten daysContinue to exercise.
The teacher said to Confucius, "you can change the music to practice ."
Confucius replied, "Although I am already familiar with the music, I still cannot grasp the rhythm of the music ."
Passed Days"You have mastered the rhythm of the music. You can change the music and practice it ."
Who knows, Confucius said: "I have not felt the characters in the song ."
Again After a while"You have already felt the character image in the song. You can change it !"
Confucius said: "Although I have already felt the character image in the song, it has not yet reached his mental realm ."
One day,Shi Yu saw Confucius with a solemn look and an extraordinary ambition, as if he had completely changed a person.
Confucius said, "I have realized that, Dark and tall figures in QuWith deep eyes, the sky is born, and the weather is the King. This person must be the King of Zhou wenwang !"
I was surprised to hear this song, because it was called "Wen Wang Cao", and he never said it to Confucius!
What kind of learning spirit is this?
This is a kind of spirit that thoroughly learns knowledge! We should not only learn the concepts and skills of people, but also the methods and methods, and also the ideological realm of people. Without a thorough understanding, it is difficult to understand the knowledge.
Learning is required Root question! Anyone who cares about everythingCan certainly become a good programmer!

Composition and programming, programming realm


1. For example, object-oriented programming is a technology that everyone is using. Some programmers can use C ++, Java, or C # To write a class, define attributes, write methods, and create an object. Then they can call its method to manipulate its attributes. In this way, he can also write the program that comes forward to the object. However, all he sees is the program object.

After deep learning and understanding of Object-oriented thinking, we will understand that all objects are abstract to the real world, and object-oriented programming is to write programs using the most natural human thinking model. At this time, we can see that the classification is the main family of the real world, and those objects become the living objects of the real world, and attributes and methods become their character and activity.

At this time, we will write another object-oriented program, just like writing a composition. Various naming rules naturally use various real-world terms, and the Code itself does not need to be annotated, because most of them are self-Annotated. Writing code logic is like writing real-world game rules. The idea of the entire program is very clear, the code is very concise and elegant, and the running efficiency is naturally higher.

Reference: Female programmers: programming is like writing a text. Language is the foundation and conception is the key.

Therefore, the idea of learning technology will lead to a qualitative leap in the ability to use technology, which can be used in a deeper level without being confused by the forms of expression. In fact, as long as you master the essence of Object-oriented thinking, you can write programs with object-oriented ideas even if you don't need object-oriented languages. It seems that martial arts masters can use branches to play the sword method. Although the branches are not swords, they all reflect the essence of the sword method.

Is it enough to learn programming ideas? If you want to take it to another level, you have to pursue the realm of programming. Realm is a virtual thing that you can't see, but you can feel it from your heart. This kind of feeling is a bit like a tacit understanding. The realm of programming is the spiritual and emotional interaction between people and programs, integrating their own body and mind with the program world and the real world.

The realm of programming is indeed a bit mysterious. The realm varies from person to person, and everyone's sentiment is different. Just like the Zen thoughts in Buddhism, what is Zen? Zen is something you need to experience on your own. what others say is not counted. It cannot be described in words. The so-called, do not stand up text, direct to the hearts of the people. I know only what it is.

If you want me to talk about Zen? One sentence: Get the joy of life through feeling of life.

The Zen of programming: Get the joy of programming by understanding the true meaning of programming.

The realm of programming is either high or low, and never ends. When your programming realm reaches a certain level, your thoughts will jump out of the programming realm. You will find that the foundation of software is actually a philosophical problem, and many aspects are connected with other science. Just like the development of modern Quantum Theory to the end, quantum theory is actually related to philosophy. This is far away, but programmers who like philosophical thinking will surely become a good programmer.

However, a higher ideological realm must also be put into practice. I can't do anything without playing the ideological realm. After all, everyone is working in a software enterprise and has to become a fairy. Who will code it?

Good programmers must also be pragmatic programmers. Pragmatism is the combination of theory and practice, and the pursuit of a balance between perfection and reality. After all, there is a gap between the ideal and the reality. We have only the lofty ideals to face the cruel reality.

Some time ago, I also mentioned a sentence:

Most of the people on the battlefield were killed by a knife to play with the knife. When they died, they were not chosen.

Most people on the battlefield have become generals in order to kill people. When they die, they have been killed and put into the Buddha.

Therefore, to become a Buddha, programmers must not only pursue the realm of programming, but also learn to fight and solve specific problems in a cruel reality.

This often happens when several programmers join a software project. After the project is over, some programmers improve quickly, some progress slowly, and some remain unchanged. Why?

Programmers who have improved programming speed are mostly diligent and studious. They like to explore the laws of programming and gradually summarize their own methods. While programmers with slow progress are also diligent, they tend to focus only on specific Code and are not good at abstracting and summarizing rules. Programmers who are standing in the same place are mostly mixed meals, and they do not take the initiative to learn and improve their own consciousness.

Programmers must not only cultivate their own technologies, but also cultivate their own character. Doesn't it mean that most problems in programming are character problems? Of course, this is about the cultivation of the programmer's character and personality.

Reference: http://blog.csdn.net/superman200322/article/details/2580799

The importance of data structures, algorithms, and mathematics.

Learning programming is not just a language, but a language is just a tool (a lot of online things are commonplace ). Generally, a written program consists of two parts: Data Structure and algorithm.

Data structure is a rule specific to a language. It has a rule just like any game. There is no shortcut, so you can just take a look at it, practice more, and remember it. In practice, we can understand it more deeply and thoroughly.

Algorithms, that is, the functions or methods we usually use in programming. To make the program more robust, more readable, and more compact, some algorithms are generally encapsulated, this facilitates transplantation and testing. In fact, to the vulgar, algorithms are the methods we usually use to solve problems, but they are described in languages. Just write what you want, as long as it does not violate the rules of the game.

Learning programming, in fact, I think we have learned programming since school, And we are learning the essence of programming ------- mathematics. They learned almost the same way. When encountering a problem (of course, they finally solved the problem), first of all, we should analyze what problems must be solved first? List every problem, and break down these small problems one by one until they are resolved! Of course, we can also combine the two sides in the middle: What can we solve first? What cannot be solved? Try to move these problems closer to the center and solve them step by step. When an error occurs, we can start with the small problems and analyze them one by one to locate the problem and finally solve it. Mathematics is especially important in science and engineering because it affects our thinking virtually. No wonder where mathematics is going, and this society will not be able to enter it.

Now we have learned four types of programming models: process-oriented, Object-based, object-oriented, and generic. If we compare programming to a pile of blocks, the API functions provided by others are scattered and small blocks. Sometimes, in order to quickly accumulate what we want, we will pile up these small blocks into another shape. when we need them, we can just take them and use them. We don't need to pile them up again. This is the class.

Discover and solve the problem ------ test, because I have never learned to test, only a basic method is to follow the program and check where the program runs, the problem will always be discovered. The simplest way is to track the program running through input and output until it is found to be abnormal.

Source of progress ---- error. People often get more experience from failure. Programming is also true. When you run a program and encounter a certain error, you 'd better solve it on your own, because only in this way can you make more progress and never be afraid of detours, sometimes you learn more in a detour. When an error occurs, analyze the error prompt first. Generally, the IDE has the error prompt and the line in which the error appears. Although some instructions are not clear enough, analyze the context of the error line, it can also help you find the root cause of the error and check the error prompt. This will also help you find the error in the future.

Learning programming is a process of understanding that conforms to "theory → practice → innovation → re-theory → re-practice → re-innovation. Programming can also be regarded as a technology. For technology, we can only improve ourselves through practice. Sometimes we may encounter such a problem. When we learn a new software course, it is very difficult to read those books. Sometimes I read it once and don't know what it said, I think this is because of your lack of practice. When you have actually practiced those books, you may overhead them and read them again. "Oh, it turns out so, I went to read this book again. "Oh, no wonder." At this time, you may blame yourself. "Why didn't you see it? Well, it's so stupid, when an idiot asks you, "Is this course studious? ", I think you can tell it that this course is too simple and can be learned by normal people!

Application Programming on the system is basically the same as solving problems in our daily life. I think about it in my head and write it on paper, store the calculated data in the memory, write the calculation in the external memory, store the data in the external memory, and return the data in the memory to the external memory for use, once and again, the problem is solved.

The programming in and under the system has not been learned yet, so I dare not comment on it.

Reference: http://blog.csdn.net/dahailinan/article/details/5699014



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.