1. 如果 .Net 你是刚入门, 建议转学 JavaWeb, 我对学习何种平台并无偏见,而是自学需要大量的参考资料, Java 的学习资料,无论是视频还是电子书都要远多于 .Net,这是个很实际的问题,你可以去百度一下(当年都是在电驴搜,现在已成死驴),对比便见分晓。
补充:当年下载视频教程只能忍受10KB 的龟速,现在可幸福多了,国内 Java 培训机构越来越多,各自的官网也都放出了基础的学习视频(别指望他们给你放最值钱的项目实战教程),提供的都是百度网盘,下载不再是问题了,希望看到这个帖子的朋友都知道该去哪里找教程,别去电驴那种 ed2k 网站了,都被和谐的差不多了,资料也都是参差不齐,不完整。
2. 自学所需的视频教程一定要成体系,而且每部分最好是完整的,否则,你可能学到某个阶段发现剩下的视频还没有发布(万恶的培训机构都爱玩儿这个伎俩),也可能某个阶段只学了一般发现没有后续视频了,在选择视频教程前,你需要 .Net 或 JavaWeb 完整的学习流程图 (培训机构官网都会提供学习路线图,大同小异),根据每阶段寻找对应的视频教程循序渐进。
3. 如果你的英文足够好,在看视频教程的时候一定要搭配英文电子书(文字版的,方便搜索),为什么这么做? 在我看过的多达 50G 的视频教程里,讲课的老师就算技术再牛,也有讲的模糊的地方,甚至讲错的地方,甚至是忽悠你的地方!!这时候,你需要的可能不只是 Google 和 StackOverflow, 你需要与此配套的英文电子书, 首推 Manning 和 O'Reilly 出版的书。
4. 报班的人一般有两个考虑:(1)基本上四个月速成(2)有老师带着做项目,最后还能推荐工作。
既然你决定花一年时间安心学习了, 那就没必要报班了, 因为自学最大的挑战不是技术的难度,而是解决问题过程中的烦躁和寂寞,甚至还有绝望和质疑。
就先说这些吧,需要的话,再补充。
补充-1: 鉴于很多人都在问怎么个学习路线,我贴个 Java Web 学习路线,仅供参考,但绝对够找工作的了, 如下,都是可以 免费找到的教程(请一定验证是否完整), 拼凑起来差不多刚够学习 Java Web 了,只是衔接起来会有些不连贯,毕竟不是一个机构讲的:
1. Java SE 看传智播客毕向东的(反射那部分搭配着尚学堂马士兵的看),这部分搭配着《Thinking in Java》 做 参考, 只是参考,我不得不 强调:《Thinking in Java》不适合做入门书。
2. Jdbc 看传智播客李勇的(其他老师的忽略), 这部分讲的很全,不用看书。
2.1 数据库先学习 MySQL, 然后对比学习 SQL Server 和 Oracle. 这部分可以参考传智刘道成的 MySQL 课程,如有需要,可以参考《MySQL Cookbook》.
3. Web 开发基础(Html+CSS+JS)
3.1 学习 Jquery
3.3 ExtJS 对 JS 的基础要求比较高,我不建议初学就接触,可以在深入 JS 的机制后再学习,到时候参考《ExtJS in Action》 即可
3.4 Ajax 可以参考王兴魁老师的内容,也可以自行搜索 Jquery 对 Ajax 的支持。
4. Java Web 看传智播客方立勋的视频教程
6. 工作中的加分项(急着找工作的话,可以先找工作,然后工作中补补)
9. 工作中不要什么都去自己从头做,有些 Util 代码完全可以使用 Guava 等类库来替代,支持泛型和函数式编程,源码也值得学习。
10. 对新技术要敏感一些,但不要一味追新,因为你永远追不上,语言层面的 New Feature 要多少会用,也能说得上来优劣, 此外,JVM 上还有 Scala 和 Groovy 之类的语言,有空可以了解下。
11. 重要的永远都是底层和基础,大牛永远都是这么说,站着说话不腰疼,不过确实如此,你需要在工作之余,了解一下常用的算法和理论,你不能指望着不懂 Socket 就直接使用 Netty 那种高度抽象的框架来实现很好的并发。
<img src="https://i-blog.csdnimg.cn/blog_migrate/ead7953b8ead7a13bc9823c6cb5bf963.jpeg" data-rawwidth="1343" data-rawheight="604" class="origin_image zh-lightbox-thumb" width="1343" data-original="https://pic2.zhimg.com/82032e4f9c9e3cc798c69931509885b9_r.jpg">
补充:当年下载视频教程只能忍受10KB 的龟速,现在可幸福多了,国内 Java 培训机构越来越多,各自的官网也都放出了基础的学习视频(别指望他们给你放最值钱的项目实战教程),提供的都是百度网盘,下载不再是问题了,希望看到这个帖子的朋友都知道该去哪里找教程,别去电驴那种 ed2k 网站了,都被和谐的差不多了,资料也都是参差不齐,不完整。
2. 自学所需的视频教程一定要成体系,而且每部分最好是完整的,否则,你可能学到某个阶段发现剩下的视频还没有发布(万恶的培训机构都爱玩儿这个伎俩),也可能某个阶段只学了一般发现没有后续视频了,在选择视频教程前,你需要 .Net 或 JavaWeb 完整的学习流程图 (培训机构官网都会提供学习路线图,大同小异),根据每阶段寻找对应的视频教程循序渐进。
3. 如果你的英文足够好,在看视频教程的时候一定要搭配英文电子书(文字版的,方便搜索),为什么这么做? 在我看过的多达 50G 的视频教程里,讲课的老师就算技术再牛,也有讲的模糊的地方,甚至讲错的地方,甚至是忽悠你的地方!!这时候,你需要的可能不只是 Google 和 StackOverflow, 你需要与此配套的英文电子书, 首推 Manning 和 O'Reilly 出版的书。
4. 报班的人一般有两个考虑:(1)基本上四个月速成(2)有老师带着做项目,最后还能推荐工作。
既然你决定花一年时间安心学习了, 那就没必要报班了, 因为自学最大的挑战不是技术的难度,而是解决问题过程中的烦躁和寂寞,甚至还有绝望和质疑。
就先说这些吧,需要的话,再补充。
补充-1: 鉴于很多人都在问怎么个学习路线,我贴个 Java Web 学习路线,仅供参考,但绝对够找工作的了, 如下,都是可以 免费找到的教程(请一定验证是否完整), 拼凑起来差不多刚够学习 Java Web 了,只是衔接起来会有些不连贯,毕竟不是一个机构讲的:
1. Java SE 看传智播客毕向东的(反射那部分搭配着尚学堂马士兵的看),这部分搭配着《Thinking in Java》 做 参考, 只是参考,我不得不 强调:《Thinking in Java》不适合做入门书。
2. Jdbc 看传智播客李勇的(其他老师的忽略), 这部分讲的很全,不用看书。
2.1 数据库先学习 MySQL, 然后对比学习 SQL Server 和 Oracle. 这部分可以参考传智刘道成的 MySQL 课程,如有需要,可以参考《MySQL Cookbook》.
3. Web 开发基础(Html+CSS+JS)
- 传智播客韩顺平的《轻松搞定网页设计(html+css+js)》,讲的一般,做入门凑合
- 妙味课堂的 HTML + CSS + JS,国内算讲的不错的,当然内容有点多,需要花更多时间。
3.1 学习 Jquery
- 北风网李炎恢讲的不错
- 圣思园张龙讲的也不错
- Jquery 多参考官方 API
3.3 ExtJS 对 JS 的基础要求比较高,我不建议初学就接触,可以在深入 JS 的机制后再学习,到时候参考《ExtJS in Action》 即可
3.4 Ajax 可以参考王兴魁老师的内容,也可以自行搜索 Jquery 对 Ajax 的支持。
4. Java Web 看传智播客方立勋的视频教程
- 参考书籍:《Head First: Servlet and JSP》,很形象的一本书,图示很多,理解起来很舒服。
- Struts2 可以参考传智黎活明,尚学堂马士兵或者圣思园张龙的。
- 参考书籍:《Struts in action》,中文版好像有《Struts 权威指南》之类的书。
- Spring 可以参考动力节点王勇的,也可以参考传智黎活明的。
- 参考书籍:《Spring in Practice》
- 参考书籍:《Spring in Practice》
- Hibernate - 传智播客汤阳光讲的不错,也可以参考尚学堂马士兵的,虽然他的视频太老了。
- 参考书籍:《Hibernate in action》或《Java Persistence with Hibernate》,后者是 Hibernate 作者参与编写的,虽然 2006 年出版的,仍然推荐。
6. 工作中的加分项(急着找工作的话,可以先找工作,然后工作中补补)
- WebService,有两种规范:JAX-WS 和 JAX-RS,推荐大家先学会使用规范的标准实现,再慢慢了解具体规范。
- 学习 WebService,可以先阅读 《Java Web Services: Up and Running》了解 WebService 的历史、体系及各种实现的大概介绍,对应中文版本是《Java Web 服务 -构建与运行》
- JAX-RS,是我们所说的 Rest 风格的 WebService,时间多的话,建议把两种主流的框架都熟悉下:
- Jersey,SUN 对 JAX-RS 的官方参考实现,可以参考《Developing RESTful Web Services with Jersey 2.0》
- Restlet,在 JAX-RS 之前出现,后来也提供了对 JAX-RS 的支持,可以参考《Restlet in Action》
- JAX-WS,是我们所说的传统风格的 WebService,学会使用 CXF 或 Axis2 即可,推荐学习 CXF,可以参考《Apache CXF Web Service Development》,由于 Apache CXF 的文档有点乱,所以学习起来可能会困难些,不过,自己总要克服的
- 关于 WebService 的测试,一般使用 SoapUI(为主流 IDE 提供了插件),这部分,可以参考《Web Services Testing with SoapUI》
- 实际开发时,为了提高开发效率,可能需要使用 curl 这样的工具来快速访问服务,如果你安装了 Git, 那么 curl 已经自带了,打开 git bash 即可调用
- JPA,J2EE 中的一种规范,标准实现有:Hibernate / OpenJPA / EclipseLink 等等,建议通过 Hibernate 来学习 JPA
- 参考书籍:《Java Persistence with JPA - Daoqi Yang》,是位美籍华人写的英文书,简洁易懂,对照这本书里的案例,理解起来不是很难。
- MyBatis,只是 JDBC 的简易封装,很简单,花三两天时间看看其官网文档就可以搞定。
- Gradle 可以参考 《Gradle in Action - Benjamin Muschko 2014》
- Maven 可以参考《Maven 实战》,没错,是为数不多写的也不错的国产书
- Ant 常常和 Ivy 搭配使用,但现在一般使用 Maven 就足够了,所以可以不学习,想了解的可以参考官方文档。
- 不要以为英文的书会浪费你的时间,事实上,当你习惯看英文资料后,你会节省很多时间,至少不会找乱七八糟的中文资料还搞不清楚怎么回事。
9. 工作中不要什么都去自己从头做,有些 Util 代码完全可以使用 Guava 等类库来替代,支持泛型和函数式编程,源码也值得学习。
10. 对新技术要敏感一些,但不要一味追新,因为你永远追不上,语言层面的 New Feature 要多少会用,也能说得上来优劣, 此外,JVM 上还有 Scala 和 Groovy 之类的语言,有空可以了解下。
11. 重要的永远都是底层和基础,大牛永远都是这么说,站着说话不腰疼,不过确实如此,你需要在工作之余,了解一下常用的算法和理论,你不能指望着不懂 Socket 就直接使用 Netty 那种高度抽象的框架来实现很好的并发。
<img src="https://i-blog.csdnimg.cn/blog_migrate/ead7953b8ead7a13bc9823c6cb5bf963.jpeg" data-rawwidth="1343" data-rawheight="604" class="origin_image zh-lightbox-thumb" width="1343" data-original="https://pic2.zhimg.com/82032e4f9c9e3cc798c69931509885b9_r.jpg">
![](https://i-blog.csdnimg.cn/blog_migrate/ead7953b8ead7a13bc9823c6cb5bf963.jpeg)