一个java程序员的困惑,请求大家的指导和建议
我实在有一些困惑需要高人指点和帮助,希望自己能够少走一些弯路.耽误大家一些时间阅读了.
1. 我大概1年多的JAVA开发经验,现在新进一家公司,做的项目都只是在老系统上做维护和2次开发,很少有机会去自己设计一个全新的系统,那我该如何把自己平时所学的关于OO分析,设计模式(我是看书并结合阅读一个开源的JAVA论坛"Jive"的源代码来理解),重构,uml分析设计 里的东西运用到项目中去呢 ? 是不是可以从重构入手呢 ?
2. 象我这一代,也就是80后,面临的社会竞争非常激烈,尤其学JAVA的人又非常多,我不得不对职业生涯认真规划,培养核心竞争力,没办法,生于忧患哪.我现在的学习计划是:
a. 每天早上7点起来看一个小时的中文版 <算法导论>,晚上下班回去后先拿1小时看英文版的 <算法导论>早上看过的部分(这样不至于练英文阅读时因为专业知识原因而导致低效率,又能巩固算法知识).
b. 然后剩下的时间一般就2个小时左右吧,我目前主要是在巩固java基础,thinking in java, core java这样的书自然常翻,还有 java线程和网络编程,以前这2部分接触较少,但我觉得这应该也是JAVA基础的一部分.还有设计模式的书,重构的书,uml分析设计, javascript等等,没办法,要学的知识太多了,我一般是专门拿几天看1,2本,然后换另外1,2本看几天,如此反复轮着看,以免精力太分散.
c. 周末的时候我一般复习一下过去阅读的一个java开源论坛"Jive"的源代码,里面涉及很多设计模式的应用,温故而知新吧.我计划等JAVA线程,网络这块熟悉了之后,大概8月份左右吧,那个时候 <算法导论>估计也不用再占那么多时间了,就去研究一下 Tomcat的源代码,我也搜集了些前人的研究总结,我一直觉得阅读开源项目吸取思想是一个提高自己的好办法之一.
d. 网上看到一些人,主要是搞java的,在说什么数据结构算法离散数学编译原理根本没用(搞c,c++的基本没见到有这么说的),OO思想,设计模式, ssh 才是王道.我一直不太赞同,我比较同意李开复的观点: 算法,编译原理等等是内功,只会那些表面的实用工具是成不了真正的技术高手的.我看到一些大公司招JAVA架构师,职位要求中涉及搜索引擎,数据挖掘什么的,要求算法要NB. 但貌似在JAVA领域确实OO分析和设计比重大些,我目前的工作也没用到什么算法,不知道大家是怎么看这个问题的呢 ?
希望大家能回答我的疑惑,并对我的学习计划给一些指导和建议,我感激不尽.