2015第16周六学习java建议
2023-09-11 14:18:10 时间
学习Java 建议:
- 尽量用 google 查找技术资料。
- 有问题在 stackoverflow 找找,大部分都已经有人回答。
- 多看官方的技术文档。
- ibm developerworkers 的文章质量整体上有保障。
- 平时花一些时间在 github 上阅读优秀项目源码。
入门(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 设计与实现》。
相关文章
- Java中的锁
- java面向对象高级分层实例_数据库操作类
- java中如何将JScrollPane的垂直滚动条自动移动到最下端
- Akka学习笔记(五):Akka与Java的内存模型
- Java实现 LeetCode 803 打砖块 (DFS)
- Java实现 LeetCode 面试题 01.07. 旋转矩阵(按照xy轴转+翻转)
- java实现海盗比酒量
- Java实现 蓝桥杯VIP 算法训练 最大值与最小值的计算
- Java实现 蓝桥杯VIP 算法训练 和为T
- java JSON的使用和解析
- [Spring学习笔记 4 ] AOP 概念原理以及java动态代理
- Java 性能调优指南之 Java 集合概览
- java struts2入门学习实例--使用struts进行验证
- Java多线程学习笔记 - 十、可重入锁ReentrantLock
- 【Java 8 新特性】Java Stream.of()用法示例
- Spring Boot 应用监控: Java获取 CPU,内存, JVM 内部运行状况代码
- java学习——入门扫盲篇
- Java 异常解决之java.lang.IllegalArgumentException: Comparison method violates its general contract!
- JAVA学习Swing章节按钮组件JButton的简单学习
- Java学习之道:Java 导出EXCEL
- Java开发技术之成为高级java工程师必须学习的三个技术
- java.lang.OutOfMemoryError: Java heap space
- java===java基础学习(2)---运算符,三元操作符,数学函数
- Java学习笔记基础(中)
- Java Volatile的一个实际应用场合