5

对前端小白的告白

 3 years ago
source link: https://zhuanlan.zhihu.com/p/89813865
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

对前端小白的告白

20191109更新。我希望这篇文章能帮到你,如果有问题,可以私聊我。我最近准备一篇初中级前端进阶的文章,欢迎捧场。

这是刚更新的中高级前端进阶的浏览器方面的文章

————————————————————

写这篇文章的目的,就是吸粉吸赞。我一直在思索,为什么我写的东西没有人看,后来意识到不仅水平菜,而且还没有交心。怎么理解这个”交心“,我记得一个场景,《纸牌屋》中弗兰克当时已经是副总统了,但是却遭到了总统的质疑,被怀疑一直在背后搞事情,弗兰克在妻子的指点下,把“整颗心”都掏给了总统,扭转劣势,最终登顶成功。虽然这个例子中弗兰克掏心的行为是一种欺骗,但是交心确实更容易得到认可。我将分享前端自学经验,向广大前端初学者”告白“。

v2-a58f8a7dac6a13c87ce5704d71dd07d4_720w.jpg

我现在在小米的MIUI团队。我2015年开始接触前端,是Vue诞生的同一年,但是我当时在一家医疗公司实习,那是谁都能进的公司,别说Vue了,就是Jquery也是很少用,平时基本扣扣图,偶尔需要用一下轮播组件,我还记得工作中的第一次分享,使用JS做了一个倒计时的时钟,那完全是抄着网上的实现,自己再硬理解,还好没人为难我,而我当时也没什么想法,就呆到了毕业。

毕业了,去了一家创业公司面试,此前已知道自己的技术很菜,所以会每天晚上看JS和Jquery的视频,我还记得翁恺老师的JavaScript视频,视频地址,非常适合入门看。当然没有JS实战经验,笔试题的编程题我都没有答出来,但是很多智力题都答出来了,因为都是经典的题目,只要有一点点数学基础,递增数字找规律,两个水壶互相倒水,最后得到一个要求的升数,最后一题是你最喜欢看的是什么电影,因为当时刚看过华尔街之狼,觉得很Cool,想也没想就写上去了,后来老板和我聊的很欢,他说创业的时候看了三次华尔街之狼,难道我是因为电影才被招进去的?随后,有一次我在网吧打团战,一个陌生电话Call过来,我打游戏的时候不喜欢别人打扰,用比较大的声音回了对方,等对方介绍一番,我才知道这是我的金主爸爸啊,愧疚之余,只剩下喜悦,挂了电话,对着5黑的兄弟,“兄弟们,今晚撸串啊,一个别跑。”创业公司老板都是能力极强的人,非常的全面,对你的要求也很高,这个阶段是我前端水平的一个爆发期。很感谢我的老板,以及公司书架上的书(CTO专门买了一个书架,放各种书籍供大家阅读),让我知道书籍的重要性。

再然后来到了小米,从毕业到进入小米,大概用了2年半,走了很多弯路,当然有些路是正确的,下面将分享这些经验。在现在公司我唯一怕的就是大家讨论学历我是专科毕业,然后自考了本科,但是现在公司个个学历都是顶呱呱,所以学历无法弥补,我只有加倍努力。而在进入小米1年后,我已经是团队核心开发了,也是目前部门绩效最高的。真的,一个好的公司,一个好的团队,它们是会把很多好的想法落地,我觉得这是我成长最快的一年,当然也离不开之前的积累。我可以放慢脚步,打磨基础,修炼内功,扩展横向的能力,目前处于很nice的状态。同时我的自学之路多多少少可以为大家正在自学的人借鉴,因为我体会过无助,无论是学历还是编程水平。

这篇文章我认为是最好的介绍MIUI11文章。

我面试过一些实习和正式生,他们中自学者占大多数,所以前端是自学者的天堂?前端实际工作中使用到的计算机理论基础相关的内容比较少,所以自学者就可以针对面试题,JS本身练习。有很多1年左右的自学者,它们的水平可以达到3年左右的工作者,他们形成了自己的一套自学体系,不断完善,这个差距还会逐渐拉大。下面分享一下我的方法论。

  • 合理的学习周期

