最近關於程式設計的一些反思

Juuda的世界發表於2015-03-29

關於技術大牛

很火的一般不是大牛。因為如果要很火,就需要時間去營銷。而營銷能力與技術能力是正交的,如果一個人把很多時間放在營銷上,就很難有時間放在技術提高上。不要因為他講一個你不懂的領域而認為他是大牛,一個住在沙漠裡的人聽到任何一個看過海的人的描述都可以令他興奮萬分,但如果別人告訴他駱駝有六隻腳,他肯定會嗤之以鼻。大牛對他熟悉的領域會說得很詳細,對他不熟悉的領域也會問正確的問題。

關於學習新知識

學習一件新技能最好需要深度的理解。但是在現在各種框架各種類庫都需要接觸的時代。想要真正的理解所有的庫是很難做到的。假設你在學習 python,如果說真正理解 print 語句,就要知道 python 的語法解析器,C語言的呼叫,然後是 IO 系統。這對大多數人來說是不可能的,大多數人都是靠記憶的。另一方面,如果學習 python 時候需要做 socket 請求,而你對 java 的 socket 實現很熟悉,也會很快得學會 python 的 socket 使用。總結下來,有兩種快捷學習新知識的模式,一是有很強的記憶力,二是對於基本知識的瞭解很深入。

關於注意力

如果做的是機械的事情,只要依靠人的慣性就行了。如果做的是創造性的勞動,就需要很強的注意力。而注意力是一種易耗品,在一個問題上糾結時間太長注意力就會低下,導致效率低且更容易犯錯誤。這個時候可以休息以下。讓思維冷靜一下。提高注意力可以在短時間內做更多的事情,這樣就有時間生活而不只是工作。

關於反饋

技術交流中,別人不反對你,不代表認同你,也許知識懶得跟你講。你錯了,別人不一定跟你講,可能只是不好意思打擊你,所有獲得別人的真正想法很重要。

關於反思

應該經常問自己做當前事情的意義是什麼。當前做這件事情的意義是什麼。這樣做有兩個好處,一是明白意義後更願意去做。二是如果可以及時發現錯誤,然後改正。

關於大局觀

解決一個問題,首先應該搞清楚你有哪些資源,有哪些解決方法,預估各種解決方法的時間。而不是立即實施想到的第一個方法。就像廣度搜尋雨與深度搜尋的關係。如果只用一種方法做,效率可能會很慢。如果一開始的直覺是錯誤的,會讓你解決方法越來越遠。

相關文章