零基础学习前端,正确的学习方式是怎样的()
很多小伙伴们经历过这样的学习阶段:
1.看网上的视频教程
2.照着敲
3.学完了一个觉得自己还没学会
4.在学另外一个教程
5.感觉自己学会了
6.找个项目一做,做不出来,再找教程
7.重复1-7
到最后发现,自己什么都知道一点,好像什么都会了,又好像什么都不会。你说不会吧,你问他各种知识都能说出一个所以然来,教学案例也能敲得熟练,你说会吧,一个全新的项目一点都写不出来。
那么问题在哪呢?
你说他练得少?并不是!
因为他硬盘里和自己敲过的项目已经很多了,再重复一个类似的项目已经没多大意义,除了消耗掉自己仅存的学习动力,然后放弃前端这个行业,没什么好处。
那么问题出在哪呢?
真正原因是他没有掌握成为一个合格前端的正确姿势。
首先我们先搞清一个问题,学会的标准是什么?
我认为编程是一项技能,而不是知识。所以学会的标准就是给你对应的标准,能够产出合规的产品。
但是这就涉及到了第一个层次的学习,虽然编程是一项技能,不是知识,也就是说光掌握知识成不了一个合格的程序员,但是没有必要的知识储备,一定成不了好的程序员。
这里就涉及到如何进行知识储备的问题。
说到知识储备,有不可避免的要说到什么样的知识需要储备。
第一类知识,基础。
很多人可能第一反应是,公司要什么,我学什么呗,然后一搜,出现如下的岗位需求:
1.本科(含)以上学历,计算机相关专业,1年左右相关经验;
2.有较强的技术能力与视野,对技术有强烈的好奇心和求知欲;
3.Javascript 基础扎实,熟悉 ES6、 模块化开发、前端组件化;
3.深入了解 HTML/CSS, 能够高效还原视觉交互细节;
4.熟悉 webpack/gulp 等打包工具的使用,对新技术框架(ES6, Babel, Vue)等有一定的见解和实践;
5.有一定的后端开发经验,熟练使用Git;
6.有良好的工作态度及沟通表达能力;
7.有良好的学习能力、独立解决问题的能力;
看到这么一个岗位要求之后,很多前端人员会这么想,
1.本科(含)以上学历,计算机相关专业,1年左右相关经验;
关于学历这个有就是有没有就是没有,没什么纠结和感慨的。至于因为这条考虑考个证书,不在本文讲述之内。
2.有较强的技术能力与视野,对技术有强烈的好奇心和求知欲;
这条我符合,我没事就看看新的技术啊,像vue,react和angular,或者是node 我都接触过,安装个脚手架,用一个模块没啥问题,这个我符合。
3.Javascript 基础扎实,熟悉 ES6、 模块化开发、前端组件化;
js我用好几年了,各种特效666,ES6 let 、箭头函数都没问题,组件化不就是import吗,我会。
4.熟悉 webpack/gulp 等打包工具的使用,对新技术框架(ES6, Babel, Vue)等有一定的见解和实践;
哎呀,我没用vue工作流写过项目,这个我没项目经验啊,我要不找个视频,写个项目吧,这个我欠缺,我得学学vue。
有一定的后端开发经验,熟练使用Git
要不我学学php?node是用js写的,这个我应该学起来容易些。要不学学Python也挺好,这个现在很火。然后陷入了无限的纠结和尝试之中。
5.有一定的后端开发经验,熟练使用Git;
6.有良好的工作态度及沟通表达能力;
7.有良好的学习能力、独立解决问题的能力;
我缺少git,看来我得注册一个gitHub,7,8我应该没问题。
综合起来一看,哎呀看来我现在确实应该学vue啊!
这样乍看起来分析得没错,但是仔细想想就会发现有很大的问题。
那就是忽略了基础!
如果你认为js只是写写特效,ES6 只有let和箭头函数,组件化就是import,那么你的js哪怕工作了10年也只是个初级水平。你的工作经验不是时间,是你掌握的知识深度和解决问题能力。
如果你连基础的js 面向对象都搞不明白,你连ES6 除了let 和箭头函数之外都搞不清楚,那么你必然会存在两个问题:
1.自然而然你就会认为node是用js写的,Vue要学的也不过是用脚手架跑几个小例子就算入门了。
【零基础学习前端,正确的学习方式是怎样的()】2.有这样的认识,你就是想学也不可能深入了。
我说上面话,并不是说所有学vue的人基础都不好,而是说,如果你只会或者只想学vue不会成为一个合格的前端,更不要说优秀的前端了。
所以,第一个知识储备就是基础知识,基础知识是掌握那些“高级”知识的关键。你基础非常扎实的时候,就会对自己有个客观的评价,自然也就知道你需要什么知识了,而不需要满大街的去找各种学习计划了。自然也不用我在这里推荐什么学习知识了。
学会了基础还有当你前端水平发现很难突破的时候,你可以有更宽广的视野,比如学习算法、操作系统、数据结构,网络原理,这些都会让你对前端有更深入的认识,而不是感觉,前端不就那点东西嘛。
说完了储备什么知识,我们说下获取知识的途径:
找一个大佬带你
很多知识都是通过实践总结而来的,找一个工作很多年的老师来带你,是让你的知识迅速上身最快捷有效的方式。找老师带你其实就是花钱买时间,把你本来几年提升的知识,一年甚至几个月获得。
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群或者找大牛请教。多说一句你的工作经验不是编出来的,而是每一次解决问题积攒下来的。所以一定要重视。
掌握了正确的学习姿势,配上合适的学习计划,那么成为一个合格的前端,只是时间的问题了。如果学习前端感到迷茫,缺少系统的学习教程,或者是自学过程中遇见有问题自己无法解决,都可以到我这个WEB前端学习君羊,首三位是589,中三位是051,后三位是564。我整理了一套系统的前端教程,可以跟着学,有什么不懂的随时在里面问,大家都会帮忙解答,学习氛围非常好。
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 日志打卡
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)