这是一篇关于虚度青春的短篇回忆录。
多年来,我一直在学习编程语言,然后用它们来构建更好的投资工具。在建立预测和风险管理模型之余,编程方面的工作堆积如山。
但实际上,我并没有花太多时间在真正需要解决的问题上。
我把大部分注意力放在了算法和编程语言上。多年来,我每周都要花几个小时学习计算机基础知识,却没有花太多时间应用这些知识来让现实世界变得更美好。
而我的一个朋友却基于微软 Office 开发出了一个完整的产品,它使用 Access 保存数据,使用 Excel 分析数据,然后使用 Word 输出报告。
当他把产品卖给一家大公司时,我为他感到高兴,同时也有些嫉妒。我比他更了解编程,但却没能推出可以解决实际问题的产品。
实际上,为什么要开发产品比如何开发产品更加重要。我花时间学习如何编程,而我的朋友把时间花在解决实际的问题上。
他从使用非常简单的工具开始,一步一步往前走,直到找到一个完整的解决方案。在这个过程中,他自学了如何将其他工具整合在一起。这仍然需要做大量的工作,但他做到了,尽管资源非常有限。
1 神奇之处在于“为什么”
后来,我加入了一家初创公司,并最终汲取了这个教训。
一个团队能否取得重大突破从来都不取决于如何使用代码完成某些功能,而在于知道要做什么,以及为什么要这样做。
在创造性的旅程中,没有什么比在不必要的东西上投入太多更令人心碎的了。
如果你想要创造出一些有用的东西,首先要知道“为什么”要这样做。从一开始你就要问自己:谁会用这些东西,它们将如何改善他们的生活?
2 专注于解决真正的问题可以加快学习速度
当你专注于真正需要解决的问题时,大脑中的信息留存率会更高。我们的大脑会优先考虑需要保存的信息,并忽略大部分其他东西。这样可以节约能量,但不利于学习。
知道自己为什么要学习,就相当于触发大脑要优先考虑新信息。
追求创造性的活动会让你学得更快,而这并不要求你一定要学会一门编程语言。
3 下面这些事情比学习编程语言更重要
找到真正的问题。
把问题写下来,它现在是什么样的,它应该是什么样的,并尽可能详细。例如,如果你的问题与使用 Office 文件格式保存数据有关,那么就详细说明这方面的问题,这样有助于找到最好的解决方案。
当你对问题本身以及你想如何解决问题有了很好的描述,你就已经成功了一半。
然后你要努力去澄清问题,朝着可以找到解决方案的方向迈进。
如果你在这个时候纠结于编程语言,那么你可能不是一个好程序员。你要不断培养描述问题和解决方案的能力。
当你对问题有了很好的描述,并且确切地知道想要什么,然后再去学习一门编程语言来解决这个问题就变得很容易了。
英文原文
4 关于编程语言的 One more thing
Java
从 1995 年第一个版本发布到现在,Java 语言已经在跌宕起伏中走过了 22 年,最新的 Java 版本也已经迭代到 Java 9。当年 Java 语言的跨平台优势如今看来也只不过是家常小菜,Go、Rust 等语言横空出世,进一步拓宽了编程语言的边界。当年发明 Java 语言的 Sun 公司早已被 Oracle 收购,Oracle 现在也正处于水深火热的云计算浪潮当中,甚至连 Java 之父 James Gosling 也加入了当今世界最大的云计算公司 AWS。
Java 语言发展的这 20 年也正是全球互联网迅猛发展的 20 年,Java 语言同时也见证了电商浪潮、移动互联网浪潮、大数据浪潮、云计算浪潮,所以在现今各大互联网公司身上都能看到 Java 的身影。TIOBE 的语言排行榜显示,自 2016 年初 Java 语言就出现了明显的下颓趋势,开发者社区也出现了一些唱衰 Java 语言的论调,编者心中也有些许疑问:Java 老矣,尚能『饭』否?基于这样的背景,InfoQ 邀请到了 Java 资深专家张建锋来为大家解读 Java 语言的发展现状以及未来。
戳标题即可阅读:Java 老矣,尚能饭否?
Python
Stack Overflow 最近的调查显示,Python 已经成了发展最快的主流编程语言,也是 Stack Overflow 上来自高收入国家的访问中,点击量最高的标签。
为什么 Python 发展得这么快?Python 的应用范围非常广,从网站开发到数据科学,再到 DevOps,到处都可以看到它的身影。所以值得认真研究一下 Python 最近到底是在哪些具体的方面应用得更广了。本文会从另一个角度解读 Stack Overflow 的数据,理解具体是哪些方面的 Python 应用在增长,以及在什么样的公司和组织中 Python 用得最多。
戳标题即可阅读:为什么 Python 发展得如此之快?
Go
今日头条当前后端服务超过 80% 的流量是跑在 Go 构建的服务上。微服务数量超过 100 个,高峰 QPS 超过 700 万,日处理请求量超过 3000 亿,是业内最大规模的 Go 应用。
在 2015 年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。今日头条为何转向 Go 语言,又是如何利用 Go 做技术搭建的?
戳标题即可阅读:
PHP
新浪微博在 2016 年 Q2 季度公布月活跃用户(MAU)较上年同期增长 33%,至 2.82 亿;日活跃用户(DAU)较上年同期增长 36%,至 1.26 亿,总注册用户达 8 亿多。PC 主站作为重要的流量入口,承载部分用户访问和流量落地,部分服务(如:头条文章)承担全网所有流量。在这样的情况下,PC 主站升级为 PHP 7,有哪些技术细节可以分享?