关于学习前端这件事

  我知道有一部分我的微博关注者也是做前端的,你们关注我的原因,很大一部分是因为我是前端的缘故。关于你们私信请教我关于前端怎么学习的问题,总感觉个人的能力无法一一去回答各式各样的问题,所以我在这里统一整理了一下我个人对学习前端的文章。因为这段日子比较忙,所以一时无法抽出时间,但是答应过你们的事情,我一直记在心里,趁着今天比较休闲,我就整理一下我关于学习前端的一些看法吧。

  关于如何学习前端,首先你要有个清晰的学习思路,我们先从几个问题理解前端这个词。

       一、你为什么要学习前端?

  我知道很多人想学习前端,都是因为最近几年前端的薪资待遇很高,有些公司给前端的待遇甚至高于后端的待遇,据职友集数据显示,2018年Web前端岗位月薪最高达到2-3万元,月平均薪资12720元,预计在2019年待遇将再一次水涨船高。但也有些人仅仅因为觉得前端是接触互联网行业最简单的工作。对于抱有这种想法的同学,其实我是表示理解的,因为我当初从事前端的时候,也确实觉得因为基础入门的门槛比较低,所以就选择当前端了。其实我刚开始工作的时候,还真的不是当前端的。我的能力还不足以当个美工,更不用说当什么前端了。有人问我说,我现在学习前端会不会太晚了?那我想告诉你,我的经历。我从大学刚接触网页设计的时候,是从大二的时候,大学最好的舍友给我展示他制作的外网网站,他是个电脑奇才,他是我的计算机启蒙老师。因为家庭的原因,我是上了大学才真正接触的电脑,我当初会选择计算机专业,其实我有个自私的想法,那就是可以真正接触到电脑,现在想想,以前的自己真的好穷啊,连想接触电脑都非得通过这个手段,没办法,家庭就是这样,所以我上了大学的第一个信念就是读书,但我是上了大学才刚接触的电脑,那会不会太晚?说句不好听的的话,我那时候就是个电脑白痴。最熟练的操作也是开机关机,很显然,我学习任何一门计算机课程,我都比一般人学习得很吃力,所以老师讲的很多计算机课,其实我是听不懂的,也是因为想跟他学习,所以我就跟他走得比较近,甚至看他宿舍有个空位,我跟他们宿舍的人打个招呼就直接搬过去了,从此之后,我跟他就是形影不离的一对,那种关系就差说成好基友了,所以他现在在我心目中一直有一个很高的位置,我人生的计算机启蒙老师。所以从这里,我告诉你,我从小并没有计算机的天赋,学习时间也很晚,但我相信勤能补拙。

  二、非计算机专业的人能不能学好前端?

  说到我大学的专业,真正跟我现在工作有点挂钩的,是选修课的网页设计跟PS,关于学习网页设计和PS选修课,其实我很笨,笨到什么程度呢?别人都恨不得逃课都不想去上的选修课,同一门网页设计课程,我偷偷去学了3个学期,当我没有选上这门选修课的时候,我就去旁听,为了能够多了解计算机,其实我几乎每个晚上的计算机选修课,我都有去旁听,例如黑客啊,网络安全啊,等等。学完网页设计以后,我开始对网页设计有些迷恋,甚至自己想开发属于自己的网站,于是把后端也学了起来,只可惜当初的我,学习有点闭门造车,我学习了asp,学习后端的人都知道,这几乎是一个被互联网淘汰的后端语言了,所以当我出来工作后,我被告知为什么不去学PHP的时候,我就已经知道自己无法去胜任后端的工作了。再加上大四的时候,我选择了考研这条路,让我比很多同学在工作经验这条路,走得更慢,当我考完研等待复试期间出来实习的时候,于是,我第一次在广州工作当美工,我感觉自己除了理论知识,实际操作比谁都差。因为工作实际操作较差,因此被劝退了,这是我当初放弃读研一个很重要的原因。我曾经拿下国家一等奖学金和8张相关计算机等级证书,到最后,学了一堆跟工作无关的知识。所以在这里,我想告诉你们,就算是计算机专业毕业的我们,如果不实时跟社会实践挂钩,你学得再好也没有用,更何况,计算机专业的我,在大学只是学习不同计算机语言的基础,这些基础,甚至连实习的能力可能都达不到,但如果你真正想学,找个培训机构,一个月你就能学完我们大学四年的基础课程。所以还是相信兴趣是我们最好的老师这个道理吧。

  三、什么是前端工程师?

  现在我们来说一下,当今互联网,我对前端工程师的理解是什么,这也是面试官经常会问到的问题,在这里,我总结一下。 前端是最贴近用户的程序员,前端的能力就是能让产品从 90分进化到 100 分,甚至更好; 参与项目,快速高质量完成实现效果图,精确到1px; 与团队成员,UI设计,产品经理的沟通;做好的页面结构,页面重构和用户体验; 处理hack,兼容、写出优美的代码格式; 针对服务器的优化、拥抱最新前端技术。

  四、前端的职业方向有哪些?

