我从面试和日常工作两个方面来讨论这个问题
先说面试.
有种说法叫,面试造火箭,工作拧螺丝.抛开面试官想"技术pk"的可能性,我对这个的理解是,面试官想尽可能了解你编程能力的极限.
所以面试中有个一两道算法题不奇怪.
我
们不需要对算法有畏惧的心理.
一般正常的算法题,面试官也不会出得非常难,会被控制在正常难度.
还有一点就是,面试的时候,面试官往往更加欣赏你对题目的解决思路,用伪代码来阐述解题的想法,也是一个很好的方式.
再说工作.
具体一点,我们是来讲算法在前端工作中应用.
web前端工作中,确实没有太多算法上的需求.
以vue等著名框架的虚拟dom的diff算法来讲,框架已经被很好的实现了,你在使用框架的时候是不会涉及到具体的diff算法.
但是理解算法,可以让你更好的理解框架,从而也能更好的使用框架,提高页面的性能.再宽泛的来讲算法,很多特殊的需求也会需要你来设计一个算法.
比如某个需求有很多个异步请求要发送给服务器,全部完成之后,可以继续下一件事情.可能很多人要说,这个很简单,一个Promise.all就可以解决
是的,没有错
但是请你考虑下面稍有变化的情况,因为服务器的压力问题,限制同一个客户端只能在同一时间只能发送2个异步请求,所以你就必须对Promise.all做出适当的修改
在这样的情况下,你就需要设计到一套算法去高效完成它
再举个例子,很多人在web前端之后转向了H5游戏
假设现在是个战棋游戏,里面涉及到寻路算法,那么也需要你对算法有了解
或许,你说可以从网上找现成的寻路算法.
但是因为游戏需求的多变,可能你所在公司的游戏对于道路有着不同的设定,这导致网上的算法不能直接套用,这就需要你的理解已经进一步的修改
所以这些都是现实的问题
最后,算法是编程的"里子",不管你是前端还是后端,作为一名计算机工程师,具备一定的算法能力,是一种基本要求.
如何学好前端开发是关键:
前端技术每年都会不断更新,自学前端容易学不到最前沿的课程,学习前端开发建议大家还是要选择培训为好,推荐斑码教育,是一家专门做前端教育的学校,斑码教育是一家以就业为导向的前端培训学校,所学习的就是企业所需要的,培养企业最需要的前端工程师为企业理念,授课以实战课程为主,更多的学习大项目对以后工作有帮助,毕业后轻松就业!
一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度,所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。那么如何系统的学习企业实用的web前端技术呢,前端学习培训、视频教程、学习路线,可以给我留言或私信我,分享给大家前端学习资料。相信从中会受到启发,找到学习的方向和目标。如大家对前端还有不了解的问题,可以持续关注我。