计算机科班出身,为什么很多人都不推荐做前端开发?(计算机专业做前端)
我是普通二本计算机专业毕业,现在在做前端开发。当时大学期间课都没好好上,和前端相关性比较高的网页设计课,只教了HTML和CSS,当时授课老师用的编辑器居然还是记事本你敢相信?到了大三结束突然发现自己没有什么能拿得出手的东西。同学室友慢慢地都有了实习或校招offer,自己却不知道出路在哪,当时完全是纠结了快两个月,有个想法就去网上提问,然后被业内人劝退,陷入自我怀疑的境地。
后来纠结了一段时间发现自己好像也没什么能干的,破罐子破摔,干脆就先投简历看看,随便找个什么设计助理、前端实习的岗位混个实习再说,果然没过两天就有电话约去面试一下,当时那个高兴,觉得这就是天无绝人之路呀。到了地方后hr先给了一个表让填了一些信息,问了一些常见的问题后,说公司一般不招收没有相关工作经历的应届生,但是可以培训一段时间,培训有一定的费用,这个费用可以贷款做分期,但是培训完之后可以留公司做项目还培训费用。我听完后突然醒悟过来,这不是坑人的培训机构常用的套路吗,于是赶紧溜了。
后来听说一些朋友也是毕业时找不到工作,但是后面通过刻苦的学习,找了一份还不错的工作,结合网上所谓的行业薪酬统计,发现互联网行业工资偏高,于是就下定了决心要做个码农。(其实就是给自己加强信心,毕竟自己本专业还是计科当然舍不得这么大的优势。
有了目标之后很多问题就简单了很多,我先在网上了解了这些互联网岗位需要的知识和能力,以及岗位职能范围,包括行业人士给出的建议和吐槽点。其次结合自己的兴趣爱好和知识储备,觉得还是前端更适合我。主要原因:
1. 大学期间学过C语言,C语言和javascript语法很接近,更好入手
2. 大学期间学过网页设计,掌握了一些网页搭建的知识,对前端产生了一定的兴趣
3. 前端开发薪酬不算低,互联网行业不可缺少,尤其是我那年,Node的声势非常浩大,一度让人有种要替代JAVA的错觉。
4. 前景尚可,有不可代替性,无论怎么变,前端都是需要的,总不能开历史倒车啊~
定下方向后,接着我就决定留校学习前端开发的知识了。刚开始学的时候就是在网上找了一份教程,学习的过程中也逐渐的发现前端不只是搭建网页那么简单,还涉及到网络请求、逻辑交互、跨端展示、屏幕适配等一系列的知识。
前端页面的载体也不只是PC浏览器,还有微信小程序、H5混合开发,页面也需要一些顺手好用的框架和UI组件去丰富(慢慢的发现自己好像入了一个大坑),不过也算是付出就有收获,后来也顺利的找到了一份满意的工作。
前端的确是对小白友好很多,即使没有相关的知识储备,只要学习了HTML和CSS相关的基础知识后,不出一个月就可以搭建出好看的页面,做出来炫酷好玩的动画,能快速地将自己学习的知识转化为可见的成果,如此正向反馈,自然让你有前进的动力,比Java那种好上手的多。
但是正如前面提到的那样,由于前端开发担任了用户与程序交互的桥梁,并不意味着仅仅搭建出好看的页面就行,还要对用户的操作作出反馈,发送请求与服务器进行信息交互,将数据更新或渲染到界面上。这就要对HTTP知识和JavaScript有一定了解。在解决了基础的数据渲染和更新后,脱离了初级切图仔的范畴。
但是随着页面页面逐渐复杂功能越来越多,JS单纯的操作DOM会使得页面不同的回流、重绘,甚至会引起页面卡顿影响到展示效果,于是又需要借助开发框架来生成虚拟DOM,提升页面的渲染效率,所以就要掌握前端三大框架VUE、react、Angular之一,有了框架做后台和用原生js做后台完全是两个世界,好在我培训入场的时候,大多公司已经是使用框架做后台了。
在开发的过程中,有很多页面的按钮、下拉框、导航栏等,会重复出现,不停地复制粘贴又显得很蠢,于是为了解决这类问题还要将重复的功能区域封装成组件,只要页面引入就可以实现一次编写,到处引用的效果,于是还要封装自己的组件或者引用第三方UI组件解决这个问题,于是ElementUI、VantUI、IView等常见优秀的UI组件库也要掌握。
在开发的时候页面越来越多,引入的依赖越来越多样,相互间的依赖关系复杂,于是还需要引入打包工具来处理你的代码,输出为浏览器可以识别的js文件。如果开发移动端页面还要解决不同手机的屏幕适配和不同系统的浏览器差异。如果开发微信小程序还需要学习相关的小程序开发API。如果想做到一套代码多端复用还需要掌握uni-app或flutter等框架。当这些了解得差不多之后,想往后端延伸还有nodeJS等着你。
任何具有争议的事物都有两面性,前端开发前期的学习难度偏低,学会HTML、CSS、JS和掌握一个前端开发框架后,就可以很快的胜任简单的开发工作。但是前端开发注定需要解决各种各样的领导要求和乱七八糟的多端展示问题。
说白了,简单的搬砖工作所需的技术很容易掌握,但是前端领域所涵盖的范围太广,太多样化,很多高级的岗位需要你掌握的不仅仅是上面提到的框架和工具怎么使用,还要明白和理解这些工具深层的设计思想,去解决更复杂的问题或者选择最优的实现方案,因此,入行了前端就意味着不能停下探索的脚步。
其实不管做什么工作,保持不断的学习和自我提升,提高自己的不可替代性才是最重要的。
程序员对学历没有硬性要求,题主计算机本科学历已经符合大多数公司的标准了,听取过多的建议会在一定程度上影响自己的判断,他人说的都具有一定的主观性,题主选择性还很多,与其听别人说不如自己做决定,早作决定意味着可以早点了解自己是不是做码农这块料,人生就是试错的过程,一无所有的人没什么可害怕的,干就完了。
如果你仅仅因为“很多人不推荐前端”而被劝退,那你大概率会陷入想做XX事情——>行内人劝退——>想干XXX——>行内人劝退的循环怪圈,浪费大把的时间在踌躇不前上。
在网上,如果有人说大方向如何如何,大家都鼓励,
但是如果细分到具体,尤其是自己的行业,大家又开始纷纷劝退,而且这批人都是同一批,非常有意思,这就是干一行恨一行?围城?
与其一直被他们干扰,你不妨把你能做的选择列出来一一比较,我相信大多人做前端或者说做开发是比较好的选择,尤其本科计科专业的你!
如果你还在大学的话,抓紧时间自学,以本科本专业应届生身份有希望进大厂,起码我身边进大厂都是这个方法!
小编是个多年开发经验的程序员,懂前端、Java、Python。年初整理了一份最新的WEB前端学习教程,无论你是计算机专业想往前端开发方向发展,还是零基础想要转行做程序员,都可以通过教程学习。现在这份教程作为粉丝福利,分享给大家,只要关注我私信“前端”即可获取。