Open AlexiaChen opened 4 years ago
这里特别是对于工作3-5年的程序员
做了区块链以后,才算真正意义上通过好奇(需求驱动),去阅读了世界上顶尖开源项目的源码,比如BTC的源码。会好奇,别人是怎么做的,以前的读源码漫无目的,枯燥无味,所以还是跟做英语阅读理解一样,首先要解决问题,而解决问题最快的办法就是带着疑问,问题,去看比你牛逼无数倍的人到底是怎么做的。这样阅读源码的效率就高多了,也有收获。
但是其中也有点问题就是,源码告诉了你How,就是它们怎么解决的,但是大部分你不会理解How的背后Why是怎样的,就是他们这些牛人是怎样随着项目发展演进,设计上有什么样的取舍。看似笨拙的方法,到底为什么这样设计?如果能看到详细的内部设计文档,讨论(mailing list)会更好些。所以读issue和Pull Request,研究社区各类牛人的讨论过程,代码评审,在某种程度上又比读源码本身更加重要。
所以,最终的方法是,平时follow社区的讨论issue,PR,这个优先级最高,掌握取舍,高层次的设计是最好的,这是理解Why的最好办法。其次才是源码细节, 也就是How。
之前在知乎写过一个回答 https://www.zhihu.com/question/372800830/answer/1036416740
里面提到我的前Boss,非常厉害的人物,擅长在不短的时间内写复杂系统,包括区块链,BPMN引擎,编解码器。而且复杂度已经远远超过玩具,我请教了他,他说关键还是要看代码,看多了,有体会了,自然就能写比较成品的复杂系统了。
以下摘录一些牛人或非牛人的有价值的语录或者方法论:
再给些知乎上的相关问题:
这里特别是对于工作3-5年的程序员
做了区块链以后,才算真正意义上通过好奇(需求驱动),去阅读了世界上顶尖开源项目的源码,比如BTC的源码。会好奇,别人是怎么做的,以前的读源码漫无目的,枯燥无味,所以还是跟做英语阅读理解一样,首先要解决问题,而解决问题最快的办法就是带着疑问,问题,去看比你牛逼无数倍的人到底是怎么做的。这样阅读源码的效率就高多了,也有收获。
但是其中也有点问题就是,源码告诉了你How,就是它们怎么解决的,但是大部分你不会理解How的背后Why是怎样的,就是他们这些牛人是怎样随着项目发展演进,设计上有什么样的取舍。看似笨拙的方法,到底为什么这样设计?如果能看到详细的内部设计文档,讨论(mailing list)会更好些。所以读issue和Pull Request,研究社区各类牛人的讨论过程,代码评审,在某种程度上又比读源码本身更加重要。
所以,最终的方法是,平时follow社区的讨论issue,PR,这个优先级最高,掌握取舍,高层次的设计是最好的,这是理解Why的最好办法。其次才是源码细节, 也就是How。
之前在知乎写过一个回答 https://www.zhihu.com/question/372800830/answer/1036416740
里面提到我的前Boss,非常厉害的人物,擅长在不短的时间内写复杂系统,包括区块链,BPMN引擎,编解码器。而且复杂度已经远远超过玩具,我请教了他,他说关键还是要看代码,看多了,有体会了,自然就能写比较成品的复杂系统了。
以下摘录一些牛人或非牛人的有价值的语录或者方法论:
再给些知乎上的相关问题: