程序员,不要急于学习编程语言,先学会如何解决问题(转)
这是一篇关于虚度青春的短篇回忆录。
多年来,我一直在学习编程语言,然后用它们来构建更好的投资工具。在建立预测和风险管理模型之余,编程方面的工作堆积如山。
但实际上,我并没有花太多时间在真正需要解决的问题上。
我把大部分注意力放在了算法和编程语言上。多年来,我每周都要花几个小时学习计算机基础知识,却没有花太多时间应用这些知识来让现实世界变得更美好。
而我的一个朋友却基于微软 Office 开发出了一个完整的产品,它使用 Access 保存数据,使用 Excel 分析数据,然后使用 Word 输出报告。
当他把产品卖给一家大公司时,我为他感到高兴,同时也有些嫉妒。我比他更了解编程,但却没能推出可以解决实际问题的产品。
实际上,为什么要开发产品比如何开发产品更加重要。我花时间学习如何编程,而我的朋友把时间花在解决实际的问题上。
他从使用非常简单的工具开始,一步一步往前走,直到找到一个完整的解决方案。在这个过程中,他自学了如何将其他工具整合在一起。这仍然需要做大量的工作,但他做到了,尽管资源非常有限。
神奇之处在于“为什么”
后来,我加入了一家初创公司,并最终汲取了这个教训。
一个团队能否取得重大突破从来都不取决于如何使用代码完成某些功能,而在于知道要做什么,以及为什么要这样做。
在创造性的旅程中,没有什么比在不必要的东西上投入太多更令人心碎的了。
如果你想要创造出一些有用的东西,首先要知道“为什么”要这样做。从一开始你就要问自己:谁会用这些东西,它们将如何改善他们的生活?
专注于解决真正的问题可以加快学习速度
当你专注于真正需要解决的问题时,大脑中的信息留存率会更高。我们的大脑会优先考虑需要保存的信息,并忽略大部分其他东西。这样可以节约能量,但不利于学习。
知道自己为什么要学习,就相当于触发大脑要优先考虑新信息。
追求创造性的活动会让你学得更快,而这并不要求你一定要学会一门编程语言。
下面这些事情比学习编程语言更重要
找到真正的问题。
把问题写下来,它现在是什么样的,它应该是什么样的,并尽可能详细。例如,如果你的问题与使用 Office 文件格式保存数据有关,那么就详细说明这方面的问题,这样有助于找到最好的解决方案。
当你对问题本身以及你想如何解决问题有了很好的描述,你就已经成功了一半。
然后你要努力去澄清问题,朝着可以找到解决方案的方向迈进。
如果你在这个时候纠结于编程语言,那么你可能不是一个好程序员。你要不断培养描述问题和解决方案的能力。
当你对问题有了很好的描述,并且确切地知道想要什么,然后再去学习一门编程语言来解决这个问题就变得很容易了。
英文原文
https://medium.com/datadriveninvestor/dont-learn-a-programming-language-solve-a-problem-instead-654f6bbfb573
转自:https://www.infoq.cn/article/kRRB*FUJpRivjME95aCe