入门(1年)
目标:参与简单的项目开发。
技能:
掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《Java 编程思想》)必看,跳过其中的图形和 applet 章节。习惯查阅 Java API Doc。为了保证代码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。
熟悉 Linux 开发环境和 bash shell。Linux 是我们的开发和部署环境,你最好尽快熟练它。Linux 的基本使用可以通过《鸟哥的Linux私房菜:基础学习篇(第三版)》学习,开发 bash shell 脚本可以参考《Linux Shell脚本攻略》。
掌握开发工具
熟练使用一种 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 Formatting 文件在 git@xxx/coding-standard.git,在编写代码之前,请把它导入到 IDE 中。另外,确认 IDE 已经安装 Findbugs 和 CheckStyle 插件。
熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->Code Review->集成测试->发布。确保你熟悉其中的每个环节。
其他。需要熟练使用版本控制工具 Git(阅读:《Git 权威指南》),以及项目构建工具 Maven(阅读:《Maven 实战》)。另外,在这个阶段可以尝试 TDD 开发。
进阶(2-3年)
目标:独立负责某个服务端项目。
技能:
掌握 web 开发最佳实践,掌握 Restful API 设计,理解 Spring 原理。推荐阅读《Spring揭秘》。掌握项目分层、子模块划分。推荐阅读:《J2EE 核心模式》。
掌握 web 架构设计。包括 Http 反向代理,数据缓存,负载均衡,水平扩展和垂直扩展。推荐阅读:《分布式 Java 应用:基础与实践》。
掌握关系型数据库。包括设计 MySQL 表结构,根据业务特点分表分库,基于执行计划的 SQL 分析优化,以及数据库容量规划。推荐阅读:《MySQL 必知必会》、《高性能 MySQL》。
了解 NoSQL。我们大规模使用 Hadoop、HBase、Hive,同时部分项目使用 Redis、Storm。你需要学会这些工具最基本的使用。
学习 web 安全知识。了解 web 前端安全问题。设计安全 web 服务,包括加解密、防伪造、防重放攻击等。
掌握 Http (推荐阅读:《图解Http》、《http权威指南》)、Thrift 等协议。
掌握服务容量规划,性能调优,可靠性保证,以及故障处理。学习容量规划和性能调优知识,梳理业务监控点,熟练使用我们的监控报警系统。推荐阅读:《深入理解 Java 虚拟机》。
其他。设计模式:从项目中学习,有时间可以看看《深入浅出设计模式》、《JDK 里的设计模式》。学习Java Socket 编程与多线程知识,可以看看《Java 并发编程实战》,并翻翻并发编程网的文章。
深入(4年以后-)
目标:分布式系统和中间件开发。
构建知识体系:《大型网站系统与 Java 中间件实践》、《大型网站技术架构:核心原理与案例分析》。
原理与设计:《大规模存储式系统》、《UNIX 网络编程 卷1:套接字联网 API》、《How Tomcat Works》。
学习开源项目:Apache Thrift、Zipkin、Netty、Rose、Jade、淘宝 RPC 系统 Dubbo 等。分析项目中的设计思路。比如,同样是RPC框架,Finagle 和 Dubbo 有什么异同。
其他。根据参与的项目加深学习吧。比如,如果需要写 DSL,可以读一下《领域特定语言》,对 Redis 感兴趣推荐读一下:《Redis 设计与实现》。有两本书,无论做什么项目,都推荐读:《Unix 编程艺术》、《UNIX 环境高级编程(第3版)》。
分享到:
相关推荐
"魔乐科技:从入门到精通Java全部源码" 提供的是一套全面的Java学习资源,旨在帮助初学者和有经验的开发者深入理解Java的核心概念和技术。 源码在编程学习中扮演着至关重要的角色,它能直观地展示代码结构和实现...
"Java从入门到精通全ppt"是一套完整的教学资源,旨在帮助初学者掌握Java编程的基础和高级技巧。这套资料由清华大学出版社出版,内容涵盖了一系列关键主题,通过PPT的形式进行深入浅出的讲解。 首先,让我们逐一探讨...
本资源“java从入门到精通书籍教学用PPT”是为初学者设计的一套全面的学习材料,旨在帮助读者从零基础快速掌握Java编程的基础知识和实战技能。 在学习Java的过程中,首先会涉及的是基础语法,包括数据类型(如整型...
这份"java入门到精通PPT"提供了系统化的学习路径,旨在帮助初学者快速掌握Java核心技术,并逐步提升为专业人士。 首先,Java入门部分通常会涵盖以下几个核心概念: 1. **Java历史与特点**:讲解Java语言的起源、...
【Java从入门到精通(第三版)PPT】是一份全面深入学习...总的来说,通过【JAVA从入门到精通(第三版)PPT】的学习,读者不仅可以系统地了解Java语言,还能获得实际编程经验,为日后的软件开发职业生涯打下坚实基础。
《Oracle 从入门到精通(视频实战版)》是一本专为初学者设计的Oracle数据库教程,特别关注Oracle 11g这一版本。Oracle 11g是甲骨文公司的旗舰产品,集成了多年来数据库技术的积累和创新。这本书旨在帮助读者从零...
《Java从入门到精通》是一本全面覆盖Java编程语言的学习指南,由知名讲师韩顺平编著。本书旨在帮助初学者快速掌握Java编程基础,并逐步深入到高级特性,实现从零基础到熟练应用的转变。标签“java”、“入门”和...
【标题】"2020新版Kotlin从入门到精通教程【视频课程】下载整理.zip",这是一份专门针对Kotlin编程语言的全面学习资源,涵盖了从基础到高级的所有内容,旨在帮助程序员快速掌握这一现代编程语言。Kotlin是由...
### Mycat从入门到精通知识点概述 #### 一、Mycat背景与发展历程 - **Mycat**作为一款开源的分布式数据库中间件,它的出现顺应了市场对高性能、高可扩展性数据库解决方案的需求。 - **去“IOE”运动**的兴起(即...
《COBOL从入门到精通》是一本专为学习COBOL编程语言设计的教程,旨在帮助读者系统地掌握这门历史悠久且在企业级应用中仍然广泛应用的语言。COBOL,全称Common Business Oriented Language(通用商业语言),自1959年...
《Java核心知识从入门到精通》是一份全面深入学习Java编程语言的资源集合,涵盖了从基础概念到高级特性的广泛内容。这份资料旨在帮助初学者快速掌握Java编程基础,并逐步进阶为熟练开发者。 首先,前言部分通常会...
本教程“C#编程从入门到精通”旨在帮助初学者快速掌握C#的基础知识,并逐步提升至高级应用。 首先,你需要了解C#的基本语法。C#是C++和Java的混合体,它采用了类C语言的语法,同时也引入了现代编程语言的一些特性,...
# JAVA 学习成长路线:从入门到精通的技术成长分享 Java 作为一种经典的面向对象编程语言,自 1995 年由 Sun Microsystems 发布以来,在软件开发领域内占据了重要地位。它被广泛应用于 Web 开发、企业级应用、移动...
Java技术,作为一门广泛使用的编程语言,其从入门到精通的学习过程涵盖了众多的知识点。孙鑫老师的《java技术从入门到精通》学习笔记是许多初学者和进阶者的重要参考资料。下面,我们将深入探讨这份珍贵资料中可能...
c#从入门到精通第四版的pptC#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来...
这个“java技术从入门到精通”教程旨在为初学者提供全面、深入的学习路径,帮助他们掌握Java编程的基础和高级技巧。 首先,Java语言的核心概念是值得深入理解的。包括基本的数据类型(如整型、浮点型、字符型和布尔...
通过系统学习以上知识点,并结合《Java从入门到精通》的王牌资源,你可以逐步提升Java编程技能,无论是为个人兴趣还是职业发展,都将受益匪浅。同时,持续关注Java社区的动态,参与开源项目,以及实践项目开发,都能...
《大数据Spark 3.0入门到精通教程》是一门针对大数据处理技术的全面学习课程,主要聚焦于Apache Spark 3.0这一强大的分布式计算框架。本教程通过视频教学的方式,帮助初学者逐步掌握Spark的核心概念、功能以及在实际...
在《Java学习从入门到精通 4方法篇》这一章节中,主要聚焦于四个关键的学习方法,帮助初学者和进阶者更好地掌握Java编程语言。接下来将详细介绍这四种方法及其应用,为读者提供一个全面而深入的学习指南。 ### 一、...