Source: Nanshan Real-time communication on the definition and cultivation of master
Nanshan Instant Messaging believes that once the initial stage has been done, the above mentioned things, then a person is basically into the business, the next goal is very simple, to be a master in the selected direction. Master means professional, and in the era of infinite refinement of division of labor, Professional is the survival, development of the most important premise.
1 key to the definition and cultivation of master
I guess if you ask 100 people "What kind of programmer is a master." "There will be more than 100 answers," he answered. Because the same person may also give a different definition of the master.
Here we think that in a particular field can deal with the majority of people do not do things is the master. From such a definition, we will find that in the eyes of technical staff and sales staff, the connotation of the master is very big difference.
Pure technical staff more attention to performance can be mentioned extreme, concurrency can be handled very well, memory overflow bug can quickly fix, the mechanism of class library familiar unfamiliar and so on. In the eyes of the sales staff, there are more things to see outside the technology, such as the business process is not familiar with the use of good, can quickly correspond to changes, can be in the limited duration and budget to solve the task.
Considering that there is a very close relationship between the workplace and the product sales, we use the latter perspective rather than the purely technical perspective.
There are several types of people who are fundamentally different and are considered masters, such as: the ability to write very cow viruses
This does not give an example, but when I read the code of CIH, I was shocked by its ingenuity. In addition, perhaps encryption and decryption should be placed in this category. Can put a bunch of 3D graphics into 64K
There used to be a game to do this, 64K-size EXE can give you 10 minutes of cool 3D animation, the first time see absolutely will be shocked. Can quickly debug the problem
Memory leaks, multi-threaded synchronization issues such as these tend to be confusing for a long time, but it is someone who can quickly solve such problems. Can rely on a few people on the high-concurrency site
The new Web2.0 website, such as Flickr, can even include Google, in the early days are often a few people, these people do not have a reputation, but definitely a master. Can lead the development of a very good product
This can be thought of Unix and Linux authors and so on. Can host large-scale software design
This is often more commercially valuable, and what we often say about Martin Fowler should be counted in this category. A special cow who can study a language.
Think about the creators of each programming language and think about C + + 's Daniel. Of course, the creation of a language can also be categorized into this category. Can open up his own methodology.
For example, the CMMI Watts S. Humphrey can write very good books.
For example, the Windows platform is written with Windows core programming Jeffry Richard can write a very bull algorithm
For example: Donald Knuth
This table should also be able to add a lot longer, only to recognize this point of view of the real master can come out from all aspects.
In that regard, to be the master described above always need to learn, think, practice these links, there is nothing to say. But with software-related knowledge in fact a plethora, not like the novel martial arts cheats so scarce, almost can be said everywhere. This makes selection and concentration a challenge.
Three basic features of the software (fast technology change, low entry threshold, multi-internal division) like guillotine, once the choice of error, will be the personal effort to shred, a little value also can not be left. In contrast, it is the person's gold study time is actually not much---but after graduation 10 years or so of time.
Once someone wanted to be able to engage in the development of embedded software, so to buy their own arm board, his home spent a lot of time to learn and practice relevant knowledge, but eventually for other reasons into a network of companies. This person is equivalent to the internal division of the software more, and the ability of each other poor skills such a trait to cut a knife, was cut off not arm board, but more than a year of hard investment. It doesn't make much sense to emphasize that knowledge will be useful in the future because there are two more knives waiting: If you don't do this for three years, the knowledge you learned today may be changed, and as you get older, it may not be appropriate to compete with a large number of new people involved in the industry.
This kind of thing makes it complicated to become a master in the software industry.
In order to become a master this road smooth, in fact there are three key points: one is to have a global map, in order to choose the direction, and the second is to know that there are those pits, so that you can bypass it to avoid falling in. Three is to have enough enthusiasm and motivation, can insist on going. The following will be from these three aspects to explain how to become a master approach and approach, and this approach and method will be different because of the specific objectives and fine-tuning.