前言:
最近在部门内做了一次分享,分享的主题是关于如何提高前端技术水平的。之所以做这次分享,主要原因是因为最近经常有被同事问到『想提升自己技术水平,不知道从哪开始』或者是『为什么***同事懂的这么多?他说的一些东西自己都没听说过?』等等类似的问题。根据自己浅薄的学习经验,把分享的内容加工整理出来,希望对在前端方向有意愿提升却又迷茫的同学有所帮助。
(一)学习方向
首先当然是方向问题,有句话说的好『如果你努力的方向错了,那么停下来就是进步』。前端开发又不同于其它职位,需要学习的东西非常多。这点从它的岗位名称变迁可见一斑:美工、页面制作、页面工程师、网页重构、前端开发、UI工程师…这些都还好,最不能忍的是被叫做『切图的』!!(你才是切图的,你全家都是切图的!!)扯得有点远,言归正传。如果你不知道从哪开始怎么办?那你可以在心里问自己一个问题:
如果你去面试你最怕被问到什么?
下面这些?
http协议
ajax原理
this指向
call和apply的区别
函数引用和函数调用的区别
链式调用
函数节流
事件委托
闭包、作用域
类的定义以及继承的方法....
你可能会说上面这些都不怕。
那下面这些呢?
设计模式
框架设计
前端架构
下面的工具框架你是听说过?熟悉?还是在项目中反复实践过?
工具、框架及前端视野
工具类:
代码管理: git svn
代码编译: Less Sass CoffeeScript
模板引擎: artTemplate juicer doT Tmod
模块加载: SeaJS RequireJS Browserify
项目构建: grunt gulp webpack
框架类:
React AngularJs Knockout Vue (MVVM)
BackBone (MVC)
BootStrap (UI)
其它:
Node.js
以上是挑的一些点主要是举示例,并没有具体指向性作用,因为每个人的情况肯定有所不同,但是相同的是,每个人肯定或多或少都有害怕被问到的点,那就找到这些点,无论这些让你心虚的点是多么的微不足道或者听上去多么的高大上,花时间和心思去深挖它们,彻底搞明白,要明白到什么程度呢?明白到不惧怕跟任何一个人去讲授。
有句话叫『无知者无畏』,其实这句话放在面试上就不对。回想一下,我们每次去面试的时候,是不是总是诚惶诚恐战战兢兢呢(当然这里排除一些行业大牛和面霸)?害怕的根源是什么?是无知,是对自己专业知识欠缺的不自信。记得六年前开心网还如日中天,我当时还是一个出入职场的菜鸟,去面试,被残忍的羞辱的体无完肤。回来后痛定思痛回忆了问的所有技术点,挨个深挖,包括这些问题的延伸和外延。以后再有躁动不安不知道该干什么的时候,我就问自己,害怕被问到什么?
(二)学习方法
下面这个图很有名,它用数字形式形象显示了:采用了不同的学习方式,学习者在两周以后还能记住内容(平均学习保持率)的多少。我相信包括我在内的大部分人都用行动验证了这张图的理论。这张图已经说的很明白了,怎样去学习效率更高。我想说的有两点,
1.是读书:前端有一本很有名的书:《javascript权威指南》,封面是一只犀牛,又叫犀牛书。我曾经随机的问过我认识的前端同事朋友,有谁完整的读完过这本书,答案是绝大多数人都没有。姑且不说通过阅读的学习保持率只有10%,读都没读完效果可想而知。题外话,我平时也有读书的习惯,但是超过400页的书我却很少买…900多页技术书可以买,当工具书还不错,如果打算从前言开始读完还是算了。现在读技术书大都先浏览一遍目录,感兴趣的章节细读,甚至读好几遍,其它章节一扫而过。
2.不要排斥做分享或者平时和其它同事的交流,当你要去分享的时候,你需要确认自己对这个问题所涉及的技术都了然于心,不然如果分享或者写的东西是错的话,且不说丢不丢人,最重要的是要误人子弟,准备分享的过程就是一个巩固知识和学习新知识的过程,顺带还帮助了提出问题的人,虽然对方只学习到了5%,双赢,何乐不为呢?
2016前端学习规划 - 请给自己画个圆(三)学习途径
落实到具体的学习途径我能想到的下面这么多:
技术文章-技术博客、技术论坛知乎答疑解惑
技术分享-团队内部技术分享、晋级评审、外部技术分享
技术实践-所学内容运用到项目中、参与开源项目(github)
(四)写在最后
看到网上有这么一句话『道理我都懂,还是过不好人生』,讲完一堆学习的道理,心里压力倍增,涂有道理不够,还需要去执行,就从今天开始给自己画个圆,攻破一个害怕的点就点在圆里,等到年底回头再看,希望大家的圆都是满的。
最后的最后:
执行的源动力觉的还是兴趣。兴趣这两个字足够解释开头的另外一个问题:『为什么***同事懂的这么多?他说的一些东西自己都没听说过?』,你在看芈月传的时候他在搞技术,你在消消乐的时候他在搞技术,不是有人逼着他,兴趣使然。如果你对自己的职业一点兴趣都没有,劝你趁早改行。
网友评论
//函数引用
function f1(){
var x=5;
return x;
}
var a=f1;
var b=f1;
//函数调用
function f2(){
var x=5;
return x;
}
var a=f2();
var b=f2();