My 5 Best Things About Being A Developer
This is for John–
1. Thinking on Your Feet
Few people might call analysis an art, but it is — ask any developer. When you have to come up with a way to fix a train when its moving along the tracks (patch a broken, already released product) , you learn fast how to think on your feet.
Another way to put it: when you develop software, over time, you begin to restructure your thoughts so that almost any inquiry can fit inside a formalized optimization problem. It goes something like “What is the ideal way to handle this?” After answering that question in the multitude of ways its presented developing software, the programmer literally has learned optimized internal methodologies. This in turn further improves how they handle future analysis. And before long like rolling lava, this optimized way of thinking covers all things and creates a new mental landscape. Smarter… Faster… Stronger…
Except maybe as an acrobat on the high-wire, few other jobs will provide such powerful training with thinking on your feet.
2. Mastering Discovery
Developers need a lot of other software tools for making software. And they are without a doubt the very definition of power user when it comes to how most of those tools were designed to be used. So its often that a developer will discover a bug in the very tools used. What so great about that?
These instances teach you discovery! They teach you how to remain skeptical and studious, so that one day from learned proper analysis, you are astute enough to see such problems coming down the pike and perhaps inspired to deal with things differently in your own creations– all gratifying..
Sometimes though, there is just no more instant a form of gratification than being first. First in line.. first to make it home– first to find a problem. Mastering discovery means just that, being first when it comes to finding (and if possible solving) problems. But, it also means being a developer sometimes comes with all the gratification and arrogance of approaching your SAT proctor and saying suggestively, “Excuse me, sir. I think you’ve gotten this question wrong.”
3. Being In-Demand
Lets face it, we’re surrounded by technology. And one of the best things about being a developer — being a technologist — is simply the fact that right now, every one needs you! Mostly due to the truths surrounding #4 on this list.
4. Making it Look Easy When its Not
One of the best things about being a software developer, is that we’re usually able to make it look incredibly easy given what the heck we’re actually doing. We type some jumble into some window on our screen and suddenly, we can all socially network on the web; communicate and search based on geographic location; blog about our day; become closer to one another and the information that binds us to one another.
To draw a metaphor other developers might need concrete, nails, hammers, sheet rock, a giant truck to carry it all and the laborers. Not us; a desk if you got one otherwise our lap will do and these days the obvious Internet connection, is pretty much all we need.
The reality is though, our job — software development — is intensely challenging, making the success all the more sweet albeit not so easy to share.
5. Making Friends/Solving Problems
Then there are times you can share it.
One of the most true statements about sociality with people is that shared trials and tribulations can bring people together more smoothly and easily than most other sets of circumstances. The effort to share survival is an ultimate and immediate trust-builder.
When you and your co-worker manage to save the company $100,000 outage, keep some cracker from making it all the way into some critical system, find a faster way to complete some business process, or even just provide a friend a URL that makes their personal lives easier somehow, you’re making friends, solving problems. You’re contributing to something that is truly the masterwork of every developer: a unified framework for solving problems, creating a better perhaps less hectic life for everyone.