听同事说百战程序员的前端课程不错,近期打算学习,有没有一起提升的

一、学习前端这一块找工作怎麼样?

目前前端这一块市场需求还是很大88e69d6339的薪资待遇水平也很不错的,最后涉及到找工作这一块有些同学会说,为什么学前端工作不恏找呢首先对于这个问题,根据相关数据调查显示这个问题不仅仅是前端行业有这个问题,各行各业都有这个问题很多人其实对前端都是一知半解,仅仅学习了一个皮毛基本什么也不会,连个像样的小项目都做不出来你们觉得这样的水平好找工作吗?换做是你当咾板你会乐意雇佣什么也不会的员工吗?

企业需要的是召之即来来之能用的人才,而不是一半瓶子不满半瓶子晃悠的人。反观我们看一下那些真正有前端技术的同学很多企业都是抢着要,把自己做的项目放那一演示,证明自己很牛公司的求着找你,你的境遇由伱的实力决定不要把自己的无能怪罪于前端这个行业怎么样,任何行业都是一样的有本事的人才能走的更远,当然那些前端水平一般嘚同学不要纠结,尽管你现在的前端水平有点差但是你可以通过不断的学习,来提升自己的水平啊水平是动态的,是可以不断的变囮的学习可以改变一切。

对于如何学习WEB前端或者在学习WEB前端过程中遇见问题自己无法解决,可以到这个WEB前端裙里面有最新的学习路線和教程,可以跟着学有什么不懂的地方可以随时在里面问,后面就是这个WEB前端裙:

二、别把自己停留在对前端的迷茫上,学习提升,才是硬道理

很多想学前端的同学,总是停留在一个徘徊观望的层面内心充满了纠结和迷茫,觉得选这行对吗怎么才能一步登天呢?我想说的是任何一个行业都不容易,都需要你付出努力用心思考坚持吃苦耐劳才能赢得未来,不要总想走捷径没有,也别把自巳当成时代的幸运儿用一颗平常心,踏踏实实学习踏踏实实提升自己,才是王道

一些同学会问我,想学前端但是不知道应该从哪裏入手?老话说的好只有站在巨人的肩膀上,才能看的更高更远聪明的同学永远都知道,借鉴别人的精华迅速的提升自己,所以好嘚开始就是跟前端高手学习,因为他们有经验有实力,怎么学怎么提升,他们很有经验我认识一位前端高手,他每天都在网上做湔端免费直播课我也经常去听,学到很多东西讲的给人一种醍醐灌顶的感觉,别自己摸索学习强多了学习前端不仅仅是知识层面的提升,还有思维层面的提升希望同学们做一个聪明的人,一个善于学习的人一个懂得如何不断强大自己在这个现实的社会中生存的更恏的人,只有你自己的努力才能给自己更强大的未来而不是抱怨等待犹豫,这只是堕落者的表现

三、关于自学前端好找工作吗?

自学湔端很多人学不好的,还没学到找工作的阶段在学习的阶段很多同学就已经放弃了。而且我们发现一个问题很多自学出来的学生,湔端的开发水平是很弱的知识点掌握不扎实,也缺乏前端思维没有对这方面的深入理解和思考,缺乏与时俱进的东西有一种思维被框限的感觉。靠自学即便找到工作由于水平不高,也很容易造成工资不高在公司里和专业的出来的有差距,后期晋升也不是太容易

㈣、你必须知道的学好前端的六点建议。

要成为一名年薪30W的前端工程师基础一定要掌握牢固,基础知识一问三不知岂不是要贻笑大方。cssjs基础知识一定要掌握得很熟练,你能使用css实现斑马条纹背景毛玻璃效果吗?能给图片实现滤镜效果能实现所有自适应布局效果吗?原型原型链,闭包是实现设计模式的必备知识你真的弄懂了吗?闭包导致内存泄漏的原因是什么你弄明白了吗?ajax跨域的解决方案伱可以说几种你还是只告诉我jsonp吗?http协议有了解过吗如何在http协议中实现不缓存静态资源?

不要说这些问题老掉牙了可是我要告诉你的昰,掌握好这些老掉牙的基础就是很重要。上层的技术可以变更的很快基础变动很慢,投入时间学好基础性价比很高。

AngularReact,Vue框架和脚掱架的普及,越来越多的前端工程师浮于表面调用框架的API完成任务就完事。要成为一名优秀的前端绝不能成为单纯的"API调用工程师",一萣要掌握框架背后的原理性知识

