天有很多年輕人或經驗不足的程序員在論壇發(fā)帖、在Stack Exchange網站問:「為了成為優(yōu)秀的程序員,我需要擅長數學嗎?」,在我還年輕的時候,我也問自己同樣的問題。最近,我醉醺醺地、也是出于無聊,竟然Google了同樣問題,差不多有10多年沒有思考過這個問題了。在我瀏覽相關話題時,出現的答案模式被歸結為以下三個主要類別:
• 需要
• 不需要
• 看情況
貌似「需要」和「不需要」經常帶有個人主觀偏見,反而顯得有點兒草率的反應綜合征。因此我把精力更多地放在「看情況」的選項上,以確!感枰贡蛔C明為一種更加普通的觀點。我決定就這個問題寫點兒東西,考慮到這一點,我的醉醺醺的念頭開始興奮起來,這將促使我不會再忽視它。為了成為一名優(yōu)秀的程序員,一個人是否需要擅長數學的問題,可以從哲學和技術兩個方面解答。我打算堅持哲學層面。意識到它為什么對我重要,是因為一個更年輕的我,為了找到基于不成熟和懶惰而萌生的「不需要」選項,將要投入更多的時間。
首先,我們必須嘗試建立擅長數學的資格。一個人可以在既定數學原理或建模方程上,明白全局概念以適應情況,而另外一個人或許在數學的分析部分,比如長于計算、以及操作表達式和方程。在我看來,這兩種情況下,二者的平均數學能力都不錯。然而,在上面提到的兩個特征上有著高度競爭力的一個人,可能成為被視作「擅長」數學的最佳候選人(記得把鳳毛麟角的約翰·馮·諾伊曼歸入精通數學的類別)。就我目前在大學數學課上觀察到的,那些真正擅長數學的人們不屬于大多數。這使得答案更加復雜,「看情況」選項的有效性得到了增強。
在「Hello World」和C++的名字到處亂放、而不明白其所以然時,成為一名程序員的階段通常從掌握基礎的教程開始,例子通常包含了數學。設想一下,打算編程的某個人,將很可能自然而然地深究問題,開始懷疑數學在編程中能否發(fā)揮切實作用。
小編推薦閱讀