最近在面试中深感java基础知识的匮乏,看了一些java成长之路的博客,跟着博客中提到的知识,慢慢学习了一段时间,但总感觉事倍功半。很苦恼,逐渐有点迷失方向,突然就看到了一篇文章,写的很清晰,也许关于程序员,真的无捷径可循,不可急躁,方能得益于身。如果有心为之,就过来一起看看吧。
作者:樊凯
链接:https://www.zhihu.com/question/19945685/answer/13594055
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先先搞懂JavaSE的部分,Swing和swt部分就可以少看或不看,因为现在用的比较少。重点是看懂Java中的面向对象、集合框架、JDBC、异常、IO、线程和网络编程。JavaSE搞定后再学习Servlet、JSP,然后才是经典的Struts2、Hibernate和Spring,学习框架时重点理解框架的运行原理,甚至可以尝试自己写个轻量级的框架。理解运行原理的最好方法就是阅读源代码,还是要感谢Java中的开源项目。这期间还要多找各种大小的项目去完成,不一定要大,但是要精致,功能要完整,这样可以练习所学知识,并且可以在做项目中发现自己的知识体系中不足的地方。关于看视频,我不推荐,很多同学一天到晚就知道看视频,殊不知,编程真理在于“练习,练习,不停练习”!
再补充下:当学习Java的期间,会碰到各种各样的异常,请积累这些异常信息,以及如何出现的异常和如何处理的,因为java中常见的异常就那么几种,积累的多了,处理问题的能力就提高,这样水平会提高的很快!
—————–2015年1月5日修改—————
这个答案最开始是11年回答的,不少留言的同学问现在这个答案是否还有效,答案是依然有效。因为这几年的发展,从招聘的角度看,使用 Java 的IT 的公司对技术的要求变化不大,依然要求你有扎实的 JavaSE 功底,会使用常用的框架。
SpringMVC 这几年的占有率迅速的提高,可能之后会取代 Struts2,但是无论怎么变化,这些还都是 MVC 模式,理解了这个模式,上手任何的 MVC框架都应该很快。
企业需要的变化还体现在大数据方面,因为 Hadoop 的流行,Java 的应用场景又多了一个。所以,不喜欢 web 的可以考虑学习大数据方面的知识。
另一个流行的场景自然就是 Android,学习 Android 依然需要你有 JavaSE 的底子+HTTP 协议的理解,再配合上 Linux 的知识就可以开始了。
再说下找项目的问题,初学者可能会碰到不知道做什么的问题,其实最开始大家都是从模仿开始的,例如你学会了 jsp+Servlet,那就可以模仿一个 v2ex 这样的论坛出来。学会了 SpringMVC,那就试着将论坛的代码重构,提供restful接口供客户端访问(Android、IOS 、web 等)。论坛做的没难度了,那就模仿一个团购网站,依然是不一定要做全部的功能,但是做出的功能要稳定,要精致。或者一个微信公众平台的开发都是不错的项目。
初学者看源代码有的人推荐看 Struts2、spring 的,但是我相信10个初学者9个看不懂,那就从简单的开始,例如 Apache 的 Commons 库,例如 lang、dbutils、io 等,这些都是非常不错的代码,类的数量不多而且质量也不错,这些看懂之后,你的基础水平增长的不是一点点。
再次提醒初学者,学习编程没有你想的那么简单,必须要多练习,多思考,最主要的是你对这个有兴趣。现在不少网站和媒体都宣传1个月学会前端、3个月入职 BAT 的口号,那也就是口号而已,别太认真。这条路没有捷径,写你的代码就是了!