程序员的“认知失调”
生活随笔
收集整理的這篇文章主要介紹了
程序员的“认知失调”
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
“不可能啊”、“一定是服務(wù)器的原因”、“我的程序不應(yīng)該有問(wèn)題啊”,這些年工作聽(tīng)到的最多的就是這些話了,程序員都是比較自信的,總是覺(jué)得自己的程序肯定沒(méi)問(wèn)題。點(diǎn)擊進(jìn)入我的博客。
程序就是程序員的自我延伸,花了幾個(gè)小時(shí)甚至幾天時(shí)間構(gòu)建的結(jié)果,最后它以“正確”的形象印入你的意識(shí)里,你自然不希望別人找出什么紕漏,即便找出什么紕漏了,自己也意識(shí)到了“不足”,感情上很難接受,所以大部分人都會(huì)習(xí)慣性的“辯護(hù)”,甚至試圖找一些迂回手段證明自己是對(duì)的。實(shí)際上很多時(shí)候,只要我們稍微回歸一下,跳出自我守護(hù)的那一畝田地,也許我門(mén)就會(huì)很輕易的發(fā)現(xiàn):我們的確錯(cuò)了。
心理學(xué)上有一個(gè)學(xué)術(shù)名詞叫做“認(rèn)知失調(diào)”,所謂認(rèn)知失調(diào)就是指在一個(gè)人的認(rèn)知系統(tǒng)里即將出現(xiàn)新的認(rèn)知與就舊認(rèn)知(舊的信念,自我建立的理論)產(chǎn)生沖突引起的心理上的不適,為了調(diào)節(jié)這種不適感,一方面為舊的認(rèn)知辯護(hù),另一方面希望在新的認(rèn)知和舊的認(rèn)知上找到共存的平衡。例如,你告訴吸煙者吸煙有害健康,應(yīng)該要戒煙;吸煙者就會(huì)出現(xiàn)認(rèn)知失調(diào),但是他們很快就會(huì)從中解脫出來(lái),因?yàn)樗麄儠?huì)以“吸引能減輕壓力,令他們輕松”的理由來(lái)說(shuō)服自己。
認(rèn)知失調(diào)是一種很常見(jiàn)的心理現(xiàn)象。在我們?cè)O(shè)計(jì)到實(shí)現(xiàn)我們的程序的過(guò)程中,我們?cè)谛睦砩弦呀?jīng)慢慢的建立了自己對(duì)程序的相信。再到代碼審查階段或測(cè)試階段,總會(huì)有人指出其中不完美之處,于是出現(xiàn)了認(rèn)知失調(diào),所以我們會(huì)習(xí)慣性的“辯護(hù)”。一個(gè)開(kāi)發(fā)團(tuán)隊(duì)中,要形成良好的氛圍,首先要克服認(rèn)知失調(diào)現(xiàn)象,提高程序員的認(rèn)知是比較重要的。
我們的前輩們很早就意識(shí)到這個(gè)問(wèn)題了,并且有些程序開(kāi)發(fā)組已經(jīng)克服了這種認(rèn)知的局限。遠(yuǎn)在計(jì)算機(jī)剛剛成為可能之初,我們的前輩馮.諾依曼很早就意識(shí)到了,自己在檢查自己的工作方面的能力的確不足,他或許是第一位能夠認(rèn)識(shí)到這一點(diǎn)的程序員。而在他的朋友中,有人回憶,馮.諾依曼總是很別人說(shuō)他自己是一名憋足的程序員,并且總是不厭其煩的請(qǐng)人幫他讀程序,希望能發(fā)現(xiàn)一些錯(cuò)誤和紕漏。在今天我們看來(lái),馮.諾依曼無(wú)疑是一個(gè)天才,就是這樣一位天才的程序員都能有會(huì)不足之處。我們又有什么不能面對(duì)自己的錯(cuò)誤呢?
再來(lái)轉(zhuǎn)述一個(gè)故事。比爾是早期空間跟蹤系統(tǒng)的一名成員。他負(fù)責(zé)寫(xiě)一個(gè)模擬器,對(duì)整個(gè)網(wǎng)絡(luò)中的空間跟蹤站以及實(shí)時(shí)輸入進(jìn)行模擬。這個(gè)模擬器的核心是一個(gè)非常緊湊的循環(huán)。實(shí)際上,它只有13條指令。比爾研究了很多個(gè)小時(shí)以后,覺(jué)得自己終于又些信心了,但是他還是希望找到一些要求比較苛刻的人來(lái)幫他檢查程序。
比爾找到了馬里琳,她愿意細(xì)讀她的程序,他也讀她的程序,這是他們工作組里再平常不過(guò)的事了。這種相互批評(píng)的方式能讓當(dāng)事人不會(huì)感到自己在接受別人的批評(píng)。而比爾認(rèn)為自己這方面訓(xùn)練有素,沒(méi)必要通過(guò)這種交換來(lái)保護(hù)自己的自尊心。在他的程序開(kāi)發(fā)價(jià)值觀里,那種隱秘的、保守的開(kāi)發(fā)方式很不好,只有開(kāi)放的、分享的開(kāi)發(fā)方式是好的。在他的程序中可能發(fā)現(xiàn)錯(cuò)誤是人人可見(jiàn)的簡(jiǎn)單事實(shí),暴露這些錯(cuò)誤,不過(guò)是為了將來(lái)更好的改進(jìn),所以并非是對(duì)他個(gè)人的攻擊。
在這個(gè)例子中,比爾經(jīng)歷了他程序開(kāi)發(fā)生涯中最“糟糕”的一天。經(jīng)歷反復(fù)的檢查,馬里琳發(fā)現(xiàn)了很多錯(cuò)誤,隨著錯(cuò)誤一個(gè)一個(gè)的被發(fā)現(xiàn),比爾反而變得越來(lái)越開(kāi)心。要是比爾和我們大多數(shù)程序員一樣,肯定是開(kāi)始在為自己辯解了。最后,在他們的一次學(xué)術(shù)會(huì)議上,他向全世界公布了一個(gè)驚為天人的事實(shí):13行代碼中,馬里琳成功發(fā)現(xiàn)了17個(gè)錯(cuò)誤。他認(rèn)定那天并非他寫(xiě)程序的“良辰吉日”。在那天剩下的時(shí)間里,他干脆把程序放到一邊,然后向周圍的人講訴這一小插曲中的每一個(gè)寧人捧腹的細(xì)節(jié)。
同時(shí),馬里琳并沒(méi)有覺(jué)的自己發(fā)現(xiàn)這么多錯(cuò)誤而竊喜,而是清醒的認(rèn)識(shí)到:她發(fā)現(xiàn)17個(gè)錯(cuò)誤,那么是不是還有可能有更多的錯(cuò)誤。她經(jīng)過(guò)長(zhǎng)時(shí)間的修改之后,和比爾一樣,同樣找來(lái)另一位閱讀者。那天下班前,一邊是比爾繼續(xù)向周圍同事講述這件快事,另一邊是馬里琳和其他人一起又發(fā)現(xiàn)了3個(gè)錯(cuò)誤。
故事的最后,當(dāng)這段程序加載到計(jì)算機(jī)后,哪怕是經(jīng)歷任何“魔鬼似的”測(cè)試也沒(méi)有發(fā)現(xiàn)任何錯(cuò)誤。實(shí)際上,這個(gè)模擬器已經(jīng)被至少十個(gè)以上的計(jì)算機(jī)中心使用,至少九年之內(nèi)沒(méi)有發(fā)現(xiàn)其他錯(cuò)誤。對(duì)于每個(gè)發(fā)現(xiàn)的錯(cuò)誤,比爾并不認(rèn)為是對(duì)自己自尊的傷害,事實(shí)上,這種自尊恰恰體現(xiàn)了一個(gè)人的愚蠢;否則試想一下這個(gè)故事的結(jié)局會(huì)是怎樣?
兩個(gè)故事說(shuō)明認(rèn)知的重要,最后總結(jié)幾條觀點(diǎn):
1 每個(gè)程序員的會(huì)出現(xiàn)認(rèn)知失調(diào)的現(xiàn)象。應(yīng)該正常對(duì)待。
2 再牛逼的人都會(huì)有自己的認(rèn)知盲區(qū),需要?jiǎng)e人去發(fā)現(xiàn)。
3 理性對(duì)待別人發(fā)現(xiàn)的錯(cuò)誤。
程序就是程序員的自我延伸,花了幾個(gè)小時(shí)甚至幾天時(shí)間構(gòu)建的結(jié)果,最后它以“正確”的形象印入你的意識(shí)里,你自然不希望別人找出什么紕漏,即便找出什么紕漏了,自己也意識(shí)到了“不足”,感情上很難接受,所以大部分人都會(huì)習(xí)慣性的“辯護(hù)”,甚至試圖找一些迂回手段證明自己是對(duì)的。實(shí)際上很多時(shí)候,只要我們稍微回歸一下,跳出自我守護(hù)的那一畝田地,也許我門(mén)就會(huì)很輕易的發(fā)現(xiàn):我們的確錯(cuò)了。
心理學(xué)上有一個(gè)學(xué)術(shù)名詞叫做“認(rèn)知失調(diào)”,所謂認(rèn)知失調(diào)就是指在一個(gè)人的認(rèn)知系統(tǒng)里即將出現(xiàn)新的認(rèn)知與就舊認(rèn)知(舊的信念,自我建立的理論)產(chǎn)生沖突引起的心理上的不適,為了調(diào)節(jié)這種不適感,一方面為舊的認(rèn)知辯護(hù),另一方面希望在新的認(rèn)知和舊的認(rèn)知上找到共存的平衡。例如,你告訴吸煙者吸煙有害健康,應(yīng)該要戒煙;吸煙者就會(huì)出現(xiàn)認(rèn)知失調(diào),但是他們很快就會(huì)從中解脫出來(lái),因?yàn)樗麄儠?huì)以“吸引能減輕壓力,令他們輕松”的理由來(lái)說(shuō)服自己。
認(rèn)知失調(diào)是一種很常見(jiàn)的心理現(xiàn)象。在我們?cè)O(shè)計(jì)到實(shí)現(xiàn)我們的程序的過(guò)程中,我們?cè)谛睦砩弦呀?jīng)慢慢的建立了自己對(duì)程序的相信。再到代碼審查階段或測(cè)試階段,總會(huì)有人指出其中不完美之處,于是出現(xiàn)了認(rèn)知失調(diào),所以我們會(huì)習(xí)慣性的“辯護(hù)”。一個(gè)開(kāi)發(fā)團(tuán)隊(duì)中,要形成良好的氛圍,首先要克服認(rèn)知失調(diào)現(xiàn)象,提高程序員的認(rèn)知是比較重要的。
我們的前輩們很早就意識(shí)到這個(gè)問(wèn)題了,并且有些程序開(kāi)發(fā)組已經(jīng)克服了這種認(rèn)知的局限。遠(yuǎn)在計(jì)算機(jī)剛剛成為可能之初,我們的前輩馮.諾依曼很早就意識(shí)到了,自己在檢查自己的工作方面的能力的確不足,他或許是第一位能夠認(rèn)識(shí)到這一點(diǎn)的程序員。而在他的朋友中,有人回憶,馮.諾依曼總是很別人說(shuō)他自己是一名憋足的程序員,并且總是不厭其煩的請(qǐng)人幫他讀程序,希望能發(fā)現(xiàn)一些錯(cuò)誤和紕漏。在今天我們看來(lái),馮.諾依曼無(wú)疑是一個(gè)天才,就是這樣一位天才的程序員都能有會(huì)不足之處。我們又有什么不能面對(duì)自己的錯(cuò)誤呢?
再來(lái)轉(zhuǎn)述一個(gè)故事。比爾是早期空間跟蹤系統(tǒng)的一名成員。他負(fù)責(zé)寫(xiě)一個(gè)模擬器,對(duì)整個(gè)網(wǎng)絡(luò)中的空間跟蹤站以及實(shí)時(shí)輸入進(jìn)行模擬。這個(gè)模擬器的核心是一個(gè)非常緊湊的循環(huán)。實(shí)際上,它只有13條指令。比爾研究了很多個(gè)小時(shí)以后,覺(jué)得自己終于又些信心了,但是他還是希望找到一些要求比較苛刻的人來(lái)幫他檢查程序。
比爾找到了馬里琳,她愿意細(xì)讀她的程序,他也讀她的程序,這是他們工作組里再平常不過(guò)的事了。這種相互批評(píng)的方式能讓當(dāng)事人不會(huì)感到自己在接受別人的批評(píng)。而比爾認(rèn)為自己這方面訓(xùn)練有素,沒(méi)必要通過(guò)這種交換來(lái)保護(hù)自己的自尊心。在他的程序開(kāi)發(fā)價(jià)值觀里,那種隱秘的、保守的開(kāi)發(fā)方式很不好,只有開(kāi)放的、分享的開(kāi)發(fā)方式是好的。在他的程序中可能發(fā)現(xiàn)錯(cuò)誤是人人可見(jiàn)的簡(jiǎn)單事實(shí),暴露這些錯(cuò)誤,不過(guò)是為了將來(lái)更好的改進(jìn),所以并非是對(duì)他個(gè)人的攻擊。
在這個(gè)例子中,比爾經(jīng)歷了他程序開(kāi)發(fā)生涯中最“糟糕”的一天。經(jīng)歷反復(fù)的檢查,馬里琳發(fā)現(xiàn)了很多錯(cuò)誤,隨著錯(cuò)誤一個(gè)一個(gè)的被發(fā)現(xiàn),比爾反而變得越來(lái)越開(kāi)心。要是比爾和我們大多數(shù)程序員一樣,肯定是開(kāi)始在為自己辯解了。最后,在他們的一次學(xué)術(shù)會(huì)議上,他向全世界公布了一個(gè)驚為天人的事實(shí):13行代碼中,馬里琳成功發(fā)現(xiàn)了17個(gè)錯(cuò)誤。他認(rèn)定那天并非他寫(xiě)程序的“良辰吉日”。在那天剩下的時(shí)間里,他干脆把程序放到一邊,然后向周圍的人講訴這一小插曲中的每一個(gè)寧人捧腹的細(xì)節(jié)。
同時(shí),馬里琳并沒(méi)有覺(jué)的自己發(fā)現(xiàn)這么多錯(cuò)誤而竊喜,而是清醒的認(rèn)識(shí)到:她發(fā)現(xiàn)17個(gè)錯(cuò)誤,那么是不是還有可能有更多的錯(cuò)誤。她經(jīng)過(guò)長(zhǎng)時(shí)間的修改之后,和比爾一樣,同樣找來(lái)另一位閱讀者。那天下班前,一邊是比爾繼續(xù)向周圍同事講述這件快事,另一邊是馬里琳和其他人一起又發(fā)現(xiàn)了3個(gè)錯(cuò)誤。
故事的最后,當(dāng)這段程序加載到計(jì)算機(jī)后,哪怕是經(jīng)歷任何“魔鬼似的”測(cè)試也沒(méi)有發(fā)現(xiàn)任何錯(cuò)誤。實(shí)際上,這個(gè)模擬器已經(jīng)被至少十個(gè)以上的計(jì)算機(jī)中心使用,至少九年之內(nèi)沒(méi)有發(fā)現(xiàn)其他錯(cuò)誤。對(duì)于每個(gè)發(fā)現(xiàn)的錯(cuò)誤,比爾并不認(rèn)為是對(duì)自己自尊的傷害,事實(shí)上,這種自尊恰恰體現(xiàn)了一個(gè)人的愚蠢;否則試想一下這個(gè)故事的結(jié)局會(huì)是怎樣?
兩個(gè)故事說(shuō)明認(rèn)知的重要,最后總結(jié)幾條觀點(diǎn):
1 每個(gè)程序員的會(huì)出現(xiàn)認(rèn)知失調(diào)的現(xiàn)象。應(yīng)該正常對(duì)待。
2 再牛逼的人都會(huì)有自己的認(rèn)知盲區(qū),需要?jiǎng)e人去發(fā)現(xiàn)。
3 理性對(duì)待別人發(fā)現(xiàn)的錯(cuò)誤。
總結(jié)
以上是生活随笔為你收集整理的程序员的“认知失调”的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网站商务通如何导出查看历史聊天纪录
- 下一篇: [LeetCode226]Invert