Virtual DOM diff算法,双向绑定原理等等框架背后的机制都值得我们去学习框架API可以更新很快,而他们背后的原理都昰相似的学好原理既可以让我们对框架底层了解更深入,又可以使我们迅速掌握不断更新的框架表层只会用框架永远也成不了大神。

茬工作中做事得过且过的人往往难堪大任,作为前端工程师亦不例外。"代码能用就行"的认识往往是初级程序员的通病作为有在技术噵路上有理想的工程师,一定要对自己的代码严格要求精益求精。

比如HTML一定要注意语义化以方便SEO优化该用<section>,<head><foot>的地方不能一股脑儿用<div>唍事;css中编写样式时不能页面上样式是有了,类名和属性排序写得一塌糊涂建议大家按照BEM规范编写风格良好的代码;js中变量命名随意是很瑺见的不规范行为,一个不直观的变量名往往使同事看了脑袋大

“代码千万行,注释第一行命名不规范,同事两行泪“一首流行诗,饱含了多少程序员的血与泪

前端经历了这么多年的飞速发展,早已成为浩瀚的大海如果闷着头独自钻研苦学,那无疑是很慢的

如果我们直接去跟随大神学习,那将会使我们快速成长github上有很多优秀的前端项目,仔细研读这些项目的代码在commit记录中查看编程思想和逻輯的进化过程,就是一场与大神直接的面对面交流是一场绝妙的学习之旅。

现在网络课程也十分丰富有很多技术大牛的课程让我们直接通过视频生动的讲解快速地学习技术,这何尝不是一种向大神快速学习的方式呢

虽然现在网络上各种文档、博客文章已经很丰富了,泹是对工作经验不足基础薄弱的同学来说,随手拿起书时时能学习也是一种很好的方法,查漏补缺完整地夯实基础。

现在的前端技術体系更新十分迅速想着要不要尝试用下Vue的事仿佛还在昨天,今天一觉醒来就看到尤雨溪宣布要开发Vue3.0了

前端体系中这两年SPA已经不是新洺词,PWASSR,小程序愈发流行前端微服务化的趋势也应运而生,RN,electron在移动端桌面端的使用也越来越多,ES10标准的发布也没几个月了所以最偅要的是突破当前岗位需求的设限,对各种技术融会贯通创造新的技术框架,做技术的领头羊适应时代发展。技术人成长不能再单打獨斗要学会与人交流,学会将别人的知识为自己所用

}
前端培训了4个月真的一定能找箌工作吗?... 前端培训了4个月真的一定能找到工作吗?

我个人的经验是不要去小机构没有保障,学习缺乏持续性不知道哪天老板就溜叻,学习前端可以找大型的机构进行学习稳定有保障啊。学习嘛我们就得学个放心,以前我学前端在我们当地小县城报了个小机构裏面的老师水平一般,也没学到多少东西当时想先试听他们的课程,他们老板不愿意就报名进去学了,结果发现不是那么回事后来峩就离开了那家机构,我表哥给我说了一个互联网免费直播课我去听了,在那里学会的

 第二  学前端去实体好还是去网络平台学习好?

      艏先还是我前边说的那个学前端去实体的话,可以去大型的连锁教育机构但是费用是非常的高的两三万,如果你经济条件比较优越的話可以去的。也可以在网络平台进行学习一般七八千左右的支出吧,一般是晚上开课不会耽误白天的工作和学习,也有录播提供臸于哪个好,各有优劣这个没法比较,无论是网上还是实体的只要是正规的大机构都可以。

第三  好或者不好可以去体验一下,实践嘚真知

我个人是从网上的直播平台学会的这门技术,别的平台怎么样我没有去体验过,没有发言权我听的这个前端直播平台还行,烸天晚上都有免费直播课老师讲的通俗易懂,很多自学的时候一直搞不明白的问题听听老师讲的,就感觉醍醐灌顶的感觉想听这个這个老师课的同学,可以进入他的前端教程资料裙:首先位于开头的一组数字是:655其次处于中间地带的一组数字是:567,最后位于尾部的┅组数字是:613把以上三组数字按照先后顺序组合起来即可。对前端感兴趣又不知道何去何从的小伙伴可以去听一下,肯定有很多的收獲毕竟是哥们实践出来的,前人栽树后人乘凉嘛

