我如何从零基础转行成为一个自信的前端

一、背景介绍

我本科学的是国际贸易,乱选的专业。毕业后做了半年外贸,实在不喜欢,然后去做英文编辑了。第二份工作也很无聊,就是写英文软文,发表在国外的行业期刊上,给公司做广告。然后也做英文官网的内容。这是一个很没创意的工作。每天在一堆不利数据里找个别利好数据,包装一下,忽悠人。最重要的是,这份职业里我找不到持续精进的方向,做一年和做三年好像区别不大。

后来学前端也是误打误撞。因为我同时在做英文官网的内容和产品,会和前端打交道。当时公司的前端是学 UI 转过来的,我观察他的工作,以为就是 HTML 写个页面结构,然后 CSS 做个样式,然后用 JS 做点效果就可以了。这个简单啊,我也可以做。然后我就裸辞去学习前端开发了…… 后来发现我错了,但是自己跳的坑,流着泪也要爬出来。接下来我经历了人生中最难熬的一段时间,也经历了人生中第一次大的转变。

我从 2017 年年初开始高强度学习,去年十一假期之后开始我的第一份前端工作,到今天刚好工作一年时间。接下来我将我的学习路径,学习方法,和学习资源整理分享出来,希望可以帮到更多人。

二、准备工作

学习不只是找到好的学习路径,掌握好的学习方法就可以了的,要成为优秀的学习者,是要求很多素质和习惯的。我长期以来都是一个懒散的人,三分钟热度,自律很差。我相信大部分人都这样。在意识到学习任务的艰巨后,我想的是我不能再放弃了,我觉得我年轻试错的阶段已经过了,经不起再失败了,于是我专门花了很长时间来调整自己的习惯和行为。这里我分享一些对我帮助最大的资源:

1、一本书

《习惯的力量》(The Power of Habit)。这本书让我意识到自己的坏习惯是需要科学的方法来改变的,一味地自责和焦虑是没用的。习惯的改变靠的不是主观意志力,而是 cue (不知道怎么翻译,刺激物?)和日常流程(routine)来维持的,所以我把学习场所从家换到了星巴克。而 cue 分为情绪,时间,场所,上一个行为等,这些都需要自己去定位查找。找到触发你的坏习惯的 cue,改变它。另外,每天都要有计划,计划会触发奖赏期待,让你更不容易回到坏习惯。最重要的是,关键好习惯的养成,会让你养成其它好习惯更容易。比如早起的习惯一旦养成,我又养成了早上学习最具挑战知识的习惯。

2、一门课程

Coursera 上有一门课叫Learning How To Learn, 目前是世界上参与人数最多的一门 MOOC 课程。这门课免费。讲师 Dr. Barbara Oakley 是奥克兰大学的工程学教授。她本来是学斯拉夫语言文学的,一直畏惧工科,数理学科成绩也很差,直到快 30 岁时,她才决定挑战自己去学工程学。听她讲学习过程是最有说服力的。另一位讲师 Dr. Terrence Sejnowski 是顶尖的神经科学专家。他会从脑科学和神经科学的实证角度告诉你为什么应该怎样学。下面讲下我对这门课程的一些理念的应用。

一、大脑的发散和集中工作模式

发散模式(diffuse mode)指的是注意力从工作对象处转移开来,放松下来,让灵感有机会出现。集中模式(focused mode)自然是指全部注意力放在工作对象上,高强度思考。学习时,我采用番茄工作法,每工作 25 分钟休息 5 分钟。然后每工作 2 到 3 个小时,出门散下步,或者在家时耍下壶铃。这个习惯养成后,很多神奇的事情会发生。比如有一次我在写 Rxjs 应用时,卡在一个地方,怎么也想不出来解决方案,然后去洗了个澡,灵感就来了,换几个操作符的组合就解决了。还有数不清有多少次在梦里想出一个解决方案,起床就去试,结果真的行的通。

二、多运动

Dr. Terrence Sejnowski 讲解了为什么运动会促发大脑新的神经元的生长。高强度的脑力活动,你需要大脑保持最佳机能。我在开始学习之前就是个健身狂魔(见下图),每周有至少四天要去健身房。找到工作前的学习期,我也保持着这个频率锻炼。工作后,没时间再去健身房了,我就买了个 Concept 2 划船机,早上在家锻炼。锻炼推荐 HIIT (高强度间歇训练)方法,燃脂迅速,最短时间内达到锻炼效果。

硬拉训练

三、刻意训练

