程序員,不要急於學習編程語言,先學會如何解決問題
作者 | Nathan Slaughter
譯者 | 薛命燈
這是一篇關於虛度青春的短篇回憶錄。
多年來,我一直在學習編程語言,然後用它們來構建更好的投資工具。在建立預測和風險管理模型之餘,編程方面的工作堆積如山。
但實際上,我並沒有花太多時間在真正需要解決的問題上。
我把大部分注意力放在了演算法和編程語言上。多年來,我每周都要花幾個小時學習計算機基礎知識,卻沒有花太多時間應用這些知識來讓現實世界變得更美好。
而我的一個朋友卻基於微軟 Office 開發出了一個完整的產品,它使用 Access 保存數據,使用 Excel 分析數據,然後使用 Word 輸出報告。
當他把產品賣給一家大公司時,我為他感到高興,同時也有些嫉妒。我比他更了解編程,但卻沒能推出可以解決實際問題的產品。
實際上,為什麼要開發產品比如何開發產品更加重要。我花時間學習如何編程,而我的朋友把時間花在解決實際的問題上。
他從使用非常簡單的工具開始,一步一步往前走,直到找到一個完整的解決方案。在這個過程中,他自學了如何將其他工具整合在一起。這仍然需要做大量的工作,但他做到了,儘管資源非常有限。
1
神奇之處在於「為什麼」
後來,我加入了一家初創公司,並最終汲取了這個教訓。
一個團隊能否取得重大突破從來都不取決於如何使用代碼完成某些功能,而在於知道要做什麼,以及為什麼要這樣做。
在創造性的旅程中,沒有什麼比在不必要的東西上投入太多更令人心碎的了。
如果你想要創造出一些有用的東西,首先要知道「為什麼」要這樣做。從一開始你就要問自己:誰會用這些東西,它們將如何改善他們的生活?
2
專註於解決真正的問題可以加快學習速度
當你專註於真正需要解決的問題時,大腦中的信息留存率會更高。我們的大腦會優先考慮需要保存的信息,並忽略大部分其他東西。這樣可以節約能量,但不利於學習。
知道自己為什麼要學習,就相當於觸發大腦要優先考慮新信息。
追求創造性的活動會讓你學得更快,而這並不要求你一定要學會一門編程語言。
3
下面這些事情比學習編程語言更重要
找到真正的問題。
把問題寫下來,它現在是什麼樣的,它應該是什麼樣的,並儘可能詳細。例如,如果你的問題與使用 Office 文件格式保存數據有關,那麼就詳細說明這方面的問題,這樣有助於找到最好的解決方案。
當你對問題本身以及你想如何解決問題有了很好的描述,你就已經成功了一半。
然後你要努力去澄清問題,朝著可以找到解決方案的方向邁進。
如果你在這個時候糾結於編程語言,那麼你可能不是一個好程序員。你要不斷培養描述問題和解決方案的能力。
當你對問題有了很好的描述,並且確切地知道想要什麼,然後再去學習一門編程語言來解決這個問題就變得很容易了。
英文原文
https://medium.com/datadriveninvestor/dont-learn-a-programming-language-solve-a-problem-instead-654f6bbfb573
4
關於編程語言的 One more thing
※對不起,我用代碼評審毀了程序員的生活
※連開工紅包都沒有的公司,不配擁有你!
TAG:InfoQ |