学习Java 建议:

  • 尽量用 google 查找技术资料。
  • 有问题在 stackoverflow 找找,大部分都已经有人回答。
  • 多看官方的技术文档。
  • ibm developerworkers 的文章质量整体上有保障。
  • 平时花一些时间在 github 上阅读优秀项目源码。

入门(1-2 个月)

  1. 目标:参与简单的项目开发。
  2. 技能:
    • 掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《Java 编程思想》)必看,跳过其中的图形和 applet 章节。习惯查阅 Java API Doc。为了保证代码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。
    • 掌握开发工具
      • 熟练使用一种 IDE。Intellij IDEA或者 Eclipse 都可以,推荐使用前者。至少熟悉常用的快捷键,会 debug(包括远程 debug)项目。
      • 熟悉一种编辑器。比如 Vim/Emacs/Sublime Text,至少学会搜索/替换/代码补全。
    • 掌握 JDK 以外的常用类库和工具包。JDK 原生 API 在很多场景下使用并不方便。你需要掌握社区贡献的优秀类库和工具包,比如 apache commons、google guava 等,具体可以翻阅《技术选型手册》的Utility 篇。
    • 掌握 Web 开发框架。我们使用 Spring(或Rose) + Ibatis(或Jade) 开发 web 服务,你需要熟练掌握它们。
    • 学习代码规范。我们大致上遵循 oracle 的 Java 语言编码规范,你可以先阅读并熟悉它。
    • 熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->Code Review->集成测试->发布。确保你熟悉其中的每个环节。

进阶(2-6 个月)

  • 目标:独立负责某个服务端项目。
  • 技能:
    • 掌握 web 开发最佳实践,掌握 Restful API 设计,理解 Spring 原理。推荐阅读《Spring揭秘》。掌握项目分层、子模块划分。推荐阅读:《J2EE 核心模式》。
    • 掌握 web 架构设计。包括 Http 反向代理,数据缓存,负载均衡,水平扩展和垂直扩展。推荐阅读:《分布式 Java 应用:基础与实践》。
    • 掌握关系型数据库。推荐学习PostgreSql
    • 了解 NoSQL。我们大规模使用 Hadoop、HBase、Hive,同时部分项目使用 Redis、Storm。你需要学会这些工具最基本的使用。
    • 学习 web 安全知识。了解 web 前端安全问题。设计安全 web 服务,包括加解密、防伪造、防重放攻击等。
    • 掌握 Http (推荐阅读:《图解Http》、《http权威指南》)、Thrift 等协议。
    • 掌握服务容量规划,性能调优,可靠性保证,以及故障处理。学习容量规划和性能调优知识,梳理业务监控点,熟练使用我们的监控报警系统。推荐阅读:《深入理解 Java 虚拟机》。
    • 其他。设计模式:从项目中学习,有时间可以看看《深入浅出设计模式》、《JDK 里的设计模式》。学习Java Socket 编程与多线程知识,可以看看《Java 并发编程实战》,并翻翻并发编程网的文章。

深入(6 个月-)

    • 目标:分布式系统和中间件开发。
    • 构建知识体系:《大型网站系统与 Java 中间件实践》、《大型网站技术架构:核心原理与案例分析》。
    • 原理与设计:《大规模存储式系统》、《UNIX 网络编程 卷1:套接字联网 API》、《How Tomcat Works》。
    • 学习开源项目:Apache Thrift、Zipkin、Netty、Rose、Jade、淘宝 RPC 系统 Dubbo 等。分析项目中的设计思路。比如,同样是RPC框架,Finagle 和 Dubbo 有什么异同。
    • 其他。根据参与的项目加深学习吧。比如,如果需要写 DSL,可以读一下《领域特定语言》,对 Redis 感兴趣推荐读一下:《Redis 设计与实现》。

2015第16周六学习java建议的更多相关文章

  1. 一位资深程序员大牛给予Java初学者的学习路线建议

    java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...

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

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

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

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

  4. 新手如何学习java(java学习建议路线图)

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

  5. 一位资深程序员给予Java初学者的学习路线建议

    一位资深程序员给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干 ...

  6. 转载:一位资深程序员大牛给予Java初学者的学习路线建议

    一位资深程序员大牛给予Java初学者的学习路线建议   java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打 ...

  7. (转)一位资深程序员大牛给予Java初学者的学习路线建议

    Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每 ...

  8. 2018面向对象程序设计(Java)第16周学习指导及要求

    2018面向对象程序设计(Java)第16周学习指导及要求(2018.12.13-2018.12.16)   学习目标 (1) 掌握线程概念: (2) 掌握线程创建的两种技术: (3) 理解和掌握线程 ...

  9. 转载 一位资深程序员大牛给予Java初学者的学习路线建议

    原文链接:http://geek.csdn.net/news/detail/242336 Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Jav ...

随机推荐

  1. 【转】Android中定时器的3种实现方法

    原文网址:http://www.android-study.com/pingtaikaifa/508.html 在Android开发中,定时器一般有以下3种实现方法: 一.采用Handler与线程的s ...

  2. hdu3401:单调队列优化dp

    第一个单调队列优化dp 写了半天,最后初始化搞错了还一直wa.. 题目大意: 炒股,总共 t 天,每天可以买入na[i]股,卖出nb[i]股,价钱分别为pa[i]和pb[i],最大同时拥有p股 且一次 ...

  3. 删除ubuntu旧内核

    ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理. 先用uname -a 查看当前内核版本: xzc@xzc-HP-ProBook-4446s:~$ ...

  4. 记录一些Linux C的常用库函数

    我已经受不了每次用的时候去百度了,还百度不出来..... [数字字符串转换篇] atof - convert a string to a double #include <stdlib.h> ...

  5. Open Session In View

    Open Session In View模式的主要思想是:在用户的每一次请求过程始终保持一个Session对象打开着 实现步骤: 步骤一.创建一个Web项目,创建包cn.happy.util,创建Hi ...

  6. [置顶] STM32移植contiki进阶之三(中):timer 中文版

    鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时 ...

  7. itoa的源代码实现

    由于通过socket传递数据的时候,仅仅能够通过字符串类型,可是,当我们要传递的数据是整型的是,应该怎么办呢?本来我想着使用for循环,可是,总感觉太麻烦了,后来别人告诉我能够使用itoa,以下是it ...

  8. LeetCode 58 Spiral Matrix II

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...

  9. python查看删除你微信的账号

    #应用环境:python2.7 #!/usr/bin/env python # coding=utf-8 from __future__ import print_function import os ...

  10. 调试EF源码

    在解决方案中添加下载好的EF的源码的引用 在新建项目中添加程序集的引用 添加配置文件中的节点 测试 获取程序集的公钥标记: 使用sn.exe命令 使用reflector