学 Web 前端开发,培训还是自学靠谱?

学 Web 前端开发,培训还是自学靠谱?自学网上爱创课堂前端视频能学会吗? 先说明问题:想转行做web前端开发工作,但是无从下手。询问别人有的说是培训…
关注者
7,765
被浏览
1,861,172

589 个回答

这个回答 2021 年 4 月有更新放在原回答后

=== 2015 年原回答 ===

如果姑娘不介意,来,把手伸过来,让叔手把手一对一教你,另外,把头靠过来一点,这样方便我跟你讲话,最好再近一点嗯嗯,这样学习前端才最靠谱,哈,开个玩笑。
培训靠不靠谱我不知道,对于我这种智商拙计的人来说,看书自学是挺靠谱的,毕竟智商低老师讲课我听不懂嘛,复习的时候不能倒带,让老师反反复复在讲台上单曲循环,也不能把老师绑在身边,让我能够在做练习的时候碰到不懂东西可以随时提问。 前面有许多人都分享了各种学习资源,不过貌似就是没人分享书单,那么我来给大家分享下我的自学前端所用的书单吧。看书又累又慢?谁让我拙呢,只能靠勤来补了,不然还能怎样呢。这些书效果非常不错,20个月前,我还是一个 local 广告公司的苦逼 copy ,现在是一个能够独当一面的前端工程尸了呢,收入也翻了许多倍呢,mac这种高大上的从前想都不敢想的东西,现在可以天天摸了有木有。下面的时间是我当时学习的时候的所用的时间,每天大约学习 3~4 个小时这样吧,每周大约会偷懒 1~2 天,OK 进入正题。

第一步:入门 html & css ,用时 2 周
Head First HTML与CSS(第2版) (豆瓣)
head first 系列的书一直很受初学者欢迎,语言诙谐,图片丰富,行大字稀,这本 700 多页的书 2 周左右就能看完。此书的用法非常简单,只需打开代码编辑器跟着作者的思路敲下去就可以了,一个个小案例从自己手上被敲出来,还真的很有成就感呢,因为是写给初学者的书,它假设读者没有任何相关的背景知识,新碰到的知识点,会用各种各样的图片说明一遍,生怕读者不懂。这本书学完,只要不是太复杂的页面,基本上能够临摹出一套长相上差不多的了吧。

第二步: 入门 javascript ,用时 3 周
JavaScript DOM编程艺术 (第2版) (豆瓣)
这本书很薄, 280 多页,一开始看的时候,其实我是拒绝的,因为当时我的编程基础只有能够用 c 写出让别人输入两个整数然后打印出这两个数相加结果这种程序的水平。然而即便如此,这本书依然能够让我看得懂。此书前言的第一句就说了,“它不是专门写给程序员的,而主要是写给 Web 设计师的。具体的说,本书是为那些喜欢使用 CSS 和 HTML 并愿意遵守编程规范的 Web 设计师们编写的。”好吧,虽然也不是写给我这种初学的傻子的,但反正只要它不是写给程序员的就好,因为当时我不是程序员啊,当然我也不是设计师,但我会写一丁丁 HTML 和 CSS ,这就够了。这本书跟上本书一样,新碰到的知识点,会专门用案例介绍一番,让人在不带着太多疑问包袱的情况下跟着作者的思路走,用法也跟上一本书一样,跟着作者的思路用编辑器一路敲下去,然后你会发现,自己能够给网页加特技了,duang~duang~ 棒棒的。

第三步:入门 jQuery,用时 3~4 周
锋利的jQuery (豆瓣)
这本书只需要看 1-9 章就够了,也就是 290 页左右的内容。看完 《JavaScript DOM 编程艺术》 可能会觉得里面的程序很繁琐,想要达到一些目的经常需要拐来拐去的。那么 jQuery 会解决这种繁琐,做到它所标榜的 write less, do more , 也因此 jQuery 成为了几乎所有前端工程师必须要掌握的一个工具。这本书的内容有些啰嗦和跳跃,后面几章甚至还有错误,不过有上一本书的作为基础,配合搜索引擎是能够解决看着本书时碰到的绝大部分疑问的。打开编辑器跟着作者的思路把书上的例子都敲出来跑一遍,另外把最后的案例吃透。 jQuery 就算是入门了。

最重要的一步:复习巩固,用时 6~12 周

OK 至此, 入门学习已经完成,接下来是复习巩固,这才是学习的真谛。这一步,不能省略,不能省略,不能省略,重要的事情说三遍,否则会像一个学习了各种格斗技巧,但却廋得皮包骨连站稳都吃力的人一样毫无战斗力。此时可以用之前所学配合着搜索引擎模仿一些自己认为觉得好看的页面,学习使用一些第三方插件,大量模仿。无他,唯手熟尔。

