“A programmer”. If you now build software than this is probably what you wanted to be at the time you started learning Pascal, or Basic, or even hacking some assembler. No matter what language you first used programming seemed cool. At least to me it did. I was hooked. Yet if someone asks me what my job is I unconditionally respond “Software Developer”. The more experienced ones sometimes say “Team Leader” or “Software Architect”.
A heart surgeon with 20 years of experience is still “a doctor” and he has no problem with being referred to that way. Yet software people somehow feel insulted when you call them “programmers”.
This happens because the general idea is that coding is a lower, simpler part of building software; to do it right you need to know design patterns, frameworks, use code generators, validation engines, rules engines, workflow engines, etc. That’s all nice and dandy, but people seem to forget that they still need to write a lot of code no matter how fancy their job title is. All the extra stuff will help make a better product and improve quality (and add business value, and stuff, whatever), but it’s the actual coding that creates the product.
In the big (a.k.a enterprisey) software world the focus has been mainly on improving the big picture. This has reached monstrous proportions in the Java world where the universal answer to any problem is (no, not 42) to build a new framework that does a little better than others at some small and insignificant aspect. But no matter how much stuff you’re gonna use to make the big picture brighter you’re still gonna get down in the mud and write code. Too few efforts have been made to actually fix or improve the language and the base library. .NET and C# have been a wake-up call for Sun and I can only hope the “language wars” will last.
Eric Raymond said:
Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.
I believe this is true for almost any language. Even learning just a new idiom will sometimes make you want to apply it to the language you use every day. To become a good software developer you not only need to learn how to serialize workflows and stuff like that but you also want to learn to code better, smarter, cleaner, and usually there are better ways to do this than what we’re accustomed to.
So learn a new programming language, even an obscure one will do, see what functional programming is about and how dynamic typing can help and sooner or later this will make you a better developer.
Feed the programmer in you!
Tags: programming