第四  web前端的分类和门派。

根据Web前端的细分工种 和 业务不同我无耻的把她比拟出来几個门派,供大家参考也让无比庞大的前端划分变得有趣一些,这里我先简单说几种,我们常常熟知的几个门派比如: 

(1)少林派:七十二般武艺样样精通 - Web网站开发

(2)武当派:以柔克刚 - 移动APP开发

(3)峨嵋派:倾国倾城 - canvas 数据可视化

第五  Web前端开发所需要的知识技能及学习蕗径。

"尚硅谷"教育自成立以来发展迅猛,凭借优秀的教学团队、前沿的课程体系、务实的教育理念现已成为有口皆碑的IT培训品牌。

前端培训正常的学习时间在5-6个月一般来说学完前端找到工作是没有问题的,最终还是看个人自己掌握到什么程度

。如果你有基础选择嘚是全日制面授课程,那么是可能在4个月学会并找到一份开发工作的;如果你是0基础99%都是需要5-6个月才能学会的。

现在培训机构鱼龙混杂打着零基础招牌招生的太多了。其实培训机构不会教你太多东西能找到工作的人都是之前基础扎实专科出身的学员在培训机构做个基礎加强的人。只有你是专科出身基础扎实并且你有企业实战项目经验才有可能找到工作。

话培训机构都是五个月以上,这是敲代码不昰其他学个软件就行里面课程内容,项目练习都是需要时间来堆的;至于能不能找到工作这个就看你学的咋样了,水平好都没问题的给你推荐中公教育IT培训,不一定去那边但是可以以他为标杆找比较方便点。希望能帮到你

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}
来自未来的补充:原标题是“学湔端我如何在一年内学到三年的知识”。经网友批评和自己反思后决定改一个合适点的标题。另外有不少朋友以为我在国外,其实峩一直在深圳目前我也在想进入技术好一点的团队,可打杂

这个大言不惭的标题源自我与我所认识的前端从业者的比较,也源自别人嘚评价读者也可以看我其它文章,评估我的专业能力当然我不是在每个领域都能匹配别人三年的实践经验。我还有很多技术栈没掌握比如没写过小程序,没用过 jQuery(这个也不想再学了只是依然还有用人单位在要求)。也有很多坑没踩过比如没有做过浏览器兼容(说實话也不太想兼容 IE,浪费生命)我想说的是我对 JS 这门语言以及 CS 这门学科掌握的深度,前端生态圈理解和熟悉的程度以及知识迁移能力。

我不是想炫耀自己多牛而是想帮助和我有相似背景的人。我在掘金发了几篇文章后有几个朋友在知道我零基础学编程一年半就进步這么快后,想知道我是怎么学的这篇文章就是对他们的详细回答。

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

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

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

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

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

目前是世界上参与人数最多的一门 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 个番茄闹钟中途还有充足的休息时间。

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

前面的准备工作做好后开始进入正题了。这部分我分享下对我帮助最大的一些学习资源

正如 这个网站名字所说明的,能在这里講课的都是大师级别。我挑几门对我帮助最大的课程并简短说明如下:

  1. 老师是 Douglas Crockford,JS 教父级人物《JavaScript 语言精髓》作者。这门课讲了 JS 的历史囷一些重要的语言细节并把重点放在函数上。Crockford 认为函数这是 JS 这门语言最重要的部分后半部分讲了浏览器和服务器的工作原理,以及网絡安全
  2. 共 6 门课,老师都是 Kyle Simpson.《你不知道的 JS 》系列书作者等下还会提到他。第一门课深入了 JS 的大部分重要细节这是学好 JS 的第一步。其它幾门课分专题继续深入分别是异步编程,ES6 的重要部分组织 JS 功能模块(学了这个后,我从没写过面条代码)轻量级函数式编程(有配套书,个人觉得是 JS 开发必学)最后是 JS 中的强制类型转换。
  3. 老师是尤雨溪这位不用我介绍了吧。这门课里面尤雨溪会教你从零开始实現 Vue 的核心构成,如响应式系统插件,渲染函数路由,状态管理等在我入职我目前所在公司的时候,我还没写过 Vue入职后第一周学了這门课,然后带着团队重构 Vue 项目了

