感谢CMU,唤起了我的遥远的理科生回忆。短短一年多,在CS领域学到了一点点皮毛,前路漫漫,贵在坚持。此间收获最大的不是知识、单纯的技能,而是思维方式的转变,终生学习能力的养成。因此,想要记录一些心得体会。其实很简单,主要就是两点 - 工程思维, 自我深度思考。
一, 工程思维。 数学、物理思维都属于理论思维,一个表达式,充满假设,简洁而理想主义。但是工程思维是现实主义的,比如首先就该考虑各种假设、条件不成立的情况下怎么办,需要考虑各种边界的可能并给出解决方案。开发过程中, 从开发平台、环境,软件版本,系统兼容性等等方面,都可能存在意想不到的偏差,而这些在理想情况下都是不存在的。你得在实践中,具体问题和细节中去一一解决这些问题。又比如在做题的过程中,也常常需要用“if”封装好各种可能报错的极端情况。这让我想起了以前从事的工作 - 研究咨询,只需嘴上说说,手上写写,这样其实对任何一个问题都不会有深入的理解。工程思维可以锻炼人现实思考、全面思考的能力,以及韧性,耐心,细致,冷静。“talk is cheap, show me the code”的精髓就在于,你讲的再多,这东西跑不起来、有漏洞、不完善有什么用?比如现实生活中很多喜欢高谈阔论的人,究竟那些事和他们之间有什么关系吗?分清说和做的分量,是干好具体事情的基础。
二、深度思考。在我没有来到CMU的时候,如果我对一个东西感兴趣并去自学,我进行的常常是浅层次思考。比如把一本书随便翻上几页,网课大概浏览一下,大意知道即可,大概是一种陶渊明“不求甚解”的风格。甚至在工作中,对于一些自己不懂但又重要的问题,我花了时间,自以为思考了,但现在看来其实没有。怎么算深度思考呢,我认为应当满足一下几点:
1. 学习一手材料。比如对比特币区块链感兴趣,你是选择看公众号小编们发的文章、趋势分析,还是去读比特币创始人写的论文? 对代码不理解,你是网上去搜(即使真的是网上搜也别用百度),还是看开发文档? 看似越麻烦的选择,其实收获会更大。
2. 保持专注。 如果现在确定要学习某样东西,设个目标,在这段时间里尽力去完成。这个过程中学会忍受枯燥是很重要的,有些东西要在脑子里反反复复的过来过去,直至滚瓜烂熟,从量变到质变。这个过程也尽量不要被打断,保持专注,否则三心二意事半功倍。
3. 反复练习。如果想要思考的更加深入,行动要更上。
4. 积累基础知识。对于一些晦涩的领域,为什么理解起来有难度,为什么想要看二三四五手材料呢? 因为一手的看不懂,缺乏基础知识。如果这样,应当先从基础学起; 时间不允许,也尽量保持思维不要懒惰,选择优质资料。
5. 独立思考。形成自己的系统性思想后再想着去输出。
网友评论