前端程序员,正确的学习姿势!

程序员编码编程

1、看网上的视频教程;

2、照着敲;

3、学完了一个觉得自己还没学会;

4、在学另外一个教程;

5、感觉自己学会了;

6、找个项目一做,做不出来,在找教程;

7、重复1-7。

到最后发现,自己什么都知道一点,好像什么都会了,又好像什么都不会。你说不会吧,你问他各种知识都能说出一个所以然来,教学案例也能敲得熟练,你说会吧,一个全新的项目一点都写不出来。

 

那么问题在哪呢?

你说他练的少?并不是!

因为他硬盘里和自己敲过的项目已经很多了,再重复一个类似的项目已经没多大意义,除了消耗掉自己仅存的学习动力,然后放弃前端这个行业,没什么好处。

 

那么问题出在哪呢?

真正原因是他没有掌握成为一个合格前端的正确姿势。

我认为编程是一项技能,而不是知识。所以学会的标准就是给你对应的标准,能够产出合规的产品。

但是这就涉及到了第一个层次的学习,虽然编程是一项技能,不是知识,也就是说光掌握知识成不了一个合格的程序员,但是没有必要的知识储备,一定成不了好的程序员。

湖面上的铁轨-通向远方

 

第一类知识,基础

很多人可能第一反应是,公司要什么,我学什么呗,然后一搜,出现如下的岗位需求:

1、本科(含)以上学历,计算机相关专业,1年左右相关经验;

2、有较强的技术能力与视野,对技术有强烈的好奇心和求知欲;

3、Javascript 基础扎实,熟悉 ES6、 模块化开发、前端组件化;

4、深入了解 HTML/CSS, 能够高效还原视觉交互细节;

5、熟悉 webpack/gulp 等打包工具的使用,对新技术框架(ES6, Babel, Vue)等有一定的见解和实践;

6、有一定的后端开发经验,熟练使用Git;

7、有良好的工作态度及沟通表达能力;

8、有良好的学习能力、独立解决问题的能力。

 

看到这么一个岗位要求之后,很多前端人员会这么想:关于学历这个有就是有没有就是没有,没什么纠结和感慨的。至于因为这条考虑考个证书,不在本文讲述之内。

这条我符合,我没事就看看新的技术啊,像vue,react和angular,甚至是node 我都接触过,安装个脚手架,用一个模块没啥问题,这个我符合。

js我用好几年了,各种特效666,ES6 let 、箭头函数都没问题,组件化不就是import吗,我会。

哎呀,我没用vue工作流写过项目,这个我没项目经验啊,我要不找个视频,写个项目吧,这个我欠缺,我得学学vue。

要不我学学php?node是用js写的,这个我应该学起来容易些。要不学学Python也挺好,这个现在很火。然后陷入了无限的纠结和尝试之中。

我缺少git,看来我得注册一个gitHub,7、8我应该没问题。

综合起来一看,哎呀看来我现在确实应该学vue啊!

这样乍看起来分析的没错,但是仔细想想就会发现有很大的问题。

那就是忽略了基础!

 

如果你认为js只是写写特效,ES6 只有let和箭头函数,组件化就是import,那么你的js哪怕工作了10年也只是个初级水平。你的工作经验不是时间,是你掌握的知识深度和解决问题能力。

如果你连基础的js 面向对象都搞不明白,你连ES6 除了let 和箭头函数之外都搞不清楚,那么你必然会存在两个问题:

1、自然而然你就会认为node是用js写的,Vue要学的也不过是用脚手架跑几个小例子就算入门了。

2、有这样的认识,你就是想学也不可能深入了。

我说上面话,并不是说所有学vue的人基础都不好,而是说,如果你只会或者只想学vue不会成为一个合格的前端,更不要说优秀的前端了。

 

所以,第一个知识储备就是基础知识,基础知识是掌握那些“高级”知识的关键。你基础非常扎实的时候,就会对自己有个客观的评价,自然也就知道你需要什么知识了,而不需要满大街的去找各种学习计划了。自然也不用我在这里推荐什么学习知识了。

学会了基础还有当你前端水平发现很难突破的时候,你可以有更宽广的视野,比如学习算法、操作系统、数据结构,网络原理,这些都会让你对前端有更深入的认识,而不是感觉,前端不就那点东西嘛。

1、参加培训

很多人抵触培训班,但是不能否认的是,培训班的很多知识都是通过实践总结而来的,参加培训班,是让你的知识迅速上身最快捷有效的方式。(我只是说让你学会基础知识,没说培训班一定会让你找到工作,或者让你成为大牛,走上巅峰迎娶白富美。),培训其实就是那钱买时间,把你本来几年提升的知识,一年甚至几个月获得。

2、自学

大部分人都没有时间或因为个种原因不去参加培训,那么自学就成了最主要的手段。 1.看书,效果慢,另外可能例子很老旧。除了经典之外的书就不要看了,说实话,大部分是用来赚钱的。除了 浪费你一些钱之外,还浪费你的时间。 2.查看官网 官网永远是一项技术最权威的知识发布渠道。 3.看视频,很多人硬盘里都有一套有一套的视频,不过并没有让大部分的技术和工资涨上去为什么呢?

刚才我说了因为很多人不知道自己学会没学会,就算搞清楚了学会的标准好像对自己也没什么帮助,就像告诉你驾校的考试标准,你也没办法通过考试,程序也是一个需要动手的行业,这里的动手指的是给你一个需求或者一个项目效果,能够完成。而不是停留在问你数组有几种方法,你对答如流一样。纸上谈兵没什么用。

 

那如何达到获取技能而非知道知识呢?

1、更改学会的标准

如何验证你学会了?

1、看完一个完整的视频,理解思路,尝试着自己敲,卡住了,复习卡住的部分视频。

2、删掉原来敲好的,重新开始,继续敲,卡住了。

3、重复1,2.

4、直到流畅写出为止。

 

2、模仿

1.前期模仿一些简单项目,注意只要练习你要重点学习的部分,比如你想练习网易新闻的新闻列表,那么就不用关心他的数据交互或者用户登录逻辑怎么实现的 2.中后期模仿一些通用的项目,如博客,商城,还有你手机上安装的那些APP统统模仿一遍

 

3、交流

做为一个合格的程序员,要学会问问题和使用git。因为学会问问题才能得到能够解决问题的答案。学会使用git才能够更好的和程序员交流以及分享、讨论贡献代码,而这个是以上三点里面 最重要的一点,如何做到呢?

1、花一些时间去尝试解决问题,遇到问题的第一个反应不该是求助,也不该是百度,而是分析问题所在,尝试定义问题,解决问题。这个是学习提高最快的部分。

2、尝试解决无果,拿老师的课件和自己的代码使用对比工具对比,这里提供一个工具:https://www.diffchecker.com/其它也行。

3、尝试google。

4、尝试所搜无果,尝试清晰的描述一个问题,是你能够获得有效帮助的第一步,也是最重要的一步。别说我不会这类得不到帮助的话,去垂直的网站、QQ群或者找大牛请教。多说一句你的工作经验不是编出来的,而是每一次解决问题积攒下来的。所以一定要重视。

 

掌握了正确的学习姿势,配上合适的学习计划,那么成为一个合格的前端,只是时间的问题了。