[转载]Java学习这七年
从2005那会做自动化测试开始接触Java开始,至今近7年。今天正好项目结束,趁机整理下思路,确定后续方向。
前三个年头基本上集中于Java基础的学习,包括设计模式,从完全不懂,到看的懂但似乎又不懂,到融汇贯通(也许还有欠缺,因为每次再翻一遍还是会有收获);由于没有研究过任何流行的框架,Struts,Spring, Hibernet等,也从没有尝试去研究过,所以那段时间时不时有SSH的兄弟用吃惊甚至略有嘲讽的口气跟我说“我是搞J2EE的,J2SE我没搞过。”;不过那时我一直秉承任何框架都是java写出来的,所谓万丈高楼平地起,所以一直也没有动力去学习那些时兴的玩意,当然工作中也确实不需要用到它们,而我骨子里也略有瞧不起那些只会这个框架那个框架的配置就以为很了不得的兄弟们;“坚信基础扎实了,学习框架是件容易的事”--后来事实证明我的想法是对的。
看过三本改变我思维跟工作习惯的书,Thinking in Java,,敏捷软件开发原则、实践与设计模式,测试驱动开发。这三本书对我的影响实在是太过深远,Think in Java让我真正用心去想到底什么是面向对象;而敏捷软件开发则灌输我一个观念“永远不要让你的代码有臭味,一旦发现,立刻消除。”,不写一句多余的代码,每个变量要取最合适的名字,放在最合适的位置;测试驱动开发其实我没有完全去实践,但是保证我的代码是可测试的规则固化在脑海中,每个类,跟哪些类、接口有什么关系,它们在运行时是如何协作的,各个线程间是如何交互的,什么时候可能出问题,在程序运行到电脑中之前就已经在我的脑海中运行了很多次了。所以今后还是有人问我如何学习Java,我还是会一如既往的推荐这三本书。在此,我也要感谢当年CSDN的大哥们,是他们给我推荐的这三本书。
接下来的两年中,我觉得基础应该差不多了,似乎该瞧瞧那些时兴的框架了,至少偶尔要帮朋友做个小网站什么的,不至于措手不及。期间学习了Tapestry (跟Struts一样,属于表现层得技术),Spring, Web Service (CXF框架),Eclipse插件;Spring有本写个很好的英文书Spring Recipes--A Problem-Solution-Approach,用词非常简单,也很全面,推荐使用。学习一定要用目标驱动,并且要有实践,所以我用Tapestry, Web Service, Eclipse插件,做了一个辅助我们开发的工具,兄弟们都用的很Happy。2009年,Tapestry已经到5.1了,我决定学习下CSS, 体验下DIV+CSS的web标准化开发;期间用了本英文版的电子书CSS Mastery Advanced Web Standards Solutions,语言比较难懂,但写的很有条理,但至少看的懂,学会抄袭了,可以解决浏览器兼容的问题了。
然后过了没多久,我又得去学点新的东西了;开始看看EJB相关的知识,包括JMS,JNDI等。当然我又用它们做了个Demo, 只是我自己使用的玩具。其实深入了解Spring后,EJB等就是相当简单的东西了;当然Java基础加设计模式学好了,Spring学起来也是相当简单的玩意了。所以我还是觉得基础最重要。在这个开源的世界里,你可以找到一款符合但又不完全符合你要求的东西,所以你必须自己动手给它做个手术;而这一切都是以扎实的基础知识作为铺垫的。所以我觉得一你应该花更多的时间学知识,并记在心里;花更少的时间学配置,花一些时间把配置放在容易找到的地方。
关于书的问题,我个人的见解是:理论方面、方法论的书可以买,当然前提是经典的;有英文原版的要看原版的,翻译过来往往比看看英文更费劲。我一般先到Amazen英文站点去搜一下我想要找的相关领域的书,看书评后决定买或下载哪一本;还有就是在专业论坛请人推荐.
我的工作领域是专家系统,虽部敢说有什么造诣,但却是有一些体会,这些有机会在陈述吧。
在今天从事Java工作的第七年,我仍然觉得有很多不足。不是一个全面的程序员,因为我不怎么精通Web界面;不是一个优秀的设计师,因为设计的产品太单一;更不是一个合格的架构师,因为还没有带领过一个超过10个人的团队去做过一个对架构有严格要求的产品。
所以我决定有时间还要学下JQuery。还要不断的接触新的知识,向一个全面的程序员、优秀的设计师、合格的架构师迈进。
[转载]Java学习这七年的更多相关文章
- 从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透
从.Net到Java学习系列目录 场景描述:我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回.这个时候如果我们查询的某一个数 ...
- java学习第七天
目标 1. 复合 2. 继承 3. 重写 4. Super 5. final 一.类与类的关系 参考: http://www.cnblogs.com/liuling/archive/2013 ...
- [转载] Java学习之Hessian通信基础
转载自http://blog.sina.com.cn/s/blog_7f73e06d0100xn9j.html 一.首先先说Hessian是什么? Hessian:hessian是一个轻量级的r ...
- java学习第七天2020/7/12
一. java继承使用的关键字是 extend class 子类 extends 父类{} 举一个类的例子: public class person { public String name; pu ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- Java学习第七篇:与运行环境交互
目录 一.与用户互动 1.main方法形参 2.使用Scanner类获取输入 3.使用BufferedReader类获取输入 二.常用类 1.System类和Runtime类 2.String, St ...
- Java 学习笔记 (七) Java 参数
head first java page 74 实参: argument 形参: parameter 方法会运用形参, 调用的一方会传入实参. 实参是传给方法的值.当它传入方法后就成了形参, 参数跟局 ...
- Java学习笔记七(目录操作)
1.介绍 上一篇博客介绍的是java中经常使用的操作文件的方式,本篇博客着重解说一下,在Java中是怎样来操作目录的.主要是利用的是Java.IO包以下的File类,本篇博客着重解说一下该类的构造函数 ...
- Java学习笔记七:Java的流程控制语句之switch
Java条件语句之 switch 当需要对选项进行等值判断时,使用 switch 语句更加简洁明了.例如:根据考试分数,给予前四名不同的奖品.第一名,奖励笔记本一台:第二名,奖励 IPAD 2 一个: ...
随机推荐
- JAVA作业-1
编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果. import javax.swing.JOptionPane; // import class JOptionPane publ ...
- noip2006T1 能量项链
最近一直在做noip的题,由于太水一直没有写题解,可是这道题,这道题.啊啊啊啊…… 明明水的要命,调了一节课啊!!我干脆不要搞OI了啊! 特别逗比的错误啊!!!! 代码: #include <c ...
- unity打包android游戏部分问题总结
一:虚拟导航栏挡到游戏按钮: 解决方案如下: 1.获取焦点的时候隐藏 虚拟导航条 Navigation bar 隐藏导航条 2.出现导航条的时候,改变游戏界面大小 Unity tidbits: cha ...
- 【MediaKit】WPF项目中 调用摄像头拍照的开发包
今天遇到一个 人事的项目,项目中需要调用摄像头给员工照相.如何解决这个问题呢? 介绍一个开发包给你,MediaKit.论坛里头的人都说好,但是黑兔觉得大家好才是真的好.你不妨试试~ 第一步:添加WPF ...
- 经典SQL语句大全 学者必看
一.基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...
- 获取iOS设备信息的编程接口
参考资料: [1] 博客园,iOS屏幕尺寸和分辨率了解 [2] 张兴业,获取手机信息(UIDevice.NSBundle.NSLocale), CSDN
- delphi下,不错的多语言翻译组件
http://yktoo.com/en/software/dklangTraned http://sourceforge.net/projects/dklang/
- (转)Android Support Percent百分比布局
一.概述 周末游戏打得过猛,于是周天熬夜码代码,周一早上浑浑噩噩的发现 android-percent-support-lib-sample(https://github.com/JulienGeno ...
- cadence原理图绘制方法
仅记录了绘制好原理图后的一些处理: 1 重写编写元件编号 1)Tool -> Annotate 在Packing选项卡中 的Action 选中 Reset part references ...
- MySQL 主键冲突,无法插入数据
数据库版本:5.6.16 问题:开发来电话说仓库无法下单,程序插入数据提示:入库单 xxxx1589762285确认失败:Duplicate entry '8388607' for key 'PRIM ...