入门必要条件
任何知识技能的入门都会存在或多或少的门槛,例如你要学习android开发,那你必须会一点编程语言的知识,你要成为造价师,那还必须有相应学科的文凭或者从业经验(这行真专业)...
然而这里提到的必要条件却与此无关,而仅仅是决心。
看似浮夸,然而我认为这确实是需要强调,其重要原因之一,在于行业对前端的一个误解——入门何其简单。这个误解造成的最直接结果就是,当你艰难的学习一段时间之后,会发现似乎离入门还很远(或者是怀疑自己到底入门了没),各种低落的情绪都可能蜂拥而至——浮躁、怀疑、退缩、自弃...
所以,决心是必须的,哪怕仅仅是因为工作需要。
入门很简单?
前面也提到过业界的误解——前端入门简单。然而,在我看来这只是狭义角度的一点偏见——显示一行“Hello Word”似乎只需要更改一下文件后缀,连html标签都不需要。
从来不怀疑存在一些只是将编程作为业余兴趣的同学,那么任何程度的入门都是足够的。而对于像我这样出于工作需求的学习来讲,却远远不够。所以入门是否简单,在于自己的需求,在于那是一扇属于自己的门:
1、开发环境;
2、基础知识——html/css/js;
3、DOM操作;
4、后台交互;
5、jquery/angularjs;
6、nodejs;
开发环境
1、编辑工具:由于android开发中使用了JetBrains的androidstudio,所以毫不犹豫的选择了系列产品中的webstorm;当然大神们都推荐Sublime;
2、浏览器:chrome、firefox、safari...;
3、运行环境:python、nodejs,建议python使用2.7,nodejs使用4.4;
开始入门
w3school在前端中经常被提到,但是并不适合于每一个人,太过枯燥的细节很容易让人失去继续的效率和兴趣,而且很多细节并不重要或者此时根本不需要,当然记忆力很好的你肯定会成为w3school的卫道者。
学习基础知识之前建议先对整体的前端流程做一个初步的了解:https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web
HTML/CSS的学习建议在极客或者慕课网上找一个视频教程学习,当然能够静下心来看书则是更好了——《Head First HTML与CSS》是不错的选择。
JavaScript作为一门编程语言,不建议视频学习,而且即使一开始跟随视频入门,之后看书巩固基础也是必须的。js入门书籍很多,《JavaScript权威指南》、《JavaScript高级程序设计》、《JavaScript DOM 编程艺术》。虽然是入门书籍,但还是建议看完DOM的基础知识即可。
入门
如果身处项目的具体工作当中,直接跟进对应的业务入门即可。
如果暂时有较长的时间自由学习,可以看一些或者做一些成熟的控件来达到入门的目的。例如:多样式画廊/固定导航栏/自动播放banner/无限流和分页list。
接下来,可以学习一些JavaScript库,jquery和angularjs都是很好的选择。
此时,你可以认为自己正式入门了(应该是我认为自己入门了)。
烦心事儿
入门的基础学习总是枯燥的,准备迎接各种消磨意志的烦心事儿吧~
从宏观上讲,最烦心的莫过于接下来做什么和做到什么程度交织的爱与恨。例如,当你了解了一点html标签,接下来是学一点css和js,还是继续学标签呢?(尤其是在有工作任务压身的时候)当你感觉三剑客差不多的时候,是学习一些框架还是了解一下辅助工具(如编译压缩等)?
至于细节上说,烦心事儿就更多了,例如npm的库安装不了(至今也没有解决),打包工具总是报错,刚学的属性就忘了……最糟糕的是,完全正确的代码(没办法找到问题),怎么效果就不对呢?
对于宏观上的烦恼,觉得可靠的建议是,做一些demo,学着模仿一些网页,这样你就知道该怎么走了。
对于细节上的烦心事儿,也就只能靠着Google慢慢磨了……
结语
前端没有正统的模式,也就产生了太多的模式,然而无论是架构还是学习路线,总有一些经典值得我们学习和模仿。
要进入前端,你终究还是需要找到自己的那扇门。而上面我开的那一扇,欢迎模仿,仅供模仿!