作为一名刚刚大学毕业,进入新的学习阶段的研究生,我必须说大学的专业课非常重要!不管你信不信,事实就是如此!
一、大学学习的专业课非常重要,它决定了我们能走到什么高度
前端的发展非常快,我常常觉得刚刚关注的新东西,过一段时间再看就截然不同甚至被废弃了。
所以保持高效自主的学习能力对于应对这种变换是非常重要的。而这种能力的基础在很大程度上和大学阶段计算机专业课紧密相关。比如WebGL、预处理语言追溯到常规计算机领域就是OpenGL和编译原理等领域。
二、前端知识都是旧中创新
纯粹的前端知识都算不上新创,而是不断在旧知识体系上重演改善。我记得我的师兄告诉我如果所有的东西都可以用js实现一遍,一定会大有收获。可是我始终没有做到。
也许有的朋友喜欢看技术书籍,喜欢细致解读里面的知识,但我习惯的方式则是在网络中快速学习。比如浏览比较好的技术博客,关注新技术的资讯,但是慢慢发现碎片化的知识已经快膨胀到我难以承受的地步了,所以平衡就成为了必须要解决的问题。我们必须找到对自己最有价值的知识,并且牢牢掌握。
三、我对前端的认知
前端,狭义地讲就是网页。也许许多人都会觉得写网页很low,还有人认为一个专科生或者去培训几个月的人都可以做到,没什么可骄傲的。那我觉得也许是他们对前段的理解还不够深入。其实,前端的知识挺多的,真的不像大家想象的那么容易。
前端,广义地讲,是全平台上交互逻辑和表现,其是与后台数据逻辑之间的技术中间层。前端工程师是最接近用户的技术人员,对其各方面的要求也是很高的。
四、本科专业课与我现在前段起步的联系
举几个例子说明。
比如想要做数据可视化的页面,如果不会数据结构,怕是连D3.js的API都用不好。
比如想要做消息通知,就要处理长连接,就需要知道TCP里长连接或者WebSocket是怎么回事。
比如想要做在线聊天的前端,为了承载大并发,极有可能会自行定制HTTP Header,这就需要计算机网络的知识。
比如找最小子串,这是算法吧。
比如简单的AJAX、复杂的交互效果,很大程度上依赖“异步”,这是操作系统里面的概念。
还有最重要的学习一门程序设计语言,学习语法的同时,关键是学习编程思想。前端里就学习JavaScript吧。
再回到大家觉得很low的网页开发,我们仍然需要懂一些基础知识:
浏览器内核
HTML、CSS规范标准
HTTP协议
JavaScript语言
一件看似很简单的事情,想要做好也不是那么容易的。
综上,Web前端的综合实力是非常硬的,绝不是花拳绣腿,而这种硬实力的背后就是那些“基础课”。
学习是要分层次的,先学会,能做一些有用的东西。尤其是先把想参与的工作、项目中用到的知识学会。
还有就是不要浮躁。有时候不分主次地学,只是给自己一个“我很踏实”的错觉而已。
另一方面,在学好目标技能,感觉很难进展的情况下,学习更广的领域,不失为一个突破瓶颈的好办法。
五、思想至上
也许你会感觉计算机专业课上讲的东西大多数是用不到的,但是我想说的是,老师交给我们的不是死板的知识,而是灵活的思想,可是我们往往却没有获取到精髓。
计算机科学,用一个词概括就是抽象化。我们要学会把大的问题,简化成小的问题。把复杂的现实,抽象成简单的模型。
六、学习建议
如果决定以前端学习为主,就在提高前端的基础上,抽出20%左右的时间学习基础课,这部分的学习不会很快产出效益,但是长远投资价值却是很大的。
基础课的学习也有先后顺序,相信学校的课程安排还是比较合理的,但是我们也可以根据自己的实际情况调整。首先学习最欠缺或最能解决目前开发瓶颈的课程,比如数据结构和算法,这是培养逻辑能力和实现底层优化的基础。其次是计算机组成原理、操作系统,这是作为一名计算机开发人员的基本素养,能解决很多高层次不懂的和想当然的问题,让我们学习计算机方面的知识更加省力。
还有一项就是我自己特别害怕的课程——数学。不是说它不重要,而是建议用多少补多少,实用至上,不然的话光一个概率论就可能耗尽毕生精力了。
最后,希望大家珍惜大学里的学习时光,充实自己,相信每个人都会拥有更好的明天。