我这个人猜疑心非常重,对于网上寻到的代码,除非是自己写DEMO搞懂了其中的原理,否则用到自己的项目中后总感觉心里不踏实。而周围的同事总是说我太慢,只要运行没问题就可以了,哪有那么多时间搞懂这些?其实我很理解这些同事,项目工期的临近,导致没有多少时间可以花费在学习上,只能把学习的时间押后,而当前项目结束后立马又有新的项目接手。所以,“稍后学习”就如同“过两天我请你吃饭”了。
真正让我对“造轮子”感到诧异的,是因为一个女生的一句话。之前接触了一个本科毕业生,是个女生。她见我在写代码,随口问了一句我在干什么。我告诉她,我在写一个库。她紧接着就问我:“又在造轮子吗?”可能是说者无心,听者有意吧。我感到诧异,是因为对于一个刚刚本科毕业的学生,应该还是挺能静下心来的,但她对“造轮子”这件事情如此的排斥。
我们确实不应该把宝贵的时间和精力浪费在盲目的“造轮子”上。但如果在“造轮子”的过程中能够获得有价值的东西,那么我们就是应该这样做的。
很多程序猿可能都有这种感觉吧:翻看以前写的代码,不敢相信这是自己的作评,反问自己为什么要那么写?不是有更好的解决方案吗?当初我也是这种感觉,我的第一任老板告诉我,这说明我在成长,技能和能力在逐步提高。随着编码量的提升,我们的能力会比以前有所提高,而经验也随之有了积累。在编码的过程中会踩很多坑,但当我们认真彻底地了解并解决问题后,我们就不会那么容易地掉进同一个坑了。再往后,坑会躲着我们出现。
每次“造轮子”的时候,我们的关注点都会集中在一个或少数几个问题上来。我们会放更多的时间和精力在这几个问题上,同时我们也会尝试是否有更好的解决方案。对于很多坑,我们永远要掉进去一次。如果我们在“造轮子”的过程中把这个坑填了,那么在生产过程中再次入坑的概率就大大降低了。随着我们的经验积累,我们可能会具备一种预判能力:即将有一个坑出现需要躲避一下,或是对于这个坑如此做之后才能躲避。
正所谓“磨刀不误砍柴工”,“造轮子”、写DEMO,这种费事又不能直接提高生产效率的事情,看似无价值,但如果我们真正了解他们背后的意义,带给我们的将是无价的东西。
本文探讨了程序员在编码过程中遇到的问题及成长经历,强调了通过“造轮子”来深入理解技术的重要性,以及这种方式如何帮助程序员避免重复犯错。
727





