The Craft of Software Development
January 1st, 2011
Software development is a craft and those who practice it are craftsmen. As with any craft, this one demands a set of skills from its practitioners:
Be Good With Your Hands
To code, you must type. To code well, you must type fast. Although this sounds weird, it’s quite important. Fred Brooks once said that software is “pure thoughtstuff” (I love that phrase by the way). The more thoughts you can work through in code, the better the end product will be. Unless your hands can keep up with your mind, you will eventually lose something.
Know Your Tools
Like all craftsmen, devs should know what tools are available to them and how to use said tools. I’m often amazed at what you can do in an IDE these days: syntax highlighting, step-through debugging, Intellisense, refactoring with one keystroke, etc. I’m also often amazed at people who insist on coding everything in <fill in name of your favorite crappy text editor here>.
It will help you in increasing your stamina generic 10mg cialis and sexual potency. All side effects must be meticulously noted down and reported to be effective on about 70% males’ health. cheapest viagra in australia The more common side effects include: headache, dizziness, flushing, indigestion, nasal cialis prices in australia congestion, diarrhoea, rash. Tobacco smoke raises the risk Continued viagra no prescription of coronary heart disease by 2020. I understand that you’re not a hacker if you can’t write assembly by hand in binary using nothing but a command line prompt. I also understand that using automatic screwdrivers to screw stuff in is a lot more pleasant than doing it by hand. Please get over yourself and use the best tools at your disposal.
Know Common Patterns
There are many smart people in your profession. There are also many difficult problems in your profession. Ipso facto, most difficult problems have already been solved by smart people. Why not try to reuse some of this wisdom before doing it yourself? I know it’s fun and exciting to write your own hash table and you may even get a price for being the 1 millionth person to do so, but isn’t there something more productive you could do instead?
Improvise Controllably
I don’t understand or particularly enjoy jazz. However, I often hear from people who understand it that great jazz musicians have an ability to improvise within specific boundaries. They could tweak the melody while keeping its signature riff or alter the song’s structure without destroying its harmony (I wish I knew what any of this means). Anyway, great devs can apply and evolve known patterns in creative ways.
You may also like:
Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on
Twitter!