跳槽后的反思——Java开发到底该怎么学

接着上一篇《 工作一年后迎来第一次跳槽》[url]http://luxury-zh.iteye.com/admin/blogs/1626238[/url]。
上一家公司有很多这样的同事,他们工作经验大多5+,但是对于技术的钻研却不是那么深入,大多能够熟练使用ssh,但是出了问题却难以解决,他们经常说的一句话是“技术不那么重要,技术就那些,干久了都一样”。每每听到他们说这样的话,我都笑着不反驳,其实我心里始终有一个观点,那就是技术学无止尽。不谈各种各样的编程语言,[color=red]单单说Java,熟练掌握ssh就够了吗?socket通信,并发编程,NIO,设计模式,类加载,jvm原理,跟软件工程相关的部署,测试,持续继承,敏捷开发,跟架构相关的缓存,nosql,hadoop,消息队列[/color]等等。哪些不是很有趣很值得研究的东西?哪些不是开发出优秀软件需要掌握和领悟的知识,可很多人偏偏只停留在SSH上,还妄图将这样的思想灌输给我。
在我看来,想要在Java开发领域获得“前途”和“钱途”,必须突破的一道坎就是:扎实的基本功。所以我觉得Java开发首先最应当学好的是core java,要知道,后面那些你常用的东西都来自于这些java语言的精华。跟一个很牛的亚马逊技术经理交流后,他建议的学习步骤是:
[color=red]反射——泛型——容器——多线程——I/O——网络通信[/color]。至少熟练掌握这些以后,再开始学习框架例如spring,这样更加好地帮助你理解其中的设计思想和实现原理。最后才是各式各样的工具。
同时,我觉得设计模式是必须学好的,要想做出来的东西有可扩展性,健壮性,必须要学习,当然这是个长期的过程,应该是贯穿在整个职业技术生涯。

附上我为我自己规划的未来1-2年的学习路线以及可能需要阅读的书籍:三条路线同时
1、core java(《Java编程思想》、《Java Collections》)——网络通信(《TCPIP.Sockets.in.Java.Practical.Guide.for.Programmers》英文的,[color=red]其实搞编程的英文阅读能力一定要有[/color])——Java并发编程(《Java并发编程_设计原则与模式》)——ssh类书籍——更进阶的jvm原理。

2、mysql基础——基于mysql的性能调优——mysql表分区,水平扩展,读写分离——mysql内部机制和原理。

3、设计模式——常用部署,测试,集成工具——软件工程理论——敏捷开发团队管理。

马上将要去的公司是做移动互联网服务器端+架构,会较多地涉及网络通信和并发编程,数据库是使用Mysql,由于在线用户还算比较多,并发量也会大,所以会帮助我加速学习第1点和第2点内容,第3点的内容需要平时工作之余看书和实践了。

你可能感兴趣的:(编程生涯,Java相关,java,技术,规划,学习)