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的基本概念。

常用资源

  • JDK7 Document下载在线API Document:在Eclipse中如果有网络,可以直接看到API的说明,离线时也可以将下载后的文档关联。接下来会单独写博客讨论。
  • Java Debugging with Eclipse - Tutorial:Debugger是程序调试的重要工具,学会使用它会对开发中的问题进行有效的跟踪和分析。这篇优秀的教程是英文,接下来会单独写博客总结Eclipse开发debugger的常用技巧。
  • 如何提问:《提问的智慧》,读完此文会对问题的质量和有效回复有很大提高。

总结

从第一个程序开始,就会遇到开发中的实际问题。所以,一些常用的概念和技能会在日后的开发过程中不断磨练和提高。
勤奋和总结始终是手中的必备法宝。

2.工人

读代码,改bug,开始学设计,开发流程。
 
写了若干小程序后,实际的项目开发会是这样:
  • 维护遗留代码,解决bug
  • 开发新功能
  • 设计并开发项目中的某个小模块
  • 测试:暂时不在此文的讨论范围之内,无相关经历
那么接下来就是需要掌握的一些技能:
  • 读代码:写代码容易,读代码难,尤其是那些让你抓狂的代码。这里还是有一些技巧和规律的,也有相关的工具可以辅助。
  • 改bug:熟悉业务流程,了解逻辑关系,常见的Java错误。这些都是你工作的好帮手。
  • 设计:如何从头开始设计一个功能模块?涉及哪些相关知识,有什么经验是可以借鉴的?回答这些问题是设计工作的开始。
  • 开发流程:每个公司或项目都有自己的开发流程,熟悉这些流程和工具是必备技能。

推荐书籍

  • 程序员的思维修炼:虽然与Java无直接关系,但其中的解决问题思路绝对管用。
  • 代码阅读方法与实践:此书虽然以Linux开源项目为示例,但其中的经验和思路可借鉴。接下来会单独写博客讨论。
  • 设计:这个话题比较大,待思考细分后再分专题推荐和讨论。
  • 开发流程:目前比较流行的开发流程,常用的项目管理、源码管理、Code Review等相关工具介绍。接下来会单独写博客讨论。

总结

这个阶段需要稍微慢下来,对自己的工作进行思考和梳理。找出自己的优势或不足,相对应地进行巩固和提高。

因为涉及的事情、知识会有较大的扩展,因此需要学习的东西会不仅限于技术开发。
保持积极的心态和勤奋的态度,继续下一个阶段。

3.技术骨干

业务,设计模式,架构,调优,用户体验。
 
如果此时还是专注于技术,那么可能会继续下面的修炼。
这个阶段代码量和项目已经到了一个阶段,所以可能会遇到负责某个产品开发,或者专注架构设计。
平常考虑的问题可能会是:如何确保产品按时上线,架构合理,少出bug。如何在不断变化的需求中,确保开发进度和软件质量。
 
那么接下来就是一些关注点:
  • 业务:之所以把它放到第一位,原因很简单——这是企业的核心。
  • 设计模式、架构:从开发程序,到开发模块,再到开发产品。这种转变的结果,就是需要从更高的角度去看待开发这件事情。合理、可靠、可扩展的架构,是确保产品生根和发展的重要基础。
  • 调优:产品不光是写代码,更重要的是后期的维护和扩充。调优、解决线上的故障,这些都是必须面对的问题。
  • 用户体验:很重要,但超出了我的讨论能力范围,你懂得:)
实际情况是,自己虽然看到了一些,但个人经历着实没有办法总结出好的经验。
不过我还是一直在努力和学习。如果有好的文章和书籍在这里多做分享。

4.自由的开发者

第一个产品。
 
一个Idea,一个产品,一个成功?!
这时你可不需要对某个公司或老板负责。你的产品就是你的baby,你赖以生存的依据。
除了需要过硬的技术,还有就是一种坚持和决心。
也许不是创业,也许只是自由职业。但同样会为自己的产品和生存负责。
 
扯了这么多,其实我是一名普通的Java程序员。希望这些文字能够对自己有激励和总结,也能对喜欢Java的朋友有所帮助。

一份Java学习路线图的更多相关文章

  1. Java学习路线图(如何快速学Java)

    不知不觉从初学Java到现在已经8年了,今天在这里给刚入门和入门不久的小伙伴们一些建议.可能总结的不是很详细,但给出了一个大概的学习路线.希望对大家有帮助哈~ 如何快速学Java 这里我以Java E ...

  2. 2020最精细的Java学习路线图

    在吾爱破解发布的Java学习路线图自我感觉良好,之后看到动力节点Java学院的这份学习路线图感觉专业的东西还得专业的人来做,这份专业的学路线图把我上次的Java学习路线图秒成渣,虽然内容差不多,上份是 ...

  3. Java学习路线图,专为新手定制的Java学习计划建议

    怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:    首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  4. 转:Java学习路线图,专为新手定制的Java学习计划建议

    转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...

  5. 转:Java学习路线图

    作者: nuanyangyang 标  题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内   [以下肯定是不完整的列表, ...

  6. 新手如何学习Java——Java学习路线图

    推荐初学者阅读:新手如何学习Java——Java学习路线图

  7. Java学习路线图,Java学习计划建议

    怎么学习Java,这是很多新手经常遇到的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:     首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  8. JAVA学习路线图(一文详解)

    此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为JAVA攻城狮. 阶段1 1:学习HTML 2:学习CSS 3:JavaScript 4:jQuery 5:xml解析 6: ...

  9. java学习路线图-----java基础学习路线图(J2SE学习路线图)

    安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...

随机推荐

  1. 我常用的Linux命令

    CD: ..        —-切换到上层目录 ~        —-回到家目录(/home/你的登录名/) LS: -a        —-显示指定目录所有文件,包括文件名以 . 开头的文件 -l  ...

  2. 【LeetCode】14 - Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. Solution: cla ...

  3. C语言实现strcpy

    strcpy.h: #ifndef STRCPY_H #define STRCPY_H #include <stdio.h> char *cat_strcpy(char *dst, con ...

  4. JavaEE5 Tutorial_Jsp,EL

      Jsp的各种元素在转化为servlet时处理是不一样的:指令,控制web容器如何处理页面脚本,被插入到生成的servlet里EL表达式,作为参数传递到解析器get/set Property,变成方 ...

  5. linux命令 screen的简单使用

    在远程命令行下某些长时间的操作,一旦网络出现故障,后果可能会很严重,在这种情况下可以使用screen命令来解决.screen可以创建一个session,在不小心断开以后还可以继续恢复session保存 ...

  6. asp web api 怎么使用put和delete。

    Method Overriding RESTful services allow the clients to act on the resources through methods such as ...

  7. html5 canvas 鼠标绘制

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 加固Samba安全三法

    欢迎大家给我投票: http://2010blog.51cto.com/350944 650) this.width=650;" onclick='window.open("htt ...

  9. 第三百二十一天 how can I 坚持

    上班第一天,感觉时间过得好慢. 心里好烦,做什么都没心情,感觉没有勇气了,虽然早上说了那么多,但不敢去面对了. 咋整? <猪老三><野子>. 好想去看<美人鱼> 不 ...

  10. 第二百一十二天 how can I 坚持

    在家待了一天,过个周六日也就这样,时间.感觉好堕落. 下午心情特烦闷.好想结婚.为什么不认输,为什么会这样.这到底是一种什么心态. 哎.不懂自己. 睡觉. fordream.