Home » Android » What is the real programming ability

What is the real programming ability

What is real programming power?

is still reading, also in the laboratory to do something, they also catch a few websites. People around seems to be like me very much, do so many things, but I find these things while I do, but I actually hand to write their own code but not many, many of which are with the open source code I write something, something is nothing more than the integration of other people's, similar to the same.

I think before the full manual programming is a row of knock code, but now I find that even the project there are a lot of people is the copy paste to solve the problem, and advocates do not repeat create the wheel.

But by Google and copying wheels, although I made a lot of things, but I do not think there is to enhance their ability, it is the ability to use the search engine is improved a lot. The school in another part of the ACM people, every day they are in most brush algorithm, but only by me personal feelings seem to feel they do not understand some things on the project, perhaps the ability of the algorithm is the actual programming ability? The ability to "glue" ability and integration of wheels is not
programming skills?

So I'm confused now, what is the so-called programming power, and how can I improve my programming skills?

a very good question. This is probably the best question I've ever asked about programming questions I've ever known. I love that question,.

computer science has two basic problem. One is theory: algorithms, data structure, complexity, machine learning, pattern recognition, and so on. One is the system: operating system, network system, distributed system, storage system, game engine, etc..< br >

theory is going in depth, is questioning in the calculation of capacity constraints given how to solve a problem faster and better. And the system is taking the breadth, is asking for a realistic demand how many technology designed most fast good province technology portfolio. span>

ACM, just do the first class. Like you prefer second. In fact, very rare, but unfortunately no measurement study simple and efficient method of second kinds of ACM competition ability, unlike algorithms and data structures, so many systems because of the lack of motivation and student guide slowly disappears.

so Bill Gates would say, "people who see programming now often regard programming as a solution to a variety of brain corners, and he feels sorry for.

system, do not advocate "reinventing the wheel". But note that is not advocated "reinventing", do not advocate "re made". On the contrary, I thought, system programming ability is reflected in the "new manufacturing".

pick up, this is good. But when you just missing a key glue, can you write it? When one of the existing components do not fully meet your needs, you can improve it? If you use bug components, you to get it repaired? In many parts of the similar functions of online, who is good or bad? Why? The essential difference? An open source code library, you can translate it from one language to another language? Portable from one platform to another can accurately? The estimation process their own translation and transplantation need how much time? Can accurately estimate the performance after translation and transplantation there will be improved or decreased? >

system programming ability is reflected in the existing code and bring a better code, reflected in the useless code and brought into useful code, reflected in a well used wheels can draw a blueprint of the wheel, and explain the reason which the local design blueprint is the key, which where is the secondary, which is not to touch, what can be improved.


how to improve programming ability? Earth approach: build more wheels. Just like learning to paint to paint the egg, not in this world no one can draw an egg, but the painted egg can tame the fingers, feel the shadow lines and strokes. So, you write something. Write a compiler? Render operation? The web server system?? web? Are one by one into his own handwriting, and then have a ready-made components, whose performance is good, who is easy to use? Fortunately where? Where is the difference? Why? >

a little more intelligent way: remove the wheel. Many others research how the code is written. However, this practice is often difficult. The reason: most of the wheels of industry thinking and technical design is good, all the design and manufacturing process are bad, inside the snarling at first glance, let a person have no clue, the novice is very difficult to dismantle. This situation is very bad. So, this way only the wheel that is relatively simple, for complex wheels, please do.

wheels not removed, in fact, is a very serious problem. Reinventing the wheel is a waste of time, but when the wheels are complex and not removed when, especially when the original wheels made people have not present, re invented and built the wheels tend to become the best choice of desperation. This is why the industry know reinventing / manufacturing is not good under the condition of the wheel continues to reinvent the root cause of.
manufacturing wheels

program essence is the formal expression of logical deduction, the record is digital human understanding of the world. Just like the wheels can not be removed to a lost music song, can read, but not sing.

not only, you are on how to design the construction of a nice and good remove wheels. You are not so lucky, is probably not in the technology to do it and carry forward. Before that, build multi wheels, demolition demolition of the small wheels should be good, is to improve the programming method the best.