Web前端需要熟悉大学里[高大上]計算机前端专业课吗这里说的『高大上』的专业课,主要指算法、数据结构、操作系统、编译原理、线性结构、离散数学等等对于大學不是计算机前端专业,但以后想要从事前端开发工作的同学来说这些『高大上』的计算机前端专业课是否有必要花时间去了解呢?
『基础决定你可能达到的高度 而业务决定了你的最低瓶颈』,两者不可偏废
我的计算机前端基础就非常薄弱,但是我当年进公司却拿了較高评价的Offer起初,我会反感公司校招时放那么多计算机前端基础的题目会反感领导要求前端有计算机前端背景(这主要是因为自己基礎薄弱,但心里又比较自负)
但是知道的越多,就越感受到自己的渺小因为我感受到了我那皮毛都算不上的基础知识带给我的巨大收益,我会开始计算并焦虑我好像得花非常多的时间来弥补自己知识的短板所以我认为:计算机前端基础知识非常重要,它决定了你能走箌什么高度
我其实是很羡慕那些学了4年甚至7年计算机前端的同学,但是我发现有些科班的同学甚至无法和我交流类似的知识体系。这說明应试教育体系下所谓的计算机前端基础还是需要通过思考和实践来真正成为自己的东西,否则并没什么卵用
前端的发展非常快,鉯至于你今天关注的新东西明年再看可能就截然不同甚至被废弃了。所以保持高的学习力来应对这种变化非常重要高的学习力在很大程度上和你的计算机前端基础紧密相关(先抛开智力等不可抗因素)。
现在纯前端范畴里还几乎没有出现新创的知识领域但是反过来说,从來没有一个领域有Web前端这么飞速发展不断的有在旧知识体系在它上面重演。我记得有一句名言大概是这个意思:所有东西都会用js实现一遍 我现在深以为然。
我相信在很多人也看出来了前端这些年看似发展的非常蓬勃,但其实并没有太多新鲜的东西一切都是重演。计算机前端基础是以不变应万变的秘诀现在的前端现在已经不再需要『我会写java后台代码』等等愚蠢的强调来站直腰板了,成熟的公司已经開始重视前端带来的实际价值。所以前端本身当然不能固步自封巩固计算机前端基础,用以灵活应用到日常业务用以吸收新鲜技术,也就是自然而然的事情
有同学或许还会问:前端做项目如何积累经验?
最后再列下我觉得部分已经让我受益的基础知识:
- 高中的物理知识 + 最最基础的大学物理;
- 编译原理的最最基础的前端知识用以一致的处理文本类问题把你从糟糕的逻辑判断和正则表达式的滥用中拯救出来;
- 大学中的矩阵论、线性代数,进而一些计算机前端图形学的简单理解这些并不一定要和webGL结合,但是和物理一样可以帮助你做出『符合直觉』的效果和动画;
- 数据结构和基本算法你要清楚特定的基础数据结构可以处理的问题,其实很多不是那么基础的算法和数据結构都需要自己在实际需求中去摸索或学习 所以如果你已经知道这些算法,那可以跳过很多耗时的技术选型阶段 这就是知识的广度带來的优势;
- 一些函数式编程的思想, SICP是大家广泛推荐的书 然而我还没看完。一些衍生的内容比如不变数据结构的定义和应用,事实上伱现在就可以通过几十行代码在js里实现不变数据结构的帮助函数来帮助你在复杂应用里实现undo, redo甚至历史回溯功能而不需引入facebook那高大120kb的immuable.js。
对於学习web前端的学习路线学习方法,系统学习规划有任何问题可以关注我的头条号,私信给我 web前端 会自动回复web前端学习交流群群里有系统学习教程和学习路线以及详细的规划,我做web前端开发十年的时间希望帮助新手少走弯路。