学生时代我经常忽略做题训练,看懂了答案就以为自己掌握了。但其实懂答案和自己写出来是两回事。学习者很容易产生能力幻觉(Illusion of Competence),看懂了知识点,就以为自己掌握了。只有自己能独立解释清楚的,才算是自己掌握的。自己在网上找些小挑战做(比如 100 days of code, 还有 JavaScript 30),多在 codewars 和 LeetCode 上刷题(我主要是在 codewars 上做题),可以巩固刚学的知识。

四、间隔重复

一天花 6 个小时学一个主题,和用 6 天时间,一天花 1 小时来学习同一个主题相比,肯定是后者掌握的更好。当然重复不是简单的重读一遍。而是刻意回忆,测试自己还能不能想起来。大家可以试试 Studies 这个软件,创建和管理知识卡片,方便复习。iOS 和 Mac 上都有。

还有很多,我就不全列了。强烈建议大家去学一遍课程,自己摸索出适合自己的方法。中文版在这里

一个习惯

早起。每天早上 4 点准时起床。我知道这个听起来挺疯狂,但我坚持了一年半了。(也有例外,但最晚大多数时候不超过 5 点,极个别例外比如加班,也不会超过 6 点)。我以前的习惯是经常晚上玩手机到凌晨 2 点睡,还骗自己,以为自己是夜猫子型。转变习惯用了一个月。下面是一些技巧。1. 吃补剂。我吃的是 Swiss Sleep,一种澳洲的草本保健品。我知道很多专家说保健品不靠谱,但我吃了这个真的睡的更香了,用 Sleep Cycle 监测到的深度睡眠增加了。2. 下午 2 点之后不喝咖啡,晚上 8 点之后不看电子屏幕。3. 睡前深呼吸,放慢呼吸频率。四,我用 Yeelight 床头灯,早上定时模拟日出。自然醒的感觉,不会像闹钟那样讨厌。早起后,早上至少有 3 个小时不会有人打扰你(我做的更极端,直接把微信卸载了,全天都没人打扰)。而晚上睡的早,也不会漫无目的地玩手机聊天。从早上起床到中午 12 点,我可以完成 10 个番茄闹钟。中途还有充足的休息时间。

一个 APP

Headspace 是国外一个比较流行的冥想软件。可能很多人对冥想的感觉就是太玄学,但它真的作用很大。对于我而言,主要是两个作用,一个是集中注意力,另外一个是克服焦虑。一个人没有其他帮助,学习一个全新的领域,也不知道能不能成功,压力还是很大的。而这种压力可能并不一定会转化为动力,而是会积累着,成为拖累。冥想可以让我暂时远离这些担忧,调整注意力。Headspace 的指导语速很慢,听懂比较容易。

三、影响我的技术人

如果你了解过一万小时天才理论,你可能知道一个好的 Mentor 在个人成长中的无法替代的作用。大多数人都没有如此幸运,找到一个好的导师。我也是。对此我的一个并不完美的替代方案是关注行业里的思考者和先行者,听下他们的建议,了解他们是怎样思考和工作的。下面是对我影响最大的技术人:

1、Kyle Simpson. 我的 JS 是他领入门的,也是他带着走向进阶的。我的整个学习路径,都有他的影响。作为一个教育者,他会给学习者很多各方面的建议。我会关注他所有的演讲和开源项目。Twitter: @getify

2、Eric Elliott. 我学函数式编程是始于他。我比较幸运,一开始学编程的时候刚好碰到 Eric 开始在 Medium 上连载函数式编程教程。我在学了三个月 JS 之后,就遇到了一个全新的编程范式,并且被说服了。我推荐所有 JS 开发者都了解下这一系列文章  Composing Software 你可以听一个从 BASIC 时代就开始写程序的前辈,是怎样看待不同编程范式的;了解为什么组合比继承更优,为什么 JS 适合用来函数式编程。Twitter: _ericelliott

3、André Staltz. 他是社区里面的响应式编程专家。如果你想学响应式编程的话,一定要看他写的这篇文章,The introduction to Reactive Programming you've been missing. 他还写了一个函数响应式框架叫 Cycle.js 除了技术,他最让我佩服的还有他对技术与社会之间关系的思考。他对于目前 Facebook 和 Google 等互联网巨头控制用户数据的现状不满,他的一个 mission 就是要创造去中心化的互联网。(万维网的创始人,Tim Berners-Lee 爵士,也在做这件事)他最近发布了一款安卓手机应用叫 Manyverse,一个真正去中心化社交平台。这款应用是用 React Native 写的,开源。感兴趣的话,你可以看下源码,看下他是怎么组织代码的。Twitter: @andrestaltz

