动力节点口口相传的Java黄埔军校
学习Java路线书籍,学习方法和过程是怎样的?
2019-08-29 来源:动力节点

  现在互联网上资源丰富,Java学习并不难。贴个Java服务端入门和进阶指南,是给我们组新人入门用的,包括了学习目标、需要掌握的技能和参考资料,并规划了学习阶段和时间,希望帮助到题主。


  前言


  欢迎加入我们。这是一份针对实习生/毕业生的服务端开发入门与进阶指南。建议:


  尽量用google查找技术资料。


  有问题在stackoverflow找找,大部分都已经有人回答。


  多看官方的技术文档。


  ibmdeveloperworkers的文章质量整体上有保障。


  平时花一些时间在github上阅读优秀项目源码。

image.png

  入门(1-2个月)


  目标:参与简单的项目开发。


  技能:


  掌握Java。经典的《Java核心技术:卷1基础知识》(或者《Java编程思想》)必看,跳过其中的图形和applet章节。习惯查阅JavaAPIDoc。为了保证代码的质量,《EffectiveJava》、《CleanCode》和《重构》也需要至少通读一遍。


  熟悉Linux开发环境和bashshell。Linux是我们的开发和部署环境,你最好尽快熟练它。Linux的基本使用可以通过《鸟哥的Linux私房菜:基础学习篇(第三版)》学习,开发bashshell脚本可以参考《LinuxShell脚本攻略》。


  掌握开发工具


  熟练使用一种IDE。IntellijIDEA或者Eclipse都可以,推荐使用前者。至少熟悉常用的快捷键,会debug(包括远程debug)项目。


  熟悉一种编辑器。比如Vim/Emacs/SublimeText,至少学会搜索/替换/代码补全。


  掌握JDK以外的常用类库和工具包。JDK原生API在很多场景下使用并不方便。你需要掌握社区贡献的优秀类库和工具包,比如apachecommons、googleguava等,具体可以翻阅服务端技术选型的Utility篇。


  掌握Web开发框架。我们使用Spring(或Rose)+Ibatis(或Jade)开发web服务,你需要熟练掌握它们。


  学习代码规范。我们大致上遵循oracle的Java语言编码规范,你可以先阅读并熟悉它。CodeFormatting文件在git@xxx/coding-standard.git,在编写代码之前,请把它导入到IDE中。另外,确认IDE已经安装Findbugs和CheckStyle插件。


  熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->CodeReview->集成测试->发布。确保你熟悉其中的每个环节。


  其他。需要熟练使用版本控制工具Git(阅读:《Git权威指南》),以及项目构建工具Maven(阅读:《Maven实战》)。另外,在这个阶段可以尝试TDD开发。

image.png

  进阶(2-6个月)


  目标:独立负责某个服务端项目。


  技能:


  掌握web开发最佳实践,掌握RestfulAPI设计,理解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里的设计模式》。学习JavaSocket编程与多线程知识,可以看看《Java并发编程实战》,并翻翻并发编程网的文章。

image.png

  深入(6个月-)


  目标:分布式系统和中间件开发。


  构建知识体系:《大型网站系统与Java中间件实践》、《大型网站技术架构:核心原理与案例分析》。


  原理与设计:《大规模存储式系统》、《UNIX网络编程卷1:套接字联网API》、《HowTomcatWorks》。


  学习开源项目:ApacheThrift、Zipkin、Netty、Rose、Jade、淘宝RPC系统Dubbo等。分析项目中的设计思路。比如,同样是RPC框架,Finagle和Dubbo有什么异同。


  其他。根据参与的项目加深学习吧。比如,如果需要写DSL,可以读一下《领域特定语言》,对Redis感兴趣推荐读一下:《Redis设计与实现》。有两本书,无论做什么项目,都推荐读:《Unix编程艺术》、《UNIX环境高级编程(第3版)》。


  以上就是对零基础入门学习Java,一些书籍,学习方法,学习过程的一个简单的介绍,希望对你们会有所帮助,如果你现在也在学习java,在入门学习java的过程当中有遇见任何行业或者说技术方面的问题,可以登录动力节点IT培训官网咨询在线客服老师。

开班信息

同类文章

微信搜索“动力节点Java学院“或扫二维码

关注官方微信免费领学习资料

动力节点Java培训机构,行业口碑最好的Java培训机构。

立即抢名额