Java自学路线

来源:互联网 发布:知乎 高品位礼品 编辑:程序博客网 时间:2024/05/19 00:13
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Night Silent
链接:http://www.zhihu.com/question/21427478/answer/18227060
来源:知乎

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,国内算讲的不错的,当然内容有点多,需要花更多时间。
以后工作了还要自学很多, DOM 部分可以参考《DOM 编程艺术》,工作了可以深入  JS, 建议参考《Javascript 权威指南》, 原版更好,即:《Javascript: The Definitive Guide》
3.1  学习 Jquery
  • 北风网李炎恢讲的不错
  • 圣思园张龙讲的也不错
  • Jquery 多参考官方 API
3.2 EasyUI 部分可以先不看,看官方文档基本足够,官网经常被墙,请自备梯子。
3.3 ExtJS 对 JS 的基础要求比较高,我不建议初学就接触,可以在深入 JS 的机制后再学习,到时候参考《ExtJS in Action》 即可
3.4 Ajax 可以参考王兴魁老师的内容,也可以自行搜索 Jquery 对 Ajax 的支持。
4. Java Web 看传智播客方立勋的视频教程
  • 参考书籍:《Head First: Servlet and JSP》,很形象的一本书,图示很多,理解起来很舒服。
5. 轻量级 JavaEE 开发(所谓的 SSH)
  • Struts2 可以参考传智黎活明,尚学堂马士兵或者圣思园张龙的。
    • 参考书籍:《Struts in action》,中文版好像有《Struts 权威指南》之类的书。
  • Spring 可以参考动力节点王勇的,也可以参考传智黎活明的。
    • 参考书籍:《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 的简易封装,很简单,花三两天时间看看其官网文档就可以搞定。
7. 现在大多数项目都采用构建工具,如 Maven / Gradle / Ant + Ivy 等等,这些你很少能够找到教程,能讲清楚的也不多,我的建议是:
  • Gradle 可以参考 《Gradle in Action - Benjamin Muschko 2014》
  • Maven 可以参考《Maven 实战》,没错,是为数不多写的也不错的国产书
  • Ant 常常和 Ivy 搭配使用,但现在一般使用 Maven 就足够了,所以可以不学习,想了解的可以参考官方文档。
  • 不要以为英文的书会浪费你的时间,事实上,当你习惯看英文资料后,你会节省很多时间,至少不会找乱七八糟的中文资料还搞不清楚怎么回事。
8. 不要以为你学习过三大框架就真的会用了,工作中你需要更多地参考官方文档(当然是英文的),例如 Spring Reference, 这样你就知道很多原理性的东西,能让你用框架更有自信,可以参考我的另一回答:spring有什么缺点吗? 多熟悉 J2EE 的规范,如 IOC,适当了解 Spring 之外的 IOC 框架,如 Guice 等。
9. 工作中不要什么都去自己从头做,有些 Util 代码完全可以使用 Guava 等类库来替代,支持泛型和函数式编程,源码也值得学习。
10. 对新技术要敏感一些,但不要一味追新,因为你永远追不上,语言层面的 New Feature 要多少会用,也能说得上来优劣, 此外,JVM 上还有 Scala 和 Groovy 之类的语言,有空可以了解下。
11. 重要的永远都是底层和基础,大牛永远都是这么说,站着说话不腰疼,不过确实如此,你需要在工作之余,了解一下常用的算法和理论,你不能指望着不懂 Socket 就直接使用 Netty 那种高度抽象的框架来实现很好的并发。
0 0