我是如何走上前端开发之路的?首先,我是一名文科生。我大学只学过VB。我觉得计算机编程太神秘了,我不擅长。后来一次偶然的机会,我在一家互联网创业公司做HR,看了上千份程序员的简历,面试了上百个不同层次、不同领域的程序员。接触程序员越多,越觉得编程是一件很有挑战性也很有趣的事情。尤其是在前端这块,认识了几位前端高手。其中一位告诉我,如果您真的有兴趣,请先写几个HTML静态页面。但是那个时候连一个HELLOWORLD都不会写,连HTML是什么都不知道。于是花了一晚上的时间在MOOC上听了几节HTML+CSS的基础课,第二天又看了w3school的HTML+CSS在线教程,把所有的API都弄通了,在网上找到了一个简洁漂亮的网页,并且开始模仿我的第一个HTML静态页面。这几天模仿写了几个html静态页面(写不出来的地方,直接打开chrome控制台,复制那部分的样式)。那时候白天要上班,晚上才有时间写HTML。这对于沉迷于写代码的我来说真的很不愉快。恰好那时候公司人员配置基本完成,我的招聘任务也可以告一段落了。我暂时离开了公司,开始了为期一个月的前端自学生涯。这个月我做了什么?经过之前复制网页的实践,对常用的html标签和css样式也更加熟练了。是时候开始系统学习各种前端技术了。但是从哪里开始呢?***我决定先按照我在大学学习的方式——在***两周的考试期间,我从头到尾预习和复习了各科的教材。这样可以让我在短时间内了解这门学科包含的所有知识,发现这门学科的核心内容或可能的考点。于是,我在图书馆找到了《TheArtofJavaScriptDOMProgramming(2ndEdition)》这本书,花了三四天的时间通读了一遍,里面的代码示例完全是自己敲出来的。这本书真的很适合初学者。它易于理解和详细解释。它让我对javascript有了一个大概的了解,让我更加自信。于是,我立马从图书馆借了另一本书——《JavaScript高级程序设计(第3版)》,打算趁热打铁用一周的时间攻克这本书。不过最后只看了三分之一就没法看了,因为我觉得这本书不太适合初学者。尤其是第6章和第7章的面向对象编程,闭包,继承,虽然能看懂,但是不知道为什么要面向对象,为什么要用闭包,为什么要继承?对于js初学者来说,你最重要的任务就是把功能实现,把代码写出来,不管代码写得美不美,放心大胆的重复一遍。以后,当你看到更多别人优秀的代码,你自然会去模仿,不断完善自己的代码。当题看了一又三分之一的书后,我开始寻找训练场。很多人建议直接去github上的pullrequest做项目。我的天,这对于初学者来说简直太难了。连别人的代码都看不懂,更别说自己写了。于是,我去quora上寻找答案,很快就找到了一个叫QuincyLarson的人——FreeCodeCamp.com的老师。按照他的回答,我找到了一个他创立的前端开源社区——FreeCodeCamp。当我第一次关注这个社区时,它的追随者只有几千人。到现在为止,它在github上已经有93661颗星了。。。我可以肯定的告诉每一位前端初学者,FCC是你最好的入门没有什??么前端的地方。为前端初学者设计了一套详细的前端进阶路线,每一步都提供详细的讲解和针对性的实战练习。具体介绍可以在FCC中找到。基本上通过了它所有的课程,在国内找一份前端工作是不成问题的。FCC对我来说最有用的部分就是它的初级算法和中级算法,可以作为你之前js语法学习成果的检验。所有问题都没有答案。如果实在答不上来,可以参考我当时写的一些答案(当时我很不成熟。。。答案写的很烂,但至少能解决那些问题)初级(http://blog.sina.com.cn/s/blog_13da815a90102vkdw.html)中级(部分)(http://blog.sina.com.cn/s/blog_13da815a90102vkny.html)高级(部分)(http://blog.sina.com.cn/s/blog_13da815a90102vl1v.html)当然写代码很重要,但是对于初级前端来说,熟能生巧。于是接下来,我混迹于国外各种在线前端学习社区:CodeSchool、CodeAcademy、KhanaAcademy等,几乎把自己能看懂的部分都看了一遍,把所有的代码都敲了一遍,扎扎实实的巩固了各种前端知识前期学了好几次。真心建议英语水平还过得去的前端初学者不要上国内的视频教学网站,直接看国外的。真心建议理解能力好的前端初学者不要参加任何前端培训课程。网上有太多优秀的资源可以学习,何必花钱去塞?高中还不够充实吗?我一直在做的事情,基本完成了上面三个步骤就去找工作,最后去了一家创业公司,成为了公司唯一的前端开发。非常感谢这家公司的CEO对我的认可,我愿意接纳一个前端初学者进入公司,独立负责前端需求。非常感谢CTO对我的信任,我可以放心的学习各种新技术,并将其应用到公司的实际项目中。以下部分是我一直在做的事情,它们对我过去一年左右的成长至关重要。困惑对于初学者来说,在写代码的过程中,会遇到各种奇奇怪怪的bug。当你身边没有人,你又找不到bug的原因时,谁能帮你?答案是:StackOverflow和Google。我可以肯定的告诉你,你在学习过程中遇到的所有问题,在google和stackoverflow上都能找到答案。如果找不到,说明你的问题描述有问题。说到【学会提问】这个话题,上了一堂stackoverflow的课。我在stackoverflow上问的第一个问题如下图:然后这个题目被踩了三遍,得到的答案是这样的:这位大佬说的对,这种找bug的问题不应该扔到stackoverflow上来on,仔细去debug肯定能发现问题的。提出这种问题的原因只有一个——懒惰,懒得花时间调试了。现在偶尔有空就来segmentfault看一些问题,但是还是看到很多“能帮我看看哪里出了问题吗?”之类的问题。’、“我不知道怎么了”等等。相信segmentfault问答板块的定位应该和stackoverflow类似,既奖励高质量的回答,也鼓励高质量的提问。所以下次你遇到问题的时候,先试着用一个简单的句子概括你的问题,然后再去google。一句话不能概括的问题不是好问题。拒绝做外展党,从我做起。Frontier对前端越了解,它就会越精彩。近两年,前端领域的发展非常迅速。各种有趣的新技术、框架、库相继出现。有无数优秀的前端在为前端技术在更广更深的领域变得更加强大而努力。虽然初级前端的基本功很差,但这不妨碍你追前沿。不要闭门研读经典。前端技术发展太快了,很多以前被奉为经典的东西现在可能已经过时了。追踪前沿最好的方法就是订阅一些前端周报。他们把前端各个领域的一些优秀文章、教程、代码整理成一周的周报。起个自己能看懂或感兴趣的标题,再读一遍。我会先列出一些我订阅的周报:JavascriptWeekly(http://javascriptweekly.com/)MobileWebWeekly(http://mobilewebweekly.co/)HTML5Weekly(http://html5weekly.com/issues/231)订阅上面三个就可以了。如果一定要看国内的周报,码农周刊可以。这些周报不仅分享前沿技术,还有大量优质教程,非常适合前端学习。大家看周报,尽量多看国外的文章。毕竟国内很多文章都是从国外翻译过来的,甚至是直接抄袭的。。。如果我还有时间,我会去这些网站吸金的。。。https://www.smashingmagazine.com/https://css-tricks.com/https://medium.com/基本上每天早上上班前,我都会粗略浏览一下邮箱和上面三个网站,看到领域的文章,用Readability直接发到kindle,但在业余时间或晚上仔细研究它们。其实很多文章都是科普性质的,非常通俗易懂。请随时阅读。看不懂也没关系,只要有一个大概的印象即可。宝物***我要祭祀一件真正的大宝物。说实话,我30%的前端学习时间都花在了这个大宝上。。。这个大宝是https://www.youtube.com/我用不上它帮助了我。初学者最头疼的就是直接看API或者源码。许多文档不是为初学者编写的。而且youtube上有很多优秀的前端工作者上传了他们对新技术、新框架、新库的讲解视频,不仅帮助我理解了API,更重要的是让我看到了这些API应该怎么写在实际项目中使用。.推荐频道:LevelUpTuts(https://www.youtube.com/user/LevelUpTuts/playlists)新波士顿(https://www.youtube.com/channel/UCJbPGzawDH1njbqV-D5HqKw)LearnCode.academy(https://www.youtube.com/channel/UCJbPGzawDH1njbqV-D5HqKw)www.youtube.com/channel/UCVTlvUkGslCV_h-nSAId8Sw)除了上面的教程频道,你还应该关注一些jsconf频道。国外经常举办js研讨会和分享会。受邀嘉宾均在各个领域深耕细作。他们分享的东西大多都是比较前沿和有趣的东西。您必须定期关注他们。conf相关频道:JSConf(https://www.youtube.com/channel/UCzoVCacndDCfGDf41P-z0iA)React.jsConf2016(https://www.youtube.com/playlist?list=PLb0IAmt7-GS0M8Q95RIc2lOM6nc77q1IY)***坦率地说***不得不承认,这次又上头条了。。。就是想吸引更多的前端初学者进来,希望大家能少走一些弯路,也希望学习前端的同学们——白手起家才有更多的勇气去面对它。在他们自己的选择上。
