How to become a fast hardware programmer

What is the difference between a programmer and a fast hardware is not fast hardware programmers in the end what is it? Understand algorithms and more Niubi it? Understand API multi Niubi it? Tool or know many opportunities Niubi it? In fact, fast hardware can not be defined by these simple indicators. We feel that a person Niubi, often referred to as the man to understand something very much. But to understand many things and written procedures stupid, then, or can not handle a problem for a long time, we will begin to doubt our judgment. That in the end what is Niubi it? In fact, this is different from a sucker like smart - intuition quasi! Intuition half from giving top priority to extrapolate from that a half, and when you have a time that you apparently because these issues are touched, touched only problem with the Society of knowledge is not the same for a lot of problems, you have to solve they. How can we come across and solve a lot of problems? The only way is to get through that big period of time, usually more than two decades. You just clever, can learn a lot of things, but due to lack of practice time, is still inadequate has become a fast hardware programmer. So fast hardware itself is not a thing can crash, it is the accumulation of knowledge and experience and proficiency is to use your knowledge and experience. Above when it comes to change fast hardware must first spend so much time. Is that so much time sucker light brush ACM those topics can become Niubi it? You can brush half a year, a decade brush it? Obviously brush ACM topic can only make you become the rookie from sucker, behind still have a long way to go. The article gives us an important conclusion is that when you take advantage of this great period of time to practice, give yourself every time but it is hard enough just to make out the subject to do. Wait until you put this subject to do it, you will feel a lot of problems will be easy, and this time you repeat them solve only get a small workout, so you have to find their own more difficult problem, but it is a hard enough just to made out of topic. Of course, to find a good topic is not so easy, anyway, when I was younger are not worth the time, so you try to do several topics found he did not do this, you will know what exactly can be done out. So force yourself after so many years, even if like me all day out windows, linux experience need only ask people, they also look at what specification (but linux does not seem to specification) of the.

Because of the nature of what you will difficult, and the rest of these operational problems, but the difference between skilled unskilled only. But in the end what is hard enough and you can just make out of it? Actually, I think I was a kid programming of the learning process is a good example. Just started learning when the difficulty is great indeed, we learned six months after the while loop I always unable to control what they do by copying the code cycle, this feeling just dumb, like English, you know that thing, but with when just will not come. With the gradual deepening of the training course, which can be overcome. At that time I was along such a route to go. First will use the function to draw several figures do some simple filter to sharpen blurred ah like, in fact, the truth is that there are algorithms copied a few lines of code. Then he began to learn how to write high-performance programs. Performance feel almost began to toss how to achieve a RPG. Every step probably took several months, and spans between the step and the step is significant. Of course, specific to my situation at that time, it is inevitable eventually get fail, mainly due to problems idea, because no one told me how to do. I remember very clearly when doing three days a RPG, which results in VB6 trying to engage with Picture Control, blame the dead. Two years later I finally know what is the method fly, so he made this. This link can also be downloaded to the Delphi code I had written, the code is rotten childhood, although looks a bit complicated, ah ha ha ha. Finished the game can not be satisfied to finish, we must start thinking of modular problem. How to make a game with the GUI library? How to make a game with the script engine? How to make their tools? How to write a game engine? How to write a RPG Maker? Each wants a simple question can also do simple, complex and want to do very complicated. So when I solve problems one by one, we have come M $ RA, and this is the reason why I would later study all sorts of strange type system to do all kinds of strange and GacUI the compiler. Of course, now do at this point is not just to make games, then when you make a game can get something, you have to start thinking about how to put it into a universal, making software development can also be used. Each issue will eventually rise to a new level, and you feel easy question, do not waste time to solve. I

Think this should give you a road pointed out, this is the reason why I think the time that it takes so much energy to research tools people are wasted. Work to use the things you should take up work time to study, of course spare time is spent on improving their level of meta-programming: probably the algorithm ah, ah architecture, design patterns, ah, ah a variety of unit tests in any language and must be on things. But in order to train these capabilities, you gotta be obtained by any difficult problem to solve a shooting. So the best option is a big clean problem. These issues are clearly defined but very complex issue, say a problem I try senior and ultimately successful - how the C language compiled into x86. Of course this is only a problem if you want it to do practical, or you want to know how to write PE file, or you want to know how with C ++ data structures and function pointers seamlessly together, which is not so clean up. To solve these problems purely by information corner, and with your level does not matter, if there is no interest, then there is no need to fix it. Of course, to solve it is not no good, because you figured out to solve, you can use this knowledge to solve the problem a dead end in your future work may encounter a. But this should never be the driving force of your after-school study program, it is like an additional benefit. Here we can understand, fast hardware programmer, it is a very high level of meta-programming, it is also strange to know a lot of knowledge, so that you come across a real engineering problem, it has been correctly master the vast knowledge inside think of the right one small fragments, so after a brief study in order to solve it immediately. This is why we think a lot of people fast hardware knowledge, because it is a necessary condition.

This is why we feel Niubi people write programs quickly, because this is the result of fast hardware. Of course, for a rookie just getting started speaking, they are even still in a good condition with no tool, that nature should take some time to become familiar with the tool. But when you have mastered C ++, C #, Haskell, Erlang spend a considerable amount of energy to study what Go and Swift, it is not worth the. As the issues to be studied Go and Swift is already included in the previous C ++, C #, Haskell and Erlang time inside, so when you use the Go, they should directly, if stepped on a pit you come out is quite easy, no need to take the time to study the details of go. Of course, for only a few lines of php and python who take the time to research Go is good, even as they are still in a good condition with no tools. That certainly should take some time to become familiar with the tool. Once you have mastered at least the API on a programming language and a general purpose system, you do not need to spend a lot of time to study another similar API general purpose programming languages ​​and other systems, because it belongs to extrapolate content, as long as you can immediately see the document proficient.

If two languages ​​are completely different, say, C # and Haskell, you learn after a study can still take the time to go to another door. These things are not absolute. What do you need to spend time, depending on the problem is not hard enough, is not just good you can do it, you can not make a little bit hard to come. As long as you keep this training method decade, I do not want Niubi immune. The thought here, can not help but recall some shit idea childhood. Three days and they had tried to use Visual Basic 6.0 to do a Basic interpreter, of course, finally did come out, but the performance of the giant low, because I put the syntax tree are saved in spreadsheet control in the ...... but the following knowledge at the time, can sucker solution to such a problem, it can be considered a lot of progress.

Welcome to public concern number "Dong Chong" I will continue to share more and more real business experience, experience and solutions.

Guess you like

Origin blog.csdn.net/dong2008hong/article/details/93059163