How many of you users have software that you simply put up with because you already have it? Or maybe because someone you know uses it?

How many of you programmers write software using a language or style because it's what you've always used? Or maybe because your boss told you to?

For an overthinker like me, it boggles my mind when I see people who just accept mediocre things because they think it will take too much effort to switch to something better. Even if it's little things like the position of the taskbar, or what music software you prefer to use. Just how bad does an application have to be for you to not use it?

And you programmers, how often do you work within a specific facet of a programming language and wonder that there must be a better way? While the language trap primarily catches the disinterested programmers, it can also catch the complacent ones as well. Just because some blogger you like or your boss or your best friend tells you that one language is better than another doesn't mean that you should just accept his word. Remember, creating software is an art. Would you think that Picasso would have accepted being told to use only one particular kind of paint? Would you think a carpenter would be satisfied using anything but the right glue for the job at hand?

Programming is an art, and it's up to you, the artist, to choose the right tools for the job. Productivity is also a very personal and subjective thing. Environments that make me more productive might make you less productive. If someone tells you to listen to music to speed up working (something that works for him), you have to tell him that he's wrong. Tell him that, for you, the dull background murmurs of voices and distant keyboard clacks help your productivity more than any music can.

What's best for you is something only you can determine for yourself. Other people might be able to observe you and make suggestions on what seems to motivate you, to make you happy, et cetera, but the reality is these drives are almost all internal. You need to be adventurous: go out of your way to find new things that you might enjoy, that you might find useful. You need to be curious: strive to learn as much as possible about your surroundings, your peers, what motivates them and what makes them happy so that you can help them when they need it and so you can learn to get along better. You need to be questioning: don't just let people tell you what's best, but rather ask them why they think it's best and decide for yourself if it's actually best.

The last point is the most important one of all. You can't learn without asking questions, without experimenting on your surroundings. You can't learn if you just lie back and only learn what people tell you. Science would not be able to progress if scientists were capable of knowing only what older scientists tell them.

It's especially important to be able to be able to assert yourself even in the face of adversity from someone in a position of authority. Just because someone important wants you to use a particular language isn't a good enough reason, in and of itself, to use it. Evaluate it for yourself, question why a rule like that would exist and, if the reasoning is sound, adhere to it. If it's not, don't. But don't be silent about it. If you find a rule to be unsound for any reason then by all means talk about it! Don't sit on your hands doing something you know to be wrong. Make sure your objections are noted, try (within reason) to get the rule abolished, or at least get more information about it to better understand its rationale.

Children simply accept rules and authority without question. As they grow older, they learn to see shades of grey; that sometimes rules need to be bent or even broken if the rule is fundamentally unfair in some way. Everyone grows out of being unquestioning, but some people grow back into it, possibly because they gave up on thinking for themselves or were strong armed out of it. Don't grow out of it. Don't let more dominating personalities roll over you and force you into inferiority.

The astute reader will notice that this post presents itself as a rule. Indeed, apply the lessons of this post to the post itself. (Or don't!) Don't just take my word for it; just make sure you're aware that you always have a choice to explore or stagnate, to learn or ignore, to accept or dissent.