1 洛克定律
确定目标,专注行动!
这条定律,我相信做过几年的程序员感受都会特别深!
除非你写的代码没什么难度,否则思考 或者说设计 才是程序员最经常要做的事,只有想清楚了,动手写代码才会顺畅! 不然你会发现自己经常在写一会->想一会->改一会 中循环往复,浪费不少时间和精力。
我自己总结了一下程序员的几个阶段:
-
初期: 以学习技术为主,写代码过程中花费时间最多的是:
很多语法不懂要查、被一些低级错误耽误,调试很久可能发现只是单词拼错、完全没思路,只能疯狂搜索或者求助前辈。
-
中期: 常用技术已经熟悉,业务也逐渐深入,花费时间最多的是:
某些代码因为经常copy,虽然已经写了几十次了,每次用的时候总是想不起来,还是要经常查。
花更多的时间思考业务逻辑、思考代码结构。
-
后期: 我也还没达到,只能自己脑补一下:
代码敲的更少了,主要负责项目管理,系统设计,系统架构。
百科全书级的人物,能够解决绝大部分问题,当新人向你询问自己也曾犯过的错误时,也会感慨:时光不再了啊!!
2 相关定律
条条大路通罗马,万事万物皆有联系!
不知道你们是不是跟我曾经一样,有某一段时期,痴迷于各种技术栈。
我之前在刚接触前端,学习vue
的时候,对前端充满了兴趣,不仅要会element-ui
,也要会ant-design
,不管是less
,scss
我都想要会,各种实用的工具库我也要会,vue2
还不过瘾,vue3
也得会,还看了react
,nodejs
,express
,nuxt
,next
,ts
,webpack
,vite
,rollup
......
花了不少时间看了各种技术栈的文档,也实际动手搞了点小东西。
不过说真的,收获其实不多,即使当时感觉收获很多知识,但是因为这些额外的知识在工作中不常使用,过一段时间就忘了差不多了。
后来我是想通了,与其这样囫囵吞枣,不如深入现有经常接触的知识,我就不信了,如果我把vue2彻底搞懂了,学vue3还不是轻轻松松,学react应该也只是分分钟的事。
于是我就从各种源码开始看起,从axios到vuex,vue-router,vue2的源码也看了一部分了,不过最近工作忙,已经停了几周没看了,但是收获还是很多的,确实更让我坚信了:
条条大路通罗马!!
感兴趣的小伙伴也可以进入我的主页,里面有不少源码的阅读解析。
3 奥卡姆剃刀定律
把握关键,化繁为简
不知不觉,已经从当初的菜鸟逐渐变成现在的老鸟,工作也从繁复的coding中挣脱出来了一些些。
现在越来越觉得设计才是软件开发的精髓!
而一个好的设计,一定不能太过复杂!
听一位领导讲过:公司推广过不少,不乏设计精细,十分深入业务理解的系统,但是真正能够推广让用户爱用的系统,一定不能太复杂,必要的时候也需要为用户的便利做出一些牺牲。
4 墨菲定律
如果事情有变坏的可能,不管这种可能性有多小,它总会发生。
不知道是谁瞎传的,我一直以为墨菲定律说的是:你越害怕的事情,越容易发生!
直到我看完墨菲定律才发现自己真的是被这句话给耽误了好久。
墨菲定律对于程序员来说,我觉得意义是很重大的。
因为如果代码存在bug,那么就一点有变坏的可能,不管这种可能性有多小,它总会发生!
也就是说,只要存在bug,它早晚都是会被触发的!!
不知道有多少人跟我曾经一样,抱着侥幸的心理,有时候即使知道某段代码存在bug,但是因为触发条件十分苛刻,就不去管它!!
只是我的心里还是会隐隐担心着某天会不会被人发现。
作为程序员,一定要保持代码的严谨性,对自己的代码负责。
任何人都无法保证自己不出错。
但是至少,如果已经有我们知道的问题,不要因为麻烦,不要因为侥幸,而去逃避它!
或许你们不相信,当我抱着这种消除自己所有已知隐患的态度写代码之后,反而觉得整个人都轻松了不少。
脑袋里没有那么多要惦记的事情,事情做完就真的等于事情做完了!如果真的出现自己也没想到的问题,那我也已经尽力了,再解决就是了。
5 酝酿效应
灵感来自偶然!
不知道你们是否也有遇到过这样的场景:
一整天都被某个问题困扰,百思不得其解!!
回去睡一觉,第二天再一想这个问题,我去,答案怎么就直接有了!!
那我昨天为什么会困扰这么久呢?
这其实就跟酝酿效应
有关系!
当我们百思不得其解的时候,往往代表着脑袋的思考方向就进入了死胡同,这时候再怎么往里投入时间,投入精力都进展甚微。
而当我们放下这件事,去做其他事情的时候,我们的潜意识并没有忘记这件事,还是在帮助我们思考,只不过不是继续往死胡同里走了,用一个词来形容,那就是酝酿。
所以当我们回过头再思考的时候,常常发现有心栽花花不开,无心插柳柳成荫 、柳暗花明又一村这样的现象!
所以如果你们看到程序员老哥们正在喝茶发呆,一定要小心,他们一定不是表面看过去的这么简单,他们的脑海可能正在疯狂酝酿着一段绝佳的代码!!