不知道其它職業(yè)如何,但作為一個(gè)程序員,我總是感覺到自己每天都需要做很多很多的選擇。有些選擇我自認(rèn)為選的有根有據(jù),有些選擇我只能是出自自己的直覺(gut feelings),但也有些選擇是實(shí)在不知道選擇什么好但期限又將至?xí)r被逼無奈做出的選擇。我喜歡選擇,因?yàn)橛羞x擇代表著有自由;我討厭選擇,因?yàn)檫x擇意味著我要為自己的選擇承擔(dān)相應(yīng)的責(zé)任和后果。
列舉一些我作為一個(gè)程序員近期需要做出的選擇 (因?yàn)闆]有寫代碼,少了很多給變量命名等的選擇):
工作環(huán)境:在國(guó)內(nèi) v.s. 在荷蘭
工作職能:繼續(xù)做程序員 v.s. 做項(xiàng)目管理
工作平臺(tái):Microsoft stack v.s. Linux stack (LAMP)
工作語言:C# .Net v.s. Ruby Rails v.s. PHP
研究領(lǐng)域:ASP MVC v.s. ASP WebForms
CMS關(guān)注:DotNetNuke v.s. Drupal
操作系統(tǒng):Window 7 v.s. Mac OS X
筆記本購(gòu)買:ThinkPad T410i v.s. Dell Studio 15z
... ...
想到之前公司的一個(gè)培訓(xùn),講到五種不同層次的無知,
1. Zero order ignorance: Lack of ignorance; Which means, Knowing the Question, and Knowing the answer. There is no ignorance.
2. First order ignorance: Lack of knowledge; Which means, Knowing the Question, but not knowing the answer
3. Second order ignorance: Lack of awareness; Which means, Not knowing the Question, nor knowing the answer. But knowing the problem
4. Third order ignorance: Lack of process; Which is, Not even knowing the problem, but realising there is something wrong. Or that things are not working right
5. Fourth order ignorance: Lack of ignorance about the orders of ignorance. This means not knowing even that there is something wrong and having no idea how to resolve the issue
大意是這樣的,
級(jí)別0的無知:缺少無知; 知道如何問問題,知道如何回答問題;
級(jí)別1的無知:缺少知識(shí);知道如何問問題,但不知道如何回答問題;
級(jí)別2的無知:缺少意識(shí);不知道如何問問題,不知道如何回答問題,但是知道有問題;
級(jí)別3的無知:缺少過程;甚至不知道有問題,但是意識(shí)到不對(duì)勁
級(jí)別4的無知:缺少對(duì)于無知的層次的無知;甚至沒有察覺到不對(duì)勁,更彈不上如何解決問題;
套用五種層次的無知來分析我最近做過的這些選擇,發(fā)現(xiàn)在級(jí)別0的無知情況下做出的選擇非常的少,大部分的選擇都屬于1到3層次的無知。當(dāng)然了,級(jí)別4的無知應(yīng)該更多,因?yàn)楦緵]有察覺自己到底有沒有有問題。
真希望有一天在做選擇的時(shí)候,都是在級(jí)別0的無知的情況下做出的選擇。古人說“30而立、40而不惑、50而知天命、60而耳順”,人到40真的能“不惑”嗎?人類會(huì)有一天開發(fā)出一款軟件能幫助我們完全的不惑嗎?我想人類始終是人類,怎么發(fā)展都沒有辦法擺脫自己受時(shí)間空間和物質(zhì)世界的局限。應(yīng)該只有創(chuàng)造宇宙天地萬物的創(chuàng)造者才能永遠(yuǎn)的“不惑”。
作為程序員的你,當(dāng)面臨太多選擇的時(shí)候,你會(huì)怎么辦呢?你的選擇是在哪種層次的無知的情況下做出來的呢?