Reproduced hereafter from http://www.cnblogs.com/ajianbeyourself/p/4189449.html, the copyright belongs to the original author.
Add by Zhj: attitude towards people, attitude towards work and problem, technical ability, I think this is the core competence of the person who makes the technology.
Attitude towards people: the skill level of the people in the team is uneven, the character and so on are different. This requires us to have an inclusive heart, to be kind to people, not
Look down on others, even if their ability is very strong, everyone has a weak time, even if very good people are step by step up, no one born on the good.
If a person is not easy to get along with, then no matter how strong his ability, others do not want to cooperate with his colleagues, alone learning without friends, and lonely and know, and finally this person
It is impossible to do anything, and this kind of people not only work, life is not happy. So, this kind of person should adjust themselves, friendly to people, others just
will be friendly to you. A good working atmosphere is a prerequisite for efficient work and pleasant work.
attitude to work and problems: The problem here is that other people ask questions, when others want you to solve the problem, should not be directly rejected, to ask the question of people
Discuss what the hidden demand behind the problem is, whether the demand is real or not, and if you want to make a clear decision to resolve it or reject it. For example, the product manager has proposed a new
Functional requirements, this requirement is very complex to implement, should not be rejected directly, but should be discussed with the product manager what the requirements behind this feature are, why there is such
Needs, if the demand is very practical, then we should find a way to solve it. Demand is certainly constantly increasing, which also shows that the product has a certain vitality, if one day no longer
Adding new features means that the product's life cycle is almost over. Do not criticize others because they feel that the demand is very weak, especially the product
Demand, because many times, it is just your own feeling, you do not have a decisive grasp to prove that the demand is not feasible, perhaps his needs are in line with the implementation, can
Do not always have to accept the market test, if you think it is not possible, it can light up their own ideas, and discuss with each other, and should not criticize the other idiot retarded.
No one wants to be criticized, can discuss with others, but should not quarrel with others, make the relationship worse.
Technical ability: A person's technical ability depends on two points: self-study ability + interpersonal relationship. To these two points, I have deep experience, the Internet industry is developing rapidly, new technology
With each passing day, this requires you to have continuous learning and relatively strong self-study ability, which is indeed a higher requirement for people, and therefore, to do Internet software engineer
Very tired, for like my university and graduate students do not read the computer is more tired to die, on the one hand to learn basic computer knowledge such as Linux operating system,
Software engineering, design patterns, and, on the other hand, learning new technologies such as NoSQL, website architecture, etc. I also have a deep understanding of interpersonal relationships, and after I work,
Many things are learned from others, such as the first job, many problems are learned from the master, the second job, Firebug, HTTP, restful,
Django, Django-restframework, MySQL, Redis, Uwsgi, Nginx, postman, database search engine, high availability in the site architecture, high scalability
These things are heard from colleagues and friends, and then slowly familiar with themselves, it can be said that those colleagues brought me into the door. Now, I rely mainly on these things
Eat. Good interpersonal relationships can broaden their own vision, improve their level, to provide more opportunities for themselves, very conducive to their own development.
Here is the answer to the question, see the original http://www.zhihu.com/question/27180582
Yiu Dong, recruiting audio-video-related algorithmic engineer
Learning ability, especially self-study ability, when you see those well-known program experts in the Forum asked "study XX what to read, how to learn xxx quickly, learn what XXX code recommended" And so on, they want to learn what quickly can find relevant information. The industry is developing too fast and technology is being phased out quickly, and 3 years of not learning new things may be outdated.
Hands-on ability, are reading to read information, when others are still struggling to read what the book, still in the tangled book of what the meaning of the words, some people's hundreds of thousands of lines of code have been able to run.
Patience and perseverance, it is important to do programmer interest, write your favorite code that is quite enjoyable thing, but the program development in any case there are a lot of boring things, to be able to persist, teeth to finish these.
The ability to express, can in public, the logic of their own ideas clear and smooth to speak out, let people understand.
What about technology? Technology is not important, with the above several capabilities, the market needs what technology, will soon be able to master.
The last thing to say about wages, remember two words:
Salary is not the boss's reward for your past contribution, but the expectation of your future contribution.
The incumbent boss can not give you a satisfactory salary, the next boss will.
Junyan, Data Control/historical control/textual control
Yiu Dong answer very well, I incompatible to say a few words.
We all know that learning ability is very important, then learning ability from where, in addition to reading class this, how to learn to grow in practice work?
I have previously said a general concept of Weibo, what is ability? Attitude towards the problem, and the thinking and method of dealing with the problem.
First, attitude.
Your server occasionally out of 501 errors, perhaps not a high proportion (know also appeared many times), many programmers, yes, many, pretend to see, do not care, or blame character problem. This is the question of attitude.
In the future, high load or other reasons, suddenly frequent 501 errors, not to pursue deep reasons, but to find various excuses, what IDC service provider is not good, the server brand is not good, the operating system is bad, the database is not good, the network is not good, the Web server is bad, even, directly to Boss said we were DDOS! (encountered, help his Boss to find a number of security experts consultation, finally found that it is not DDOS, is the programmer sucks. )
This is the attitude, shocking, if you can be sensitive to the problem, you can know that any small, slight problems have enough sensitivity, you have a rapid growth of the foundation. The sensitivity to the problem is very important. Many performance or program logic non-fatal bugs, when not sensitive enough to be found, but once into the special scene will suddenly explode, you a little more sensitivity, will reduce the risk of this crisis.
The second attitude is to solve the problem of attitude, some people have confidence in their own solutions, think foolproof, but some will stay a long way back; Just like you said I server to do security reinforcement, must do right, to be as rigorous and thoughtful as possible, but your database to save the password is not also encrypted? And to a random salt, is not to prevent in case there is still a loophole in the library what to do. The program is the same, some previously written server daemon, there are bugs, will be inexplicably terminated, this bug of course to locate, to repair, but at the same time, write a cron check this daemon state, once encountered the termination to give automatic recovery, this is the second hand preparation, even if you do not want him to execute, This preparation is still to be done. To do both hands and even three hands to prepare, is also a good programmer, the key quality of architects.
The third attitude is based on the attitude of communication and understanding, product or operation to raise an unreliable demand, a sentence to play back of course very cool and awe, but there is no careful communication analysis, the demand based on how the actual demands, the actual claim there is no more reasonable way to achieve, a word "This can not be done, this realization costs too high" , is not the correct communication attitude, moreover, the best product, often is to achieve those who originally thought that cannot realize the request.
This attitude, there is a continuous improvement of the basis, the following ideas and methods.
Good programmers and mediocre programmers, if only to see the speed of the beat code, I think it is not out, maybe everyone can write a lot of lines a day, but after encountering problems, mediocre programmer's resolution efficiency, compared to good programmers will be a difference. The so-called solution efficiency, is not only the analysis of the bug, positioning, and thinking.
The most basic one, look at the execution of logs, look at various logs, Web server logs, database logs, slow query log, binlog log, PHP error log, and so on, and so on, the problem of the line to guess the days are not looking at many. Look at the log is not carefully incomplete is also a lot of people, you can go to serious research log has surpassed many.
Second, the module test and breakpoint analysis, the programmer a bad habit is to write a very big piece of code and then execute, do not know a module to write a module to test, the implementation of the problem does not know set breakpoints, narrow the scope of stepwise analysis. Breakpoint analysis is very simple, the entire code to plug in a few intermediate output, to see which part of the problem, or to observe the system overhead of each link, error-Free and performance optimization is very important, the experts probably think this is ABC thing, but this thing I see most of the programmers do not have this habit.
Third, the error message understanding and search, the search engine has a variety of technical information and technical questions, you encounter error messages and error hints, usually can be found on the Internet, of course, after the search to combine your scene seriously thinking, and understand thoroughly, rather than tiger to deal with, Otherwise it may be good luck on the right, next time bad luck and do not know how to go.
Fourth, continue to summarize, to a problem, a class of problems, and different types of problems, good at summing up, constantly reflect on their own problems, even if the code is not out of the bug, you go through a period of time to look back, there are a lot of thinking is not correct unreasonable place, there are many optimization points, if you think your code has always , there is no flaw, you must be in situ, no progress.
About the summary, I say a case
Before we have a system, the request is very large, the load is very high, there is a good technical manager to deal with, he listed a few upgrade plans, are very reliable, to carry out, the effect is very good, and then we follow up the report when he says, did a few upgrades, the overall effect, and I criticized him.
What did I criticize? He's doing it together. The effect of the upgrade, then the observation together, then in these scenarios, the actual effect of each scenario, how much help for ascension, he does not have any data. Therefore, he has no concept of the value and importance of the specific upgrade plan. You solve the problem correctly, but not seriously to summarize, your harvest is limited. Upgrading together can not be said to be wrong, but the effectiveness of evaluation needs to do alone, and this data is very valuable, knowledge accumulation, not you have to deal with there must be accumulation, but collated.
That's about it.
And then I repeat it again.
What is ability?
A problem-faced attitude
The thinking and method of dealing with the problem
That's the power.
Reprint: What is the core competitiveness of programmers