一个java程序员的困惑,请求大家的指导和建议

09-05-25 beyondyuefei
我实在有一些困惑需要高人指点和帮助,希望自己能够少走一些弯路.耽误大家一些时间阅读了.

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分析和设计比重大些,我目前的工作也没用到什么算法,不知道大家是怎么看这个问题的呢 ?

希望大家能回答我的疑惑,并对我的学习计划给一些指导和建议,我感激不尽.

yinyousong
2009-05-25 12:49
这位兄弟不错呀,多做了一年的开发了,正所谓是经验丰富啊.现在还这么用功,真是难得了,牛XXO.

小弟给点不成熟的评论吧,毕竟您的水平比较高,小弟不才岂敢乱提建议。

您的问题D,好像一直是开发人员所争论的,要么就是算法为王,要么就是OO为主.

证明算法为王的一定会举李开复老师讲过的话语,李开复为何会讲这句话?是在什么情下讲这句话?他的依据是什么?我想,一定是李开复老师自己的经验所得,他所在的岗位要求他这样,所以才有这样深刻的认识。

您的岗位是维护原有系统吧,维护原有系统又不是要你去更改系统,只要能跟得上需求的变更,那么何必还要算法,设计模式呢?设计模式,重构的提出也是为了应对需求而已,不是为了您的系统可读性有多么的高,算法不是用来证明您的思维或您的编码水平有多么高.

另给个不成熟的建议,望不要拍砖,您天天看那么多的书不累吗?为何不深入的去了解你所维护的系统呢?提取其精华或更改/隔离其不良,然后您在将您所学的知识运用于此.

楼主此乃用功读书之上等人才,望前\钱程似锦.

beepbug
2009-05-25 18:41
秦琼是隋唐时的一名好汉,关羽是三国时的一员大将,都武艺高强。但是,俩人谁更厉害一点呢?能不能让他们比一比?不行。相差几百年,没法叫到一起比试比试。

算法和OO也是两码事,算法没法取代OO,OO也没法取代算法,没法比,比也没意义。

算法者,解决问题的方法也。连做OOD,内中也有算法。你的OOD做得好,我的OOD做得差,就是你的方法比我的巧妙,比我的合理。

beyondyuefei
2009-05-30 01:09
谢谢您的建议,我最近就有在研究自己这个项目前人写的代码,他们很多地方,比如JS等等很牛B,要慢慢学习和消化

yellowcat
2009-06-03 14:31
ssh主要价值是大量的缩小了web开发代码量,oo+orm的开发是未来软件开发的趋势,ajax,struts,jsp的都是表现层,说句心里话,不值钱,因为都是可替代的,而且发展都很快的,比如jquery都有了自己的web的ui了,你觉得js牛,能做出某个动态效果,网上搜索一下,都能查到,软件的核心价值在于模型,一个好的模型在某一领域经过几年甚至十几年的迭代,这才是值钱的东西,而且这些东西都是保密的,你网上查不到,书上看不到的,这都是一个公司的最重要的,什么flash,javafx,sliverlight什么的说白了就是以前的java的applet小程序,一个性质,都是表现层的东东,绚丽的光环下确实无尽的精力和时间,还有几个大公司之间的竞争

猜你喜欢