When you have a hammer that's in handy

Source: Internet
Author: User
Tags aop

    remember not to read the words, "when you have a good hammer, you think the world is a nail." All the things, all the problems, you try to use this hammer to solve. In many cases, often, this hammer does not solve the problem, or that there are better tools to solve the problem at hand. For example, it is more efficient and convenient to use a screwdriver to remove a nail from a wood.

    programming languages, such as C #, are the Hammers in our hands, and the thinking and thinking habits formed by this language are an invisible hammer in our minds. This is good and bad-the good thing is that we have at least one hammer, and the bad thing is that we often overlook other tools because of the handy hammer in hand.

    I once had a company in Guangzhou advising the manager of my department to apply AOP technology to the project at hand to address many of the things AOP excels at OOP, and the department manager told me, "What AOP can do, OOP can do, For example, you say the log record, in each need to record the place, add a function call on the AH, why use AOP to make things so complex.
    I have suggested that a skilled C programmer can try to understand C + +, and the answer is probably, "C + + can do it, c. objects in C + + can be modeled using structure and function pointers, and polymorphism can be modeled using a table based on function pointers." However, this skilled C programmer has never been so simulated. Does he really have the possibility to step into the threshold of an object-oriented world?
    I have suggested that a skilled C + + programmer try to understand a language like C # or Java, and the answer is probably, "C # and Java can do it, C + + can, and use C + + to have better control of the bottom layer, and more efficient. I asked him again, "since it is for more control and more efficiency, why not use the assembly or C directly." "He did not answer. In the future, he still uses MFC happy and inefficient to create a lot of seemingly run ineffective programs, he is still very satisfied and happy. And when he talked to others about C # and Java, "What are those things that I never use?" ”。

    If we can't put our hands down for a while that helps us a lot but limits many of our hammers, we will never be able to pick up other tools to solve problems more effectively, It is never possible to appreciate the subtlety of other tools (think methods). Just like the manager above, the understanding of AOP, in another 10 years, I am afraid, will still not be a little deeper.

We don't want to put down the handy hammer, it's probably because
(1) We have fallen in love with this hammer and have no interest in other tools.
A lot of words on the Internet war, like, C # and C + + which is good. Which of Java and. NET has a future. These warriors of the mouth, support. NET how much you know about the world of Java. Support C + + You know a lot about C #. We often shut ourselves in the bottom of the hole and look at the big piece of the sky, and then to see the world without judgment, but always have no courage to jump out of the well to understand the wider world we are unfamiliar with.
A true wise man is not in what programming languages and platforms he has mastered, but in his way of thinking and ways of thinking, in his open mind and his attitude of life. Kung Fu practice to the end, are practicing the internal strength, practice personal self-cultivation, the real master, flying leaves can hurt people.

(2) We have no time and no energy to learn new tools (new ways of thinking)
The reason for this is simply our laziness and our complacency.

Go out to study, and constantly come out of the well, and constantly learn to have a way out, who asked you to choose the professional programmer.

(2006.04.10 appendix) I am sorry, my words so many people misunderstood my meaning, my intention is not to learn a lot of programming languages, but to suggest that people from the current mode of thinking, thinking way out, to see the outside world. For example, you have been a process-oriented thinking, you can learn about OOP, AOP, you have been using static language work (such as C + +, C #), you can understand the dynamic language (such as Python), you have been engaged in C/s development, you can go to understand the B/ Get to know Linux and vice versa. Broadening our horizons, however, is helpful to our growth. Of course, the premise is that you have to settle down to study and experience (this is the essential quality of all the technicians), to know what is to be tasted and what needs to be investigated. Do not reject for no reason, dislike what technology, do not pursue what technology without reason.
In fact, I would like to emphasize this point: "Kung Fu Practice to the end, are practicing the internal strength, practice personal self-cultivation , the real master, flying leaves can hurt people." "The narrow-minded, the complacent, it is difficult to become a real master."

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.