一份Java学习路线图
Java学习路线图
本文会持续更新,敬请关注。下划线的文字会在这个博客继续更新。
回顾自己的Java学习经历,从学校的课堂到现在每天的项目开发,一份路线路线图浮出来。
其中有未做好的地方,也有自我感觉有用的方法。整理并分享出来,既是分享也是抛砖引玉,欢迎大家转载和讨论。
0.起步
- Java基本语法
- 开发工具的基本使用:建立Java项目,敲入代码,运行程序。当然,如何安装Java开发环境也是必备技能。
- 与其他语言一样,输入经典的hello world,然后看到输出。
推荐书籍
- Java JDK 7学习笔记:这本书从基础的配置讲起,通俗易懂。
- Head First Java(中文版):虽未读过,但是head first的系列以示例讲解非常形象著称,而且附带的示例代码也很好用。
开发工具
- Eclipse
- 这里指说一下自己常用的Eclipse。最新的Eclipse 4已支持Java8语法,下载地址。
- Eclipse的版本众多,如果不涉及Eclipse插件开发,JavaEE版本(Eclipse IDE for Java EE Developers)就可以:支持J2EE和J2SE开发。
- 安装Eclipse也很简单:下载后解压缩,直接运行即可。当然,这里也有很多坑,比如各种千奇百怪的问题。接下来会单独写博客讨论。
总结
1.新手
- 了解面向对象:Java是面向对象语言,所以写程序遇到的第一个问题和以后一直需要解决的问题就是“用面向对象的思想,把问题抽象成Java程序”。
- 学会看API:现成的例子会跑,但毕竟涵盖的范围有限,那么学会看JavaDoc,调用函数就是重要的一步。
- 学会调试:学会调试,可以在问问题前解决一大半的问题。这里说的调试不仅是在Eclipse学会debug,还有如何用你的大脑在阅读代码时分析程序,找出问题。
- 学会问问题:这个不仅在写代码时很重要,在解决其他问题时一样适用。
推荐书籍
- Java编程思想 (第4版):经典。对面向对象的讲解很到位。不足之处是中文的翻译,技术词语与现在通常的用法有所区别,需要注意。
- JAVA核心技术(卷1),(卷2):对Java知识体系中常见的API和注意事项有讲解。可根据自己的实际开发进行查阅。
- UML和模式应用:经典面向对象教材,还可以熟悉UML的基本概念。
常用资源
- JDK7 Document下载,在线API Document:在Eclipse中如果有网络,可以直接看到API的说明,离线时也可以将下载后的文档关联。接下来会单独写博客讨论。
- Java Debugging with Eclipse - Tutorial:Debugger是程序调试的重要工具,学会使用它会对开发中的问题进行有效的跟踪和分析。这篇优秀的教程是英文,接下来会单独写博客总结Eclipse开发debugger的常用技巧。
- 如何提问:《提问的智慧》,读完此文会对问题的质量和有效回复有很大提高。
总结
2.工人
- 维护遗留代码,解决bug
- 开发新功能
- 设计并开发项目中的某个小模块
- 测试:暂时不在此文的讨论范围之内,无相关经历
- 读代码:写代码容易,读代码难,尤其是那些让你抓狂的代码。这里还是有一些技巧和规律的,也有相关的工具可以辅助。
- 改bug:熟悉业务流程,了解逻辑关系,常见的Java错误。这些都是你工作的好帮手。
- 设计:如何从头开始设计一个功能模块?涉及哪些相关知识,有什么经验是可以借鉴的?回答这些问题是设计工作的开始。
- 开发流程:每个公司或项目都有自己的开发流程,熟悉这些流程和工具是必备技能。
3.技术骨干
- 业务:之所以把它放到第一位,原因很简单——这是企业的核心。
- 设计模式、架构:从开发程序,到开发模块,再到开发产品。这种转变的结果,就是需要从更高的角度去看待开发这件事情。合理、可靠、可扩展的架构,是确保产品生根和发展的重要基础。
- 调优:产品不光是写代码,更重要的是后期的维护和扩充。调优、解决线上的故障,这些都是必须面对的问题。
- 用户体验:很重要,但超出了我的讨论能力范围,你懂得:)
4.自由的开发者
一份Java学习路线图的更多相关文章
- Java学习路线图(如何快速学Java)
不知不觉从初学Java到现在已经8年了,今天在这里给刚入门和入门不久的小伙伴们一些建议.可能总结的不是很详细,但给出了一个大概的学习路线.希望对大家有帮助哈~ 如何快速学Java 这里我以Java E ...
- 2020最精细的Java学习路线图
在吾爱破解发布的Java学习路线图自我感觉良好,之后看到动力节点Java学院的这份学习路线图感觉专业的东西还得专业的人来做,这份专业的学路线图把我上次的Java学习路线图秒成渣,虽然内容差不多,上份是 ...
- Java学习路线图,专为新手定制的Java学习计划建议
怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...
- 转:Java学习路线图,专为新手定制的Java学习计划建议
转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...
- 转:Java学习路线图
作者: nuanyangyang 标 题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内 [以下肯定是不完整的列表, ...
- 新手如何学习Java——Java学习路线图
推荐初学者阅读:新手如何学习Java——Java学习路线图
- Java学习路线图,Java学习计划建议
怎么学习Java,这是很多新手经常遇到的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...
- JAVA学习路线图(一文详解)
此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为JAVA攻城狮. 阶段1 1:学习HTML 2:学习CSS 3:JavaScript 4:jQuery 5:xml解析 6: ...
- java学习路线图-----java基础学习路线图(J2SE学习路线图)
安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...
随机推荐
- DzzOffice结合office web Apps私有部署的实例
很多朋友都想在自己使用的DzzOffice中,调用本地部署的office web Apps server. 下面我就直接从头到尾的将部署全部过程分享给大家. 准备条件:两台服务器,配置稍高点,以免卡顿 ...
- 黑马程序员——Foundation中的OC结构体
<span style="font-size:14px">------<a target="_blank" href="http:/ ...
- STL源码分析读书笔记--第5章--关联式容器
1.关联式容器的概念 上一篇文章讲序列式容器,序列式容器的概念与关联式容器相对,不提供按序索引.它分为set和map两大类,这两大类各自有各自的衍生体multiset和multimap,的底层机制都是 ...
- http协议要点
概念: HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组 ...
- Educational Codeforces Round 5 A. Comparing Two Long Integers
A. Comparing Two Long Integers time limit per test 2 seconds memory limit per test 256 megabytes inp ...
- Hadoop开发环境简介(转)
1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...
- 提升c++builder 代码输入流畅度的配置
提高c++builder 代码输入流畅度 1.输入指针的函数名后,识别函数参数移动光标到括弧内,此功能太慢,有明显延迟,建议关闭.关闭以后,输入函数名不会自动添加(),需要自己手动输入括弧了,不过速度 ...
- DataTrigger的几个用法
1.用在textbox等输入控件上,验证输入是否合法. <Window.Resources> <Style TargetType="TextBox"> &l ...
- [翻译]Behavior-Driven Development (BDD)行为驱动开发(二)
测试驱动开发体现了开发人员对软件产品各部分运作方式的理解,而行为驱动开发则关注于开发人员对软件产品最终表现的行为的预期. 行为驱动开发 TDD更像是一种范式而不是一个过程.它描述了一种先编写测试,然后 ...
- C#反射实例化类并调用类的方法
反射提高了程序的灵活性和扩展性,降低耦合性,提高自适应能力. 它允许程序创建和控制任何类的对象,无需提前硬编码目标类: SalBLL a = (SalBLL)Assembly.Load("B ...