2022年终随想
2022像一辆重坦,从一个一个人的心上压了过去。
回顾2022,能感受到自己有了更多的思考和提升,这也是我接下来要重点总结和展望的部分:
- 更强的解决问题的能力
- 更好的把控项目进度和时间的能力
- 更多的阅读和思考
1、从问题出发
不要去解决错误的问题。
概念的澄清:
- 本文的“问题”,特指软件工程师工作中所遇到的各种代码出错,俗称”Bug”,但本文的分析思路和方法具有一定的普适性,也可以作为解决其他领域问题的一个参考,仍值得一读。
- 到底问题是什么!对“问题”语义的清晰、明确、精准的描述,是后续一切工作的基石,所以这一步是极其有意义的。一旦对问题的定义出现偏差,则后续的一切工作努力都将付之东流。而对语义的精准定义,既能够帮助自己加深对问题的理解,也为后续寻找解决方案提供了强力的指导。无法清晰准确定义的问题,则无法解决。因为模糊的问题是个不倒翁,永远也击不倒它。所以,语义明晰是最重要的第一步,一定不能出现偏差。
问题的价值:
- 现状:问题的价值被大大地忽视了!
- 一切科学、技术的进步,都是由问题引发的,面对这些问题,人类总会好奇的问:Why? 对单个重大问题的思考和解决,在底层上快速且长足的推进着科学、技术的进步和发展。问题具有极大的价值和意义,而持续性的思考这些问题,就好比在岩石矿中寻宝,哪怕只解决一个,都是对全人类的重大贡献。要想培养最自己解决问题的能力,可以从别人遇到问题、定位问题、分析问题、试错与解决问题的思路中寻找灵感,得出自己解决问题的思路和技巧,然后不断精进自己独立解决问题的能力。关于问题的价值,需要展开的太多,故此处就不展开了,希望后续有时间专门写点。
第一性原理:
- 以问题为起点,思考,需要从最基本的概念出发,深入探寻问题表象背后的本质原因,通过对问题实质的深入思考,也才能够更好的解决问题。思考的过程就是寻找不同因素之间的因果关系,探寻问题中不同元素之间的关系。此过程需要大脑持续聚焦,只有持续思考基础、本质这样的问题,才能构建出清晰、直接的解决思路,从而解决问题。解决问题:
- 庖丁解牛拆解问题的过程,其实就是寻找解决方法的过程。当你把一个大问题拆解成几个小问题时,一方面提升了自己分析问题的能力,另一方面也提升了自己解决问题的能力。因为拆解出的小问题里面,必然有很多有现成的解决方案,只需要聚焦于几个零星的小问题即可。
- 分阶段定位问题不要想着一次性发现并定位问题。往往一个问题的产生是一个长长的链条,从起点到重点的运行时,输出未达到预期,则需要将这个长链分段,一个个去排除问题出现的环节,通过这样的验证,就能很快的定位到问题出现的地点,找到了事发地,那也就离找到问题出现的原因不远了。
- 寻找解决方法随着ChatGPT的问世,之前人们常说的“遇事不决问Google”估计不久后要改成“遇事不决ChatGPT”了。在前互联网时代,人们解决问题的途径相对单一:查阅图书资料或者当面请教他人,随着互联网的普及,通过互联网来寻找解决问题方法的可行性极大增加,随着Google搜索的横空出世,常人几乎99%的问题都可以通过互联网搜索的方法快速解决,再而后随着针对软件工程师的各种专业社区和论坛的崛起,有效信息的组织、归纳和提取变得越加简单高效。这极大提升了软件工程师的效率。现在仍是搜索为王的时代。搜索能力仍是解决问题的一个极重要组成部分,但即便是使用Google,不同人的能力也千差万别。所以快速、准确的查找到自己所需信息的能力也需要不断的锻炼和强化,可以多看高手如何解决问题,这样能够更快的提升自己的能力。ChatGPT似乎在预示这样一个未来:整合海量信息能力的未来。Google通过搜索来筛选信息,Google给你呈现的是一个信息的海洋,但你仍需亲身去淘宝,找到自己真正需要的东西;但ChatGPT则在揭示另一种未来,即:从问题到解决方案的完整信息处理管道。你也可以理解为,ChatGPT是Google的进化版。在信息匮乏、分散、不成体系的时代,Google降临,让一切信息变得有序、丰富、易得;而现在和未来,在信息极大丰富的时代,ChatGPT降临,带来了整合信息的能力。而具有莫大嘲讽的是,人类此前一直认为:只有人具有整合信息的能力。所以,作为个体的人,不断提升自己解决问题、整合信息的能力,将是个人的核心能力。
思路的清晰:
- 分析和解决问题的过程中,需要对问题所属领域有一个较为准确的预判,从预判中明确问题所在域,然后针对性进行搜索、分析,不算对照问题进行方法验证,从而逼近问题的实质、从而解决问题。这都依赖于清晰的分析思路,只有清晰的思路才能让你凌驾于问题的群山之上不至迷失,以更大的视野把握和解决问题,而非一叶障目、无法前进。在解决问题的过程中,需要清楚地知道自己是否在逼近问题,并不断归纳总结当下阶段已经解决的问题,及后续有待进一步解决的问题。分析思路清晰化的过程是解决问题最核心的部分,清晰则说明要寻找的方法已渐渐浮现,这时要不断梳理、提炼,解决问题的方法也就呼之欲出了。后续所要做的就是去验证这种方法的可行性。当然,在此阶段,也可以进一步发散,扩展出几种不同的解决思路,长期这样分析问题,将会带来巨大收益:解决问题的思路和方法越来越多、就不会困于单一思路导致效率低下乃至无法解决问题,或者该方法并不是更好的,而发散的多样化解决方案通过优劣对比,能够得出更好、更直接的解决方法。当然,时间成本和验证成本也是需要去权衡的重要因素。
- 草纸及PPT的启示我之前梳理思路时,常常会在草纸上画出来,而后再去做个PPT,通过这种方式把自己的思路进一步图像化、具体化,让大脑中的思路框架在图上展示出来,这样我就可以从全局上总览我的方案,像建筑师建楼之前先把图纸设计出来一样,这种方法也方便自己更快的发现问题、调整自己的思路。制作PPT时,我发现自己犯的一个错误,就是没能从思想和功能的本质性出发,而是直接将思路本身进行具体化,即:直接映射构建出了更具体的解决方案(各个模块很具体的实现方法),这样做存在的问题是:当别人看我的PPT上的解决方法时,所看到的东西和我自己大脑里所映射的图像其实是完全不同的两副图景,而我自己之前并没意识出来。这是我后续需要持续修正的一个问题。
2、人月神话
Frederick P. Brooks所著的《人月神话》给了我一颗银弹。
之前自己做项目,就像脚踩西瓜皮–滑到哪算哪,脑海里根本没有什么项目进度管理和时间节点把控的理念,而看了这本书才恍然大悟,原来个人对项目的把控维度可以提升到非常高的水准。也就是从那一刻起,我开始不断在自己的项目中实践,努力的把控研发的进度、不断校验预计需花费的时间,直到越来越熟练和精准。在开发项目进程中,自己也会定期的回顾和复盘,做到心中有数。
开始一个项目是很容易的,有了一个想法就是实践一下,但如果仅仅是这样,那项目成功的概率将非常低,这是我与公司其他组同时交流及自己组内发现的现象。
当提出的需求从起点就是错误或模糊时,后续所有的努力都会成为无用功。此处需进一步补充说明,需求一般指一个完整的技术解决方案或产品,当这个技术方法或产品没有经过严谨的思考和详细的群策时,就极容易走偏,从而误导技术人员后续的研发。即使前面的所有环节都没问题,后续执行研发的人员的能力将决定整个项目的成败,而这恰恰是很难去改变和提升的,一旦技术研发人员的能力不足,那即使有再好的产品设计,也很难取得成功,而这点恰恰是我在公司和组内所看到的:技术研究人员的能力严重不足,无法满足新技术的开发上种种问题。应当想办法提升研发人员的技术能力水平,如果仅靠他们的误打误撞、那就是刮彩票,很难创造出什么价值。
如何追逐新技术的浪潮?
不同的人和公司,需根据自身需求去追求不同的侧重点。对我这种个体及大部分的中小型公司来说,需要专注于新技术在自身产品上的可用性。从自身的问题出发,去寻求在新技术上的最佳解决方法,这样也才能更好的服务自身、产生直接的价值。在不同的技术上,也需要有取舍和衡量,比如模型的体积、所需算力的大小、后期部署的成本等,对于大型公司及专门的研发性组织来说,他们的预算及技术人才的储备,远飞中小公司可以比拟的,所以从个人及中小公司的角度来说,一定要时刻清晰准确的知晓自身的局限性和实际需求,可以具有适当的探索性,但业务本身要接地气、可量化、可实现。少且精,而非大而泛的铺摊子,人员本身就不足又被分散开,难以创造价值。
个体去学习和实践新技术,当然也需根据自己个人长远的技术规划及愿景而有所取舍,切不可狗熊掰玉米,既浪费了时间又没有真实提升自己的能力,切切要避免。学习,要系统而紧密,最好就是直接看最新的英文原版书(Z-lib是2022年的最大损失),关于如何获取最新的技术发展信息,没有比推特更好的信息分享平台了。做好各种领域的书签分类,定期进行归纳整理,从而做到厚积薄发。不断提升代码能力,潜台词的意思是:在项目开发中去实践和锤炼,尽量避免为了刷题而刷题。在实际中解决问题的过程中,提升自己的能力。
3、阅读和思考
时刻牢记:成长性。
何谓成长性?即:不断提升个人的技能、认知和好理念。这些皆无价之宝,需长久持续去思考和实践。丢失掉成长性的个体是无趣的、没有持续创造价值的能力。
阅读是一个极佳的提升认知和能力的途径,说是捷径也不为过,有长期阅读习惯的人更加乐于接受新事物,也能够在阅读中持续思考,从而站到巨人们的肩膀上,大观世界。可以说,阅读是最有价值的时间消遣行为了。至于思考,则是理念的冲突中的反思,换一个视角看世界,本身就很有趣,因为好奇是人类的天性使然。
为什么要去阅读?为何要对大千世界充满好奇?为什么要去思考?
我想,总有些人终生都在提出问题,并尝试去寻找答案,尽管有些问题可能永远也无法得到解答,但探寻的过程就是他的一生,像那做着布朗运动的小分子,命运随机的碰撞将我们不断地推向未知,但总有那些少数分子离开了群体,去到了更加遥远又陌生的世界。倘若立在群体中很有趣,那活成大部分人的样子似乎真的没有什么吸引力。去做那个离群的分子吧,让阅读与思考为你插上翅膀,仰望星空也飞向星空吧。
附录2022阅读书单:
1、Kindle书单
- 《贪婪的多巴胺》,丹尼尔•利柏曼,社科类
- 《大西洋移民:1607-1860》,马库斯•李•汉森,社科类
- 《网络、群体与市场》,大卫•伊斯利,社科类
- 《北海之心:阿姆斯特丹的光荣与哀伤》,黑尔特•马柯,社科类
- 《预知社会–群体行为的内在法则》,菲利普•鲍尔,社科类
- 《英国皇家学会:现代科学的起点》,阿德里安•泰尼斯伍德,社科类
- 《奥林匹亚:古代奥运会与体育精神的起源》,罗宾•沃特菲尔德,历史类
- 《爱的沟通:写给男士的科学恋爱指南》,约翰•戈特曼,社科类
- 《为什么:关于因果关系的新科学》,朱迪亚•波尔,社科类
- 《它们的性》,王大可,社科类
- 《只为一碗好面》,坂本一敏,美食类
- 《楼船铁马刘寄奴》,李硕,历史类
- 《你一生的故事》,特德•姜,科幻类
- 《时间机器》,赫伯特•乔治•威尔斯,科幻类
- 《银河帝国:基地》,艾萨克•阿西莫夫,科幻类
- 《在线》,王坚,技术类
- 《李光耀谈中国与世界》,格雷厄姆•艾列森,人物传记类
- 《资本的秘密:洛克菲勒自传》, 约翰•D•洛克菲勒,人物传记类
- 《岩田先生》,岩田聪,人物传记类
2、纸书
- 《城市的界限:创新是如何被扼杀的》,杰拉德•佛拉格,社科类
- 《药物简史》,德劳因•伯奇,社科类
- 《城市:重新发现市中心》,威廉•H•怀特,社科类
- 《东南亚史:危险而关键的十字路口》,安东尼•瑞德,社科类
- 《低欲望社会》,大前研一,社科类
- 《向心城市》,陆铭,社科类
- 《寻路者:阿拉伯科学的黄金时代》,吉姆•哈利利,社科类
- 《经济科学的最终基础》,路德维希•冯•米塞斯,经济学类
- 《企业家精神与中国经济》,张维迎,经济学类
- 《价格革命:一部全新的世界史》,大卫•费舍尔,经济学类
- 《法辩》,洪流,法律类
- 《剪商:殷周之变与华夏新生》,李硕,历史类
- 《有一种战犯叫参谋》,俞天任,历史类
- 《哈布斯堡的黄昏》,格雷格•金,历史类
- 《萨尔珀冬陶瓶》,奈杰尔·斯皮维,艺术类
- 《敦煌的光彩》,常书鸿,艺术类
- 《北宋的山水画世界》,齐玉,艺术类
- 《日本浮世绘纹样》,楠濑日年,艺术类
- 《希腊世界的艺术与考古》,理查德•西奥多•尼尔,艺术类
- 《如何解读古希腊陶瓶》,琼•R•默滕斯,艺术类
- 《李光耀观天下》,李光耀,人物传记类
- 《李光耀回忆录》,李光耀,人物传记类
- 《朱镕基传》,龙安志,人物传记类
- 《日本的凯恩斯:高桥是清传》,理查德•斯梅瑟斯特,人物传记类
- 《瓜迪奥拉:胜利的另一种道路》,吉列姆•巴拉格,人物传记类
3、技术类书籍
- 《Designing Machine Learning Systems》, Chip Huyen
- 《Flask Web Dev》,米格尔•格林贝格
- 《Machine Learning with PyTorch and Scikit-Learn》,Sebastian Raschka
- 《NoSQL Distilled》,Pramod J.Sadalage
- 《Software Engineering at Google》,Titus Winters
- 《Algorithms–Fourth Edition》,Thomas H.Cormen
- 《Natural Language Processing with Transformers》,Lewis Tunstall
- 《人月神话》,小弗雷德里克•布鲁克斯
- 《游戏设计梦工厂》,Tracy Fullerton