本人从事JavaWeb开发,应别人要求,思考再三,终决定专门开一贴来总结一下我我的目前推荐的学习路线。从啥也不会到可以从事JavaWeb开发,究竟要学习哪些东西?不少人都会迷茫这个地方。因此我打算随便谈谈个人见解。javascript
我以前一直不想写,由于我知道一旦写了就要承担压力。必然会有一大波人来指责我,说什么什么你这样讲是毒鸡汤,怎能无论算法,无论计算机原理!你这样是误导新人!而后举出一大堆例子,说基础怎么怎么重要,你这样速成未来会有大问题!你这是在瞎扯,一看就知道你不懂得Java的精髓!css
我大概能预见这些状况,但我无所谓,由于我所说的,不表明就是正确的,错了又如何呢?我毕竟只是普通人。html
我只能说,到目前为止,我所看到的状况便是如此。也许的确是我目光短浅吧,没有达到网上大神说的那种境界。不少人给个人感受就是,敲一个HelloWorld,都须要把计算机的二进制编码,以及计算机怎么诞生的这些彻底搞明白才能够。不然我就不配敲HelloWorld,由于我不懂得原理。前端
因此,这些东西我一直不想写,反正总归会被骂,还不如悠闲点算了。java
但是随着群里问我这个问题的人愈来愈多,并且这个事情也不是我随随便便就能讲清楚的。最终,思量再三,我仍是决定专门写几篇文章,就我我的的见解来简单说说,从啥也不会到可以从事JavaWeb开发的一个最直接的学习路线。jquery
由于如今大部分公司仍是没有明确的先后端之分,好比我经历的几个公司都是如此,先后台都是一我的包了。稍微小一点的项目,一我的抖擞抖擞精神,也就直接扛下来了。css3
因此,在个人推荐路线中,前端确定也是要包括的。若是你只学Java,在目前的大趋势中,仍是比较悬的。除非你找到那种先后端彻底分开的公司。ajax
那么,开始吧。算法
为何我推荐先从JavaScript学起来,缘由有两个。其一,JavaScript不须要你搭建什么环境,好比Java你就得先安装JVM,配置环境变量。可能对已经工做的你而言,这真的没什么,由于太简单了。但是,对于一个彻底没有编程经验的人而言,每每就会被卡死在第一步。连环境都不会搭建,后续的学习也就无从谈起了。JavaScript就彻底没有这一顾虑,你随便网上下载一个IDE(好比Sublime,HBuilder,Editplus),就能够开始写代码了。而后,你的电脑上总该有浏览器吧,那么,你写的代码就能当即看到效果。俗话说,兴趣是最好的老师,当你看到本身编写的网页栩栩如生地展示在你的眼前的时候,那种喜悦的感受会给你带来继续学下去的勇气。编程
第二个缘由,JavaScript是一门比较优秀的语言,通常来讲,其余面向对象的语言特色,它也有。要谈算法,JavaScript也可以锻炼你的算法水平。有兴趣的能够去学习一下canvas,也就是画布,本身尝试着作一些特效,里面会大量用到三角函数,物理上的摩擦力,以及数学的几何模型等等。
不少东西,均可以用JavaScript模拟出来。
总的来讲,从JavaScript入手,免去了环境搭建的麻烦,你还能从中得到不少学习的乐趣,你必定想不到,当我第一次封装了一个原生态的弹窗组件,和Grid组件的时候,我兴奋得一夜睡不着觉吧。
当我第一次用纯粹的JavaScript作出轮播图,雪花飘落,瀑布流,等等的特效,我看着本身的做品,一种无与伦比的喜悦充斥着个人心里。
正是JavaScript,给了我学习编程的乐趣!
能够说,当你真正精通了JavaScript这门语言,也就学会了一切的编程语言(面向过程的除外)。由于都差很少的,好比我后来从新学习Java,每看到一个地方,脑子里立马就联想到:“咦,这和JavaScript中的XXX不是一个意思吗?”
记得清华大学的华成英教授曾经说过,最好的学习方法就是类比。就是说,当你遇到一个陌生的技术,若是能将它和你已经熟悉的东西类比起来,比较他们的异同点,那么,你学习的效率会像坐火箭同样蹭蹭蹭上涨!
好了,说了这么多,如今我给出我推荐的学习列表:
1.html + css (了解一下基本的标签便可,最起码要知道div,类选择器是什么,怎么引入css文件?还有那些经常使用的css属性,background,width,height等等)
推荐方法:这个阶段,有一个很好的办法能迅速培养起来本身在该方面的编程意识,就是你随便找一个生活中的东西,好比桌子,而后,强迫本身在一天以内想出它的50个属性。
好比,一张桌子,什么颜色、材质是啥、高度多少、宽度多少?等等。
50个属性有点夸张,可是你必定要去努力尝试,想出来多少是多少?就算想不出50个也无所谓,有多少算多少。而后,把这些属性用笔记下来。好好思考一下,这样作的目的是什么。
当你真的去这么作之后,你就会发现,哦,原来css就是在作这个事情。
再提示一下,这张桌子在房间的什么位置?它的旁边是什么?等等,这些均可以算做它的属性。
话很少少,本身体会一下就好了。
这个阶段,能够网上找点基础的视频来看看,不须要掌握太多,由于css往深了研究仍是至关复杂的。我相信,谁也不敢拍着胸脯说本身彻底精通css的,大部分人仍是处于可以运用的阶段。我也只是略懂。初学者不建议去看那些特别深奥的内容,大概了解一下便可。
至于什么css3,响应式,bootstrap,暂时不必去学。
时间:3天
毕业标准:可以用 html + css 作一个网站的登陆界面。
这个阶段,主要去看下JavaScript的概念,基础数据类型,for循环。(while循环我都不推荐去看,用得不多,工做中基本都是for循环)
注:这个阶段尽可能去网上看视频,不要去各类百度。常常你会发现,你明明把代码原封不动得抄过来了,可为何就是没效果呢?怎么就是和网上说的不同呢?
无论你看的是什么代码,基本上就是两种可能。第一种,代码自己的问题。好比别人随便在本身项目里复制了一段代码,放到网上,而后说明这个代码是用于解决XX问题的。
这个时候,你根本就没有对方项目的环境,代码固然用不了啦!
另外一种可能,就是代码没问题,可是有些地方要修改一下,但是你还不会用浏览器的调试工具来调试,因此效果出不来。
无论怎么样,你这样东找找西找找,除了在浪费时间,根本就达不到学习的目的。由于根本就不系统啊!为何如今培训机构这么多,就是由于不少人都不知道怎么去系统学习,就算想要自学,也不知道从何入手。尤为是初学者,根本不知道怎么回事,可能就是脑壳一热,劳资要转行了,因而就网上处处乱学。
这个阶段,你要买书也能够,可是前提你要有那个耐心看下去。其实我是不推荐买书的,由于如今这个阶段的你能力还不够,并且,咱大天朝出的技术书籍你也懂的,都不知道哪里拼凑来的。
固然,不排除好书,但是毕竟太少了。
即使是我,有的时候翻翻当年凭着一腔热血买来的Java书籍,偶尔都要皱一下眉头,心想,这个做者到底想表达什么?这些案例到底想要说明什么?
何时该买书,我以为是你已经能够从事开发了,并且对编程有了一些本身的心得,以为本身在某方面须要再提升一下,那么,这个时候你能够去买书,由于,这个阶段,你买的书,基本上本身均可以看懂了。
新手买书,真的会无语的,除了让你怀疑人生以外,并无太大的益处。
看视频,敲代码!
看视频,敲代码!
看视频,敲代码!
重要的事情说三遍,这个阶段仍是比较重要的。对于一个彻底不懂编程的人来讲,可能写一个一层for循环,就要花去10分钟的时间,而后对着代码看来看去,看来看去,反复推敲。这是好现象,这说明你正在开始慢慢培养本身的编程思惟。不要着急,要按部就班。
这个阶段,主要是学习JavaScript的语法,看视频,一遍看不懂看两遍,直到你看懂了位为止。
重点:
for循环、if语句。
数组,字符串,function(包括传参和return),闭包的含义,JavaScript内置函数。
数组的经常使用方法,push,slice啥的尽可能都要会,若是不会的话,就照着例子写,多写几遍就会了。
时间:3天。
毕业标准:可以本身写一个function,知道function是什么意思,会用alert,conole.log调试程序,最好能直接经过浏览器的F12查看控制台,在里面练习和调试。数组要多看看,了解数组的增删改查怎么用的,条件容许的话,你能够经过数组来模拟一下Java中的ArrayList。
在JavaScript中,我感受json是重中之重!
通常来讲,js建立对象有两种方式,一种是经过构造函数,也就是function的方式,另外一种就是直接建立一个json。
这个阶段必定要好好理解一下json的概念,而后用json去作一些事情。好比,你写一个注册页面,里面有用户名,密码,年龄,邮箱等等的input框。你能够尝试一下,用json的方式,把这些数据装起来。
体会一下这样有什么好处?
最好可以体会到,json的做用,其实就是为了中转数据的。那么多数据,怎么才可以以一种较好的方式装起来呢?
你用数组天然能够,可是不够语义化,用json的话就恰到好处。它这个主要是用于描述一个对象的,而数组更多用来充当一个容器。
时间:1 ~ 2 天
毕业标准:可以熟练使用json来装载数据。本身想一个恰当的比喻,来形容一下json像什么东西?最好本身想,经过这个比喻来更加牢固得记忆 JSON 以及它的用法。别人举得例子再好,也比不上你本身的例子。
所谓的dom,简单来讲就是经过JavaScript来获取页面上的一些元素。好比你写一个div,它的id叫作box,那么就能够经过document.getElementById('box')的方式获取这个dom元素。
接下来,你能够给他添加样式,设置点击事件等等。
具体的话,随便网上找点资料或者视频来看就好了。这一块相对来讲仍是比较简单的。
注意:dom和css不是一回事,css是样式表,而dom是你用JavaScript取到的相似于div同样的东西,你能够用JavaScript代码去操做页面上的div元素。好比给他加一个样式。
那些css属性,不须要去背,只须要记住经常使用的就行了。用多了你天然会。
重点:
document.getElementById
document.getElementsByTagName
innerHTML,appendChild,
。。。
这个阶段,你必定要把浏览器的F12用得出神入化,反复使用,反复练习。
时间:2天
了解一下基本的JavaScript事件模型,明白事件冒泡是怎么回事,何时要阻止冒泡。(事件捕获几乎用不到,不要去学了)还有,onclick和addEventListener的区别的是什么?我能不能本身封装一个通用的绑定事件函数?
时间:1天
毕业标准:可以模拟jQuery的on函数,封装一个本身的方法,达到和jQuery同样的效果,最好能兼容全部浏览器。
学完上面的这些内容,不要犹豫,不要慌张,立马钻入jQuery的学习中。这段时间,能够开始本身写一点小东西了。固然,要是内心没底的话, 仍是以看视频为主,最起码,把jQuery的经常使用方法都过一遍。过一遍就好了,不要去多看。
而后,第二步,学习经常使用的jQuery方法,而且本身能够开始尝试着写写看,如何用纯粹的JavaScript来达到相同的效果。一些简单的方法,好比jQuery的css,height,width,addClass,removeClass,这些方法,你彻底能够本身用js来模拟一下。
在从此的工做中,你开发前端页面的绝大多数时间,就是和jQuery打交道。因此,这一块必需要好好掌握一下。这个时候,能够去买书,也能够不买。可是最好有个本身的知识库,把经常使用的方法,和一些你以为画得比较好的页面,特效等等,都保存下来。
或者,你也彻底能够去网上写一写本身的博客,博客园,简书,csdn啥的,均可以。经过写博客,一来能够本身总结,二来也能帮助别人。
这个阶段,正常状况下,js水平应该已经达到必定层次了。在接下来的日子,能够考虑来买一点书来看,固然,千万不要从第一页看到最后一页。有选择性的去看,而且,必定要带着批判的精神去看书,亲自去验证一下书中所说。为何到这个时候,我才推荐去买书来看呢?很简单,由于到了这个阶段,你才能看得懂。若是是一个彻底不懂编程的新人,直接去买书,看懂的几率很小,除非你真的是天纵奇才,具备极高的天赋。
尽可能去买外文翻译过来的书,国产的书籍不太建议购买(固然,若是你是英语大牛的话,直接看原版,最好!)。至于为何,你们都懂的。
我也看过不少不少的书,最后发现,国内的不少书,大都本着一种哪怕你再聪明,我也要把你说糊涂了的宗旨。这也是你为何每每看书看不进去的缘由。
而国外的书,美国的就挺好,不过我感受写的最认真的仍是日本的技术书籍。看起来感受就不同,写的通俗易懂不说,并且我甚至能看到做者为了出这本书,真的是耗费了巨大的精力!这是事实。很有种哪怕你再笨,我也要把你教会的感受。
我并不哈日,但说句实在话,人家写的书真的是一种奉献精神、值得敬佩。而不像咱们国内的技术书籍,一大抄,真正能看看的好书很少。
这个阶段,一边看书,一边本身动手敲代码,写案例。好比说,你看到一个网站,以为他的布局都挺好看的,你就能够思考下,我能不能来仿一个呢?
好了,前台页面有了,开始思考,这些数据哪来的?
确定不可能页面里面所有写死吧,想一想也不可能。那么毫无疑问,确定是后台传过来的。
接下来,就开始思考怎么传过来的呢?因而乎,ajax技术又来了,立刻再去学习ajax,带着疑问去学。
后台语言,好比说Java,天然而然的,会驱动你去学习。
以上的这些路线,只做为一个参考。固然,这些都还只是JavaScript学习的初步阶段,可是学习这个事情,原本就须要在工做中慢慢体会,本身主动去学的。难以经过一篇文章就说得清。最后,但愿本文对诸位有所帮助,谢谢。