java 学习两则

Java如何进阶 2009-07-22 来自:java060515  [收藏到我的网摘]
 
Java目前是最流行的语言之一, 是很多公司和程序员喜爱的一门程序语言. 而且, Java的入门比C++相对来说要简单一些, 所以有很大一部分程序员都选择Java作为自己的开发语言. 我也是其中之一, 就是因为觉得学C++太难, 当初在学校学了将近一个学期的C++, 啥进步都没有, 哈哈, 天资太差, 所以才选择自学Java(当时学校并没有开设Java的课程), 才走上了程序开发这条路.



Java虽然入门要容易, 然而要精通它, 要成为专家却很难. 主要原因是Java所涉及的技术面比较宽, 人的精力总是有限的. 有些Java方面的技术是必须要要掌握的, 钻研得越深入越好, 比如多线程技术.



1. 基础阶段

基础阶段, 可能需要经历1-2年吧. 这个时段, 应该多写一些基础的小程序(自己动手写的越多越好). 计算机是一门实践性很强的学科, 自己动手的东西, 记忆非常深刻, 效果要胜过读好多书. 当然, 学Java基础的时候, 书籍的选择也非常重要, 好的书籍事半功倍, 能让你打个非常好的基础. 而差的书籍, 很容易将你带入歧途, 多走很多弯路. 书籍不在多, 而在乎读得精(有些书, 你读十遍都不为过). 我记得我学Java的第一本书是 的中文版, 网上有很多人都建议不要把这本书作为第一本的入门教程来看, 太难. 我却想在此极力推荐它, 这本书确实是本经典之作. 而且书中确实讲的也是Java中的一些基础技术, 没有什么太难的东西, 只不过比较厚, 学习周期比较长, 所以很多人中途会选择放弃. 其实, 这本书是一本难得的入门教程, 对Java一些基础的东西, 讲得很全, 而且也很清晰, 更重要的是, 这本书能让你养成很多好的编程习惯, 例子也很多. 建议你把大部分的例子自己去实现一遍. 我的亲身经历, 我记得当时认真的看了2遍, 花了大概7个月的时间, 不过真的有很好的效果. 另外一个教程, 就是卷一, 卷二的话可以不必要买. 卷一看完, 自己再钻研一下, 就已经能达到卷二的高度了:). 到那时, 你就会觉得看卷二没啥意思, 感觉浪费钱了. 还有一个, 就是张孝祥的Java视频, 看视频有个好处, 就是比看书的记忆要深刻, 还有很多你可以跟着视频的演示同步操作. 张孝祥的Java视频对初学者来说, 确实很有作用. 总结起来: 看这些资料的时候, 一定要多写例子, 写的越多越好!





2. 中级阶段

中级阶段, 是一个更漫长的时期, 能否突破此阶段, 跟个人的努力和天资有着很大的关系. 你不得不承认, 同样一门新技术, 有些人一个月领悟到的东西, 比你一年的都多. 这就是天资, 程序员是一个需要天才的工作. 我想, 很多人听说李一男吧, 此君就是这样的人物, 三个月的时间就能解决好大一帮人几年解决不了的问题, 给华为某部门带来了很多的收益. 哦, 这是题外话了, 与此篇的主题无关, 只是本人偶尔的感慨而已:). 这个阶段, 就需要研究很多专题性的东西了, 比如: IO的实现原理, 多线程和Java的线程模型, 网络编程, swing, RMI, reflect, EJB, JDBC等等很多很多的专题技术, 钻研得越深越好. 为了更好的提高, 研究的更深入, 你需要经常到网络上搜索资料, 这个时候往往一本书起不来很大的作用. 选一个JDK版本吧, 目前建议选用1.6, 多多研究它, 尤其是源代码(尽量! 就是尽自己最大的努力, 虽然研究透是不可能滴). 比如说: util, collection, io, nio, concurrent等等包. 可能有人会反对我说, 不是有API文档吗, 为什么还要研究这么多的源代码? 错了, 有API文档, 你仅仅只是知道怎么用而已, 而认真仔细的研读这些大牛的源码, 你就会深入更高的一个阶层, 自己的编码, 设计都会有很大的提高. 如果有能力和精力, 我建议你把JDK的每一行代码都熟悉一遍, 绝对只有好处, 没有坏处! 而且你会有些意外的收获, 比如, 当你仔细地读完concurrent包的时候(不多, 好像总共是86个类吧), 你就会对Doug Lea佩服得五体投地. 这个时候最忌碰到难题就去寻找帮助, 去网上找答案! 先把自己的脑袋想破吧, 或者等你的老板拿着砍刀冲过来要把你杀了, 再去寻求帮助吧. 对于专题的学习, 英文原版的阅读是非常必要的, 看的越多越好, 多上上IBM的developer, SUN的网站吧, 当然Javaeye也很不错:), 有很多大牛, 呵呵.