这里列出一些在这个阶段有可能会用到的工具书和一些网络资源,希望能有所帮助。

工具书:

JavaScript高级程序设计(第3版) (豆瓣)

一本全面介绍原生 JavaScript 编程的书籍,从基础内容到高级内容都有,任何阶段的前端工程师都能从中学到知识。

精通CSS(第2版) (豆瓣),这本书现在有第三版了,在这里(2021 年留)。

一本介绍 CSS 的书,把一些有用的 CSS 技巧汇集起来,供人学习,但可惜年代久远,不过依然有参考价值。

网络资源:

阮一峰的个人网站

这里会用一些通俗的语言介绍许多 js 编程中重要的中高级问题和技巧。

司徒正美 - 博客园

功能同上。但这里有个副作用,就是总时不时会听到一种叫做 Avalon 的玩意儿,但这不是现阶段需要深究的东西,目前只用知道 Avalon 是英格兰神话中拔出石中剑的亚瑟王战败后去的仙境就可以了。

w3school 在线教程

资源丰富的文档,碰到不懂的不管是 HTML CSS JavaScript 方面的内容都能够来看看。

张鑫旭-鑫空间

博主是一个把 CSS 研究得出神入化的男人,可以从他的博客里学到许多 CSS 相关的知识和技巧。

Bootstrap中文网

Bootstrap 是套优秀的 UI 组件库,其中的精华是它 css 代码,使用它你会发觉以前各种卡手布局的问题可以很快解决,并且不用自己写太多 CSS 代码就能弄出美如画(至少不丑)的页面。使用它,并且学习它的 less 代码的组织和设计,可以从中学会许多 css 架构的知识,棒棒的~

p.s less 是一种跟 CSS 很像,兼容 CSS 并且可以编译为 CSS 的样式语言


前面的步骤都完成了以后,恭喜入门,可以尝试去找一些相关的工作了,同时也再也不用担心被知呼上这位严重智商拙计的怪叔叔骚扰了。 在往后的路中可能会碰到许多奇奇怪怪的概念,比如 workflow , mvc , mmvc , flux ,SPA 等类似的不是出自人类语言中的名词,就说明可以开始提高了:)


另外,可以点击下边链接免费获取更多学习资料,以及了解培训相关的内容,方便最后选确定学习方案,自学或是培训。

=== 2017.4 更新 ===

这问题回答的时候是 2015 年,我没想到这个回答会影响那么多人,现在两年过去了,前端这领域已经变了样,许多朋友吐槽现在学完上面所说的内容已经很难找到工作了,但不管怎样,上面的内容还是基础,入门的时候先按照上面的流程走一遍问题不大,但现在毕竟已经是 2017 年,入行前端的要求变得比原来多了不少内容,所以学完了上边内容的朋友还需要继续学习现代前端开发所需要掌握的知识,具体的路线可以参考我在另外一个答案的回答:zhihu.com/question/5588

另外之前提到的 w3school 在线教程 里面的内容比较老旧,现在有了更好的选择,那就是 MDN ,它的地址在这: JavaScript


=== 2021.4 更新 ===

推荐先读 2015 年的回答再看这里

现在是 2021 年,其实这些年来不少人给我留言,说这个回答帮助了许多他们走上了前端的道路,我在 2017 年更新过一次,现在再过去了四年。回过头看,很多东西已经物是人非,在我初学路上对我有很多帮助的司徒正美老师已经离开了,说来惭愧,我从来没有到他的博客上给他留言说过一句「谢谢」,我也从当初的初学者变成了创业公司的技术负责人,文风也不再那么戏谑(可能大家就是喜欢戏谑的文风呢?)就我在工作中招聘人的情况看,前端入行的门槛比起 2015 年和 2017 年高了许多,这个回答中提到的一些内容已经过期了,有一些内容依然值得学习,还有一些新加入的内容要考虑。

总的来说,现在想要找到前端的工作,要求比 17 年高了不少,但是总归是有途径的,我简单补充一下吧,首先是基础部分。

基础部分调整(也就是 2015 年的原回答)

第一步:入门的 Head First HTML与CSS(第2版) (豆瓣) 这本书里边说的知识,是基础中的基础在当下依然有用,这本书依然值得推荐。

第二步:JavaScript DOM编程艺术 (第2版) (豆瓣) 这本书里边的内容非常基础,但是基础到在现实的项目开发中许多已经过时不再用了,但是作为一本能让人从 0 到 1 慢慢学编程但又很薄的书还是值得去看的,花两三周的时间对 JavaScript 和对前端开发最经典的编程方式完成一次观赏之旅,同时感受到前端编程到底是在编个啥,抱着这个目的看这本书就好,另外还有一本类似功效的书,是深入浅出JavaScript(中文版)两本选择一本看就可以,看完了能够学会 JavaScript 最经典的样子,也为现代开发打下基础。

