自学前端的误区和痛点解决,转行程序员的痛点
网上的自学说法
网上有很多自学的方案路线,还有一些知道;
但是我感觉他们很多人都是没有真实学习过的,很多人说的那些路线,真的是扯淡;
肯定不是自己通过自学后的感悟,他们所谓的路线可能是结合培训班大纲和知乎的一些答案组合的;
真正跟着学的话,肯定要掉进坑里的;
首先说下我的情况,我是大专学历,机械专业的,以前是做平面设计的,后来网上买了些教程和书籍观看入行的前端;
所以有很多自学路上的感悟和苦逼困境;我今天和大家分享一下;
大家一定不要再走我以前碰到的那些坑了,下面是我列的一些总结;
痛点一:喜欢框架入手,而不是基础入手
现在前端大火的框架有:React/Vue/Angular/这些,如果写页面,还有 ElementUI
,BootStrap
等各种UI框架拿来就用;
很多人喜欢上来就通过学习这些框架的应用,通过这些框架确实很容易快速出产品,容易有满足感;
但是如果你想走的更远,HTML/CSS/JS还是要踏踏实实的学;
如果你连基本布局都不清楚,HTML标签的注意事项也不了解,ECMAScript/BOM/DOM都懵懵懂懂的,那就是不合适了;
基础都不牢固,走到后面,会疲于追逐框架,总有一天你会说『别再更新了,劳资学不动了!!!』
解决方案:基础开始入手
从基本的HTML/CSS/JS开始入手,从原理来开始学习;
比如CSS你能自己写出常见的布局;
HTML你知道什么场景下,应该用的什么标签;
用原生JS可以写出常见的效果;
我以前学习的时候,用原生JS写了一个类似电商详情的简历,兼容到IE5浏览器;
比如电商网页中的JS事件实现的拖动,事件委托实现菜单,放大器效果浏览商品的功能;
当然我做的是一个简历的形式,商品就是我自己,商品的详情就是我的技术详情介绍;
感兴趣的小伙伴可以到我的Github上看下,那个项目也是开源托管到Github上;
总之:只要基础牢固了,时髦的技术,学习起来,事半功倍;因为那些所谓的前沿解决方案,都是又基础构成的;
痛点二:盲目追逐新技术
2019年火热的Flutter
,很多前端小伙伴不管自己用不用的到,都是去追,你有没有想过『那些技术真的是你需要的么』
我个人对新技术,是没有那么感冒的,我建议是如果不是工作中能用到的,过1年以后再看;
解决方案:新技术怎么处理
既然不要盲目追新技术,那么新技术出来后,应该怎么应对呢?
一门新的技术或者新框架,如果是大公司开始使用,这并不代表它就是一种趋势,即使是有好几家大公司使用;
大公司里死掉的项目和技术方案数不胜数;
大公司有大公司的事情的,可以这么讲『无论什么新技术,只要是有可选之处,大公司都会去尝试下』,前期可能仅仅只是尝试
但是如果一门技术,在中小型的公司中普通使用的时候,那这门技术才有真正的价值,那时候再开始学;不要怕学习晚;
这就是我在前端学习路线那一期视频中讲的推荐学习React/Vue
,但是并不推荐学习Angular
,就是因为他们在中小型公司里大量使用,而Angular并没有那么普及;
核心:一门技术,中小型公司普遍应用的时候,再开始学都不晚
痛点三:没有目标
这是在你学习到中后期的时候,很容易出现的困境;
因为技术的学习也差不多了,就是感觉自己该学的也学的差不多了;
感觉自己无处发力的一样,因为自己没有在公司做过,从来没有写过线上的产品,都不知道该做啥;
写的很多代码都是自己认为很好的范围,没有人告诉你实际工作中该怎么写,代码还有多少进步的空间,一些技巧类东西也没有人告诉你;
比如我们学会了定时器,但是实际工作中,我们的场景可能是用在异步调用,控制调用速度,防抖或者节流,以及sleep的;
定时器的就是你学习的技术,而工作中怎么使用定时器,以及怎么写才有利于项目的后期维护,可能都没有人告诉你的;
甚至没有人告诉你怎么学,以及哪个方向是不需要学的,很容易学歪了,掉进一个大坑里出不来;
还有一方面:我们前端和后端不一样,比如后端的Java有完整的起手式,像打太极一样,开始怎么搞,结尾怎么搞,一个初级JAVA程序员和三五年还有那些10年的程序员,写出来的JAVA代码基本差不多,这是JAVA工程化的优点;
但是JS目前还是千差万别,一个初级程序员的JS和经验丰富的程序员,写出来的代码千差万别;
解决方案:站在别人的肩膀上快速提高
如何保证学习路线没有跑偏
关于学习路线上:你可以根据自己的实际情况,以及想要从事的方向自己写一个前端学习路线,找你认识的前端程序员,最好是有一定工作经验的,帮你看看有没有问题;避免走歪路;
自己自己的系统学习路线,不要掘金和微信公众号,东看看西看看的;那样会分散精力的;
如果你没有认识这方面的朋友,你可以加我的私人微信;把你的学习路线发给我,我帮你看下;
我自己也要工组和学习,可能回复的速度稍微有点慢,但是只要你给我留言,我肯定会回复你的;
我的微信号 yaolushan
我们平时学习的时候,多和别的前端一起交流;
如何提高自己的代码书写
这个我推荐你可以通过阅读那些开源的项目来实现,那些开源的技术,基本都是工作经验的同行们贡献的;
你可以先从简单的开源项目阅读,然后从慢慢深入;
推荐两个网站:
npm官网
:https://www.npmjs.com/Github
:https://github.com/
痛点四:技术没有侧重点
如果有一个领域非常熟悉,以后面试的时候,面试官那里很容易就过了;
又不是一家公司,多试试几个,总会有和你互相适合的岗位;
最怕的就是什么都会点,技能很多,但是问的深入一点,就凉了;
好像技术都是写过DEMO一样,什么都了解一点,什么都不深入
解决方案:学习有侧重点,深入一个领域
找一个领域下苦功夫的,把这个领域搞的滚瓜烂熟,非常熟悉;
然后面试的时候,无论面试官问什么问题,你都慢慢往自己熟悉的领域里领;这样面试官只要稍微追着问,你都能回答的非常漂亮;
我的以前学习的时候,JS学的非常深入,CSS只会布局;
JS会问的特别特别深入,这样的套路下,都是给offer的;
痛点五:招聘网站的岗位要求比较多
我早几天有上传一个,关于前端学习路线的视频,推荐是:HTML+CSS+Javascript+jQuery+React/Vue
的方案;
学习的时候其他的都不学,只学这些;
但是你学玩以后,在找工作的时候,会发现还有些其它的一些要求;
比如 TypeScript
ESlint
webpack
gulp
小程序开发
这些;
解决方案:实时根据招聘网站进行提取
这种情况的方案是,你找工作的前一个月的样子,搜集三四十个适合自己的岗位,然后把每个岗位的技术要求都列出来,按照出现频率,做一个排名,然后取前五名;
然后前三名技术或者框架,都是用一个礼拜的时间进行专项学习;主要注重实践层面;学习的时候先看官方文档;
今天是2010年2月14日,目前来说企业要求的是 TypeScript
ESlint
webpack
gulp
小程序开发
比较多;
我以前学习的时候,那时候 coffeescript
less
sass
jquery
zepto
还有seajs
/requirejs
这类模块加载库的;
现在你再看看招聘需求,还有几个企业写这个的
现在是 TypeScript EClint webpack gulp nodejs vue、react/vue
,这些的;
三五年之后,会不会又是另外一波;
我告诉你的是怎么去学习的方法,不要死板记住需要什么流行技术;你自己去找适合自己的学;
比如一个初级程序员,想找的是初级岗位,要求是一个方案;
而中高级程序员,搜出来的意向岗位,肯定是另外的需求;
而前端架构师,这类岗位,又更高的偏重于项目维护和运行层面的,又是另外的需求;
你根据自己的意向岗位来总结,然后把出现频率高的实际学,这才是最适合你的学习方案;
你不用问别人,你自己就知道该怎么学了;
为什么说一个礼拜专项学习就够了
像效率工具,Gulp、Webpack、ESlint等,如果只学到熟练的程度,它的投入产出比是最高的;
如果想学习原理层面或者精通层面,你需要花费大量的精力,不划算;
而且学习的时候,大部门的视频和教程可以帮助你走向熟练的阶段,但是能够帮助你走向精通的教程和书籍不多的;
就像我们出去玩,爬山的一样,一般的山,如果你只是爬到山腰,很容易,路线很平坦,而且还有索道协助你;
而如果你要爬到山顶,从山腰到山顶是最费力的阶段;
所以学习新的技术和框架,学到熟练阶段,爬到山腰,是投入产出比最好的;
痛点六:毅力不行
很多人想做程序员,想学程序员,但是自己毅力不行,或者自制力不行;
这时候有两条路走,一条是直接放弃,另一条是继续学习,直到学会为止;
解决方案:打造适合学习的氛围
我们读书的时候,会发现一个现象;
就是找你一起学习的不多,但是找你一起打游戏的不少;
如果你的一个宿舍里,都是游戏爱好者,那么你很可能也会被带着玩游戏;
每个人都有惰性,我们不能让自己处在安逸和享乐的场景下学习;毕竟我们又不是修仙,大隐隐于市那种境界;
我们经常看到那些减肥的女生,头像是"不到90斤不换头像",“组队减肥群”,“某莫月不瘦到多少斤给大家发红包”;
这些一方面是为了让大家监督自己,另一方面可以让大家自觉不要找你出去浪;
如果小伙伴们,担心毅力不够,可以参考下那些减肥的氛围操作;
如果你实在不行,又想做程序员,那么报培训班也是一个不错的方案;
合理的看待培训班
如果你网上搜索过报培训班的话题的话,会看到非常多的回复是说培训班坑多,培训班骗人的之类;
我认为那些是老顽固的想法;
培训班为什么被说的这么惨,其实是因为自己作的;因为招生嘴炮太厉害,很多人不适合程序员,招生老师可是不管那些的,他们主要是想着自己能拉多少人,能拿到多少提成;
然后搞个简单的所谓入学考试,让你感觉好像自己是筛选后才有资格来学习的;
搞进来后,如果学的不好,结果不行,而招生老师开始喊你进来的时候牛皮吹的震天响,就会郁闷和抱怨,所以抱怨培训班坑人就非常合理;
但是脱离这个事实,培训班里一些老师,基本都是有实际工作经验的;
一个有经验的人,手把手教你和辅助你学习,周围又都是一群努力学习的小伙伴,肯定比你自己学习好的;
如果你真的自己学不来,那报班真的是一个不错的方案;
如果你的自制力还行,你也可以通过淘宝/咸鱼上的一些特殊手段,弄一些培训班的内部教程来学习,也是美滋滋的;虽然不支持,但也是一个不错的途径;
痛点七:不与同行交流,生怕别人也学会
很多人感觉自己研究的方向或者技术比较好,不与别人交流,生怕别人也学会了;
其实这个思想是不对的,技术只有交流才能产生更好的火花,表述有利于自己理解,也有利于发现自己都不足,自己苦逼的学习,是不好的;
如果你学习后,通过视频或者写博客分享给被人,或者你可以教会别人也掌握;
那么你的技术理解深度会更加的好;
痛点八:学会了看懂了,但是还是不会写项目
很多人看视频,看教程;
从头看到尾,感觉没有什么难度;都可以看懂;
但是真正写代码的时候又不会写,这主要是平时学习的时候,没有动手敲代码的原因;
代码需要肌肉练习和动手敲,不断的重复记忆,才能更加流畅的写;光看不练假把式,在编程这行是行不懂的;
写的多了,自己写代码的流程就会更清晰,高级程序员真正值钱的不是代码写的熟练,也不是代码速速快;
而是他们的写项目的思维和解决问题的能力,解决问题的能力才是最重要的;这种能力只能通过不断的深入思考和实际写代码才能慢慢积累出来;
再次推荐要有自己的技术博客,平时遇到的问题和想法,多总结下,以后忘记了,可会回头快速回忆和解决;
痛点九:遇到棘手问题感觉天塌下来一样
我们实际写代码的时候,肯定遇到非常棘手的问题,怎么搞也搞不定,写到怀疑人生,感觉自己太low了;
这时候脑袋一定不要乱,如果脑瓜子懵懵的,就赶紧停止;
要思考解决思路,然后慢慢的一点点调;一定不要急躁和抱怨,也多和同行/同事/朋友交流,说不定别人一下就点拨你了;
这个时候往往是技术提高和遇到问题的思路提升阶段;
遇到问题不要慌,天不会塌下来!!!
遇到问题不要慌,天不会塌下来!!!
遇到问题不要慌,天不会塌下来!!!
痛点十:到处搜集视频,好像收藏了自己就会了一样,但是不看
很多人到处收集视频,感觉如果一门新技术,或者新教程;不收藏就吃亏了;
收藏了又不看,难道你们收藏了就算学会了么??这个我还是感觉很费解的;
资源在精品,不在多;上次在前端学习路线,那个视频里,也说了,一定不要搞那些几十G的视频,各个机构的视频都有;那种真没有啥帮助,这看看那看看的,非常不系统;我们要系统的学习;
资料的精简,更有利于学习;
上面说的,你也可以通过淘宝/咸鱼上的一些特殊手段,弄一些培训班的内部教程来学习,也是美滋滋的;虽然不支持,但也是一个不错的途径;
结束语
好了,上面就是我从最开始自学前端,到现在工作一些年以后的一些感悟;
感觉还是非常有参考意义的;
如果能够帮助你,欢迎分享给你身边需要的小伙伴啊;
大家可以再B站上持续关注我后期的视频;
我的B站主页:https://space.bilibili.com/59312814
在线视频
本文内容,我在Bilibili上有用专门的视频方式进行表达,