锁定老帖子 主题:我的九个月java自学过程
精华帖 (0) :: 良好帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-17
最后修改:2011-11-17
本人大三,软件工程专业,java开发(貌似看到的都在做java的-_-#),刚进大学的时候什么都不会,一点基础也没有,完全是白菜。大二上学期开始接触java,是学校开的课程,觉得相对c和c++来说简单一些,到用户界面部分的时候稍微觉得有点意思,因为不像以前那黑乎乎的界面了。 大二下学期开始开了一个java web课程,我稍微看了下教材,知道是做网站的。觉得学这个可以找工作,那时候是今年三月份的时候吧,也有点担心毕业了找不到工作,也想自己可以早点独立,所以自己开始自己看教材。从简单的html开始,js,tomcat,发现它们好难,不知道脚本语言是什么意思,服务器是什么意思,大约自己看了一个星期,我对这些有了基本的认识,知道了html,js,tomcat大致的原理。之后到了连接数据库,数据库的课程是同学期开设的,所以相对来说好理解些,用的是mssql server 2008 ,可是连接数据库部分遇到了很大问题,卡了很久,后来发现是因为数据库端口没有打开,还有sql server 2008和之前的驱动包的结构有变化,发现driver的名称不只是一个单纯的字符串,而是对应一个包里的一个类文件,够白菜了。之后看到了web中的MVC设计模式,从开始的servlet+javabean+jsp到之后的struts 1,开始接触web开发的思想。这个阶段经历了一个月,4月份自己开始看struts。自己也同时在补java的基础知识(学校教材和java编程思想电子版结合着看)。4月份到6月份,自己一直在看struts,css,javascript,ajax。对于css和js并没有很深入,只是css知道是对网页进行显示和布局的,而javascript是对网页的节点进行动态更新的,知道了DOM,ajax是增加通过异步与服务器通信进行无刷新显示页面内容增加用户体验的,花的时间相对较少。而对于struts,了解的比较详细,对各知识点都了解了是用来干嘛的,但只是局限于用它。6月份开始接触hiberate和spring,(之前逛图书馆的时候也看到相关书籍,但那时候觉得它们很高深,水平还不够)ORM,IoC,DI,AOP这些,理解起来真是困难,依赖注入,面向方面编程尤为难以理解,会有一种受挫的感觉。6月份也是接近考试了,所以暂时没有深入研究现有的技术和接触新的东西。所以3、4、5三个月自己自学了html,css,javascript,tomcat相关的web开发基础(还有一些零碎的东西,通过百度和google了解,对于现有的只是了解也起到了不可忽略的作用)和struts的应用,6月份接触了一点hibernate,spring的知识点,但是不理解。 7月份,课程里有个web开发大型实验,3个人一组,但基本是我自己一个人用struts1.2对这个小网站进行架构,设计,编码,6天后验收。网站比较烂,因为有时间限制要交,而且自己对这些技术也是首次综合运用,dao的设计也是比较随意,会有连接未关闭的情况,但是勉强能运行。考试结束后,自己在网上下了spring、hibernate,struts2的视频和电子文档,在逛论坛的时候接触到了设计模式,也下载了电子文档,暑假里没事在房间里就看视频和文档,知道了spring大致的情况,包括ioc,aop,通过设计模式知道了面向对象编程的一些基本原则如开闭原则,里氏代换原则,接口隔离原则,高内聚低耦合。回过来发现自己做的那个大型实验实在是烂透了,考虑的东西实在是少得可怜,只是抱着一个“可运行”的原则。 回校后联系了一个老师,跟着他的研究生弄一个eclipse插件开发,接触了GEF、drwa2d,jface,swt等东西,了解了eclipse的大致内部架构,一个核心加插件的模式,照着一个GEF-whole-upload文档慢慢写demo,在这个过程中我发现GEF的思想和struts的思想和相近,同样是MVC模式,所以理解起来不是很难,做了一段时间后照着例子可以运行,没问题。但我我的本意是关于J2EE的项目,觉得偏离了自己的计划,在这个过程中也时常自己看spring和设计模式,有种身在曹营心在汉的感觉,呵呵。后来我和老师说我不喜欢做这个项目,有没有关于J2EE的,老师说她们所做的基本是研究性质的,然后给了我一个关于JBMP(Java Business Manager Procedure)的东西,要是我觉得可以做,就我自己一个人做,没有研究生一起,我看了下jbmp的大致情况,觉得这个东西还是挺有用的,不过我还是觉得有自己的计划,于是和老师说明了情况并道了歉,老师也很好,没有责怪我给她带来麻烦。虽然放弃了和老师做项目,但这段经历对我后续的自学起了很重要的作用。因为在学习插件开发的过程中,我深入了GEF库,在接触一个类,一个组件的时候,我不在只看教材提供的类说明和用法,我还在IDE中打开相应的类库,进入相应的包里找到对应的类,查看相同的包里还有哪些类,通过类名猜测它们之间的关系,在查看类名的时候我隐隐约约感觉到有在看设计模式的时候接触的东西;还有查看库中的包名,发现包之间的命名是有关系的,根据包名推测包里会有哪些类型的类,另外根据开发过程中我所需要的功能去查看类库里可能包含的类进行开发,实现从依赖帮助文档到依赖源代码的转变。自己也不清楚自己什么时候有了这种转变,暑假在家里的时候就打开过jdk的类库,查看集合类的一些源代码,只是随便浏览过,但似乎也发现了某些东西。 开学前的一天,在逛图书馆的时候,看到了《Spring 框架高级编程》,看作者是Rod Johnson,是Spring的创始人写的。本来就感觉spring很强大,它提供的特性很吸引人,看了几章后觉得这本书写的很不错,有深度,读起来让人感觉有种兴奋。我就一直看着,同时对着spring的类库。这样可以对框架有一个更深层次的理解。同时我也发现自己的心态有了一些转变,最开始我的想法是为了找到一份工作,自己,让可以独立,而现在我发现我喜欢上了这个行业,喜欢上了java这门语言,这么久以来一直驱使着我的不在只是单纯的现实因素,更多的已经转变为兴趣、热爱、和求知欲。我真正意义上地入门了。 之后,我买了两本书,《深入理解java虚拟机》和《Effective java》,从这两本书里我有了性能、运行效率上的认识,知道了代码的性能的重要性,知道了怎样编写更加易于维护的类,effective java 和设计模式是息息相关的,我把两本书结合起来看,让我对面向对象编程和设计有了更深层次的理解。之后又买了一本《分布式java应用》。自己平时也会研究研究jdk的源码,在大概了解java虚拟机内部机制,对自己平时编代码有了很大的影响,在编代码的时候可以映射到java内存模型和垃圾回收相关的,在看代码时有了对代码的一种语感,也有人说是对代码的一种嗅觉。 现在自己在深入了解Spring和hibernate,Spring就是看Rod johnson的《Spring 框架高级编程》+Spring源代码,hibernate就是看Gaving King 的《Hibernate实战》+hibernate源代码。看这些大师写的框架源码和教程真的很有收获。有时候也会接触其他一些东西,最近也看到了一种很强大的语言Erlang,挺有意思的。 自己的问题就是感觉有点没底,心里没底,不知道自己所做的是否有意义,是否是必要的,这些框架啊什么的是不是会用就好了,源代码有没有必要去研究java虚拟机也不用深入,垃圾回收都是自动的,高并发。负载均衡自己是否有机会在工作中能用到。我自己是感觉这些挺有趣的,对它们感兴趣,我是否应该继续深入呢还是尽量去了解更多的东西,希望可以有牛逼点的人给我点建议和指导啊。。。谢谢啦,第一次发帖啊。。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-11-17
许是太长了。。。没人愿意看完。。
|
|
返回顶楼 | |
发表时间:2011-11-17
shiyiyue513 写道 许是太长了。。。没人愿意看完。。
+1 |
|
返回顶楼 | |
发表时间:2011-11-17
实话实说,有点太多了,
和功夫一样,多了,就都不深了 如果不是个人爱好,为了日后找工作,建议就看通三本书 《数据结构》 《算法导论》 《think in java》 还有一些其他的,把这三本书看通,题目都做一遍,做到烂熟于心 百度,QQ,什么都没有问题的 因为他们招人,应届,要到就是基础扎实 |
|
返回顶楼 | |
发表时间:2011-11-17
最后修改:2011-11-17
thebig 写道 实话实说,有点太多了,
和功夫一样,多了,就都不深了 如果不是个人爱好,为了日后找工作,建议就看通三本书 《数据结构》 《算法导论》 《think in java》 还有一些其他的,把这三本书看通,题目都做一遍,做到烂熟于心 百度,QQ,什么都没有问题的 因为他们招人,应届,要到就是基础扎实 为什么老是有人推荐《think in java》,我觉得《深入java虚拟机》比较有深度 |
|
返回顶楼 | |
发表时间:2011-11-17
最后修改:2011-11-17
phk070832 写道 thebig 写道 实话实说,有点太多了,
和功夫一样,多了,就都不深了 如果不是个人爱好,为了日后找工作,建议就看通三本书 《数据结构》 《算法导论》 《think in java》 还有一些其他的,把这三本书看通,题目都做一遍,做到烂熟于心 百度,QQ,什么都没有问题的 因为他们招人,应届,要到就是基础扎实 为什么老是有人推荐《think in java》,我觉得《深入java虚拟机》比较有深度 think in java还是挺不错的,属于应用级的吧,java虚拟机的话是让自己对java能有更深层次的认识,在写代码的时候能够考虑更多。 |
|
返回顶楼 | |
发表时间:2011-11-17
thebig 写道 实话实说,有点太多了,
和功夫一样,多了,就都不深了 如果不是个人爱好,为了日后找工作,建议就看通三本书 《数据结构》 《算法导论》 《think in java》 还有一些其他的,把这三本书看通,题目都做一遍,做到烂熟于心 百度,QQ,什么都没有问题的 因为他们招人,应届,要到就是基础扎实 对于数据结构和算法,我确实比较欠缺,自己也有这个计划去补,谢谢啦!!! |
|
返回顶楼 | |
发表时间:2011-11-17
是小号发的文章吗?
是大号我就关注了。。这个账号里面木内容啊、 ![]() |
|
返回顶楼 | |
发表时间:2011-11-17
easyhaohao 写道 是小号发的文章吗?
是大号我就关注了。。这个账号里面木内容啊、 ![]() 我第一次发帖。。。 ![]() |
|
返回顶楼 | |
发表时间:2011-11-17
easyhaohao 写道 是小号发的文章吗?
是大号我就关注了。。这个账号里面木内容啊、 ![]() 我没有小号。。。。 |
|
返回顶楼 | |