第三步: 锋利的jQuery (豆瓣) 这本书已经不需要再看了,jQuery 的时代已经过去,我们很少再需要写 jQuery 代码了。把节省下来的时间拿去做别的事情会更有意义。那么这一步改为学习 React 吧,React 是三大前端框架中的一个,三大框架中只有 React 我是自学入门的,其他的两个都是触类旁通,我就在这里介绍 React 和当时我学习时所用到的资源吧,首先也是最重要的 React官方文档的入门教程 这里简扼的介绍了 React 的使用方式,推荐搭建本地环境(教程中有),这样你能领略到有比 JavaScript DOM编程艺术 (第2版) (豆瓣) 或者 深入浅出JavaScript(中文版) 介绍的,更现代前端工程的开发方式,是天壤之别!另外你也会看到他里边的代码跟你在第二步中学到的代码语法有出入,是因为它用了更现代的 JavaScript,也就是我们日常开发时会用到的 ES6/7 ,你可以在 ES 6 入门——阮一峰 中查看相关知识。

第四步:彻底吃透 React 的官方教程以后,相信你能够自己写写玩具类型的小项目了,接下来就要开始学习 React 技术栈了,React 技术栈的意思就是以 React 为核心的一系列技术的组合,在这里推荐一本书 深入浅出React和Redux 这里会介绍如何使用 React 以及一系列与之相关的技术,来完成开发任务,但是这本书的成书年代是在 2017 年底,在阅读的时候务必安装的是和书中一模一样的 React 版本避免出错,相信我,能顺利的学习旧版然后在过渡到新版的过程,会比直接上新版然后一直踩雷要平滑得多的多得多。

最后一步也是最重要的一步:练习

这步不能省略不能省略不能省略不能省略。你可以临摹一堆页面,可以作出自己的 v2ex 或者 cnodejs 客户端(v2ex 和 cnodejs 都是技术论坛,他们开放了数据接口,学完前面四步你就知道我在说啥了),然后拿出自己最满意的个人作品,投简历去吧。

工具书:

JavaScript高级程序设计(第3版) (豆瓣) 这本书中的内容现在许多用不上了,买来收藏吧,可能极少情况下会需要查阅

精通CSS(第2版) (豆瓣),这本书现在有第三版了,在这里,新版我没看过,但是旧版的知识本身就很硬核,新版应该也不会太差吧。


最后,可以点击下边链接免费获取更多学习资料,以及了解培训相关的内容方便最后确定学习方案,自学或是培训。

利益相关: 开培训班的...

先说结论:

培训一定是会加速学习进度的,也一定会对学习有帮助,你要么选择自学,要么选择培训同时自学,但并不存在只是培训而通往成功这条路。

在工作岗位中,身边的人大多都是自学,对于培训班的态度往往是比较不屑。

从一开始Android培训,到去年大热的iOS培训,再到今年如雨后春笋般冒出来的前端培训。(很多地方还叫做H5培训吧)

我能知道的有些培训机构因为看到近两年前端大热,就直接把教UI的老师搞来教前端,可想而知最终培训出来的最好结果就是个重构工程师,距离现代前端的要求还是有很大差距的。

我们可以想一下,如果前端这么简单,随便零基础做4个月就能上岗高薪,那是不是iOS的人自学两个月就可以了?后端的人自学一个月就可以了呢?那他们为什么不转去做前端呢?

因为在现代开发流程中,前端承担了更多工作内容,所以才会对前端的需求激增。

(前两天在群里有人问的,简直触目惊心)


所以找培训其实是件很难判断的事情,老牌的培训机构基本上是跟着热点在开班,java班招满了就扩班,web火了就开课,老师不够高价招,招来的老师水平参差不齐,反正在座的都是小白,瞎特么讲也没人听得出来,周末看一个视频里,授课老师说“class是企业开发中常用的方式,id和style不常用”,我真是一口盐汽水就喷出来了。

培训班主要盈利是靠学生量,那么把成本投给招生营销,显然比投给课程开发要划算,于是乎很多培训机构的前端培训课程都是“年久失修”,跟不上时代的,比如现在还要讲IE6的兼容,简直是个笑话对吧。

相比之下,一些小作坊一些的培训机构反倒靠谱一些,因为只有几个班或者一个班,讲师就是创始人,讲课质量有保障。同时因为是一线技术出身,对于重构和JS会兼顾的比较好,有些机构的JS课程也有相当难度,是针对已经入行一段时间的同学做加强提高的。这种提高班的课程对教案和老师的要求比较高,因为学生也都不是小白了,不是随便照着W3school念念就能糊弄得过去。

可以给你们讲一个经验:但凡能做前端在职提高的讲师,往往是比较靠谱的。