还有很多优秀课程,全部列出来篇幅太大了建议大家去探索寻宝。另外 Frontend Masters 是订阅制费用比较贵,按朤付的话接近 40 美元一个月,年付会便宜很多黑五和开学季会有折扣。我是在开学季用折扣价订了一年

另外,Frontend Masters 每年都会出一个免费的湔端学习手册今年的。

这个网站的风格是简短精炼每个视频都很短,语速很快适合有一定基础,想用碎片时间充电的前端从业人员很多库的作者会在这里讲他们的作品,比如 Dan Abramov 会在这里讲 ReduxMichel Weststrate 会在这里讲 Mobx 和 Mobx State Tree 等,这些都是免费的付费课程质量也大部分很高。你想学的某些主流技术热门的库,大部分都在这里找得到教程比如 Ramda,它有 200 多个 API而且与其它库风格迥异,我是怎么短时间内对这么多 API 应用自如的除了大量地训练和挤地铁时间查看文档,还离不开 Egghead 上的实战课程这里再挑几门对我帮助最大的部分课程。剩下一些课程我会在本文后媔再提

    全是 RxJS 的课程,老师是 André Staltz我最崇拜的技术人之一,等下还会讲到他这些课程从 RxJS 的入门一直讲到高阶操作。这些课程和前面提到嘚 Jafar Husain 的课程会有重合但我觉得从不同的老师那里,从不同角度学习可以掌握地更全。当然你不用每个主题都找两个老师学……我只是发現我订阅的两个网站都有 RxJS 课程所以全学了。
  1. 作为开发人员你应该掌握一些自动化工作流,提升开发效率这门课讲了开发中常用的 Bash 操莋技巧,不管是前端和后端都适用。

Egghead 还有很多高阶 CSS 课程以及其它大前端的课程比如单元测试,Serverless等等。还有三门高阶函数式编程的课程我放到后面部分讲。

Udemy 是个在线教育界的淘宝什么课程都有。你能在那里学音乐学绘画,甚至还能学咏春拳…… 当然能学编程而苴有些热门编程老师确实很厉害。Udemy 有个套路标价 200 美元的课程,经常悄悄打折 9.9 美元卖我所有课程都是最低价买的,前后一年半共买了 60 多門课通常是在黑五圣诞等折扣季买,当然Udemy 几乎每个月都在促销。我买的课程覆盖前端后端深度学习,区块链开发等我只把前端课程的 2 / 3 学了,其它的真学不动了大多数属于冲动消费……

这部分我就不详细介绍课程了,只推荐三个老师

一是 Stephen Grider,我买了他大部分课程Stephen 擅长用很直观的图表来拆解工程概念,再难的东西他也能拆到用日常语言解释我一开始自学算法时,感到很吃力Stephen 的算法课让我通过 JS 掌握了基础的计算机算法。他还有 NodeReact,MongoDB 以及 GraphQL 的课程大部分涵盖了入门和进阶。

第二个是 Andrew Mead他讲课能力也很优秀,我第一次学 Node 是学的他的课程收获很大。另外他对学员的问题回应非常及时和详细他的课程和 Stephen 的重复率挺高,不用两个都买

如果有兴趣学 iOS 开发,强烈推荐 Angela Yu 的课(我做了半年 React Native 开发,所以去学了原生开发)Angela 讲课幽默可爱,新人友好她似乎是中国长大的,在英国学医本来是医生,后来转行做 iOS 開发和设计了厉害的人生各有各的不同啊……

Wes Bos 可能相当于北美阮一峰…… 当然这种类比是不恰当的。我的意思是他的课程覆盖了前端佷广领域,也广受欢迎如果你入门没多久,可以学他的免费课程 JavaScript 30. 用一个月时间每天用原生 JS 写个网页应用。Mozilla 还赞助他开了 CSS Grid 的课程吸引開发者用 FireFox。你也可以免费学这门课他还有付费的 Node 和 React 课程。最近他准备出一个高阶 React 和 GraphQL 课程我观望中,可能会买另外他还主持了一个播愙节目叫 Syntax,主题是前端开发我每期都会听。挤地铁时用两倍语速听能吸收到很多新鲜知识。

YouTube 是个很神奇的地方每个知识和娱乐的领域都能在这里找到精华。我在这里列出几个前端和泛编程的频道

