清除雜訊的重要性

在我夢到了一堆水豚君後領域到的事情。

關於雜訊

我們在理解一個資訊的時候,很多時候會被各種雜訊給干擾,導致沒有辦法得到真正想知道的資訊。又或者是學習的時候,常常會被一長串的內容給混淆,導致自己沒有弄懂作者想表達的是什麼,或是一段敘述想表達的是什麼;一段程式碼在做什麼?

昨天在寫 實作模組機制 的時候,我體會到了「雜訊」帶來的影響:你不知道問題出在哪裡,為什麼無法理解一段內容?

在我寫完那篇文章後,我體會到一件事情。

我們之所以會看不懂別人的文章,是因為雜訊太多了。

我的例子

要實作一個陽春版的模組機制,只需要下面的程式碼就可以達成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function utilis(module) {
function calculate(n) {
return ((n * 100 + 20 - 4)) % 10 + 3
}
module.exports = {
cal: calculate,
name: 'hello'
}
}
function main(require) {
// './utils' 只是示意用,與實作內容無關
var obj = require('./utils')
console.log(obj.cal(30)) // 9
console.log(obj.name) // hello
}


var m = {}
utilis(m) // 輸出模組


var r = function() {
return m.exports
}
main(r) // 引入模組

但是我一開始卻沒有辦法一眼就看出來這段程式碼實際上做了什麼,也不理解為什麼這樣就可以實現模組機制。

直到我真正開始寫文章後,試著自己一行一行把程式碼打出來,我才真正理解這段程式碼的意思;但更重要的是,我查覺到「為什麼一開始沒辦法理解這段程式碼」的原因。

人腦內建的快速計算功能

為什麼特別強調「一行一行把程式碼打出來」這個動作?

因為這是一個關鍵點,一個讓我發現自己原來不懂的地方是 物件被傳入 function 修改時的行為。

換句話說,其實只是一個小地方讓我沒辦法釐清整個程式碼的邏輯,但卻因為當時地我不知道問題是出在這裡,所以才一直到我開始實作後才真正理解問題的發生點。

你可能還是很疑惑我到底想表達什麼?

我想表達的是,寫字或敲鍵盤能夠讓我們更容易去理解一個概念,因為在寫每一個字的時候,我們能夠更聚焦每一個字想傳達的意思。

舉例來說,請你從下面的數字裡找出「最小的那一個」:

5、3、0、7、4、9

我相信你「一眼」就能看出是 0

但是現在如果問你,其他的數字是什麼,你能回答出來嗎?

你可能也意識到了,除非你刻意的放慢速度,讓自己「一個字一個字」的去看,否則你很可能會忽略掉其他的數字。

現在讓你再做一次。不過這一次要改用寫的,或者是用打的來分析每個數字的大小:

2、3、6、7、4、1

現在的你應該就能隱約記得每一個數字是多少了。

其實只是從這個過程中體會到,在我們的生活中,有多少事情是像這樣子被我們人腦內建的「快速計算」給忽略掉,而我們自己都沒有查覺到。

我想把這件事情給記錄下來,也想提醒自己,遇到真的不太懂的事情時,其實可以自己試著把雜訊給剔除,把你已經知道的部分給剔除,專注在你真正想理解的地方。

對我而言,打字或是寫下來就是一種最專注也最不會被雜訊給干擾的方式。

第一次做 Unit test 實作模組機制
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×