Write your code carefully, debug it, integrate it, refactor, optimize and repeat. The challenge is quality, not quantity. Software engineering requires skilled craftsmanship. There is too much crappy code being written daily in the world.
Being satisfied and contented with one’s code is a dangerous habit. Take a major piece of code you wrote a few years back and if you cannot see how to improve it, you are not progressing forward technically. Be willing to learn from others. Learn to recognize, acknowledge and learn from your mistakes.
Getting code to work is the lowest acceptable outcome. One should always strive for clarity, simplicity, extensibility, modularity, predictable runtime behavior and scalability. Code that has these highly desirable attributes is more stable, testable and maintainable. If you’re any good, some future engineer will have the task of reusing your code. Make sure this engineer has kind thoughts for you.
There are many possible designs for software modules. Solve the task at hand N different ways conceptually on the whiteboard. Then critique each design in terms of pros and cons. Then choose the optimal design with the best trade offs. If you can only come up with one design you are not thinking hard enough. Implement the chosen design. Do not be lazy.
This is a dangerous habit. Crappy code propagates with slight modifications like a horrible virus with deadly mutations. When the code has to be forklifted to retrofit the latest API some poor sap has to fruitlessly track down N random obscure hidden inline locations as opposed to one clean API interface (use an interface, function or class please). IDE code refactoring tools should be used instead. Less is more. Create less code by refactoring, not more code. Adding more code by cut & pasting code is very evil creating an unmaintainable codebase.
Although coding requires high-level design and conceptualization, skills, it also requires extreme attention to detail as it is unforgiving. Code that is 99% correct is as nonfunctional as code that is 50% functional. Code either works or it does not, approximate incomplete solutions have no value.
Coding is a refined craft which requires pride of ownership. If one is the original author of a software module, one should always being willing to improve it, maintain it and support it indefinitely. Disowning code breaks the positive feedback loop for improving your skills using the complete software lifecycle. Your code should have an infinite lifetime warranty honored by your sincere personal commitment. Great code does not have an expiration or a use by date.
The answer appeared here first by Jeff Ronne in response to a question at Quora.
According to data from the Pakistan Bureau of Statistics (PBS), Pakistan imported mobile phones worth…
The European Union (EU) has expressed concern over the recent convictions of 25 civilians by…
The State Bank of Pakistan (SBP) has officially declared Wednesday, December 25, 2024, as a…
AKD Securities, the manager of the offer, informed the main stock exchange on Monday that…
ISLAMABAD: On Pakistan Television (PTV), medical experts raised serious concerns over false information on chemotherapy…
OpenAI has introduced Advanced Voice Mode to ChatGPT's desktop applications for macOS apps, enabling users…