web 前端需不需要刷算法?

简介: 前端西瓜哥

大家好,我是坚持刷算法的前端西瓜哥。

最近我一如既往地打开了 Leetcode 官网打算找道算法题做做,然后看到了一个 “关于 web 前端需不需要刷算法” 的讨论,觉得可以说上一说我的看法。

我个人觉得 web 前端是非常有必要刷算法题的。这对我们的职业发展和个人成长是非常有帮助的。

个人职业发展

算法题能够提高自己写出高效率代码的能力。

大部分的 web 前端开发不少时间都是在写业务代码,要用到复杂算法的机会并不多,通常就是切切图还原视觉稿、实现下交互、和后端对下接口。

但我们不应该将自己局限在写业务代码,有时候我们还是要写非业务代码的。

或许你会说可以找别人写好的轮子,但并不是所有轮子都能满足我们的项目需求,尤其是细分领域,有些时候还是得自己动手造轮子。

很多算法问题其实都是脱胎于实际的场景的,对我们写出好的非业务代码有不小的借鉴意义。

如果你不想成为一名打杂,刷算法还是非常有必要的。

代码更健壮

刷算法有一些好处,你会注重代码的可读性,使用可读性更好的变量名,不使用多余的变量,让代码尽量简洁。

在刷题中,你不得不考虑算法的各种边界情况,以便应付一些极端的测试用例。这能提高你写的代码的健壮性,写出 bug 更少的代码。

此外你也能学到一些有意思的算法技巧。比如,Flood fill 算法可以处理油漆桶填充图形的问题,前缀和技巧可以通过缓存快速求一些中间范围的值。这对我们做方案有一定的帮助。

我们看一些优秀源码时,代码里面可能针对场景做了特殊的算法优化,如果你刷过算法题,就能更好地理解作者这样写的意图。

面试的基本要求

随着近些年前端开发从业人员越来越多,很多公司的产品越发切进细分市场、复杂度越来越高,考察算法能力基本上是中大型公司面试的标配了。

面试大公司时,你可能在每轮技术面试都会被要求解答至少一道 medium 难度的算法题,偶尔也会出现 hard 难度的题。算法不好被刷的概率会增大,除非你的项目经验表现足够优秀。

中小公司则好些,多数不考算法题,或者出一道很简单的算法题。

如果想让你的职业发展有更多的机会的话,建议你刷算法。

面试中能够做出所有的算法题,面试官不免会高看你一眼,有非常好的初步印象,提高你斩获 offer 的概率。

场景方案的思考

我们在开发中完成需求,经常会有多个解决方案,认真根据场景权衡不同方案的利弊,从中选择最合适的方案,是一名优秀的程序员非常重要的能力。

刷算法题,其实就是锻炼这个能力的过程。

不少的算法题的解法很多。有的解法空间复杂度高但时间复杂度低,有的时间复杂度高但空间复杂度低,有的实现起来很简单,有的性能更好但实现复杂容易写错。

虽然在刷算法题中,通常时间最快的算法是正解,但也有不少加了时间复杂度限制的题目,你需要分析不同的方案,找出对应场景最合适的解法。

我们在做题中,对每一个解法的利弊的分析,也是面试中重点考察的内容。

“与其刷算法题,还不如多做点项目”

也有人说:“与其刷算法题,还不如多做点项目”。其实这两点并不冲突,我们的业余时间不可能全部用来刷算法题。

刷题应该是我们能力提高的一环,而不是全部。我们除了刷算法题,还可以学习其他的知识,读书、学习理财知识、做点个人项目、像我这样写文章,都是可以的。

并不是说,我们刷了算法题,就没时间做其他事情了。

我是推荐每周完成 5 道算法题,周一到周五每天一道,哪天没完成,周六日再补上就好了。

像玩游戏一样刷算法题

首先我们不要想着算法能够速成,能够短时间就能大幅提高,它是一个慢慢积累的过程。

你应该像玩游戏一样,每天打一关,一点点地收获熟练度并提高难度。应该带着去通关一个有难度的游戏关卡去对待它。即使今天完不成,明天我们再尝试,不行就看攻略。

Leetcode 其实是一个非常好的提高自己算法能力的平台,因为它有覆盖度足够的测试用例,能让我们每次提交都能获得反馈。

相比自己工作中写出的代码,不知道部署到线上什么时候会导致事故,Leetcode 的反馈是即时的,对我们快速提高能力有非常大的帮助。

结尾

无论是什么程序员,我都建议他去刷算法题,因为算法能力是一名程序员的基本素养。

我是前端西瓜哥,感谢您的阅读。

相关文章
|
7天前
|
前端开发 搜索推荐 JavaScript
Web前端网站(二)- 主页
页面星空是可动的哦~~~毒药水特效的颜色搭配,文字渐变的动态效果,图片360度旋转展示特效等等等;每一次的按钮点击都是满满的惊艳 ~ ~ ~
21 4
Web前端网站(二)- 主页
|
7天前
|
存储 前端开发 搜索推荐
Web前端网站(一) - 登录页面及账号密码验证
页面背景动态是烟花和文字特效与缓缓下落的雪花相结合,在登录表单的旁边还有五个白色光圈以不规则的方式环绕,当鼠标靠近时,会发出彩色的光芒~~~
25 1
Web前端网站(一) - 登录页面及账号密码验证
|
5天前
|
前端开发 JavaScript API
探索现代Web开发中的动态数据交互——前端与后端整合实战
本文探讨了现代Web开发中前端与后端整合的关键技术点,通过实际案例演示了如何利用JavaScript和Node.js实现动态数据交互,全面解析从数据请求到响应的全过程。
|
2天前
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
18 6
|
4天前
|
缓存 前端开发 安全
探索现代Web开发中的前端架构模式
【6月更文挑战第23天】随着互联网技术的飞速发展,前端架构在Web开发中扮演着越来越重要的角色。本文将深入探讨现代Web开发中使用的几种主流前端架构模式,包括单页面应用(SPA)、微前端架构和JAMStack等,并分析它们的优势与应用场景。通过实例演示,我们将看到如何根据项目需求选择合适的前端架构,以及如何利用这些架构模式提升开发效率和应用性能。
|
1天前
|
前端开发 计算机视觉
视觉智能开放平台操作报错合集之人脸对比1:1,采用web前端直接调用,使用了base64处理图片,提示http错误码414,该如何处理
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
1天前
|
前端开发 程序员 API
视觉智能开放平台产品使用合集之web前端拉起人脸识别该如何操作
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
2天前
|
移动开发 前端开发 JavaScript
快速上手web前端开发(超详细教程)
快速上手web前端开发(超详细教程)
|
4天前
|
前端开发 JavaScript
web开发前端适配
web开发前端适配
10 0
|
8天前
|
编解码 前端开发 JavaScript
WEB前端响应式布局之BootStarp使用
WEB前端响应式布局之BootStarp使用
16 0

热门文章

最新文章