现在有很多机构3个月培养一个前端,里面的学生大多数是被迫性的接受知识,光理论的东西就要学2个多月,而且很容易学了后面忘了前面。而且三个月真的只够学习一些概念的东西。我觉得6个月最好,9个月或者1年太久,容易让自学者失去方向,如果money每天都是支出状态,会产生焦虑心理,也会影响学习。6个月可以前几个月学习理论和简单编码,最后一两个月以实战项目收尾,毕竟编程是实践类工作。

大家也知道这个道理,一上来学习困难的东西,很容易把信心击垮,自学中,信心是我们的基石,我们一直坚信有付出就有收获。还有一个更重要的原因,先听我说一个最近的事,上周我的同事分享了关于红黑树的PPT,对于前端,红黑树简直是噩梦,听过,完全不知道内部原理,你可能也听过它相关的东西,左旋,右旋,颜色翻转,每次听到左旋就会想到一个减肥产品,但是当同事用了40分钟左右仔细讲解了红黑树的由来,以及怎么实现红黑树。那一刻我顿悟了,不仅是我掌握了红黑树,它就是2-3平衡数的一种实现。也掌握了一个规律,所有困难的概念都是由简单的原理演进而来,再加上一些原子性的操作(左旋,右旋等)组合,最终形成一套你看不懂的组合拳。所以难题的组成部分一定全部来自基础。

  • 故不积跬步,无以至千里

坚持,这是最难的部分,处理自学内容中的难题已经够让人头疼了,还要面对生活杂事、搞笑视频的诱惑。我觉得这取决于个人,种瓜得瓜种豆得豆,我身边很多朋友在自学道路上都已经瓜熟蒂落了,而很少有人得豆,因为未得豆的人,大概率也懒得买种子。坚持可能太困难了,但是我们可以合理的利用时间。推荐一本关于时间掌控的书,《为什么精英都是时间控》,如何合理分配时间,以及多出的时间反哺工作,形成滚雪球效应。

  • 营造良好的学习氛围

可以去上培训班,或者三五成群,建立一个学习小组,也可以加入一些qq群,共同学习。其实看教学视频和上培训班差不多,如果你觉得在家看视频没有效率,完全可以找个咖啡馆或者图书馆看,学习的时候仪式感很重要。我起初是通过一个qq群学习的,大概20人的小群,真的精英小群,3年前我们都是小菜鸟,而现在我在小米,他们有在阿里的,有在美国苹果公司的,当然不是卖手机的,是程序员。找到志同道合的,你会发现前方的道路不仅不孤单,并且有时候也会push自己跟上他们。

这应该是本文中最重要的部分,知乎大V谢春霖在《认知红利》中说到,只有被转化成规律的经验才有意义,我帮助了几个朋友成功转行,他们有在移动,有在工商银行,也有在小米的。我也经常和自学的人一起探讨学习经验,也看了网上很多成功转行的大佬的经历。所以我总结了一些规律。从零基础开始,有部分经验的可以直接跳过相应的部分。

前端基础应该是包含HTML+CSS+JS,当然包括一些辅助工具,比如编辑器VSCode,在线练习工具,w3school。笔记工具,有道云,可以随时随地记录疑问和心得。奇妙清单,非常好用的Todo工具。学习网站有慕课网,网易有道云,还有极客时间,质量都很高但是不太适合初学者。

HTML是一种偏友好的语言,可以直接在w3school上直接学习,

HTML 实例​www.w3school.com.cn

其实大多数人,包括我都没有系统性地学过CSS,都是现查现用,实际上理解它的原理和模型,能让你更快更高效地切图(构建页面)。以后同事看到了你写的CSS,哇这个人素养好高,CSS写那么漂亮,而不是,这个人CSS写的很坨屎一样,定义一大堆错误、无用的属性,尽管它能正常执行(run),CSS就是这么神奇,你不完整掌握它,你就会一直被它玩弄。