4、Sarah Drasner. Sarah 是个非常 nice 的姐姐,非常有亲和力。她是 SVG 动画专家,CSS 专家,微软资深开发。还是 Vue 核心团队成员。她在 Frontend Masters 上有 Vue.js,高阶 SVG 动画,UI 设计等课程。她在 Twitter 上也会发很多开发 Tips。Twitter: @sarah_edo

5、Wes Bos. 刚刚提到过这位。他除了在播客上给开发者提供很多建议外,还在 Twitter 上分享很多开发技巧,JS, CSS, Bash, VSCode 等技巧都有。我在开发中也用了很多他分享的技巧,省了很多时间。Twitter: @wesbos

6、Mathias Bynens. 谷歌 V8 引擎工程师,TC39 成员。他会从引擎实现的角度,告诉开发者怎么写代码。他也会分享一些 V8 的项目细节等。我之前写了消灭 for 循环的文章,好多人反对,还有些人直接嘲讽我。其中有一个说法是高阶函数没有 for 循环性能好。作为一个新手,我哪来勇气去对杠来自资深开发者的质疑的?因为引擎开发者都说了,那点微观语言层面的性能差异,不会成为你整个应用的性能瓶颈。你应该把注意力放在编写易理解和易维护的代码上。 Twitter: @mathias

7、Brian Lonsdorf. 网名 Dr. Boolean. 这家伙就是个天才。他有些害羞,但是在讲他最擅长的函数式编程的时候,总能把满脑子天马行空的想法讲地很清楚。如果想学硬核函数式编程的话,推荐从关注他开始。他 Twitter 更新不频繁,但是更新的时候一般都是值得你记笔记的时候。Twitter: @drboolean

8、Jason Miller. 刚有提到他。他是 Google Chrome 团队工程师,还是 Preact 的作者。他写了一堆平均只有十几行代码的库。研究他的代码不用一个文件一个文件地跳因为就在一个文件里…… 他在 Twitter 上也很活跃。Twitter: @_developit

9、Bartosz Milewski. 这位真是位大神。我说我被他影响都有强行给自己贴金的嫌疑。他有量子物理博士学位,后来去做软件开发了,成了 C++ 专家,出过 C++ 的专著。后来因受不了 C++ 糟糕的设计,去写 Haskell 了,也成了专家。最近又把兴趣转向范畴论了,开始给程序员教范畴论。业余还研究音乐理论(我看他 YouTube 点赞列表知道的……)。我最近几个月每周都安排几个早晨,去他的 YouTube 频道听他讲范畴论(这个不需要高数基础)。等下我会继续谈他的范畴论教程。Twitter: @BartoszMilewski

在听 Bartosz Milewski 讲范畴论

四、犯过的错误

1、尝试着一次学太多东西。不管你再怎么努力,人的时间和精力是有限的,一次能学的内容有限。我在找到开发工作之前的学习阶段,还学了 Python 和 Django,花了较长时间,效果也不好。工作后看到机器学习挺有意思,也花了一段时间学。我数学基础太差,就去 Khan Academy 学本科统计学和线性代数了。后来实在精力跟不上了,就搁置了。以后可能会再去挑战这个,但还是要一步一步来。

2、浪费时间学当前阶段不适合学的东西。去年三月份学 Andrew Mead 的 Node 课程时,有一天收到他的邮件,说他新出了一个全栈课程,现在购买享受最低价。我一看简介,一个 JS 框架同时解决了前端后端和数据库,这个可以呀,学完我就能做全栈了。然后我就去花了一个月学 Meteor。那时候我 JS 基础还不是很好,学这种高阶的框架也只是记一堆 API,学完后一直没用过,到现在已经忘光了。

3、不顾人才市场的需求,盲目学暂时用不到的技术栈。在找到开发工作前,我的学习期是比较长的,主要原因是我一直觉得自己学的还不够,好多东西还没掌握。但是我那个时候学的一些技术,并不是大多数用人单位所要求的,比如 Rx.js 和 GraphQL。虽然我并不后悔学了这两个技术,但我觉得我没必要在还没工作时就给自己那么大压力。我想很少有用人单位会要求一个没有工作经验的新人会写 Rx.js 和 GraphQL,再说国内用这两个技术的公司也很少。

最后免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 在这里插入图片描述在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 在这里插入图片描述

五、Python练习题

检查学习结果。 在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述在这里插入图片描述

这份完整版的Python全套学习资料已经打包好,需要的小伙伴可以戳下方链接免费领取

读者福利《Python全套学习资料》,戳这里免费领取!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值