那些编程高手是如何炼成的?( 二 )


通过这个例子 , 我其实想说明两点:
1、不具备底层知识 , 你的视野根本就触达不到底层的东西 , 思维以及能力永远只能停留在应用层面 , 能解决的问题有限 。 2、读源码、学习各种原理 , 所有这些都只是学习和巩固知识的过程 , 真正体现编程水平的是实际解决问题的能力 , 因此如何将知识变成有效的经验?这个才是关键 , 做不到要么是实践不够 , 要么是压根没研究明白 。
然后 , 我们再回到问题身上:究竟如何才能做到底层知识和实际工作的衔接呢?如果衔接不好 , 那问题出在哪个环节?
大家可以先思考下:过往工作中那些对你编程能力帮助很大的经历 , 你认为你能获得提升最关键的因素是什么?是底层知识的储备吗?细想一下一定不是 , 而是发现问题的能力 。 (注意:我说的是最关键的因素 , 并不是否认底层知识的储备不重要)
大家可以去观察一个工作中很常见的现象:同一个问题你能看到哪一层?而编程高手又能看到哪一层?谁能更快地贴近问题的本质?谁又能衍生出一系列的问题?这其实就是「发现问题」的能力体现 。 只有当你意识到它是一个值得深挖的问题时 , 才会有一层一层的思考 , 一层一层的分析 。
那应该如何提高这方面的能力呢?其实就是思考力的提升过程 , 除了观察和刻意练习 , 我想不出更好的建议 。 多看高手是怎么做的?遇到问题时自己多问几个为什么?多反思自己的思路是否正确?日积月累水平自然会提高 。 当你具备了发现问题的能力 , 就相当于给知识和经验之间架起了一座桥梁 , 真正做到相辅相成以及互相驱动 。
3.成为“编程高手”的几点建议
编程作为一门实践性的学科 , 多动手解决问题是最基本的要求了 , 解决问题越多、越难 , 能力提升越快 。 而在这个过程中 , 如果有知识输入(底层知识的储备) , 还有思考的加成(发现问题的能力) , 编程水平的提升会更加迅速 。
我带过的团队里面 , 还有一类人总说自己技术进步很慢 , 工作没有挑战 。 但是当团队遇到一个技术难题时 , 他根本没有意愿去做深入了解 , 嘴上说热爱技术、渴望成长 , 但是却看不到行动 , 这种人是永远成为不了编程高手的 。
【那些编程高手是如何炼成的?】真正的热爱来源于行动上的投入 , 不是找借口 , 不是追求舒服 , 这是很重要的一个区别 。
编程高手是如何练成的?这样看来 , 它其实是一个体力、脑力、心力的修仙之路 。