其实培训机构培训不是两个等同的概念,培训机构是以盈利为目的,而培训则是系统集中的去学习,这和在工作之余用碎片时间学习有着很本质的不同。

从学习方式来看:

自学通常是通过视频和博客来学习,这其中的问题在于,一开始的时候没有一个整体的知识框架,反正哪里不会点哪里,零碎得来的知识无处安放。

今天背了一些概念,明天做了几个实例,学了一段时间发现,背的概念不知道怎么用,做的实例不知道怎么举一反三。

培训班可以比较系统的梳理知识点,并且设置合理的练习题,及时的对知识点进行实践,这是系统学习比起零散学习的一个很大优势。

从学习进度来看:

前端知识点比较琐碎,自学的时候很难知道自己到底学到了多少知识,距离工作岗位的要求还有多远的差距。毕竟我们看到招聘的要求都是“精通HTML,CSS;掌握JS开发,熟悉原生JS原理”之类的,怎么可能知道到底什么叫精通啊,什么叫了解啊是吧。

另外就是自控力的问题,一个人看视频真的特别特别难,尤其是不知道到底要多少时间能学到什么阶段的时候,非常容易有挫败感,容易放弃。

从职业规划来看:

自学的时候一直是站在一个小白的角度,仰望这技术圈。你觉得这群人很神秘,你不知道他们日常是什么样,也不知道如果自己的以此为职业的话,会是怎样的体验。而一些有实力的培训机构,可以让大家提前接触到一线的程序员,甚至参观体验大型的IT公司,这是自学完全不能获得的资源。

从求职就业来看:

当你觉得学的差不多了,可以开始找工作的时候,怎么写简历,怎么投简历又是一个困难的问题。面试官更看重什么方面,自己的知识储备能不能达到面试要求,不足的地方在哪里,这些基本是两眼一抹黑的。这时候有行内的人稍微点拨一下,甚至就是各大公司的面试官给予一点指导,可以在求职路上少走很多弯路。

------<hr />------

自己就是培训机构利益相关的人,但是尽量还是说的比较中立(你看,我都没有打广告讲我们机构有什么特点,连名字都没说...)

因为这个问题里面有很多对培训机构无脑黑的答案,我们还是要理性想一下这个问题。

如果一个行业都是由骗子构成的,为什么这个行业还会存在?

可不可能一个机构创造不出任何价值,却一直做到了上市?

培训机构就真的没有好老师么?好老师为什么教不出好学生?

这些问题的答案和我们对培训机构的第一印象显然是矛盾的,那培训行业到底是哪里出了问题呢?

这个问题就是:招生

机构变大之后,一定会扩招,扩招就带来了两个很大的问题:师资力量不足;学生基础不好。

前端这个行业很年轻,而旧时代的前端新一代的前端差别非常大,如果一个有着超过5年开发经验,能够胜任“全栈”岗位的前端工程师,显然可以拿到比培训讲师更高的薪酬,以及更高的社会地位。

所以我们能看到的一些“资深讲师”,很多是做了多年讲师,但其实自己根本就没有在现代前端时代有过从业经历,眼界跟不上时代,自然也很难培养出高级人才。

不吹不黑,某知名UI培训机构推出全栈开发课程,为期四个月,我们看一下高级部分的大纲:

也就是到了js皮毛的水平,nodejs丝毫不提及工程化碰都没碰,学会JQuery就算是高级进阶了。

这不是坑人么,因为自己比较熟悉UI部分,所以动画效果的内容安排倒是很多,各种酷炫动效,花式切图,编程完全水过去了。这样的前端出去只能走重构方向,也完全没有职业的眼界,不知道进阶的道路是什么。

至于学生基础问题,随着扩招,一定有更多基础不足的学生入学。

大专非计算机专业学历,觉得前端简单,就来上了四个月课,然后梦想着毕业就能高薪就业。

你们不要太瞧不起上了四年计算机专业的一本学生好么!

比你聪明,比你一路都受过更好教育,学了四年计算机相关知识的人,也未必可以高薪就业。

你凭什么觉得自己突然想要努力了,四个月时间就会比别人家四年都厉害。这可能么?


可能

前提是,如果

你的英语可以有四级水平,或者能硬着头皮去查看英文文档

你的逻辑思维非常清晰,

你能读完并理解几本经典教材

你肯每天花12个小时以上投入到编程中,

你能在四个月时间里面切完至少五十张图

你能在github上坚持120天连续提交代码

那还是可能成为一个合格的前端工程师的。

培训机构最多能够带来一个契机,不能够带来奇迹

------<hr />------

最后讲个自己的事情,送给想通过培训走上前端岗位的同学。

高考前一个月的时候时候,有一天晚自习,我们英语老师和一直英语成绩不好的我说

“你现在这个时候努力已经没有用了“

”要玩命才行”