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。还要不断的接触新的知识,向一个全面的程序员、优秀的设计师、合格的架构师迈进。

万丈高楼平地起,基础很重要相关推荐

  1. 对java集合类的认识——基础很重要

    学习很忌讳眼高手低,基础很重要. List和Set都是继承自Collection接口的接口:而map是没有显示的继承的父类或者父接口(接口extends接口,类implements接口,类extend ...

  2. java写的订房系统(对于加深基础很有帮助)作业题

    java写的订房系统(对于加深基础很有帮助) 1.是用数组写的,拿去运行就行了,注释详细,不怕看不懂,适合小白,也是很多学java经常碰见的作业 public class Room extends O ...

  3. python不会英语不会数学怎么自学-学习Python,数学英语基础很重要吗?

    关于Python这门语言,是大家公认简单易学.容易上手的编程语言,现在学习Python技术的人变得越来越多了,但是对于学习Python开发需要怎样的条件了解的人并不是很多,学习Python,英文和数学 ...

  4. J2SE:总结—基础很重要哈!

    [前言] 最近刚把网上商城学完,翻阅着自己的博客,发现J2SE的阶段,自己还没有总结!俗话说:出来混的迟早要还的!于是乎又将当时自己学习J2SE时记录的笔记溜了一遍总结一下. [内容] 将视频中的内容 ...

  5. 【Java基础】二、大厂都开始重视的基础很重要吗?快来加入基础的学习,巩固一下细枝末角,刷刷面试题吧

    2_变量.标识符.保留字.变量 一.关键字与保留字 1.关键字(keyword)的定义和特点 2.保留字(reserved word) 二.标识符 1.什么是标识符(Identifier) 2.定义合 ...

  6. 学习Python,数学英语基础很重要吗?

    关于Python这门语言,是大家公认简单易学.容易上手的编程语言,现在学习Python技术的人变得越来越多了,但是对于学习Python开发需要怎样的条件了解的人并不是很多,学习Python,英文和数学 ...

  7. 学习3dmax游戏建模一定要美术基础很高吗?入门游戏模型怎么做

    学3d建模需要美术基础,但是不代表现在就需要美术基础. 1.很多朋友想学3d建模,但是遗憾的是,圈内人总是对他们说,学3d建模需要有美术基础,你们有吗?然后很多没有美术基础的朋友,就耷拉着脑袋,灰溜溜 ...

  8. Python学习资料全面总结,真的对零基础很有用

    把手里积累了这么久的Python入门资料整理了一下,发现其实,有了这些,python入门真的不难,每天花点时间学,真的不会影响工作.下面一起来看看这些资料吧! 可以学习python的地方 Python ...

  9. 方法和数组 - 打好基础很重要

    1. 方法 1.1 引入 还记得我们的HelloWorld例程吗?我们现在对于输出语句应该已经很熟悉了 System.out.println("HelloWorld"); 解释: ...

最新文章

  1. visual studio 2010 professional , premium, ultimate各版本功能对比
  2. g++配置选项-std=c++11
  3. 树的最小支配集、最小点覆盖、最大独立集【模板】
  4. 《C++语言基础》实践参考——友元类
  5. Online Object Tracking Benchmark(OTB)目标跟踪系统评估方式
  6. tyvj/joyOI 1305-最大子序和【单调队列】
  7. 用JS控制下拉菜单效果
  8. 记事本之修改非txt文档
  9. java创建solr core_Error CREATEing SolrCore 'new_core':Unable to create core [new_core]
  10. 基于DEAP库的python进化算法-2.进化算法各元素的DEAP实现
  11. 数据分析(一):数据的读写(文件、数据库)
  12. 软件案例分析-音乐软件界的卧龙凤雏-酷狗音乐与网易云音乐
  13. word输入带圈字符快捷键(0-20)
  14. c语言2059,C语言错误 error C2059: 语法错误:“)”以及 错误error C2065: “sockaddr”: 未声明的标识符...
  15. 中石油大学22春季《大学英语(四)#》第一阶段在线作业
  16. 计算机网络英文简称汇总
  17. centos 7搭建直播间
  18. 戴尔笔记本DELL 5557 解锁 CFG lock
  19. java object 是否为null,java – 为什么cast(Object)null结果为null?
  20. 怎么可以修改pr基本图形中的文字_不会给视频添加字幕?这里可以解决(附工具下载)...

热门文章

  1. 人脸对齐之SDM / 人脸对齐之LBF / 人脸实时替换
  2. 免费的WebService服务器
  3. C#范例开发大全.刘丽霞李俊民(奋斗的小鸟)_PDF 电子书
  4. 薛之谦明星人物介绍html源码 html期末大作业 课程设计
  5. PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速
  6. mysql怎么写外键支持级联删除_MySQL外键级联删除不起作用,完全难倒
  7. g77、gfortran、gcc的区别与联系
  8. 华为社招机考考什么_牛客网-华为-2020届校园招聘上机考试-软件类机考-3
  9. 停车位检测方法研究综述
  10. ARP协议和NDP协议分析