03-该学点什么,才能当个合格的前端?

在职业咨询过程中,经常有学生问我,老师,该学点什么,才能当个合格的前端?

我完全理解他的心情,首先由于前端技术发展太快,不断有新的技术推出,让人眼花缭乱,另外web前端工程师,全栈工程师,关于是否走“小而美”的职业发展路线,而是走“大而全”的职业发展路线,公说公有理,婆说婆有理,最后在来一句完全没有用的一句话:“根据你的自身情况而定”,直接就让学生彻底蒙圈了。就算是给出了各种自身情况判定的方案,不同的人也有不同的情况,实操性差。所以几乎每一个人前端都希望得到一个类似于划定好范围的“小抄”,然后再给他一个小抄的学习计划,最后让他能在工作中“考第一名”。

但是,我们先别急,我们在继续深入分析拆解一下这个问题,我们回到初心,看看到底是什么样一个问题,因为如果问题都错了,那么答案越对,错误就越重。举个例子,一个学生如果他只知道一种交通工具就是自行车,他想一个小时到达50公里外的目的地,那么他的问题可能就是“骑什么样的自行车,才能准时到达目的地”也许他想得到的答案是,山地车或者公路车,或者比赛用的赛车,但是这个答案是最优的吗?

说到这里,相信很多人理解我的意思了,回归我们的问题:

该学点什么,才能当个合格的前端?

这个问题问的对吗?

这里有两个问题:

1.学点什么,能不能成为合格的前端

2.如果能,那么该学点什么。

我们拆解完就清晰多了。我们先来讨论下第一个问题,因为如果第一个问题的答案是不能,那么就没有第二个问题了。

第一个问题,学点什么,能不能成为合格的前端?

前端本身属于程序员的范畴,那么程序的本质是什么?

程序是用来解决业务问题的。

所以这个问题也就很简单了,要想成为合格的前端,首先第一个能力是定义问题的能力,第二个能力是解决问题的能力。而学点什么能成为前端,其实属于第二个问题解决问题这一环节。

这里我们不展开,要想成为一个合格的前端,大家一定要围绕着学习什么能有助于定义问题,解决问题,才能真正的成为一个合格的前端。实事就是这样。软件存在的意义并不是用来取悦我们程序员的,并不是为了让我们写出漂亮代码的,也不是为科技行业创造就业机会的,而是用来解决问题的。

OK,明白了这个,我们就开始第二个问题,在我们能够正确定义问题的情况下,我们学习点什么有助于我们解决问题?

好吧,很多人估计也等不及了,现在我就开始给大家一些认为“干货内核”的东西,但是再次强调,哪怕这是你想要的东西,你也一定要明白为什么想要这个东西,也就是上面我们充分解释的过程是必不可少的,大家一定要思考,而不是直接问出“骑什么样的自行车,才能准时到达目的地”,好,我现在我们已经保证你骑车是正确的了,下面我开始给你们推荐各种型号的自行车。

1.大道至简,从基础出发HTML+CSS

前端布局,既是前端开发人员的核心技能,也是在工作中占很大的比重。同时前端布局由于入门容易、深入困难的特点,又历来被人们作为入门知识所轻视。同时由于CSS3 Flex布局和grid布局等颠覆性布局方式的出现,也彻底改变了传统的div+css布局方式。但是良好的前端布局优势进行javascript书写和交互的基础,所以有必要打牢基础,保证便捷高效的进行前端开发。

2.原生javascript

除非你是一名纯后台开发者,否则你可能会了解点 JavaScript。当然,即使你不了解,如果你是一名 PHP 或者 Java 开发者,JavaScript 的类 C 语法也会看起来有点熟悉。但是如果 JavaScript 对你来说是完全摸不着头脑,那么你就危险了,首先你可能会解决问题的时候陷入,“50公里骑自行车问题”,另外也是最主要的,哪怕你不从事前端工作,但是你需要跟前端人员协作,如果你不懂原生js那么就会出现鸡同鸭讲。我为什么先从后台人员说起呢,原因很简单,连后台人员都需要了解,作为前端人员,你拿javascript吃饭,你不熟悉原生js,就跟你开车不知道档位切换一样可笑。好吧,我知道你可能会说老师,我可以开自动挡的车啊,确实js里面有自动挡的车,但是你别忘了,你是一个职业的js车手,而不是私家车车主,前端是你的职业,js就是你的赛车,你会在完全不了解手动档赛车的情况下成为一个顶级车手吗?

3.前端人员的自动挡赛车-jquery

你可以把 jQuery 当作是透明胶布。用它对付家里的小修小补还是很方便,但是如果你到处贴就很难看了。而原生js就是螺丝刀,能够保证程序的稳定坚固。当然jquery用途实在太大了,时至今日jquery依然有两个重要的作用。

首先,目前PC网站70%以上,依然是jquery驱动的,所以jquery你是可选项,而是必选项,他的角色有点像火锅的锅底。

另外,即使你不用jquery工作,但是熟练掌握jquery,深入了解原理,能够让你学习vue、react、angular等现代框架依然是极其有帮助的。

4.掌握 ES6

掌握ES6有两个作用,

第一,掌握了ES6 能够更加便捷的开发、大幅度的提高工作效率。

第二,能够为学习Vue、React、Angular等技术栈甚至是NodeJS打下坚实的基础,因为目前大部分框架,都是使用ES6写的。

5.vue、react、angular 三大 框架至少要熟悉一个

个人推荐vue,理由:
Vue 是一个相对比较新的库,但是它正以创记录的速度增长,而且已经被大公司采纳。它正被像百度和阿里巴巴(被认为是中国的谷歌和中国的亚马逊)这样的公司采用。并且它还是 PHP 框架 Laravel 的官方前端层。

与 React 相比,它的一些关键卖点是:

官方维护的路由和状态管理库。

关注于性能。

较低的学习曲线(由于使用的是基于 HTML 的模板)。

较少的样板代码。

其实重要就两点,第一用的人多,第二好学。它目前的相对APP地位有点类似于 jquery 相对于PC网站的样子。

6.学点算法知识

前端的技术领域和范围正在飞速演进中。几大互联网公司的已经开始在使用数据挖掘、贝叶斯、3D图形图像等领域算法到前端领域。对浏览器的了解也逐步深入到内部实现机制原理上,从原理上理解渲染。无线端的前端越来越像嵌入式应用开发,这些都更需要懂一点算法。换一种说法好理解,学习算法的好处:

1.要想成为最优秀的10%前端,你需要懂算法

2.算法就是一些问题的成熟解决方案,了解了能够让你提高工作效率

当然如果说我只想切切图,写写数据交互而已,那不懂算法也没问题。

7.了解一门语言,推荐node或者php

了解一门语言,我们不讨论让你最后成为全栈,我们不争论这个,懂得一些基础的后台知识,其实和后台了解js一样,能够让你和后台人员更好的协作,不至于鸡同鸭讲。

本文通过两个层面分析了该学点什么,才能当个合格的前端,大部分人都关注的是第二个层次,但是第一个层次才最重要,当然在第一个层次有意识的情况下,大家可以根据第二个层次的解决问题的方式构建自己的技术体系。

发表评论

电子邮件地址不会被公开。 必填项已用*标注