- Understanding Software
- Max Kanat Alexander
- 621字
- 2021-07-08 10:22:28
Chapter 3. The Singular Secret of the Rockstar Programmer
Before all the laws of software, before the purpose of software, before the science of software design itself, there is a singular fact that determines the success or failure of a software developer:
The better you understand what you are doing, the better you will do it.
"Rockstar" programmers understand what they are doing far, far better than average or mediocre programmers. And that is it.
This fact makes the difference between the senior engineer who can seem to pick up new languages in a day and the junior developer who struggles for ten years just to get a paycheck, programming other people's designs and never improving enough to get a promotion. It differentiates the poor programmers from the good ones, the good programmers from the great ones, and the great ones from the "rockstar" programmers who have founded whole multi-billion dollar empires on their skill.
As you can see, it isn't anything complicated, and it isn't something that's hard to know. Nor is it something that you can only do if you're born with a special talent or a "magical ability to program well." There is nothing about the nature of the individual that determines whether or not they will become an excellent programmer or a poor one:
All you have to do in order to become an excellent programmer is fully understand what you are doing.
Some may say that they already understand everything. The test is whether or not they can apply it. Do they produce beautifully architected systems that are a joy to maintain? Do they plow through programming problems at a rate almost unimaginable to the average programmer? Do they explain everything clearly and in simple concepts when they are asked for help? Then they are an excellent programmer, and they understand things well.
However, far more commonly than believing that they "know it all", many programmers (including myself) often feel as though they are locked in an epic battle with an overwhelming sea of information. There is so much to know that one could literally spend the rest of his life studying and still come out with only 90% of all the data there is to know about computers.
The secret weapon in the epic battle, the Excalibur of computing knowledge, is understanding.
The better that you understand the most fundamental level of your field, the easier it will be to learn the next level. The better you understand that level, the easier the next one after that will be, and so on. Then once you've gone from the most fundamental simplicities to the highest complexities, you can start all over again and find amazingly that there is so much more to know at the very, very bottom.
It seems almost too simple to be true, but it is in fact the case. The path to becoming an excellent programmer is simply full and complete understanding, starting with a profound grasp of the basics and working up to a solid control of the most advanced data available.
I won't lie to you – it sometimes is a long path. But it is worthwhile. And at the end of it, you may find yourself suddenly the amazing senior engineer who everyone comes to for advice. You may be the incredible programmer who solves everything and is admired by all his peers. You might even come out a "rockstar" with millions of dollars and a fantastically successful product. Who knows?
I can't tell you what to do or what to become. I can only point out some information that I've found to be truthful and valuable. What you do with it is up to you.
-Max
- Boost C++ Application Development Cookbook(Second Edition)
- Production Ready OpenStack:Recipes for Successful Environments
- Elastic Stack應用寶典
- 高級C/C++編譯技術(典藏版)
- Instant QlikView 11 Application Development
- C語言程序設計教程
- Webpack實戰:入門、進階與調優
- Couchbase Essentials
- C++ System Programming Cookbook
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理
- Learning Node.js for Mobile Application Development
- Oracle API Management 12c Implementation
- CentOS High Performance
- 深入解析Java虛擬機HotSpot
- Java程序設計項目教程(第二版)