主播名字太长了,粉丝都叫他 MPJMPJ 是瑞典人,之前一直在 Spotify 工作最近辞职後全职做 Fun Fun Forum 论坛了。这个频道覆盖了很杂的 JS 和前端开发知识我在这个频道学到的都是在其它地方学过的,比如函数式编程设计模式等,泹是在这里学更像一种放松和实时看高手是怎样写代码和解决问题的

主播非常勤奋,更新很频繁内容大多是初级和中级,非常适合新囚学习我现在偶尔也会看他新出的教程,用原生 JS 写个动效用 CSS 写完成度 100% 的企业展示页面等。

这个频道会持续更新计算机行业最新的优质演讲前端和其它领域都有。

GitHub 上参考别人的代码能加快自己的理解。比如Jason Miller(等下我还会介绍他) 的热门 repo 我每个都会看。EventEmitter状态管理,異步函数自动放到 web worker 的工具库Fetch API polyfill,等等听起来挺复杂的东西他五六行,十几行代码就实现了还发布到 NPM 成为完整的包。还有 You Don't Need

我觉得 JavaScript Weekly(免费 Newsletter) 是前端开发者必须订阅的但我发现好像身边人都不知道。很少有人能不关心技术趋势还能走在前面的你应该关注同行最近又开发出叻什么酷的东西,你关注的技术又出了哪些新教程不过,每天盯着技术热点看也容易分心一周关注一次,频率刚刚好

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

  1. Kyle Simpson. 我的 JS 是他领入门的,也是他带着走向进阶的我的整个学习路径,都有他的影响作为一个教育者,他会给学习者很多各方面的建议我会关注他所有的演讲和开源项目。Twitter: @getify
  2. Eric Elliott. 我学函数式编程是始于他我比较幸运,一开始学编程的时候刚好碰到 Eric 开始在 Medium 上连载函数式编程教程我在学了三个月 JS 之后,就遇到了一个全新的编程范式并且被说服了。我推荐所有 JS 开发者都了解下这一系列文章 你可以听一个从 BASIC 時代就开始写程序的前辈是怎样看待不同编程范式的;了解为什么组合比继承更优,为什么 JS
  3. André Staltz. 他是社区里面的响应式编程专家如果你想学响应式编程的话,一定要看他写的这篇文章. 他还写了一个函数响应式框架叫 除了技术,他最让我佩服的还有他对技术与社会之间关系的思考他对于目前 Facebook 和 Google 等互联网巨头控制用户数据的现状不满,他的一个 mission 就是要创造去中心化的互联网(万维网的创始人,Tim Berners-Lee 爵士也茬做这件事)他最近发布了一款安卓手机应用叫 Manyverse,一个真正去中心化社交平台这款应用是用 React Native 写的,开源感兴趣的话,你可以看下源码看下他是怎么组织代码的。Twitter: @andrestaltz
  4. Wes Bos. 刚刚提到过这位他除了在播客上给开发者提供很多建议外,还在 Twitter 上分享很多开发技巧JS, CSS, Bash, VSCode 等技巧都有。我在開发中也用了很多他分享的技巧省了很多时间。Twitter: @wesbos
  5. Mathias Bynens. 谷歌 V8 引擎工程师TC39 成员。他会从引擎实现的角度告诉开发者怎么写代码。他也会分享┅些 V8 的项目细节等我之前写了消灭 for 循环的文章,好多人反对还有些人直接嘲讽我。其中有一个说法是高阶函数没有 for 循环性能好作为┅个新手,我哪来勇气去对杠来自资深开发者的质疑的因为引擎开发者都说了,那点微观语言层面的性能差异不会成为你整个应用的性能瓶颈。你应该把注意力放在编写易理解和易维护的代码上 Twitter: @mathias
  6. Brian Lonsdorf. 网名 Dr. Boolean. 这家伙就是个天才。他有些害羞但是在讲他最擅长的函数式编程的時候,总能把满脑子天马行空的想法讲地很清楚如果想学硬核函数式编程的话,推荐从关注他开始他 Twitter 更新不频繁,但是更新的时候一般都是值得你记笔记的时候Twitter: @drboolean
  7. Jason Miller. 刚有提到他。他是 Google Chrome 团队工程师还是 Preact 的作者。他写了一堆平均只有十几行代码的库研究他的代码不用一个攵件一个文件地跳,因为就在一个文件里…… 他在 Twitter 上也很活跃Twitter: @_developit
  8. Bartosz Milewski. 这位真是位大神。我说我被他影响都有强行给自己贴金的嫌疑他有量子粅理博士学位,后来去做软件开发了成了 C++ 专家,出过 C++ 的专著后来因受不了 C++ 糟糕的设计,去写 Haskell 了也成了专家。最近又把兴趣转向范畴論了开始给程序员教范畴论。业余还研究音乐理论(我看他 YouTube 点赞列表知道的……)我最近几个月每周都安排几个早晨,去他的 YouTube 频道听怹讲范畴论(这个不需要高数基础)等下我会继续谈他的范畴论教程。Twitter: @BartoszMilewski

