Today, such a paragraph suddenly appears in my mind (because it has been a long time and may be biased ):
"You just know what you can do with this but you don't know why and how.
You don't care if there are some other ways that can also manage it.
No mention that you care little about why other ways also can and which way is better ."
After thinking of this sentence, I thought of a reply that I saw after a blog a few days ago:
"In the present era, there are so many temptations, students are impetuous, and fast food education is the way of teaching today. Otherwise, training institutions near our school will not be so popular and the product of the Times ".
"Fast Food education is King", which makes me feel a chill. If he says it is true, there may be too many people in the IT industry that match the previous English description.
According to the previous paragraph, I divided it industry (technology) people into the following four categories:
1. Understand the solution to a general problem, but only know the solution and how it solves the problem;
2. You may know several solutions to common problems, and you may also know why and how;
3. Familiar with general problem solutions, know a variety of solutions, and have a certain understanding of why and how;
4. Be proficient in general problem solutions and their related why and how, and be able to solve non-General Problems Based on your own experience or creativity (such as inspiration) create a new solution.
It is self-evident that these four types of people represent a division of people in the current IT industry to some extent (of course, there may be small overlaps between the four types of people ). But here I want to simplify these four types of people, with coarse granularity divided into "Excellent programmers", "Excellent programmers", and "ordinary programmers ".
All things in the world have been developing, and so are the three groups. Ordinary programmers can be upgraded to excellent programmers through effective channels and personal efforts. Excellent programmers can be upgraded to excellent programmers after arduous experience. If outstanding programmers do not pay attention to keeping pace with the times and continuous reinforcement, they may be downgraded to excellent programmers or even common programmers.
It seems that this article is over. Otherwise. The conventional thinking is: Since we have all planned the direction of development, we can do our best to say so much nonsense. But more than once I saw and heard people say that personal development requires not only a hard-working spirit, but also a habit of looking up the road. It may end up like a worn-out donkey. Although it has been walking for a long time, it has been spinning around in that lap (at the beginning, the donkey was blindfolded, after a period of time, the cloth will be unlocked, and the donkey will pull and grind the cloth to the ground ). (My personal opinions are all my opinions. I have limited experience and may be biased or inappropriate. Please forgive me. If you think that my opinion is okay, please support it. If you think that I am a nonsense, I hope that you can continue reading the idea of "seeing what this person is talking about, ^ _ ^)
If you have a strong desire for success and a strong fighting spirit, everyone can face the computer for dozens or even twenty-four hours a day. But the key is whether we will gradually fall into the terrible ending of the "pulled donkey" in this process (here is just a metaphor, ^_^ ).
To avoid such a terrible ending, we have no choice but to "look up ". But how does one "Look up the path. I personally think that we must first understand the differences between "excellence" and "ordinary" (as for the excellent people, they belong to the intermediate groups with both characteristics, so we will not discuss them ).
Generally speaking, we naturally think of these words as "experienced", "skilled", "practical and hardworking", "efficient", "Planned", "Passionate", "confident but not confident. arrogant "," willing to share "," good at learning "...
When it comes to common users, what we think of is the words "ordinary and unremarkable", "Pass and pass", "lack of enthusiasm", "no clear planning", "low efficiency", and "low-handed "...
Some people may start to feel emotional, but I tell you the fact that any progress and any qualitative change have a premise: face up to your weaknesses and defects (of course, no one is perfect, the superior cannot have all the advantages above, while the ordinary may also have some advantages of the outstanding, such as hard work, planning, and passion ).
One of the characteristics of a superior is "rich experience", which is derived from his long-term experience and accumulation. This is not possible for ordinary people in the short term.
The second characteristic of outstanding talents is "technical talents", which depends on the definition of the ox. Generally speaking, it refers to having deep accomplishments in one or several aspects, that is to say, they have studied in this direction or in some areas. When faced with problems in this field, he can quickly provide the correct solution and constantly improve it to deal with different problem scenarios. Some problems won't be unable to solve even if they cannot find the solution at the moment, based on your technical accumulation, we will gradually break down and finally form a solution. After solving the problem, we will "materialized" the thoughts in this process into new experiences and add them to our own experience library. I think there is no doubt that ordinary people are very lacking in this regard. When a common person encounters a problem, the most urgent thing is to think about how to solve it and solve it, this also has a lot to do with the lack of accumulation of ordinary people, and some ordinary people, no matter what problems they encounter, first think of Baidu, Google or forum, then the most skillful copy + paste code, and generally does not take a serious look at whether the code is really suitable for this scenario or how the code solves the problem. After the problem is solved, a small number of people will archive the code they found into their own code libraries, and a small number of people will summarize the experience gained in solving the problem.
Some of them are willing to spend time studying the millions of codes to understand the Linux operating system; some people refer to numerous papers (including many foreign papers) and numerous labs to understand the technical details at the bottom layer. Some may analyze them layer by layer for a small bug that is "irrelevant, it may eventually be a vulnerability in the operating system or a bug in a third-party library. Some of the common users refer to "21 days proficient in Java" (I don't want to give more examples in the 21 days series, as you know ...) books such as "teach you PHP in one week" and "how to earn tens of thousands of monthly salary" are regarded as the Bible. Of course, there are more people who think that it majors are similar to other industries (such as masons) in the same way, you can use short-term training to get an immediate job and get a high salary immediately. Some people may be interested in Linux exceptions, but several others have read the Linux kernel source code. (Of course, I don't mean that everyone is going to read it, nor that everyone can become an excellent reader, it involves many factors, such as interest, energy, understanding, and technical foundation ). How many of them have studied the original English paper? However, many of the average won't consider performance, resource consumption, system scalability, and other factors after they get a solution to the problem. Excellent web developers not only consider the compatibility of web pages in various browsers, you may also consider terminal device factors (such as QQ on a general PC and web QQ on an Android phone ). However, it is good for common web developers to consider compatibility with mainstream browsers such as ff and IE. Some people have not even considered character encoding (my personal experience is true, that time, an insurance company called Taikang Insurance said that I had obtained a one-year insurance service for their company's Free Public Transit Subway, saying that it was engaged in activities with mobile phones and extracted one hundred users whose mobile phone tail number starts with xxx; then I went to the Internet and checked this company. Baidu encyclopedia found that there was a real website. It has been nearly 20 years since its establishment. Then I clicked on their official website, find the item according to the instructions of the former clerk. The Chinese characters of the user name and password are garbled and the page is immediately closed when there are several small blocks ). How many common web developers consider whether Web pages comply with W3C standards when designing web pages? How many common people are aware of the importance of code refactoring? Have they carefully studied this typical book, such as "the art of code modification" (since the classic has its value for study )? In your opinion, the encoding is copy + paste, which never depends on how other people's code is implemented, let alone making their own wheels. refactoring seems indeed far away.
The four "efficient" Characteristics of outstanding users are reflected in the priority-based sorting of the transactions they are going to process and the appropriate tasks they have set for themselves. You can develop your own plans based on your personal characteristics (for example, some people do jobs that require high mental power in the morning, while others do in the afternoon, can complete tasks by quality and quantity. Although it may take some time for excellent people to sort out their own transactions on a regular basis, it is worthwhile compared to the benefits. A considerable number of common users are insufficient in this regard. In the case of regular transactions, the transactions will be passed out again and again on the pretext of being "too troublesome". In fact, it will become more and more troublesome if they are not sorted out. I have to mention that ordinary people often waste their time opening one or more webpages. Here I see a funny video and click it to see it. There I see a classic leiwen and open it; there is also an article "50 pieces of advice that you have to watch in your life, do not regret it". Of course, you must read it. Time passes through without knowing it (in fact, I am also one of the victims, so now I am very disgusted with the title of the "awesome" Article ).
5. "planning": planning your own career and planning your own life. Career development is an economic source. Life planning aims to make yourself more fun and promote career development (good mood and optimistic attitude should promote career development ). Excellent people actively practice after planning their own career or life. The average person either has no plans at all, nine to five every day, or is planning what should be done after receiving the salary, or is struggling with the salary so little? What are the plans, no interest! (Of course, a small number of ordinary people have plans, because they cannot be the ones who excel at the beginning. They also walk from ordinary people. I am talking about most of the situations, because of the few excellent people after all) and a small number of ordinary people with planning, or they cannot stick to it, making the planning a piece of paper. Or, after a period of implementation based on planning, they often have self-conflict and tangle. For example, in order to let Michael have a stronger and healthier body to face the "revolutionary business", Michael asked herself to go to bed before every day (unless otherwise specified ), however, one night he spent a long time playing the landlords. One of the tasks originally scheduled for-was not completed. At this time, he may choose to go to bed directly and may stay up late to complete the task, of course, there is another possibility that the "Landlords" will not be able to finish playing, but it will take another half an hour from. In either case, he has deviated from his plan (many plans are organized according to a certain logic), as long as he continues to develop like this, planning will gradually become a joke for him.
Six of the unique characteristics of the outstanding talents are "Passionate". They are able to waste themselves for a project (of course, I don't recommend this, but it just shows the passion of the outstanding ones). There is no lack of such examples in this industry, many of today's global applications come from this, such as Facebook, Flickr, Plants vs zombie, and Linux (the original prototype developed by Linux torvard during the students, which everyone understands today. Of course, you will say that he is a genius, maybe, but even if he has 145 IQ and you have 135 IQ, the gap between them is not very big ). While some of the common students have mixed ideas when they are doing projects in College (the old man said that his only achievement in college is "mixed"). Why? How can we turn our ideas into great inventions?
The seven characteristics of outstanding people are "self-confidence but not arrogant", "high-profile work, low-profile people", and their consistent principles. In the face of any new question, no matter whether the scene is familiar or completely unfamiliar, they are confident enough to face it because they are confident. After reading a related entry-level book, the average person thinks that the technology has been mastered in, and then is full of embarrassment. The Typical Embodiment of this is the lack of some basic coding literacy, common sense, and Forum etiquette. For example, some people may write hundreds of lines of code without a comment, and proudly say, "Look at how simple this code is ". Some people name all the variables x1, x2, x3. because all the reference books he came into contact with do this (the 21-day series ). Some people (mainly beginners) Think That debugging is not important at all. They write a lot of code with a mess of errors and hundreds of errors, and then leave it online, saying, "The main logic has been implemented, there are also some minor bugs. Please help solve them. "In fact, debugging code is much harder than writing code. Some people even say that" Dummies know how to write code ". This is also true. What we say every day is actually a kind of code (who can say no ?), However, they are too loose and lack the necessary logical organization, so I call them "undebugged Code". Think about the basic listening, speaking, and reading/writing skills of people who have received primary education, that is to say, they all write code, but "debugging code" is not something everyone can or is good. Of course, there are still people who need to improve their Forum etiquette, post and ask questions, and if others are not satisfied with their answers, you can either say that others don't know and don't talk about it here (in fact, others can take time to read your questions and put forward their own ideas, and you should thank others whether you are right or wrong ), or ten days and a half months after the post is posted, you will not be able to deal with it (a manifestation of serious disrespect for others, and people who do not respect others cannot expect others to respect it ), it is even more common to share scores in disorder.
The unique characteristics of outstanding users are "sharing". They are willing to share some practical things they have learned in their work (excluding trade secrets, of course) with others and have their own personal technical blogs, have the habit of writing blogs or posting replies. The average user does not need to talk about it. A considerable number of users only read posts without replying to them and seldom post any blogs. A tight schedule is the most common term.
9. the unique characteristics of the superior are "good at learning", "The mountains can become high without words, and the sea can become deep without words", and "the stones of other mountains can attack the jade ", learn from it and internalize it into your own things. They know exactly when to use the existing "Wheel" and when to create a new "Wheel ". It is like a racing car. If the engine is upgraded, the horsepower will become stronger. If the original tires are still used, it will obviously not work. New tires must be matched.
Having said so much, we have not yet mentioned the most critical point. Ordinary people still have the biggest fatal defect-impetuous. As the old man said above, he is also an impetuous man in the Age of "impetuous" and "fast food education. "If you want excellence, you must be calm ". This is one of the many mistakes in my life.
Some common students learn programming languages purely by syntax, while others learn the APIs that have been learning how to apply the programming language. What are the drawbacks? For example. Ajax was initially implemented by original ecological JS, and a series of operations were performed through XMLHttpRequest and so on. Jquery is now popular, and jquery supports Ajax very well. The provided API makes Ajax implementation very simple, as shown below:
$('#submit').click(function(){
var name = $('.uname').val();
var data = 'uname='+name;
$.ajax({
type:"POST",
url:"welcome.jsp",
data:data,
success: function(html) {
$('#message').html(html);
}
}); return false;
});
It is very easy to submit Ajax requests either through post or get, and if the request is successful, the returned information is assigned to the HTML parameter, HTML parameters can be easily used to implement functions such as automatic completion and Ajax verification. The Ajax implementation provided by jquery is so simple, if jquery provides more simplified Ajax implementation someday, we will always be just followers (of course I am not advocating the use of APIS, good APIs can improve our efficiency ). If you have a deep understanding of the principles of Ajax, you may be able to write a JS extension library that supports better than jquery, and you will no longer be a follower. In addition, some jquery plug-ins (of course most developers are foreigners) are also very powerful, and their effects are cool and cool, but do you just use it on your website because it is cool or dazzling? There are a variety of problems reported on the problem feedback pages of all jquery plug-in projects. Do you understand these questions? In the future, your website may suffer from attacks due to a defect or vulnerability of this plug-in, causing economic losses. Have you considered this? Many people learn C ++ and think that C ++ is a programming language (my opinion is that programming languages are not good or bad, and the user level is high or low ), none of the above (just like the saying "there are only two ways in the world: the Oracle method and the wrong method "). When you use poor code to write an application for a common user, the user's system has been faulty since then, should you be responsible for this (I think every developer should always remember the four words of professional ethics )? It doesn't matter how many times C ++ primer and C ++ programming language have been learned, it is important that you can use C ++ to write efficient and secure programs. I remember one of my teachers said, "write programs to take advantage of what you already know ." When you have mastered enough to complete the task, you 'd better not try something new that you are unfamiliar with (as mentioned by the author in the C ++ programming language ).
Another common phenomenon is that if a common developer is always "copy + paste" in his daily development work, when the system he or she develops has a problem, his countermeasure is to try other solutions on the Internet one by one until they are solved. But is the problem solved? He does not know, others do not know, because the system is developed and maintained by him. For example, if you have a pair of slippers on either side, you can wear them on the other side. You can wear them on the other side, on the other side, on the right side, and on the right side, on the other side. But don't you feel awkward? Therefore, if your development model is always copy + paste, you cannot imagine how difficult DBAs are exploring to cope with performance bottlenecks, it cannot be understood why architects emphasize the importance of architecture design, so you will never be able to support excellent DBAs or architects.
Finally, I had to mention the "follow-up Phenomenon" of ordinary people. This year, the Android app went viral to learn about Android. Next year, MTK has a bright Development Prospect and is now fighting for MTK, it is also called "this is called in (or keep pace with the times)". At the end of the door, I understand a little bit, and no one is proficient. Human resources are limited. It is unrealistic to study deeply in every aspect. New technologies can be involved, but they must have their own core development directions. This article is about to end. Finally, I hope everyone can become an excellent developer and make China the world's top it power. ^_^.