java技术学习参考

最近有朋友问我应该怎么学习java相关的技术成为一个开发工程师,所以就把自己的想法建议共享下。

1)首先要能搞定一般的业务需求,至少来活了能干:
马士兵JAVA基础教程
spring马士兵

2)代码能写出来了,流程也能跑通了,但不想让别人鄙视自己的代码,就要把代码写的漂亮些:
代码整洁之道
修改代码的艺术
重构 改善既有代码的设计
Head First 设计模式
设计模式

3)好了到这业务的需求能满足了,代码也漂亮但是有时会出一些性能问题或者想弄些高级代码,就跑不了jvm和多线程了:
Java并发编程实战
深入理解Java虚拟机
MAT——heap dump分析工具

4)现在别忘了,我们还是纸老虎,只能应付普通的工作,所以要尽快的把基础知识补充起来:
Java编程思想
Spring官方文档细读下
数据结构与算法分析
数据结构——上学时的教材
大话数据结构——听话不错还没有读过

5)现在应用系统差不多了,但是要写sql和数据库打交道呀:
mysql官方文档
高性能MySQL

单应用开发没问题了,要从环境和架构的角度看事情了:
大型网站技术架构

7)服务器
鸟哥的Linux私房菜

8)负载均衡:
LVS中文站点
HAProxy
nginx
深入理解Nginx

9)容器:
Apache Tomcat

10)缓存:
Redis
Redis设计与实现
Redis实战
memcached

11)队列:
MetaQ
Apache Kafka

12)RPC:
Dubbo
Apache Thrift

13)注册中心
Apache ZooKeeper

14)网络:
图解HTTP
图解TCP/IP
TCP/IP详解卷1:协议
Wireshark网络分析就这么简单
wireshark网络分析艺术
Wireshark ——抓包工具

还有作为一个合格的开发不仅要能写出代码实现需求还要能够测试、代码管理、交付等:
后续补充……

其实作为一个开发还有很多其他软素质相关的东西,比如沟通表达、工作的态度、对技术的态度、另外还有很重要的一点要学会科学上网。选择合适恰当高效的工具也非常有必要。
另外作为开发经常有的一个毛病就是认为编程是不需要练习的,其实编程也是需要不断的练习,不断的敲,就想《一万小时天才理论》提到的要持续不断的练习。多读些优秀的源码,对自己也会有很大的提升。

最后特别赞同鸟哥的一句话:“个人的发展只有借助于平台的发展才能一日千里。”!

持续更新……

你可能感兴趣的:(java技术学习参考)