I love coding. Ever since I bought my first computer (a VIC-20), I’ve been fascinated by computer programming. For many years I never thought of why I enjoyed it so much – I just knew I did.
But that changed when I read The Mythical Man-Month by Fred Brooks. Most people associate that book with Brooks’s law: adding people to a late project makes it later. But for me, that is not the best part of the book. The best part is one page at the end of chapter one, entitled The Joys of the Craft.
There, Fred Brooks quite eloquently put into words what I love about coding.
1. The sheer joy of making things. Programming is fundamentally about creating solutions to problems. At the end of the day, you have created something that didn’t exist that morning, and that is in and of itself satisfying.
2. The pleasure of making things that are useful to other people. One of most satisfying aspects of the job as a programmer is seeing code you wrote deployed in a live system and used by actual people, especially if it improves their lives in some way.
3. The fascination of fashioning complex puzzle-like objects of interlocking moving parts, and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. Very well put. Not only do programs have complex structure and dependencies, there is also the dynamics of the interaction between the parts as the program executes. The ultimate puzzle indeed!
4. The joy of always learning, which springs from the nonrepeating nature of the task. While constructing the program you constantly expand your understanding of both the problem and the solution. In addition, there is almost no limit to what you can learn to improve your craft – languages, algorithms, methodology, tools, frameworks.
5. The delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of imagination. Easily my favorite in the list – insightful and wonderfully formulated. And he goes on to note that “yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself“. Yeah!
To these five excellent points from Fred Brooks I would add:
6. The expressiveness of code. It sounds counter-intuitive, given the strict specification of a programming language, and the relatively few constructs it contains (compared to a natural language like English), but there is almost an infinite number of ways to write a program to solve a given (non-trivial) problem. First and foremost, you as a coder name classes, methods and variables. But you also decide the algorithm, the partitioning of the logic, and finally the layout. All these factors combine to give the programmer great freedom in expressing the solution in code.
There – six reasons why I love coding!
Love this! Thanks for sharing your thoughts on why you love coding, posts like these are exactly what is needed to get more people interested in learning e-skills. Mind if I reblog?
Thanks! Yes, you can reblog it.
Reblogged this on E-skills4Future – stories about e-skills.
Great post. I learned to love coding on my TI-994A (Not the best machine in the world but you have to use what you have). The memory of loading simple programs from cassette tapes still actually makes me smile.
I was sure I was going to be a programmer back then, but something happened that separated me from it only to come back almost 30 years later to make a new start.
I would emphasize #4 – the joy of always learning. I’ve often thought that learning a computer language, just like any other language, gives you a new perspective to think about the world from. I especially like the way that coding seems to make the impossible possible.
I think that this, along with a lot of your other posts, would be well-received by our audience of advanced devs at DZone.com. Let me know if you’re interested in working with us to promote your content among out readers.
Hi Eric,
I’m glad you liked it! Yes, I’m interested (but I don’t blog that often). I’ll e-mail you at the adress you gave.
Pingback: ترجمة مقالة “لماذا أحب البرمجة” Why I Love Coding « مدونة أبو إياس