这个时候, 你应该建立自己的代码库了, 你应该自己去研究很多有意思的东西了. 从一个200多M的文件中寻找一个字段, 最坏情况(在文件的末尾咯)也只需要1秒左右的时间, 你知道吗? 这个阶段, 有很多很多类似的有趣的东西可以供你去研究, 你需要更多地关注性能, 规范性, 多解决一些疑难问题. 需要学会所有的调试技术, 运用各种性能工具, 还有JDK附带的很多工具, 这些你都要熟练得跟屠夫操刀一样. 也可以看看, 这本书总结的也不错, 对写高效稳定的Java程序有些帮助. 也可以看看模式方面的东西, 但是我建议模式不要滥用, 非得要用的时候才用, 模式往往会把问题搞复杂:). 总结起来: 这个阶段是一个由点延伸到面的过程, 经过不断的学习, 演变成全面的深入! Java技术中你没什么盲点了, 还能解决很多性能问题和疑难问题, 你就成了一个合格的程序员了! :) [要想成为优秀程序员, 还得对数据库和操作系统很精通.]



3. 高级阶段

高级阶段, 我就不敢妄言了. 呵呵, 我感觉自己也是处于中级阶段吧. 也是根据自己的一些经验, 谈谈自己的理解吧:

这个阶段, 需要研究各种框架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我觉得这个时候, 只要是用Java实现的经典框架, 你都可以去研究. ------在此申明一下, 我的意思不是说会用. 光会用其实是远远不够的, 你可以选择自己喜欢钻研的框架, 去好好研究一下, 兴趣是最好的老师嘛.(2009.07.21)

建议开始的时候, 研究Junit和Struts吧, 小一点, 里面都采用了很多的模式, 呵呵, 可以熟悉一下, 尽量想想人家为什么这么做. 我建议主要的精力可以花在spring和jboss上, 尤其是jboss, 经典中的经典, 设计, 性能, 多线程, 资源管理等等, 你从中可以学到的东西简直是太多了. 而且它还有一本写得很好的参考书, 叫, 英文方面的资料也是非常的多. 在工作中如果有机会参与架构的设计, 业务问题的讨论, 一定想方设法杀进去! 这对自己的设计能力, 以及对设计如何运用在业务上有很大的帮助. 毕竟, 程序都是为了更好地实现用户的业务的. 这个时候, 需要更多看看软件工程和UML方面的资料, 或者自己主持一个项目玩玩, 不一定非得出去拉项目赚钱(能赚钱当然更好), 不管成功或失败, 都是很宝贵的经验, 都能提高很多!
《JAVA编程学习方法分享----老技术人员的经验之谈》 2009-07-22 来自:java060515  [收藏到我的网摘]
 
我是2000年大学毕业,在学校学的是经济专业,毕业后做JAVA软件开发.
相信很多做技术的朋友都是从其他行业转过来的,学习编程的过程和经验各不一样,我将自己的从业经历写了出来,请见:
http://www.jobhotel.com.cn/yourbay/news-2.jsp?id=15353

学习技术的过程中有些心得,与各位分享:
一.初接触软件技术,先挑技术门槛低的技能方向入手。
如果你完全是个外行,只懂得电脑的一般操作和OFFICE的使用,就先从网页制作开始学习,学习DREAMWEAVER的使用。比如自己设定一个小目标:做个人主页,在纸上画框架,然后用DREAMWEAVER慢慢实现,不会使用,就上网搜教程,最好搜到视频、动画或者带图的教程,通俗易懂。用DREAMWEAVER做网页的同时要对照看代码,再找HTML、CSS、JAVASCRIPT的系统手册。这些手册不要一篇一篇的看,你刚开始只看一个大概,了解能实现什么样的效果,在具体项目中再通过手册查代码命令。

