深圳Web前端学习:前端工程师到底要不要学习算法知识?

深圳Web前端学习:前端工程师到底要不要学习算法知识?

我从面试和日常工作两个方面来讨论这个问题

先说面试.
有种说法叫,面试造火箭,工作拧螺丝.抛开面试官想"技术pk"的可能性,我对这个的理解是,面试官想尽可能了解你编程能力的极限.
所以面试中有个一两道算法题不奇怪.

我们不需要对算法有畏惧的心理.
一般正常的算法题,面试官也不会出得非常难,会被控制在正常难度.

还有一点就是,面试的时候,面试官往往更加欣赏你对题目的解决思路,用伪代码来阐述解题的想法,也是一个很好的方式.

再说工作.
具体一点,我们是来讲算法在前端工作中应用.
web前端工作中,确实没有太多算法上的需求.
以vue等著名框架的虚拟dom的diff算法来讲,框架已经被很好的实现了,你在使用框架的时候是不会涉及到具体的diff算法.
但是理解算法,可以让你更好的理解框架,从而也能更好的使用框架,提高页面的性能.

再宽泛的来讲算法,很多特殊的需求也会需要你来设计一个算法.
比如某个需求有很多个异步请求要发送给服务器,全部完成之后,可以继续下一件事情.
可能很多人要说,这个很简单,一个Promise.all就可以解决
是的,没有错

但是请你考虑下面稍有变化的情况,因为服务器的压力问题,限制同一个客户端只能在同一时间只能发送2个异步请求,所以你就必须对Promise.all做出适当的修改
在这样的情况下,你就需要设计到一套算法去高效完成它

再举个例子,很多人在web前端之后转向了H5游戏
假设现在是个战棋游戏,里面涉及到寻路算法,那么也需要你对算法有了解
或许,你说可以从网上找现成的寻路算法.
但是因为游戏需求的多变,可能你所在公司的游戏对于道路有着不同的设定,这导致网上的算法不能直接套用,这就需要你的理解已经进一步的修改
所以这些都是现实的问题

最后,算法是编程的"里子",不管你是前端还是后端,作为一名计算机工程师,具备一定的算法能力,是一种基本要求.

你可能感兴趣的:(千锋深圳Web前端学习)