1、网页制作工程师;2、前端架构师;3、网站重构工程师;4、Web前端工程师;5、H5开发工程师;6、移动端开发工程师;7、全栈工程师(终极目标:前后端通吃)这些不同的前端职业到底有什么区别,我就不再阐述了,有兴趣的同学可以百度一下。

  五、前端面试的时候会考哪些内容?

根据我的面试经验,大概总结为以下知识点:页面布局,CSS盒模型,DOM事件,HTTP协议,原型链,面向对象,通信,前端安全,前端算法;渲染机制,JS运行机制,异步线程,页面性能,错误监控,MVVM框架类(vue)解析,工作原理,生命周期,双向绑定的原理,设计模式,项目特色;业务能力,团队协作能力,事务推动能力,带人能力;职业竞争力,职业规划,特殊情况处理。如果是面试小公司,我觉得把阿里,百度,淘宝,腾讯等知名企业的面试题,拿来做就可以了。对于大公司就靠自己真实力了。

  六、前端应该学习什么?

  个人觉得,作为一个初级前端,必须具备html+css+javascript的基础知识,对于技术日新月异的前端技术,光主流框架就有Angular 2+、react+redux、vue.js、Dojo 2、Ember,Aurelia六大主流web框架。我觉得在这六大框架中有主要的三大框架,分别是angularjs/vuejs/reactjs(reactNative)。我个人比较推荐学习vue,原因是相对于其他两大框架,它比较容易上手,而且它结合了另外两大框架的优点。angular的话,它的版本更新速度跟iPhone的更新速度有得一比,最明显的就是1.0和2.0的版本变化实在太明显了,导致了学习成本太高,学完一个框架的版本,又得去学习另一个版本。相对来说,vue从1.0到2.0版本的变化相对比较稳定。那如果只学习vue框架,其他框架不学,面试的时候问到其他框架的知识,那怎么办?我告诉你,你直接说不懂,这样子,你就能有针对性地选择自己比较熟悉的框架工作,总比你说懂,但面试官问你问题的时候,你又支支吾吾地好,选择自己精通的领域让面试官去问,你对答如流的时候,给面试官的印象更好。

  虽然说前端的学习门槛稍微比较低,但是你必须学会把后端的接口进行处理,当你遇到能力比较差的后端不满足你的调用要求的时候,你还必须学会对后端接口进行各种操作更改转变。还有一点,我觉得学前端的人,必须把正则表达式给学好,如果你学好了正则表达式,可以在你的工作中,发挥更大的功能。比如说,有一个产品编号是18K和PT2312,当我选择18K的时候,需要获取K,当我选择PT2312的时候,需要获取P,那程序应该怎么写呢?(获取第一个大写的英文字母)有人说,用if,else进行判断就可以啦,是可以,但如果产品编号很多个或者是不确定的情况下呢?这时就需要我们用正则表达式进行处理。学会把数组转对象,对象转数组,字符串转数组,数组转字符串,等等。

  文章就暂时整理到这里了,如果还有什么问题,欢迎在底下继续留言。以上是我个人观点和建议,如果有大神觉得我说得不对,不吝赐教,谢谢。

 

  

  

posted @ 2017-12-25 14:50  前端开发-周先生  阅读(318)  评论(0编辑  收藏  举报