工作中有必要去看算法类型的书吗
像大多数普通程序员一样,我是一名转行两年左右非计算机专业前端开发程序员,之前也是十分不解与痛恨为什么要有算法面试,但在日常开发中我渐渐感悟到为什么大厂都喜欢在面试第一关为什么会去考察算法能力。因为算法确实十分重要!!!尤其是在工作了这么长时间,也越觉得算法确实有必要去加强一下。
我和大多数初级前端程序员一样,都会有一个疑问,为什么我们前端工程师也要去卷算法,目前市面上所有的算法书基本没有JavaScript版本的,学好算法对我们前端日常的页面开发有用?难道是有什么大病。后来越来越发现是自己天真了,日常开发过程中,拥有算法的功底,确实可以让自己在各种需求开发中变得游刃有余,而且可以让处理数据的速度得到更好的优化。既减少了自己的开发时间,又写出了让其他小伙伴崇拜的代码,岂不很爽。
说起算法的学习,相信大多数的前端同学来说都是懵逼的状态,网络上很多大佬都说没事多看看书,书上的内容基本都是由浅入深,看书会,让自己有一个比较好的知识体系。我一听,有道理!随即买了某位大佬推荐的《算法四》这本书,书确实是好书,好家伙,全用java写的。成,既然买都买了,那就抓只头皮看吧。看了不知几天突然eom了,我适合程序员这个职业吗?为什么感觉书写的这么好,而我看了这么久能力一点也没有提升。再看看吧?又看了几天,拜拜了您勒,吃灰去吧。我陷入了深深的思考之中?我问自己为什么要学习算法?前端需要算法的场景都有哪些?怎么学习算法才会更高效一些不会这么枯燥乏味?纯前端可以学算法,但是不要深入,也没必要深入?是不是前端学习算法可以换条路走?
为什么要学习算法:在算法学习中提升自己思考问题与解决问题的能力。
算法场景:排序、去重、或者vdom的diff算法…
换条路走:直接leetcode、牛客网刷题、小破站学习大佬们的一些处理算法问题的思路。
目前刷了有一百多道算法了吧,状态良好。再经过了代码的反复淬炼与提交,看到数据运行正确以及代码打败了多少对手都会使自己得到莫大的满足,心情好的时候再去看一看大佬是如何处理相关问题的,大佬之所以为大佬,嗯…。
算法路漫漫,前端学习算法不应该只注重如何快速的得到正确的答案,能够更加快速的得到我们想要的结果,这是我们的目标。而如修炼这种能力,最多且最快的方式还是要多去总结与锻炼自己的思考能力。争取再次刷到相关问题的时候脑中能够回想出相关解决思路,而不是语出惊人:这题我之前见过,擦,解题思路忘了。
好吧,说了这么多,我其实想要告诉和我在同一境界的同僚们,算法对于我们前端来说还是很重要的,它不仅仅能够让我们找到一个待遇还不错的公司,而且在学习算法的过程中能够将我们思考与处理问题的能力得到升华。
也借此以我的方案,给对算法没有好印象的前端童鞋们提供一个踩坑经历以及告诫:前端确实该学习一些算法,买书全看爱好。
注:学习算法前,一定要先卷一卷相关数据结构!