还是首推w3school的教程,我没有偷懒哦。

CSS 教程​www.w3school.com.cn

还有慕课网这个教程,讲得非常详细易懂。

平时有什么CSS疑难杂症,直接百度或谷歌搜CSS关键字 + 张鑫旭,如果搜索盒子模型 张鑫旭,就出来他的文章了,我擦,翻开一看是2010年写的文章,这文章有味道。这哥们专注研究CSS十年,今年还在北京的GMTC上分享自己的十年经验。还写过一本书《CSS世界》,我没看过,但是很多网友推荐。

想进阶的话,可以看《CSS揭秘》,作者是W3C CSS工作组特邀专家,设计CSS语言的委员之一,中文版也翻译的很好。

这部分最重要的还是实战,下面这个视频涵盖了CSS大部分的场景,而电商也是常见的开发需求。

JS其实是最难的一部分,不仅因为它是更系统的语言,而且它涉及的概念杂而广。目前,大多数公司都需要你掌握JS的一个框架,什么Jquery,React,Angular,Koa,我们也都不管,就忠于Vue,只学Vue技术相关的内容,跟紧了,千万不要被其他概念抓跑。我们的终点是全面掌握Vue,包括它的作者尤雨溪。

我们先来拆解一下如何学习,我们分成四个部分

JS光看w3school视频肯定不够,但是作为起点非常合适。视频,首推翁恺老师的JavaScript视频,非常不推荐在JS水平还很菜的时候读《JavaScript高级程序设计》,它是每一个前端工作者都需要读的书,但是前期读受益不大,而且各种概念会让你头晕目眩。比如阮一峰的《ECMAScript 6 入门》比较适合初学者,它是开源的,可以在网上直接阅读PDF,http://es6.ruanyifeng.com

JavaScript - 网易云课堂​study.163.com

当然如果你觉得自己基础已经很好了,就可以读《JavaScript高级程序设计》,《JavaScript 语言精粹》,《你不知道JavaScript》,《JavaScript设计模式与开发实践》。我有部分书籍的pdf,欢迎私聊。

  • Vue项目搭建

目前Vue的版本是2,所以你可以放心学习2的内容,而且明年发布的Vue3也基本支持所有的Vue2语法,所以不用担心。安装推荐直接学习官网例子

  • Vue语法

也推荐直接使用官方例子

  • Vue实战

非常推荐黄毅老师的视频,转行的几个朋友都非常推荐,他的视频能让你体系化地构建一个项目,我觉得它的视频内容可以作为官方首推。我没有打广告,这个视频需要花钱。你当然可以看慕课网其他的免费视频。

慕课网截图

知乎也有很多高赞的关于自学的回答,

英语好的,起点会更高,可以看这个同学的自学经历。

前端面试题,都是github高赞。

Front-end Job Interview Questions​github.com

计算机网络相关的,最近刚看完李兵老师的《浏览器工作原理与实战》,既能知道浏览器的工作原理,中间也穿插了很多网络相关的知识,很赞。书籍推荐看《图解HTTP》,毅力强的可以看《计算机网络自顶向下方法》。

另外算法相关的推荐极客时间王争老师的《数据结构与算法之美》。我整理过一个笔记,入门可以看一看,

计算机系统,如果你都已经要学计算机系统了,我相信你会去啃《深入理解计算机系统》。

所有的自学手段,都推荐看视频,视频容易集中精力,而且可以能看到实操效果,这就好比,老师敲出了“Hello World”,你也会下意识的认为自己能敲出“Hello World”。书籍虽然更全面,但是吸收慢,适合补充学习。

我希望你站在巨人的肩旁上,你的顿悟可能只是别人的基本功。学会抱团取暖,用合适的方式解决问题,自行解决永远是第一途径,百度谷歌能让你不求于人,这些都无法解决时,可以通过QQ群或者知乎提问,或者知乎私聊,有钱的还可以付费咨询。学会与自己沟通,学前端,我能行。

最后希望收获大量点赞,大量关注。欢迎私聊。


写作时间:20191102


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK