转行做Web前端开发,需要熟悉计算机专业课吗?

Web前端需要熟悉大学里[高大上]计算机专业课吗?这里说的『高大上』的专业课,主要指算法、数据结构、操作系统、编译原理、线性结构、离散数学等等。对于大学不是计算机专业,但以后想要从事前端开发工作的同学来说,这些『高大上』的计算机专业课是否有必要花时间去了解呢?

『基础决定你可能达到的高度, 而业务决定了你的最低瓶颈』,两者不可偏废。

说说我自己吧。

我的计算机基础就非常薄弱,但是我当年进公司却拿了较高评价的Offer。起初,我会反感公司校招时放那么多计算机基础的题目,会反感领导要求前端有计算机背景(这主要是因为自己基础薄弱,但心里又比较自负)。

hon的小伙伴

在这里我还是要推荐下我自己建的web前端开发学习群:731669587,群里都是学web前端开发的,如果你正在学习前端 ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有前端软件开发相关的),包括我自己整理的一份2018最新的前端进阶资料和高级开发教

但是知道的越多,就越感受到自己的渺小。因为我感受到了我那皮毛都算不上的基础知识带给我的巨大收益,我会开始计算并焦虑我好像得花非常多的时间来弥补自己知识的短板。所以我认为:计算机基础知识非常重要,它决定了你能走到什么高度。

我其实是很羡慕那些学了4年甚至7年计算机的同学,但是我发现,有些科班的同学甚至无法和我交流类似的知识体系。这说明应试教育体系下,所谓的计算机基础还是需要通过思考和实践来真正成为自己的东西,否则并没什么卵用。

前端的发展非常快,以至于你今天关注的新东西,明年再看可能就截然不同甚至被废弃了。所以保持高的学习力来应对这种变化非常重要。高的学习力在很大程度上和你的计算机基础紧密相关(先抛开智力等不可抗因素)。

现在纯前端范畴里还几乎没有出现新创的知识领域。但是反过来说,从来没有一个领域有Web前端这么飞速发展,不断的有在旧知识体系在它上面重演。我记得有一句名言大概是这个意思:所有东西都会用js实现一遍。 我现在深以为然。

我相信在很多人也看出来了,前端这些年看似发展的非常蓬勃,但其实并没有太多新鲜的东西,一切都是重演。计算机基础是以不变应万变的秘诀。现在的前端现在已经不再需要『我会写java后台代码』等等愚蠢的强调来站直腰板了,成熟的公司已经开始重视前端带来的实际价值,。所以前端本身当然不能固步自封,巩固计算机基础,用以灵活应用到日常业务,用以吸收新鲜技术,也就是自然而然的事情。

有同学或许还会问:前端做项目如何积累经验?

最后再列下我觉得部分已经让我受益的基础知识:

- 高中的物理知识 + 最最基础的大学物理;

- 编译原理的最最基础的前端知识用以一致的处理文本类问题,把你从糟糕的逻辑判断和正则表达式的滥用中拯救出来;

- 大学中的矩阵论、线性代数,进而一些计算机图形学的简单理解。这些并不一定要和webGL结合,但是和物理一样可以帮助你做出『符合直觉』的效果和动画;

- 数据结构和基本算法,你要清楚特定的基础数据结构可以处理的问题,其实很多不是那么基础的算法和数据结构都需要自己在实际需求中去摸索或学习, 所以如果你已经知道这些算法,那可以跳过很多耗时的技术选型阶段, 这就是知识的广度带来的优势;

- 一些函数式编程的思想, SICP是大家广泛推荐的书, 然而我还没看完。一些衍生的内容,比如不变数据结构的定义和应用,事实上你现在就可以通过几十行代码在js里实现不变数据结构的帮助函数来帮助你在复杂应用里实现undo, redo甚至历史回溯功能,而不需引入facebook那高大120kb的immuable.js。

对于学习web前端的学习路线,学习方法,系统学习规划有任何问题,可以关注我的头条号,私信给我 web前端 会自动回复web前端学习交流群,群里有系统学习教程和学习路线以及详细的规划,我做web前端开发十年的时间,希望帮助新手少走弯路。

你可能感兴趣的:(转行做Web前端开发,需要熟悉计算机专业课吗?)