假设所有的前端程序员的技术水平都是0,二三年之后必然会有一些人水平拨尖。那么是什么造成了他们之间的区别呢?就学习态度来讲,好像许多水平平庸的程序员,他们也是经常学习的呀。
直白的讲,学习这件事是很让人望而生畏的。许多人满足于明白了,会用了,了解了,知道了,然后就止步于此。为什么呢?因为再往下继续深入研究,就会很累。
反正只是打工而已,挣工资罢了,为什么要让自己那么辛苦呢?所以,许多人不愿意去看源码。不愿意去看这你平时用的那些工具框架的结构和思想。至于github上的开源资源,更是从来不看。
心理学上有一个词叫舒适区,走出心理舒适区自然就会不舒适。所以很多人在一家公司待久了,待习惯了,待舒服了之后,就不愿意再换地方。因为再换地方会让他不舒服。就这样,慢慢的把自己“圈养”了。
另一个问题在于很多人不太愿意找到代码发生bug的真正的原因,只是想着,“喔,这么写不对,那么就那样写吧,然后就对?ok,那就这样吧。”
至于为什么出bug?为什么会这样?这种问题却从来不去思考。
他们不明白,代码这种东西从来不是一遍写成的。都是在反正的修改与迭代中慢慢完善,如何修改与迭代?就是调试。
调试与优化代码的能力,这个没有什么地方会教你。学习里更不会教。因为代码优化与迭代的基础之一,就是代码量达到一定程度。
至于学校为什么不教你调试与迭代代码,因为学校讲课是要备课的,在正式上课的时候的示例都是要求能够正常运行的。否则学生与领导会怀疑讲师的能力。
修改、优化、迭代你的代码,究竟有什么用?其实它的用于在于,锻炼你的逻辑思维能力,你会从一些bug或其它迹象上推断你的代码现在有什么问题?或是以后可能会出现什么问题,尽管它现在还没有出现。
慢慢的,这种思维方式会成为你的“工作方法论”。为什么很多人写js没有思路?因为他们没有形成自己的工作套路。
当你写完一个模块的时候,要思考一下,
你的代码在线上运行或是内部测试的时候,在面对大并发的时候,你的回调是不是会卡住?如果有定时器setInterval什么的,那么在使用完之后有没有及时清除它?这决定了你的栈是不是能够及时清空。
有没有可能,在别人的代码或数据出问题的时候,你的代码依然可以正常运行?或是出现相应情况的提示?这往小了说叫代码健壮性,往大了说叫不背黑锅。
你的代码在线上或线下,也就是在测试和部署的时候,是不是需要修改很多地方?
就是这些点点滴滴的地方,当它们积累到二三年以至更久之后,拉开了不同的前端开发之间的技术距离。