`
luxury_zh
  • 浏览: 72823 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

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

       3、设计模式——常用部署,测试,集成工具——软件工程理论——敏捷开发团队管理。
     
       马上将要去的公司是做移动互联网服务器端+架构,会较多地涉及网络通信和并发编程,数据库是使用Mysql,由于在线用户还算比较多,并发量也会大,所以会帮助我加速学习第1点和第2点内容,第3点的内容需要平时工作之余看书和实践了。



9
15
分享到:
评论
30 楼 zyq704067777 2012-09-10  
luxury_zh 写道
zyq704067777 写道
花那么多时间学习那么多技术,到头来你真正用到的就是增删改查,哎悲剧的编程。只要你一个技术精,在哪都饿不死。

不会吧,增删改查只是一部分,除非你在公司只搞这个。

我是做java企业化办公系统的!  每天的活就是页面和后台! 增删改查 等多就是逻辑复杂些!  还有一些就是特殊的技术了! 现用现学! 都学会了不用  不也忘吗? 谁能保证自己所学过的所有代码一个不忘的都记在脑子里!  1年不用 用的时候一看就会 2年不用 看起来还可以  你能保证你在未来的几年能用的上java所有的技术! 浪费时间还不如好好学会经常用的。
29 楼 luxury_zh 2012-09-09  
zyq704067777 写道
花那么多时间学习那么多技术,到头来你真正用到的就是增删改查,哎悲剧的编程。只要你一个技术精,在哪都饿不死。

不会吧,增删改查只是一部分,除非你在公司只搞这个。
28 楼 zyq704067777 2012-09-07  
花那么多时间学习那么多技术,到头来你真正用到的就是增删改查,哎悲剧的编程。只要你一个技术精,在哪都饿不死。
27 楼 allan_chan 2012-08-15  
顶,我也是这样认为的
26 楼 luxury_zh 2012-08-09  
zhijun814 写道
光会当今流行的框架,而不知其所以然,等到接触新的框架时,又要花很多时间去学,学java,基本功扎实,懂思想,知原理,才是王道。就算接触新的框架,也可以很快上手,框架的很多思想,原理都是差不多的。

非常同意你的看法,这也
zhijun814 写道
光会当今流行的框架,而不知其所以然,等到接触新的框架时,又要花很多时间去学,学java,基本功扎实,懂思想,知原理,才是王道。就算接触新的框架,也可以很快上手,框架的很多思想,原理都是差不多的。

非常同意你的看法,这也是我踏上Java开发这条路来一直坚持的指导思想,共勉,这样才能在这条路上走得更远。
25 楼 zhijun814 2012-08-09  
光会当今流行的框架,而不知其所以然,等到接触新的框架时,又要花很多时间去学,学java,基本功扎实,懂思想,知原理,才是王道。就算接触新的框架,也可以很快上手,框架的很多思想,原理都是差不多的。
24 楼 luxury_zh 2012-08-09  
cmland 写道
    楼主说的不错,光是会SSH是不够的,也许你会在一家公司混的很好,但如果你是一个有野心的人,想在技术路上往前走的人,想去更大公司的人,扎实的基础是必须的。以前一个技术牛叉的领导也曾告诉我,需要学习jvm调优,数据库调优,并发编程等,和楼主说的很像。
    很惭愧,曾经做过不只一次学习计划,但是从来没认真实施过,有计划得坚持实施才行。

那就开始坚持吧,永远不要觉得晚了~~!
23 楼 luxury_zh 2012-08-09  
canghailan 写道
有相同的想法,跳到现在这家公司就是因为工作之余时间比较多,可以看看书。
推荐你几本书、

读过的:
深入理解Java虚拟机:JVM高级特性与最佳实践 http://icyfenix.iteye.com/ 相当值得一读
Java并发编程实战

想读的:
TCP/IP 详解(卷1:协议) 这本比较发憷,但据说相当经典

canghailan 写道
有相同的想法,跳到现在这家公司就是因为工作之余时间比较多,可以看看书。
推荐你几本书、

读过的:
深入理解Java虚拟机:JVM高级特性与最佳实践 http://icyfenix.iteye.com/ 相当值得一读
Java并发编程实战

想读的:
TCP/IP 详解(卷1:协议) 这本比较发憷,但据说相当经典

好的,谢谢了,我会关注这几本书的。
22 楼 落花残月 2012-08-09  
不错, 加油。

我觉得学习的最大驱动力是需求, 我也是过来人, 写过一堆demo, 但是其中运用熟练的没有多少, 大部分还是跟工作相关的掌握的熟练。 学习一样东西然后马上放到运用中观察他的运行情况是很棒的体验, 看书的过程中也别忘记给自己提一些需求吧!
raptor 写道
哥们,你这样学习只能更加迷惘,编程首先是以解决问题为驱动的,很显然,SSH就是很好的解决方案,虽然他隐藏了太多的底层东西,但他可以完成你的需求,用core java能完成你的需求吗?所有编程都是以兴趣或者需求为导引的,你不理解需求,不理解要解决什么问题,无从谈起用什么语言来实现,就像用awt编QQ一样,选择性错误,技术不应该是生硬的了解一下就OK了,他需要多层次的理解,初学者不能理解底层结构,所以SSH是他们的不二选择,我同意你在了解架构后继续学习底层的观点,这是必须的,但你那个学习步骤,则完全乱套,学以致用,只有用,才能让你更加深入的理解为什么这样,要保持永远的需求导引性学习,才能不断的进步,而不是为了学习而学习,建议楼主至少掌握3种编程语言后,视界才会更加开阔,你就不会再core java了

换工作绝对有用。什么叫掌握3种语言?能精通一门语言已经可以受用终身。
21 楼 luxury_zh 2012-08-09  
heyJoe 写道
不错, 加油。

我觉得学习的最大驱动力是需求, 我也是过来人, 写过一堆demo, 但是其中运用熟练的没有多少, 大部分还是跟工作相关的掌握的熟练。 学习一样东西然后马上放到运用中观察他的运行情况是很棒的体验, 看书的过程中也别忘记给自己提一些需求吧!

很感谢你的建议,确实光看书没用,在工作中找机会去用才能得到最佳的答案。所以这也是我换工作的原因。
20 楼 luxury_zh 2012-08-09  
woshishenhehe 写道
很欣赏  支持  看完楼主所说的这些也是我想做的可是一具体到实际又乱来阵脚。。。需要慢慢努力慢慢加油

看似很乱,是因为你感觉要学的太多了,不知道从何下手,那么从core java开始吧,学会使用我上面说的泛型、反射、容器、I/O,并发。一个一个来。
19 楼 luxury_zh 2012-08-09  
yidao620c 写道
目测可以完成30%的目标,因为有很多不确定因素去影响你的计划!

是的,我以前也做过计划,但是不能百分之百执行,因为有其他的事情占用你的时间。
18 楼 落花残月 2012-08-09  
hhhhh 写道
ycx627954927 写道
hhhhh 写道
同学你觉得你有多大的机会去用到哪些技术呢。。。。。省省吧,

典型的中国式思想、典型的为了考试而学习...就算很多技术只有1%会用的上,但为了扩展思维也是值得投入的

没用你去学他干嘛, 用不上, 你能学的深入。。。。。
天朝做的东西都是民工货, 有多少机会让你去弄那些高深的东西。。。。。

老兄,可以不学的。
17 楼 hhhhh 2012-08-09  
ycx627954927 写道
hhhhh 写道
同学你觉得你有多大的机会去用到哪些技术呢。。。。。省省吧,

典型的中国式思想、典型的为了考试而学习...就算很多技术只有1%会用的上,但为了扩展思维也是值得投入的

没用你去学他干嘛, 用不上, 你能学的深入。。。。。
天朝做的东西都是民工货, 有多少机会让你去弄那些高深的东西。。。。。
16 楼 weiqiang1314 2012-08-09  
现实与理想总是不一致。。。
15 楼 raptor 2012-08-09  
哥们,你这样学习只能更加迷惘,编程首先是以解决问题为驱动的,很显然,SSH就是很好的解决方案,虽然他隐藏了太多的底层东西,但他可以完成你的需求,用core java能完成你的需求吗?所有编程都是以兴趣或者需求为导引的,你不理解需求,不理解要解决什么问题,无从谈起用什么语言来实现,就像用awt编QQ一样,选择性错误,技术不应该是生硬的了解一下就OK了,他需要多层次的理解,初学者不能理解底层结构,所以SSH是他们的不二选择,我同意你在了解架构后继续学习底层的观点,这是必须的,但你那个学习步骤,则完全乱套,学以致用,只有用,才能让你更加深入的理解为什么这样,要保持永远的需求导引性学习,才能不断的进步,而不是为了学习而学习,建议楼主至少掌握3种编程语言后,视界才会更加开阔,你就不会再core java了
14 楼 pinnerc 2012-08-09  
很有上进心,值得学习。
13 楼 heyJoe 2012-08-09  
不错, 加油。

我觉得学习的最大驱动力是需求, 我也是过来人, 写过一堆demo, 但是其中运用熟练的没有多少, 大部分还是跟工作相关的掌握的熟练。 学习一样东西然后马上放到运用中观察他的运行情况是很棒的体验, 看书的过程中也别忘记给自己提一些需求吧!
12 楼 canghailan 2012-08-09  
有相同的想法,跳到现在这家公司就是因为工作之余时间比较多,可以看看书。
推荐你几本书、

读过的:
深入理解Java虚拟机:JVM高级特性与最佳实践 http://icyfenix.iteye.com/ 相当值得一读
Java并发编程实战

想读的:
TCP/IP 详解(卷1:协议) 这本比较发憷,但据说相当经典
11 楼 woshishenhehe 2012-08-09  
很欣赏  支持  看完楼主所说的这些也是我想做的可是一具体到实际又乱来阵脚。。。需要慢慢努力慢慢加油

相关推荐

Global site tag (gtag.js) - Google Analytics