I have read in this old blog entry by Endi and get interrested about it. For a sort recaps, the entry was describing a quality programmer should be. It recommended people as a programmer to have:
Remember: Not everyone understand your code, not even YOU in later time.
#2: Have Knowledge of Standard Coding Style
A good coder must have a coding style and be consistent on it. Unless when the person must
conform into a bigger cause (company guideline). To start with the good style, one can conform it with the standard in each programming language. For instance, take Java. Java insists on naming each object with no caps, class name with caps in first letter, and all caps in constants (or finalize objects).
The second reason is because there are so many editors out there that could edit a code. Sometimes, we must cope with different editors because of the feature we need. Or, simply because Emacs is not everyone's favorite, not also ViM (not flaming), everyone can have their own favorite editor and it's your job to improve readily of your code.
It's a nature of enterprises and software houses to have many coders as their employees and it would make so much effort to maintain the source code if the company doesn't have standard. Good company have one, but if not, programmers should.
The best coding style is when it is consistent all the way.
Remember: BADLY WRITTEN CODE introduce bug.
Each programmer must know what they are after. Programmer must never code in darkness. There are concepts of granularity that exists out there and a good programmer/coder must really understand that to be enlightened.
The concepts that ought to know:
I know some of this stuff is belong to System Analyst not Programmer. But, the reality is it's the programmer that decide the end architecture for the running application. The model that is in the document is not right anymore. This lead into certain catastrophe that makes the children whom inherit suffer.
Remember: Bad granularity == bad application == bad maintainability == you suck!
#4: Know About Knowing
The problem with this world is people come and go, so do programmers. It's not so fair that the programmers has so much fed by the company but in the end they just walked away with the knowledge invested in them. This is bad!
The thing that a programmer should know about knowing:
There are more that I would love to add as a good programmer. But, I think the four things is what the most important for me to become a good programmer. Programming language is a tool and people can learn it if they understand the #4. Besides, a fresh programmer will never be involved in a project without ever being briefed. But, a project will ended up not being used or maintained because of the badly written code.
- Base knowledge about the underlying operating system (multithreaded etc).
- Base knowledge about network and the protocols such as http, ftp, smtp, etc.
- Base knowledge about relational database.
- Internalization (he said explicitly as unicode, but I guess unicode not just i18n).
- Computer Languages.
- Version controlling.
#1: Know How To Documenting Your Piece of Code
Sadly, the most important aspect of programming is something that lacking out of those programmers. I know that this is something trivial, but the reality talks that not so many programmers have this kind of attitude. This behavior is making so many good code lost and obviously making a lost over company treasury. How many times do you have to write the code from scratch just because of bad source code?Remember: Not everyone understand your code, not even YOU in later time.
#2: Have Knowledge of Standard Coding Style
A good coder must have a coding style and be consistent on it. Unless when the person mustconform into a bigger cause (company guideline). To start with the good style, one can conform it with the standard in each programming language. For instance, take Java. Java insists on naming each object with no caps, class name with caps in first letter, and all caps in constants (or finalize objects).
The second reason is because there are so many editors out there that could edit a code. Sometimes, we must cope with different editors because of the feature we need. Or, simply because Emacs is not everyone's favorite, not also ViM (not flaming), everyone can have their own favorite editor and it's your job to improve readily of your code.
It's a nature of enterprises and software houses to have many coders as their employees and it would make so much effort to maintain the source code if the company doesn't have standard. Good company have one, but if not, programmers should.
The best coding style is when it is consistent all the way.
Remember: BADLY WRITTEN CODE introduce bug.
#3: Have Knowledge About Granularity
So many projects failing apart because of the brute concept of their programmers. The patching technique they use is absolutely buggy. They patch here and there, have a need, write here, patch there. Voila! The code become a giant wasp nest.Each programmer must know what they are after. Programmer must never code in darkness. There are concepts of granularity that exists out there and a good programmer/coder must really understand that to be enlightened.
The concepts that ought to know:
- Modularization.
- Model-View-Control (MVC).
- Your application's architecture.
- Coupling and Decoupling.
I know some of this stuff is belong to System Analyst not Programmer. But, the reality is it's the programmer that decide the end architecture for the running application. The model that is in the document is not right anymore. This lead into certain catastrophe that makes the children whom inherit suffer.
Remember: Bad granularity == bad application == bad maintainability == you suck!
#4: Know About Knowing
The problem with this world is people come and go, so do programmers. It's not so fair that the programmers has so much fed by the company but in the end they just walked away with the knowledge invested in them. This is bad!The thing that a programmer should know about knowing:
- Documenting what he/she knows, share it to friends, write a white paper about it or just wiki it or else blog it.
- Savvy on how to use the ultimate information system: GOOGLE.
- Savvy on reading someone's documentation.
There are more that I would love to add as a good programmer. But, I think the four things is what the most important for me to become a good programmer. Programming language is a tool and people can learn it if they understand the #4. Besides, a fresh programmer will never be involved in a project without ever being briefed. But, a project will ended up not being used or maintained because of the badly written code.
Comments
Post a Comment