很多前端都想找一个学习计划,然后认真学,成为一个大牛;他们迫切的想知道自己该学什么,然后看什么书,有什么资源可以用!
我今天要告诉你的是,你不要看什么书,不要做什么事!因为如果你再不恰当的阶段,看了那些看起来“很正确的”金科玉律一般的书籍,除了打消你学习的兴趣,浪费你的时间,增加你放弃的几率之外,并不会有什么益处。
而这些书籍和事情恰恰是很多“水牛”,他们自己并不一定干过,也做不到,甚至他们不知道初学者做不到,因为告诉“萌新”一些菜鸟做不到的事情来彰显自己的厉害,是很多“水牛”惯用的作案手法。学习有成本,投入需谨慎。
首先,你不需要看这些书。
Top1
《JavaScript 权威指南(第六版)》
淘宝前端团队翻译的,看译者列表都是一堆大神。这本书又叫犀牛书,号称“javascript 开发者的圣经”。网上对此书评价很多。
《JavaScript 权威指南(第六版)》是 JavaScript 文档手册,没有完整看过一遍此书的都不能算是一名合格的前端工程师。
这是网上的评价,很多人看到那句,“没有完整看过一遍此书的都不能算是一名合格的前端工程师”,十分兴奋,于是挑灯夜战,决定跟它同归于尽,然后没坚持一周,就放弃了。
我想说,这本书非常权威、非常好,内容非常翔实,页数高达 1004 页,是一本扔到铁轨上能够让火车出轨;扔到你家里,如果你整天学它走火入魔的话,……
它确实是前端必备的书,每次我靠着床头看的时候,都啧啧称赞,然后不一会就进入了梦香。实属居家旅行安眠的良药。但是最好不要放在床头,因为万一掉下来比砖头还厚,可能砸懵你。
结论:
作为萌新,千万不要看它。为什么?一句话就明白了,如果你是一个没学过汉字的小学生,你要想写一篇作文,你要做的第一件事是去翻字典吗?
Top2
《JavaScript 高级程序设计(第三版)》
第二本推荐的就是经典!中的!经典!我感觉所有做前端开发的朋友们都应该有这本书,不要以为书名写着高级,就很难,就不适合新手。只要你掌握读书的方法,这本书就可以带你从入门到进阶。
这是网上的评价,我只想用一个字儿评价,“No”。
我想说可不可以 – 认真 – 看看书再出来评论,人家作者都明确的说了不是给“萌新”看的书,书评人比作者都牛,作者做不到的、说不适合的,书评人都敢说适合。客观的是说《高程三》或者“红宝书”是好书,也能够带你从入门到进阶,但是前提是你能够 – 入门。你连门都没入它怎么带你?
前面说适合新手,后面说是入门到进阶的书,我就想问一句,不矛盾吗?谁带你入这个门?明确的说,红宝书做不到!你愣要说,“我就是看完字典然后,觉得学写文章,特别轻松”,我也不想说什么,毕竟“人各有志”。
结论:
跟第一本一样,如果你是想入门,你是“24K 纯小白”,就别听那些水牛忽悠,别看这本书。
Top3
《JavaScript DOM 编程艺术》
《JavaScript 高级程序设计》可以说是 ES5 语言层面的经典之作,那《JavaScript DOM 编程艺术》就是新手入门 DOM 的经典之作。大家可以看到上一本书中我们跳过了 10、11、12 章,这 3 章讲的就是 DOM,我们可以从《JavaScript DOM 编程艺术》这本书中,用更舒适的学习曲线和更优雅的代码来学习 DOM 的相关知识。
这本书用户评价还是挺可观的,为什么?
因为有人负面评价,不像前两个一边倒。
有网友评价说内容太肤浅,“大失所望,感觉象是喝了碗稀粥,一点实在货都没有”。
结论:
相比前两本书,这本走了另一个极端,太入门了,重复、罗嗦的太多,一丁点东西能讲好几百页,还是省省时间吧!
Top4
《JavaScript 语言精粹》
本书通过对 JavaScript 语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的 JavaScript 的子集,以便你能用它创建真正可扩展的和高效的代码。
雅虎资深 JavaScript 架构师 – Douglas Crockford,倾力之作。向读者介绍,如何运用 JavaScript 创建真正可扩展的和高效的代码。
结论:
萌新连功能都实现不了,考虑效率和扩展性意义不大。
Top5
《你不知道的 JavaScript》
作者学识渊博(事实如此,非贬义),知道很多一般程序员不知道的东西。
结论:
我不知道的就不用知道了,我只想先入门。
总结:
以上五本书是 0 基础小白一定要避开的书,但是注意,它们是必备的书,它们都是经典中的经典的好书,只是不建议最开始读,等入门以后一定要反复研读上面的书。
理由:
你不要老把自己当成初级程序员
入门和工作是两码事
第 2 个理由大家都清楚,态度、意愿。
重点跟大家聊一下,为什么不要把自己定位为菜鸟?
1. 你把自己定位为菜鸟,那么就会告诉自己,我是一个菜鸟,我要多学些东西。但是你不要忘了,你的职业不是学生,而是程序员,你要做的是工作不是学习,学习一个技能和为工作而学习技能的心态和所学的东西是不一样的,结果自然也不一样。
2. 如果你把自己定位为菜鸟,HR 也会发现,你没法独立工作,需要找人带他,半年内的话应该出活有问题,另外既然能力不行,那么工资是不是低点!!!那么,你的工作的内容就是重复性低价值的内容,工资就会很低,成长就会很慢,这是一个恶性循环。
你需要一年甚至几年的时间,才能改变公司对你的第一印象。评语顶多是你来公司的成长很快,从初级变成了中级。记住公司是让你去挣钱的,不是让你从初级成长成中级的。
3. 如果你把自己定位为一个熟手(中级程序员),那么 HR 想的是,把你放在什么位置合适,怎么和其他人配合达到成果最大化,你更有可能接触到更优秀的团队,参与更核心的项目,成长也更快,公司对你的评价也会是,你是一个能独挡一面的人。
Ok,等等,我知道你在想什么?
你在想,可是我就是初级程序员啊!我不具备熟手的能力啊!另外我不能骗 HR 啊!那不露馅了?我不能先进入一家公司攒点经验吗?
1. 先回答最后一个问题,我见过太多的程序员,工作一年多,除了时间上敢理直气壮的写工作经验一年之外,技术没有一点提升,切了一两年的图,跟培训班才出去的水平没有任何差别(此处无贬义,只是说明无工作经验和所谓工作经验没有差别)。
重点是面试官即使看到你工作经验 1 - 2 年,水平非常一般跟培训出去完全没有经验的人差不多,同样会 pass 掉你。你是再耗费自己的生命不是再攒工作经验,你攒的那点行业经验,也许培训班一个星期就能达到了,以初学者的身份进入公司,迅速成长为中级程序员的概率太小了。
2. 不要骗 HR!不要骗 HR!不要骗 HR!
3. 你骗过 HR 和技术大牛!
通过欺骗入职留不下来,还会在你的职业生涯上有一笔非常糟糕的印记,重点是人品问题这个很严重,况且我们完全可以诚信的找到好工作,我们不该为了钱不择手段。
说的挺好的,可是我能怎么办?我怎么变成一个熟手?
其实熟手的东西并不复杂,很多知识知道与否的问题,并且工作经验是可以通过学习获得的。
就像曾经我招一个程序员,他跟我说他没有工作过,但是他一直再学习、实践接私活,github star 数量也很高。我依然给了他 offer,而且工作远比那些“先入职攒经验的人”表现更好,事实上他也只是学习了一年而已。
1.Focus 专注
Follow One Course Untile Success.
注意不!要!屯!课!那没啥用,你要做的是不断的练习。如果看视频能够成为高手,那每一个球迷都应该是梅西。
现在互联网上的教程和资料非常多,认真研究和学习一门技术, 坚持做出工业级产品,会有公司给 offer 的。初学者最怕的不是学不会,而是东学学,西学学,最后什么都浅尝辄止,面试官都不知道招你能干什么。
2. 找到一个能指导你的导师
注意:代码是学出来的,不是交出来的,你需要的是一个能在关键点指导对你的老师,不是找一个托儿所阿姨,把遇到的问题和自己工作的希望托管给他,让他解决。找工作就像减肥,教练能给你科学的指导,但是能不能减肥还要看你自己,但是没有教练指导,你可能方向不对,越努力越窘迫。
3. 克服心理障碍
前端的飞速发展,不仅仅是初学者,哪怕熟手都会焦虑感觉很多东西都不会。但是你觉得,别人会的比自己很多,有时候是假象。你不是去做奥运会的第一名,你要做的是把领导分配给你的任务妥善的完成,这就够了。
很多 12~15k 的学习者找我做咨询,最后找到的工作是 20K,他们说我太厉害了,我跟他们说,我没那么大本事,是你们本来就值那么多钱,你们不知道市场行情,也不了解自己能力,你都不敢要,难道 HR 主动给?
学习前端很简单
STEP1: 兴趣
想想吧,你如果不喜欢一个职业,而你一半的生命都浪费在上面是多么恐怖的事情
STEP2 : 正确的方法
方向不对,努力白费。错误的学习方法你再勤奋也没有用,我曾经有学生每天都手写代码,背诵代码,再加上不喜欢,结果自然是放弃了。
STEP3 : 勤奋
前端是公认的入门最简单的行业,但是如果你依然做不好,如果不是前两个原因,那就一个字儿,“懒”。
优秀的程序员 = 兴趣 + 正确的方法 + 勤奋