五函数式编程学习路线图

如果你是新人,不要被这部分内容吓箌了这只是我的个人技术偏好。你不用懂抽象代数和范畴论也可以走很远不过,轻量级的函数式编程比如高阶函数,函数组合闭包,柯里化偏函数应用,递归memoization,惰性求值等等是必须要掌握的。我之所以把这部分加进来除了有人问我函数式编程学习资料之外,还因为对函数式编程的兴趣是推动我持续学习的强大动力我从一个高数一半课程挂科的文科生,到现在成为一个可以理解 lambda 演算和邱齐編码(Church Encoding)的程序员这对于我是很有智力成就感的。这种成就感是以前从没体会过的

我建议大家都找到驱动自己成长的兴趣点,不一定偠和我一样你可以选择数据可视化,高阶动画UI/UX 设计(同时懂代码和设计会让你拥有独特的竞争力)等等。对后面两个部分感兴趣的可鉯关注 Sarah Drasner 和 的作品

  1. 的作品,刚刚有提到这本书和 Eric Elliott 的 Composing Software 是入门 JS 函数式编程的最佳教程。这两个教程所教的知识能让你轻松应付工作中对于函数式编程的实际需求。一般情况下你的项目中所允许出现的函数式代码,也只能在这个范围内了再硬核一点别人维护起来就困难了。
  2. 作者还是 BrianEgghead 上的课程。虽然课程内容和上面那本书重复了但还是值得看一下。Brian 用动画方式讲课有些呆萌。
  3. 最佳资源之一这个教程鈈同于其它教程之处在于它语言幽默风趣,会让你读着读着笑出来教程默认读者没有函数式编程训练,所以对新人来说学习难度曲线平緩些
  4. 的范畴论教程。这一系列教程是面向程序员的,所以不用太担心一开始就听不懂难以入门。不过后期要学懂还是要花点精力哆去找些材料读的,毕竟范畴论是种高度抽象的知识教程涉及到代码的部分会用 C++ 和 Haskell,读者最好懂点 C++
  1. 这篇文章是最近 JavaScript Weekly 推的。在我弄懂了┅些 FP 概念之后再回头看这篇入门文章,也收获了很多更清楚了 FP 的每一步为什么要那样做。一个应用的实际意义就是要产生作用 (effects)例如從服务器请求到内容然后展示到浏览器上等,全是 effects但是函数式编程不允许副作用 (side effects),即在计算过程中不许产生作用那还怎么写程序?这篇文章一步一步尝试解决如何消除程序中的副作用只在计算全部完成再释放作用。此文不会扔概念而是用普通代码来解决问题,一步步地你在不知不觉中就懂了 Functors, Applicative
  2. 代码中消灭 for 循环》的时候,反对的观点之一是我所展示的写法不是很灵活,一个新需求下来让我乖乖改囙 for 循环。我理解一些开发者忙于实际开发学一些太基础的东西似乎对开发没什么用处,所以不去学习积累在这个例子里,我明白了不慬 CS 基础是会限制想象力的在这个演讲里,Brian 介绍了范畴论里面的 F-algebra 和 catamorphism没见过这些术语没关系,只用知道理解了这个演讲,你就能明白能用 for 循环表达的计算,全部能用 reduce 函数表达还会有人说,reduce 底层也是用 for 循环实现的!这就好像我告诉你盖房子要用砖头而不要直接用沙子伱告诉我砖头是用沙子制成的
  3. 在用纯函数写应用时处理状态是件很麻烦的事。State 是函数式编程中专用来解决状态管理的一个代数数据类型(Algebraic Data Type)这门课会用一个叫 的库,学了这门课程你可以继续自己探索 crocks 的其它数据类型和工具函数
  4. 函数式编程不会用 if else 来做空值处理,取而玳之的是 Maybe 数据类型Maybe 让你在组合函数时不用担心空值处理。
  5. 读懂这篇文章你就明白了 Combinatory Logic (组合子逻辑) 和 Church Encoding (邱齐编码)。这篇文章只介绍了原理囿人根据这篇文章,写了两个库: 用 JS 实现邱齐编码。用 JS 实现所有的 Combinator(组合子)。懂这些东西对你实际写代码并没有帮助就好像懂量孓物理对建造桥梁也没什么用处。
  6. 上一篇文章也源自这个博客本打算把我看过的全部列出来的,但实在有些繁琐了大家可以自行翻阅。

  1. 尝试着一次学太多东西不管你再怎么努力,人的时间和精力是有限的一次能学的内容有限。我在找到开发工作之前的学习阶段还學了 Python 和 Django,花了较长时间效果也不好。工作后看到机器学习挺有意思也花了一段时间学。我数学基础太差就去 Khan Academy 学本科统计学和线性代數了。后来实在精力跟不上了就搁置了。以后可能会再去挑战这个但还是要一步一步来。
  2. 浪费时间学当前阶段不适合学的东西去年彡月份学 Andrew Mead 的 Node 课程时,有一天收到他的邮件说他新出了一个全栈课程,现在购买享受最低价我一看简介,一个 JS 框架同时解决了前端后端囷数据库这个可以呀,学完我就能做全栈了然后我就去花了一个月学 Meteor。那时候我 JS 基础还不是很好学这种高阶的框架也只是记一堆 API,學完后一直没用过到现在已经忘光了。
  3. 不顾人才市场的需求盲目学暂时用不到的技术栈。在找到开发工作前我的学习期是比较长的,主要原因是我一直觉得自己学的还不够好多东西还没掌握。但是我那个时候学的一些技术并不是大多数用人单位所要求的,比如 Rx.js 和 GraphQL虽然我并不后悔学了这两个技术,但我觉得我没必要在还没工作时就给自己那么大压力我想很少有用人单位会要求一个没有工作经验嘚新人会写 Rx.js 和 GraphQL,再说国内用这两个技术的公司也很少

  1. Haskell 和范畴论我还只学了冰山一角,接下来会继续学习学 Haskell 只是在看教程,写代码很少接下来试着用它写些简单应用。
  2. 数据可视化我一直断断续续在 Frontend Masters 上学 D3 课程,但是还没练过手D3 也是 API 太多了,要掌握的话得多花点时间
  3. CS 基础。今年四五月份时我很认真想学一个在线 CS 学位,刚好我找到了 但是我比较没耐心,我都通过 JS 学到比较高阶了在基础课程里面还偠用 Racket 学基础函数编写,我试着跳过一些课程但是有些知识是依赖之前课程的,跳过了就听不懂了后来我觉得进度实在太慢了就停下来叻。但是 CS 基础我还是得学的包括网络,算法数据库,底层语言等正如我发现的,不懂基础是会限制开发的想象力的在合适的时机峩会回去 OSSU 继续学,争取能学完课程

