The authentic and wild path of technology author: Zhang Tielei Published: 2016-10-24 10:19 read: 50,045 recommendations: 200 original link [favorites]
Yellow Shirt women's martial arts and Zhou Zhijo seems to be all the way, erratic and dynamic, change incompetence Allende, but the hands and feet are positive and not evil, such as said Zhou Zhijo resembles ghosts, the yellow shirt is a state quasi-immortal.
This paragraph is written by the 38th back of the Dragon Slayer.
"Nine Yin God grasp" This is "nine yin Canon" in the superior martial arts, but the original Mesucheng couple because of the "nine Yin Canon" incomplete, learn not inside the internal strength heart, just put this door superior martial arts practice to astray on, then became "Nine yin Bones claw." Zhou Zhijo for the quick, but also trained the evil work.
But the yellow shirt is born in the martial arts (legend is the young and Dragon female descendants), natural cultivation is the authentic "nine yin Canon." Although the martial arts and Zhou Zhijo are the same vein, but more "alcohol really deep", and naturally better. This is a typical case of Jin Yong's martial arts "authentic" martial arts better than "Wild path".
So, does this mean that "authentic" must be stronger than "wild way"?
Wait!
Like Jin Yong Martial arts friends, but also remember the "more women sword" in the Ching?
Ching is a shepherd girl, but in sheep when the encounter a will make bamboo stick white ape. In the play with the white ape, she simply realized the superb sword, can be a person of the force of the enemy 2000 more armor!
Is such a wild way out of the weak woman, even according to the vast number of Jin Yong Fan's conservative estimate, she can also be in the entire Jin Yong martial arts atlas at least the top five!
Doing technology is like practicing a kung fu.
The technical cattle around me (cattle not to a certain degree of first not counted), they have a famous university computer science graduate, there are halfway decent to turn over.
But they all have a common feature: they have a problem, think for a moment, can always hit the point, in the expression is often a language. This also includes programmers who are usually not talkative. In view of the "more general" programmers (many of them graduated from the university), they often find it difficult to grasp the nature of the problem and to express it is always impossible to say.
Can be seen, "authentic" or "Wild Way", not in the background.
Writing here, I finally took a breath. I came from a very ordinary peasant family, not scholarly family, nor a family of craftsmen. I remember in the first year of college computer programming class, I found that I did not use the keyboard to type. Compared to those junior high school to the computer to play a very slip of the classmate, I calculate the path?
Well, that "authentic" or "Wild Way", not born in what?
Is the way of learning and thinking.
According to my observation, the technology of cattle people's learning methods and ways of thinking, broadly similar.
The way of thinking is a hard-to-tell thing. Therefore, we focus on the discussion of learning methods.
In the face of a new technology, how can we learn in order to be gradual and ultimately understand deeply?
Let us first list the data available for self-study and analyze:
- Tutorial (Getting Started tutorial). Provided by the official website of the technology. It's usually in English. This information is for the first contact with the technology of the people to see, generally, step-by-step to teach you to complete some examples. When we say that a technology is not very friendly to novices, it is generally because the tutorial part of the technology is not doing well enough.
- Specification, referred to as spec. This is something that concentrates on the design ideas of the technology and is a highly abstract description. This is generally a complete, systematic description, including all aspects of the technology involved. This information is different in different places, it may not be in a relatively simple technical project, in other cases, this part of the information is mixed in other documents; It may also appear as a paper (paper).
- API Reference. Chatty's API index and documentation may provide multiple copies for different language interfaces. When we use this technology to program, API reference is a natural, and always need to constantly query a data.
- Technical blogs written by others. Quality is mixed, in the end there is no value, we have to learn to distinguish.
- Technical books. Similar to technical blogs, quality is good and bad. We'll put together a technical blog to analyze it later.
- Source Code. If the technology we want to learn is open source, then fortunately, we can get the source code. This is a final piece of information.
To get these concepts right, I'll give you a few more examples.
Java language
People who have never touched the Java language, want to start learning Java, where to start? You can start with Oracle's official tutorial:
- http://docs.oracle.com/javase/tutorial/
This document, the Java? tutorials, which embodies the characteristics of tutorial types of data. It starts with the initial compilation and run environment, teaches you to write the first Hello World, and then introduces the Java various language features (variables, classes, generics, lambda expressions, JavaBeans, and so on), as well as for the JDK Common API (collection class , multi-threading, Io, and so on).
For beginners, this is the kind of information that is needed. Even if you don't have any Java starter books on hand, after reading such a piece of information, a novice can basically start programming with Java.
Look again Spec:
- Http://docs.oracle.com/javase/specs/jls/se8/html/index.html
This document, called the Java? Language specification ". is a very typical spec, complete and normative.
Any information about Java syntax, including various books and the aforementioned tutorial, can only be part of the story. And this spec, if you can read through, then the Java language features related to everything, you can no longer ask for.
API Reference for JDK 8:
- Http://docs.oracle.com/javase/8/docs/api/index.html
In the Java language programming, we need to constantly check the API Reference. We usually use the IDE to quickly see the documentation for an interface.
Android Development
Android for novice tutorial type of data, official online is called training:
- Https://developer.android.com/training/index.html
This information is typical of tutorial. It teaches you to make your first Android App and teach step-by-stage on several topics.
The following information is known on the Android website: API Guides.
- Https://developer.android.com/guide/index.html
It is actually a document between tutorial and spec. It has a lot of spec features, such as it introduces the concept of an abstract four-component in Android, introduces the abstraction of resource size (DP), introduces the view layer principle, and so on. However, compared to the Java spec as seen earlier, it is not so formal, and the description is more casual, estimates are not complete (but related to the vast majority of Android technology).
When we have doubts about a specific technology in Android, or if there is an argument, we need to flip through the document. Therefore, it can basically be classified into spec type.
Then the Android SDK API Reference:
- Https://developer.android.com/reference/packages.html
The API reference quality is not high, the description is too brief, or even vague, and its readability with the previously mentioned JDK 8 API reference completely not at one level. This is also a common problem of some open source projects, do not attach importance to interface documentation.
iOS development
Apple's documentation for iOS development is quite rich, and this is where the closed source system is doing well.
iOS developed documents, it is difficult to distinguish between the tutorial and spec of the two levels. It consists of many documents, each of which describes one aspect of the system. Usually in a document, both the teaching part and the fully described part.
For a complete beginner, the following document is really a tutorial:
- Start developing IOS Apps (Swift) (https://developer.apple.com/library/ios/referencelibrary/GettingStarted/ developiosappsswift/index.html)
Other documents are also between tutorial and spec, more biased toward spec. Like what:
- APP Programming Guide for IOS (https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/ iphoneosprogrammingguide/introduction/introduction.html)
- View Controller Programming Guide for IOS (https://developer.apple.com/library/ios/featuredarticles/ viewcontrollerpgforiphoneos/index.html)
- View Programming Guide for IOS (https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ viewpg_iphoneos/introduction/introduction.html)
- Core Animation Programming Guide (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ coreanimation_guide/introduction/introduction.html)
- Concurrency Programming Guide (https://developer.apple.com/library/ios/documentation/General/Conceptual/ concurrencyprogrammingguide/introduction/introduction.html)
Then the iOS API Reference:
- https://developer.apple.com/reference/
As mentioned earlier, this API reference is very readable and much stronger than the Android SDK. A lot of relevant concepts, in this API reference description, are reflected.
Of course, in addition to developer.apple.com, iOS documents can also be taken from Xcode.
Redis
The tutorial of Redis is the best tutorial I've ever seen, and it's very friendly to beginners, not only to read, but also to execute.
Examples of Redis spec:
- Redis Protocol Specification (HTTP://REDIS.IO/TOPICS/PROTOCOL)
- Redis Cluster Specification (HTTP://REDIS.IO/TOPICS/CLUSTER-SPEC)
- Redis RDB Dump File Format (Https://github.com/sripathikrishnan/redis-rdb-tools/wiki/Redis-RDB-Dump-File-Format)
Redis's Commands Reference:
Tcp/http
The network protocol is different from the previous one, it is not an implementation, but a standard.
The spec documentation for the network protocols is obvious, which is their corresponding RFC. If your work often involves the use of a network protocol, I'm afraid I need to go through the RFC to read it all over again.
Let's take a look at technical blogs and technical books.
Now the technical articles on the internet have never been prosperous, so I can't read them. Hu Feng in his public number "wink", sent an article "technical dry matter of selectivity," discussed is the technical staff in the current situation of the explosion of technology and how to choose the problem.
Here, let's discuss the problem from another angle. If a technical article is merely a retelling of the official document (tutorial or spec) of the technology involved, it is not worth much, even if it is just a translation. In other words, if we can learn the same thing by reading the official documents, why should we read the technical articles you wrote? Official documents are naturally more authoritative and read directly to ensure that important things are not overlooked.
What kind of technical article is worth it? Probably say (not necessarily so accurate), those who contain the practical experience, can synthesize each technical point to produce the thought, thus gives the person to inspire. In simple terms, there is depth.
Of course, technical books are generally the same.
Let's go back and look at the hierarchical structure between the various learning materials.
Whenever we come into contact with a new technology, we have to classify the information at hand according to a similar pyramid structure. If we read a few technical blogs and technical books, it is also clear to know which parts of the pyramid are involved.
At the beginning, generally after reading tutorial, you can basically get started with some development work. Then, while developing, consult the API Reference. Note that from this point on, your boss will start paying you because your work has been able to produce results.
However, after a period of work, we find that it seems that the technical cows around us are learning things faster, and in a very short period of time they can have a deep understanding of a new technology. What is this for?
This is not because technical people read the technical information read fast, but they know to read the correct information, which will soon reach the higher level of the knowledge pyramid.
I have seen a lot of technical cattle, they do not have a technology at least to understand the level of the spec, they do not dare to write code. Others, on the other hand, freely copy the code from the Web and use it in the event that they do not fully understand. Technical bulls Of course also refer to the code on the Internet, but they usually make sure that each part of it can be placed in a part of the knowledge pyramid, and they do not allow the emergence of knowledge silos that do not belong to any system.
We can now conclude that the "wild path" of technology, in fact, the knowledge structure of the incomplete and not a system caused by a state. It is only when you break through the barriers of the knowledge pyramid that the boss begins to pay you a high price.
Our brains are like memory.
Since it is memory, it cannot contain all knowledge. But we should be able to put down the index of knowledge, otherwise we will not be able to work.
So here's a selective question: which part of the knowledge do we choose to load into "memory"?
Obviously, priority should be given to choosing the most important information that is most useful to us.
For those core technologies, we should:
- Read through spec. After reading it is no longer confused.
- Important part of the API reference to read through. It contains a lot of information about implementation.
- You may also need to read source Code if you need to work. Especially for the usual use of the SDK, do not necessarily read the source from beginning to end, so the workload is too large and inefficient, but must be set up your development environment to a click on a call method can jump into the source code implementation . Only in this way, you can use the usual development time, at any time with the point of the past to see the source code.
For the remainder of the 80% of the knowledge, you should at least understand the spec hierarchy. Only in this way can we use it with ease.
Read through the important spec, in many cases, in fact, it is very difficult. It takes perseverance, and a little bit of English Foundation.
According to the example mentioned earlier in this article, who did Java read the Java Spec? Do android people who put developer.android.com on the API guides can read it down? And the people who do iOS, developer.apple.com on the various programming Guide to read a complete number of? For frequently-invoked SDKs, will you plan to read through the important parts of API reference?
Is it possible not to be a technical bull if you can do this?
At the end of the article, the total feeling still has some meaning, the mind seems to have some things still not expressed, and not sure the study described in this article is applicable to every reader. It is no wonder that learning is a complex problem, and everyone is not exactly the same routine.
However, regardless of the method described in this article is "authentic" way, or belong to the "wild path", I want to emphasize here is very clear, that is: to the knowledge of the structure of the system, to let the mind of the knowledge level clear, for this, we need to read the right things, need to practice constantly, need to overcome all kinds of difficulties
There's no shortcut to growth. What is needed is a solid breakthrough.
The authentic and wild path of technology