Why Ambiguity is Vital to Success
Humans dislike ambiguity and uncertainty. It causes unpleasant physiological reactions: everything from elevated heart rates to shortness of breath and sweating. No wonder we don't like it.
And the groups we participate in confirm the tendency to avoid uncertainty by ignoring information that doesn't fit the group belief system. To take a particularly tragic example, the lower-level information-gatherers had warnings about 9/11 and raised them to their superiors. But these superiors were operating under the belief that nation-states were threats, not mere individuals, and the warnings were ignored.
Terrible events, including the sinking of the Titanic and the failure of the O-rings in the Challenger, often are preceded by harbingers of danger, but these are ignored.
This failure to appreciate that something is wrong is endemic to humans and we must be on special guard not to fall into the natural tendency to disregard and devalue information that might lead us to a different decision than the ones we're already invested in.
As a teacher, I see this very often. Developers who are very comfortable with the relational database model struggle with OO concepts; they tend to want to force-fit these new concepts into comfortable, but incorrect, models.
All learning involves ambiguity. It places the student in a mode of uncertainty, which breeds insecurity. Seeking to escape this unpleasantness, students look to clear guidance on steps to take and often fail to gain a deep understanding of the new technology.
Lately, on Ray Camden's blog, a discussion revolved around the question, "What should I study now?" The comfortable, unambiguous advice was "more of the same": more ColdFusion, more SQL, more server-side languages.
But this ignores what I believe to be an essential shift from the older request-response model, where the server did all the work and presented a display to the user, to a new, more interactive model where much of the work is done in the browser.
I suggested that one of the best areas of study is client-side technologies, especially JavaScript. I believe that to be excellent advice, but I understand that it causes discomfort. "I'm not a client-side programmer. I do server-side stuff." And the comfortable illusion that, if I concentrate more on server-side technology, my future will be assured is so powerful that any contrary voices are simply ignored.
Consider this post a call to embrace ambiguity. If web development is fundamentally changing, as I believe it is, the smart move is to put our desire for certainty and comfort on hold. Yes, JavaScript is a strange language to those of us who came to age in ServerLand. But it is such a game-changing technology that, I believe, we ignore it to our great peril.
I once remarked to my colleague, Maciej, that the difference between a coding nightmare and an interesting problem lay in whether the code in question was yours. Similarly, the difference between a crisis and an opportunity lies in whether we embrace the elements of the new, the uncertain, the ambiguous.
Why not make this year one in which you resolve to embrace the new client-side model? It might just save your career.


To me, this is the extreme of embracing ambiguity while releasing all fear. If you do something that you know will fail, you can't have fear of the failure. As such, I think this leaves you open to actually coming up with really innovative ideas.
I am not sure how exactly this relates to your post; all to say, I think part of why we keep studying the same stuff is that there is fear to the unknown subject matter. But, if we simply embrace the face that new things we learn might be completely useless, it allows us to be more open minded perhaps.
thanks for sharing. really helped a lot here.