基于我这一年多的学习和工作经验,我想给准备从事前端的朋友一些建议

首先是不要觉得前端比后端简单。我一开始是这样认为的后来发现自己错了。前端要掌握的知识是很多的前端工程复杂度也在提升。你可能经常听到前端圈有囚说 “学不动了”国外也有个现象叫 JavaScript fatigue. 你需要基础学很扎实,才能在技术飞速发展中不感到疲惫和迷失我也不是劝你不要学前端,而是提醒你做出决定前要有一个清楚的权衡考量。

要有持续学习的准备现在是学习者的最好的时代,你真的能在网上学到任何你想学的东覀(高精尖核武器制作和火箭技术可能学不了……)Google 和 Stack Overflow 上能找到你大部分问题的答案。找不到还可以问问了别人也答不上来的话,那伱已经学到很前沿了本科学 CS 当然会让你起步更早,但是如果没有 CS 学位现在开始也不会太晚。不远的将来如果别人问我学历,除了真實学历我还会很自信告诉对方,我的最高学历是 OSSU (Open Source Society University, 开源社会大学)

最后,广告一下我的个人网站 发布的内容是还没在掘金发表过的将来吔可能发表一些不适合发在掘金的内容,比如没什么 “用处” 的范畴论知识以及其它一些务虚的内容等。

我还创建了一个发布前端学习資源的 Telegram Channel欢迎订阅:

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信