曾经,单片机的程序,总是左一块右一块的拷贝过来,俗话说得好,我们不生产代码,我们只是代码的搬运工。
那时候基本不写代码,每天做的就是烤来烤去。都是别人的东西。
我突然记得有一次想自己写一个小的移位算法的时候,发现自己根本不知道怎么写。。。无从入手。
知乎上看大神说,不要重复造轮子。
看上去这句话是说,能抄代码就抄,不要自己写。。。
但是真正的大神进阶之路应该是这样的:自己要写轮子,拆轮子,发现已有轮子的漏洞,分析不同轮子的好坏!
这样才能提高自己。
最近在做u-boot的优化,发现u-boot的版本太多,大家使用的硬件开发平台也很多。根本没有哪一篇文章告诉我,对于i.MX6dl的平台,u-boot2015.04的优化该从哪里做起。
看来看去,有引导着分析代码编译配置流程的、代码执行过程的,启动命令,环境变量怎么存储执行的。
甚至讲了优化的角度,就是减少不需要的启动命令和环境变量(代码体积方面)。
捋清代码的执行流程,发现占用时间多的步骤,定位他,查看做了什么,进行(启动时间)的优化
查看编译完之后,各个文件夹里面.o文件的体积大小,修改makefile文件进行裁剪,减小代码的体积。
但就是没有可以原原本本直接上手,跟拷贝一样的,相同的文章来指导我修改。
那这样就没有办法了,只能自己硬着头皮去做,按已知的道理去做。
最后我竟然成功了启动时间从800ms减少到350ms!!
我想这才是一个人成长的真正途径啊!不要把代码烤来烤去,按照已有的想法,自己动手去实现他。
你就会成长。
你能从打游戏中找到快感,每次登录游戏都那么兴奋。
从写代码中能找到相同的快感吗?
大神们肯定可以从代码中找到自己的乐趣所在,兴奋点所在,所以才推着他们积极的想实现自己的想法。