前言
当我看到这个问题时,有 889 个关注者,有 886,979 的浏览量。
我甚至想象得出,提问者在写这个题目时,内心不甘又迷茫的心情... 🤦♂️
因为我自己就是做了 4 年招聘后,跨界转行成前端工程师的。
关于我的经历,可以直接看这里:HR 转型研发那些事儿。
因为亲历,所以我更能理解,在不同阶段,我们都因什么而苦恼、真正需要的又是什么。
“淋过雨的人,才 tm 会想着为别人遮一把伞”。
我想为之写点东西,希望能帮到关注这个问题的同伴们 ✊
正文开始。
初期
这个阶段,一般会跟初级教程做做 demo、静态页面,也可能学学简单的算法。
你可能很开心:我也能做一些漂亮的页面啦 ~ 我也了解一些算法啦 ~ 前端还挺有意思的 ~
这时你可能还没意识到一点:
前端也是编程的一种(把那个说前端是切图的,拖出去枪毙 5 分钟)。
编程的自然属性要求你必须投入大量的时间和精力,才会逐渐看到成果。
如果自己没有”长期投入“这个预期,不如节省自己的时间、精力,干点儿别的去。
所以在进一步深入学习前,不妨自问下:我为什么要自学前端?
- 我觉得编程挺有意思,选前端因为更好上手;
- 我觉得现在的工作太“虚”,想学一手“硬”技术,自己做些实在的事情;
- 因为研发赚钱多,我想学好技能赚钱;
- ......
这些都是好答案,你可以进一步学习。至少主观上,你预期自己愿意在上面投入大量的时间和精力。
- 闲着也是闲着,不如学个技能,没准儿能当个副业;
- 现在前端挺火的,我也想试试;
- ......
如果这是你的真实想法,你中途放弃的可能性很大,尤其当你发现自己的时间、精力投入没有明显“回报”时。
不如把精力放在更有意义的事儿上。
中期
这个阶段的大多数同学,已经有了进一步深入学习的想法,甚至已经向前走了很多。
但是,这个期间放弃的同学也最多、最可惜。原因太多,先说几个典型。
要学的东西太多,畏难了
很多过来人,
要么啪!拍来一张有数百条知识点分支的巨大思维导图;
要么咔!把一套《大前端全套教程分享》甩你脸上(不大,也就 10 个 G 的资料)。
兴冲冲地告诉你:“我都总结好啦!把这些学好就行啦 ~ 😎”
就问你怂不怂???
反正我怂了不止一次 (理不直气也壮 🙄🙄🙄)
我相信大部分“过来人”是好心,但有时也很困惑:他们到底是来帮我的?还是来装 B 的?
如果你没怂,选择了一个方面开始啃。没说的老哥,纯爷们!
如果你怕了,但是过几天又忍不住回来盯着这堆资料纠结,这也很好。
我们不是平头哥,怂一下不丢人。只要你还会回来,就说明你想继续前进,这就够了。
解决方案也简单得很,设置一些自己够得到的阶段目标就好了 ~
阶段性目标设置的越合理,学习效率会更容易高些。
受限于自己的了解,你设置的阶段目标可能没那么合理。
没关系,能保证我们在前进、没有逡巡不前就可以了。
我不评价网上的一些教程,但我的确想结合自己那段时间的真实感受,做点事情。
没有明确的学习方法、看不到明确的方向
有人让你去慕课网、网易公开课、B 站,看视频教程学习,你学了一段时间,看着自己跟视频做的小 demo,开心的很;
看了一半忽然发现有人说:不能看视频学习,得看“红皮书”、“犀牛书”、“JavaScript DOM 编程艺术”,重视基础才行。
你有点懵,想想网上很多面经说“很多人就会用框架,一问原理啥都不知道,这样的人我们不要”,觉得有道理,于是开始啃书。
啃着啃着,发现学了挺多,但要写个网页、小程序啥的好像又用不上。比如:
- 原型链和作用域链分别是什么;
- prototype 和__proto__的关系;
- 一个构造函数的 N 种写法(像不像“茴”字的四种写法?);
- ......
你又懵又急:到底要我怎样啊?MD,不学了...
问题的原因很简单:他们的建议很好,但未必适合当下的你。
当下的你应该学习自己实现一个简单网页,还是学习”用 JS 操作 DOM“、了解”JS 常见的 6 种继承方式“?
你可能不知道,他们更不知道。
因为不知道当下最需要的是什么,所以当外界的建议互相冲突时,你就容易懵。
可以试试这个简单的方法:
给自己设置一个具体的工程目标(比如实现一个静态页面、写一个计算器,而不是学习”CSS 盒子模型“这样的目标)。
想办法实现它,并在这个过程学习相关知识点。
如果你不知道该学习哪些知识点、甚至不知道该设定一个怎样的目标,厚着脸皮去求教。
如果你不是”伸手党“,大部分人(比如我)应该很愿意帮助你。
用不到的知识,即使学习了也很容易忘记。如果你觉得某个知识点自己当下用不到,绕过它,等需要了再说。
学得很累,还学不会
我很想发起一个投票:有多少人直接被「闭包」劝退了...
学生还稍好些。
作为在职者,每天用挤出来的时间学习,却一直看不到明显的效果。很容易陷入焦虑、沮丧、怀疑自己,最终放弃。
但是,不要因此否认自己!也不要就此放弃!!这不是大家学习能力的问题!!!
先想想,一个妈妈会怎样教 2 岁的小朋友认识苹果?
“宝宝好吃吗?是不是甜甜的、脆脆的、红红的?这个是苹果哦。”
谁 tm 会像下面这样教孩子:
“宝宝,今天妈妈教你什么是苹果。苹果是一种圆圆的、大约一个拳头大小的、红色或黄色的、营养丰富的、可食用的水果。即可以吃、也可以入药。一会儿妈妈教你怎么吃苹果 ~”
对学生友好学习方式是,让学生把自己学到的一些认识总结成一个概念。
让老师舒服的教学方式,才是 tm 先教一个概念,再教概念的方方面面。
不幸的是,
大部分教材就是这么干的,所以你自学得很累,还没有太多收获;
大部分老师也是这么干的,所以你觉得老师教的知识点太多,上课太很苦;
事情本不该这样的!!!
不知有多少同学,对网络协议的相关知识,背了忘、忘了背(包括我自己)。
所以后来,我专门写了这篇《这可能是史上最易懂的计算机网络科普帖》,希望能帮到这些同学。
技术本是最简单、最朴素的东西,奈何世间这么多把简单东西复杂化的傻 X...
(写这段的时候真的火大,甚至有自己搞培训的冲动...)
后期
到了这个阶段,尽管没有面面俱到,但对某些方向已经有了一定程度的学习。能实现简单的网站、对工程化之类的有一定了解。
但瓶颈也来了。前端方向那么多,没有真实的项目需求,你有些迷茫自己该继续向哪个方向用力。
自己好像每天也有一点进步,但细品品好像又没什么进步。
前期投入那么多,不想放弃;但下一步怎么办?去找工作么?一点儿实际经验能找到么...
不用纠结,逼自己一把,用最直接的方法:去面试、去找一份正式的工作。
自己玩的项目,遇到几天都没搞定的问题,很可能随便给自己找个理由:这块可能的确太难了,再学一段时间再试试吧。然后就放弃了。
真正的项目容不得你这样想(至少是现阶段的你),你只能想尽各种办法实现它。而这个过程,会让自己的能力极大提升,也是真正证明自己的过程。
适当刷些面试题是对的。但不要怂、不要总想着准备好了再出击。
刷一百次面试题,不如一次真实的面试有用。
简历被拒绝了不要紧,继续完善继续投;
面挂了不要紧,总结原因,再去面就是。
不管面试结果如何,你都会有收获,稳赚不赔的买卖,多多益善。
记住一点:这个阶段你的目标,不是每次都能面过,而是面过一次即可。
一个真正项目的历练可能会让你产生质的变化,对你的成长的催动效果远超你的想象。
对几个常见问题的看法
Q1:到底是看视频学习、还是看书学习更好?
A:从个人体验看,看视频学习是最低效的学习方式,我最先放弃的就是”慕课网“。你也可以自己统计和回顾下,在相同的时间投入下,看书和看视频到底哪个方式更高效?然后得出自己的结论。
Q2:能推荐一些学习群、互助群么?
A:个人不推荐。当你决定自学,最珍贵的资源就是你的时间和精力,所谓的学习群可能并没你想象的那么有用。当然,你依然可以加入一些学习群,然后自己注意留意,它对自己的帮助很大,还是只是单纯的消耗自己的时间?然后用这个结论,指导自己。
未完待续...
后记
如果你认认真真的看到了这里,说明是对你有一些帮助对么?
请分享、哪怕只是简单点个赞,让更多人看到它。
如需帮助,我的微信:az2022
别不好意思求助,每厚一次脸皮,都可能节省自己几小时、甚至更多的时间。
日后我会继续输出,希望路上的大家都能早日踏出泥泞。