Java学习路线图
本文会持续更新,敬请关注。下划线的文字会在这个博客继续更新。html
回顾本身的Java学习经历,从学校的课堂到如今天天的项目开发,一份路线路线图浮出来。java
其中有未作好的地方,也有自我感受有用的方法。整理并分享出来,既是分享也是抛砖引玉,欢迎你们转载和讨论。程序员
0.起步
一本书或一个教程,一个开发工具,Hello World。
初识Java通常都会从某本教材、课程或者教程开始。完成第0部,首先须要掌握:
- Java基本语法
- 开发工具的基本使用:创建Java项目,敲入代码,运行程序。固然,如何安装Java开发环境也是必备技能。
- 与其余语言同样,输入经典的hello world,而后看到输出。
起步没有什么特别之处,若是有过其余语言的编程经验这一关很容易经过。
推荐书籍
能够做为起步的书籍和教程不少,列举一下本身以为比较合适的几本:
开发工具与编程语言同样,难分伯仲。因此这里不作比较,一般见到的会有Eclipse (MyEclipse),IntelliJ Idea,Netbeans。
- Eclipse
- 这里指说一下本身经常使用的Eclipse。最新的Eclipse 4已支持Java8语法,下载地址。
- Eclipse的版本众多,若是不涉及Eclipse插件开发,JavaEE版本(Eclipse IDE for Java EE Developers)就能够:支持J2EE和J2SE开发。
- 安装Eclipse也很简单:下载后解压缩,直接运行便可。固然,这里也有不少坑,好比各类千奇百怪的问题。接下来会单独写博客讨论。
总结
虽然只是路途中的第一步,可是好的开头就是成功的一半。任何问题都是好问题,必定要记录和总结。
1.新手
第一个程序,了解面向对象,学会看API,学会调试,学会问问题。
当你经历了第一步,把书上的例子都运行过一遍,接下来就会开始写本身的第一个程序。
不管是课程实践,仍是工做安排的小任务,这些都会是一个好的开始。
那么必备的几项知识我认为是有用的(实际上不会限于如下几项):
- 了解面向对象:Java是面向对象语言,因此写程序遇到的第一个问题和之后一直须要解决的问题就是“用面向对象的思想,把问题抽象成Java程序”。
- 学会看API:现成的例子会跑,但毕竟涵盖的范围有限,那么学会看JavaDoc,调用函数就是重要的一步。
- 学会调试:学会调试,能够在问问题前解决一大半的问题。这里说的调试不只是在Eclipse学会debug,还有如何用你的大脑在阅读代码时分析程序,找出问题。
- 学会问问题:这个不只在写代码时很重要,在解决其余问题时同样适用。
推荐书籍
- Java编程思想 (第4版):经典。对面向对象的讲解很到位。不足之处是中文的翻译,技术词语与如今一般的用法有所区别,须要注意。
- JAVA核心技术(卷1),(卷2):对Java知识体系中常见的API和注意事项有讲解。可根据本身的实际开发进行查阅。
- UML和模式应用:经典面向对象教材,还能够熟悉UML的基本概念。
经常使用资源
从第一个程序开始,就会遇到开发中的实际问题。因此,一些经常使用的概念和技能会在往后的开发过程当中不断磨练和提升。
勤奋和总结始终是手中的必备法宝。
2.工人
读代码,改bug,开始学设计,开发流程。
写了若干小程序后,实际的项目开发会是这样:
- 维护遗留代码,解决bug
- 开发新功能
- 设计并开发项目中的某个小模块
- 测试:暂时不在此文的讨论范围以内,无相关经历
那么接下来就是须要掌握的一些技能:
- 读代码:写代码容易,读代码难,尤为是那些让你抓狂的代码。这里仍是有一些技巧和规律的,也有相关的工具能够辅助。
- 改bug:熟悉业务流程,了解逻辑关系,常见的Java错误。这些都是你工做的好帮手。
- 设计:如何从头开始设计一个功能模块?涉及哪些相关知识,有什么经验是能够借鉴的?回答这些问题是设计工做的开始。
- 开发流程:每一个公司或项目都有本身的开发流程,熟悉这些流程和工具是必备技能。
推荐书籍
- 程序员的思惟修炼:虽然与Java无直接关系,但其中的解决问题思路绝对管用。
- 代码阅读方法与实践:此书虽然以Linux开源项目为示例,但其中的经验和思路可借鉴。接下来会单独写博客讨论。
- 设计:这个话题比较大,待思考细分后再分专题推荐和讨论。
- 开发流程:目前比较流行的开发流程,经常使用的项目管理、源码管理、Code Review等相关工具介绍。接下来会单独写博客讨论。
总结
这个阶段须要稍微慢下来,对本身的工做进行思考和梳理。找出本身的优点或不足,相对应地进行巩固和提升。
由于涉及的事情、知识会有较大的扩展,所以须要学习的东西会不只限于技术开发。
保持积极的心态和勤奋的态度,继续下一个阶段。
3.技术骨干
业务,设计模式,架构,调优,用户体验。
若是此时仍是专一于技术,那么可能会继续下面的修炼。
这个阶段代码量和项目已经到了一个阶段,因此可能会遇到负责某个产品开发,或者专一架构设计。
日常考虑的问题可能会是:如何确保产品按时上线,架构合理,少出bug。如何在不断变化的需求中,确保开发进度和软件质量。
那么接下来就是一些关注点:
- 业务:之因此把它放到第一位,缘由很简单——这是企业的核心。
- 设计模式、架构:从开发程序,到开发模块,再到开发产品。这种转变的结果,就是须要从更高的角度去看待开发这件事情。合理、可靠、可扩展的架构,是确保产品生根和发展的重要基础。
- 调优:产品不光是写代码,更重要的是后期的维护和扩充。调优、解决线上的故障,这些都是必须面对的问题。
- 用户体验:很重要,但超出了个人讨论能力范围,你懂得:)
实际状况是,本身虽然看到了一些,但我的经历着实没有办法总结出好的经验。
不过我仍是一直在努力和学习。
若是有好的文章和书籍在这里多作分享。
4.自由的开发者
第一个产品。
一个Idea,一个产品,一个成功?!
这时你可不须要对某个公司或老板负责。你的产品就是你的baby,你赖以生存的依据。
除了须要过硬的技术,还有就是一种坚持和决心。
也许不是创业,也许只是自由职业。但一样会为本身的产品和生存负责。
扯了这么多,其实我是一名普通的Java程序员。但愿这些文字可以对本身有激励和总结,也能对喜欢Java的朋友有所帮助。