programming is terriblelessons learned from a life wasted

How do I become a successful programmer?

I’m not qualified to answer this question, I burn out—but many other programmers I have met have managed to sustain employment and increase their pay. I will share with your their winning strategies–

Although you will be forced to document your software, don’t be afraid to write ugly prose, and ensure you leave out failure cases, types or arguments. Hopefully you will always be too busy to document and test the code. You have important bugs to fix.

Write lots of code. Lots of code. Autocomplete Helps. Use your own ad-hoc naming scheme. Write your own wrappers around standard library functions. Reinvent liberally. Learn to use the advanced features of your ide and language and use them everywhere. Don’t be afraid to seperate everything out into modules that only make sense when combined.

Fix problems by creating new ones. Ensure that if you close the bug for now, someone new will re-open it. You can create an equilibrium by constantly shifting the bug around from person to person. Never raise a bug, always fix the problem—A workaround in your code is quicker than fixing the underlying faults.

Ensure your tests only pass some of the time. Better if only on your machine with some elaborate setup. Become the central point of failure for the development—those who aren’t will be passed over or lose their job.

When I started at the company, I was told about the best programmer they’d found. Singlehandedly ported the founders code from one Microsoft product to the next, growing through the ranks to become an Architect. A Hero everyone looked up to, unbeaten in the race to close bugs,

Except sometimes they’d reopen. Roughly, we listed things for sale, all with slightly different tax rates. We’d check the prices and occasionally it would be wrong, and the bug was raised to the top and pronounced fixed. Meanwhile, someone else was raising a bug, the tax was wrong on a different item. Eventually the real problem surfaced—tax was set globally across the entire site, not per item. Each bug filed and closed changed every price on the site, breaking the rest.

When I left the company, my code was documented, I’d trained the team, and other people could actually change the build system. That and being one of the youngest serving employers made it easy for me to be made redundant. Unfortunately for the team, the operational overhead was low, and so the remaining members were left to fight each other for the jobs left

Years on, the architect is still there, although defrocked. As is much of their code, many still afraid to touch it.

Job security comes from constant creation of work only you can do. If you act like you are the only programmer and this is the only bug you have, you will be rewarded for sabotaging the product.

I’m not bitter. If you write yourself out of a job, it probably wasn’t worth keeping.