熟悉完前台制作后,要了解脚本语言,比如JSP、PHP、C#之类。自己再设定一个小目标;如留言簿。上网搜源码,下载到本地,一步一步的配置环境变量、启动TOMCAT服务器、部署JSP代码,设置好ACCESS数据库(数据库先从简单的ACCESS开始)。这样做的好处是从整体上了解搭建一个WEB运行环境需要的步骤和环节,利于后期的学习。

数据库软件可以从简单的MYSQL、MSSQL开始,了解一下如何建表结构,查看数据,权限机制就可以,更多的内容等接触实际项目的时候再学习也来得及。学习方式同样的是买一本大而全的教材,先大体翻一遍,或者请技术前辈勾划几个常用的重点内容,其他的使用整体了解一下。

以上学习教程针对WEB开发技术的,如果是做偏底层开发,就不适合了。

二.从实用角度出发来学习.
在学习每一个环节技术时,都要给自己设定一个小能目标,以目标来驱动自己学习。如果盲目看书、各个技术环节都要去了解,就会对学习产生抵触,结果是什么都学不进去。
大部培训机构和大学里的教学方式就是这样,比如讲JAVA,对初学者讲大通的面向对象思想:继承、接口、抽象类,把JDK所有的包都详细讲一遍,IO流、socket编程、SWING等等,并不说这些不重要,只是对于初学者理解不了这些概念。我比较偏向于先从形象的,容易理解的学起,比如能基于关系型数据库做个单表的增删改查~~

三.找个技术前辈做指导
所谓技术前辈是做过几个实际项目的的开发人员,他们很清楚在实际项目中最常用的技术是哪些,哪些开源项目好用。
找到技术前辈并不是帮你解决几行代码调试不通的问题,关键是帮你介绍一两本入门的书、介绍一些网上好的资源网站、指导学习哪些常用类、遇到麻烦的技术难点用什么开源组件等等。
有个好师傅非常非常的重要!! 让你少走很多弯路。

四.脸皮要厚,不怕被人笑话
刚开始做技术,进入软件公司工作,就很不自信,总觉得自己这也不知道,那也不了解。其实,没关系,你要对自己树立信心,你要明白一点:所有的技术都没什么难度,都是熟能生巧的过程。 所以,一遇到问题就赶紧问老开发人员,平时上下班,吃饭时多跟他们聊;业务上不懂的就问项目经理和需求分析员,没什么关系的。

我再讲个极端一点的情况,我个人刚学技术时,头两家公司都是把我开掉的,为什么呢?因为我那时水平确实太差了。 但每一次公司工作的机会都让我进了一步。后来遇到几个同行,有好几个人也有同样被开除的经历。为了学习技术,就别担心面子的问题了。

在外打工,遇到的同事在你人生过程之中都是过客,没有人会把你某段代码不会写当成笑话记一辈子的。坦城、自信很重要!

五.在打工过程中多长心眼,除技术外,想积累人脉.技能.项目经验
我们不能做一辈子程序员,以后总要升级转行,做项目经理、做售前、或者是公司高管。但这些都需要前期的积累。你在打工过程中,除了挣钱,还要积累技术、积累人脉关系,包括与技术和销售同事之间(以后做项目,遇到技术难点得找人问;或者同事以后接到项目要找人合作说不准就想到你了)、与客户之间的(这个很重要),积累项目经验,主要是学习各个行业的业务知识,象电信、金融、电力、ERP等。如果你进了某个行业,比如电信、电力,你再跳槽就最好别换行业了。


做程序员的出路?
1、升级做项目经理,能带团队开发一个完整的项目,得懂业务、沟通能力强、有一定管理意识;
2、转做售前。带着笔记本到处忽悠产品,全国各地跑,也挺爽啊;
3、单干。在以前打工过程中积累的客户资源,加上对一个特定行业的认识,提炼一套成熟的产品,就可以自己组个公司做。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值