I have seen a lot in the past two days. NET interview post. To be honest, I cannot answer any questions that involve details: Even if I know today, I will forget it tomorrow. In fact, I have handled all these problems in my work. because there are too many Computation Tasks, so I don't have to remember that. however, I can assure you that none of these problems can cause a slight obstacle to my work, because it is within the reach of my ability and understanding.
I personally think that, if I use questions for interviews, I can only judge the opposite party's right tools. (Yes, not only IDE is a tool, language, library, but also a tool) usage level, which seems to be irrelevant to the advanced/architecture. the key is at which level we work. the current work, whether it is a programmer or other, even if the sales of insurance, the amount of information processed far exceeds the previous; so more important than knowing specific information, how to quickly obtain and apply information. this only relies on conscious learning to understand others' ideas.
For example, the brother in the original article said: "the truth is very simple, because for a single run, it is likely to only use a very small number of types and objects in a program set, and most of them may not be used, at this time, the CLR dumb gives the entire Assembly Compile. Isn't the CLR dumb crazy"
This is a good method. it's just that the truth is not simple. We need to use second-and third-level knowledge to make them simple. for example, the usage of some toolbox and framework seems to be large, and there are still few redbooks on 700 pages. but to be honest, it is better to spend over 10 years studying and practicing more than a dozen redbooks than to learn how to design more rationally and collect the styles of programmers of different genres, exercise their experience in implementing and designing external interfaces.
After some gains from these divergence points, we will find that, in combination with modern IDE, sometimes some things don't even need to be looked at for help, and naturally they can be used very well. if you have doubts, write a small example to test it. in my experience, it won't take much time. I forget something (which is complicated). When I use it again, I usually don't need to write examples, it's almost the same as you can remember.
A lot of things have been mentioned. According to my previous saying, if this is set by others, you have to use it like this. I generally do not regard it as knowledge. for example, Lao Zhao's answer to one of the questions: Since Equals and = operators can both be overloaded, they are not sure. but if C # does not provide Operator overloading, the answer to this question is different.
The key is the idea, such as the Equals and =. you don't even know whether C # does not provide Operator overloading. In this case, the first thing you should think of is: Will I encounter Operator Overloading? I want to know this question. C # does not provide this function. it will naturally take five seconds to check the issue, because the webpage and snapshot do not need to be opened. Generally, you can see the fragments presented by the search engine at a glance. after checking, you will naturally know what to pay attention.
The last sentence above is open to discussion. it depends on whether you collect the information that may be caused by operator overloading. however, this information is not very detailed, but rather vague. there is a clue, you can check it again. more is the feeling: because there are fewer and unclear things in our minds, we need to strengthen our ability to find feelings. for example, if we encounter a problem that is caused by an operator overload of 10% or even 1%, we must be aware of this 1%.
Do not discard every possibility and ensure work efficiency. This technique is traversal: But the retrieved array must be sorted with priority; elements in this array, the answer is your question. how to sort data can only be determined by specific conditions. this belongs to the field of experience and can only be used to practice and hit the wall. however, I believe that remembering a large number of details and situations may still lead to mistakes due to these details. there is a brain that will think about problems, but it saves more time than a comprehensive memory.
Developed the habit of asking the correct question at the right time (the time consumed by this action must be within 0.1 seconds). The next step is to guess the author's intention. the key to this issue is that we have extensively observed how people solve problems in our lives. of course, since we are working on software components, we need to get samples from the programming field over the Internet: You know there are several possible ways they can be designed and can be quickly identified, naturally, you can use whatever you like.
In this place, the main task is to exercise Lenovo's abilities. we may have never seen a problem in a specific field, but it is likely to be similar to another field. of course, sometimes it is very likely that a little bit of similarity will lead to a very big difference in the problem solution set. What should we do? Next, we need to draw a higher level and continue to collect the rules of changes in the collections of solutions. This is actually a higher-order extraction.
The key assumption is that we want to have something similar to people, so our minds and thoughts are similar. even if they have different personalities, they can be divided into several categories at most. Finally, they correspond to several types of solutions. Basically, they have different ideas for the same problem. so the first thing is to find the feeling: What kind of person is the author of the framework/toolbox we are currently using? What kind of idea will it be like? Then look for the expected characteristics and verify the answer. The last thing we determine is probably a mixed style, but it doesn't matter. Let's take a look at the different subproblems under a big problem, what is his choice? Naturally, he knows how to mix different ideas and why. In various scenarios, we can quickly find the answer to the question.
For me, I am very concerned about the programming style of others. The more I enter a field, the more I care about keeping consistent with the style of the framework/toolbox I use. even if this style is highly resistant to my habits. because only you do as he does can you really think as he does. of course, for problems such as "C # whether to provide Operator Overloading", we should not only focus on the programming style, but also on the concept of language design. we usually care about these issues outside of our own field. We don't need to implement our own language, or gradually become familiar with the environment. for example, a language based on classes must provide a basket of features. This concept is required if there is anything in these baskets.
In a completely unfamiliar field, after training, we can control the Clone phase (Clone is the strength of the family) for about half a month. after this half a month, I love writing a program, so I can write it. But I'm afraid we are in the status, unless it's a very time-consuming habit, others would rather stay consistent with the Clone object than change it. one important thing to note here is: Maybe your problem is incompatible with the design and usage of the framework and Toolbox you are using, however, this third-party things can greatly increase your efficiency. At this time, you need to spend some time doing some Adpater for your brain and specific implementation.
I think the biggest advantage of this learning and progress method is that the same mental power has gained more things. The same time, in the "unknown" way, overwrite more content. I don't know what kind of demos I 've seen that show a texture 3D scene in 16 KB? In fact, the truth is similar, but if all 3D games are optimized, it will take a lot of time and effort. This is because, for scenes, textures, and other things, there are too many changes, one or several general rules cannot be summarized. the ways in which we humans do things can indeed be summarized: unless it is a mental illness, there are only a few ways to do the right for a person and a type of problem.
We need to see that the human feature is that the super frequency is easy, and the human CPU group is a programmable hardware, and it is much better than the current graphics card with similar features: we can optimize our CPU for a variety of problems and provide shortcuts, as if we can increase MMX/SSE/3 DNOW through programming !, And can be expanded without limit. but our memory is very limited, and our chassis is too hard: Of course, even if you open it, there may not be a memory slot. however, if you are an unforgettable guy, I should prompt you to click x in the upper-right corner at the beginning of the article. Now, I can only express my strong apologies to you and more jealousy.
In the end, you don't need to pay attention to it when you can't use any heavy load. You just need to know it and a bunch of brothers that may cause obstacles or help to you, at the same time, you may need to know where to get the secret to kill them or drive them. You may also need to know how to get the secret and how to use the secret's several spells. however, just like our software design principles, these capabilities can be reused on a large scale compared to specific problems.
This is like a quick copy when you are playing Starcraft or Warcraft (who understands this word? How do you get used to it ?) At the end of a game, most of the places on a map are still black. of course, if it was a mining event, we would be the owner of the heap troops, and the map would eventually be completely bright. however, it should be noted that when your organization is not located in a previous location, it is still covered by the fog of war. but it doesn't matter, as long as you will "explore the Road ". obviously, no matter how many skills he has mastered, he cannot win.
Of course, there are still many skills similar to "exploring the path". Here we just use it as a representative symbol. we need to note that, compared to a person who knows how to create a chimera or a big core, a guy who will "explore the road" in C & C often plays for a few days, if you have not remembered all kinds of data, you can get started with crazy food. don't talk to me about Grrrr or who remembers the data very well: after all, the details they need to deal with are limited, and it is not worthwhile to suffer in this respect; not in life and Software Component work. this is also a question about how to choose and exchange. The ability to handle this problem is the foundation.
Of course, not all problems can be solved by "exploring the path" or some other basic skills. identifying the category of a knowledge is another topic. I have not thought about this topic. This article is long enough. Let's discuss it later. in addition, if you think that what I said is useless, you can also look at what the real masters say (not the original words): In the Stroustrup interview and other people's speeches, do not focus on details, but on a higher level. when you really understand the problem and make the right decision and design, the details will naturally "Fall into place ".
Of course, I do not agree that everyone should adopt this method to improve their ability: if everyone is waiting to use it again, I am afraid that everyone will not be able to find anything, and finally the publishing house will be cheaper ^. well, this article is just a casual talk. in fact, we can write at least a 700-page Redbook on how to become a modern programmer. if anyone is interested in co-creation, or who is interested in making money in publishing, contact me, hey.
P.S. many of the capabilities in this article can be used in our daily lives, such as the experience of putting yourself in the ground and cloning others. first Clone the MM style (that is, simulate yourself as this MM). When you take action, you can more accurately predict the probability of her various reactions, so you can choose the correct method. of course, I don't like to talk about objects like this, especially those who talk about marriage. I can write a few articles about this topic, but I can't help it, lossy image .... =)