好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

我的数据库学习“曲线”

作者简介: 牛新庄博士,研究方向为数据仓库和数据挖掘。是 IBM 官方资深培训讲师(培训 DB2,AIX,MQ,WebSphere 和 CICS )。 2002 年获 IBM 杰出软件专家奖, 2006 年获 首届中国杰出数据库工程师奖 、 2006 年 IT168 技术卓越奖 。是中信银行、山东农信、广

作者简介:

牛新庄博士,研究方向为数据仓库和数据挖掘。是 IBM 官方资深培训讲师(培训 DB2,AIX,MQ,WebSphere 和 CICS )。 2002 年获 IBM 杰出软件专家奖, 2006 年获 [ 首届中国杰出数据库工程师奖 ] 、 [2006 年 IT168 技术卓越奖 ] 。是中信银行、山东农信、广东农信等公司资深技术顾问,中国建设银行总行特聘资深技术专家。拥有 OCP , AIX , DB2 , HP-UX , MQ , CICS 和 WebSphere 等二十多项国际认证。著有《 Oracle 数据库开发讲座 ——Oracle9i Jdeveloper 与 J2EE 实务应用》、《 DB2 应用开发实战指导》、《循序渐进 DB2- 系统管理、运行维护与应用案例》、《深入解析 DB2- 高级管理、内部体系结构与诊断案例》和《 DB2 性能调整与优化》等书。

选定发展方向

   1999 年,我在开始读研时就给自己确定了以后的发展方向。

  当时有两个方向: 网络 ,数据库技术。因为在 2000 年之时,网络大热,市场上拥有 CCNP 、 CCIE 证书的人特别牛。所以我当时也考下了 CCNP 证书,但后来发现网络方向涉及很多硬件层面的东西,这些都对厂商的依赖性太强,个人发挥空间不大。而我喜欢钻研,所以慢慢开始转向专攻数据库技术。

  在认准数据库这个方向后,我开始深入学习数据库理论方面的知识。当时,人大王珊教授的《数据库系统原理教程》一书,我读了几十遍。在学习数据库理论的同时,我开始接触并深入学习 DB2 和 Oracle ,并从 1999 年开始使用 DB2 V5.2 。那时,市场上关于 DB2 方面的技术书籍几乎没有,互联网也不像现在这么发达。因为我的导师做一个课题需要用到 DB2 数据库,但是我只能依靠查看 DB2 随机文档来学习。那时,我还自己兼职,通过帮别人做些小 软件 赚钱,外加课题稿费,以支付考 OCP 认证和 DB2 认证的费用。

  到现在为止,我一直认为考认证是一个很好的学习动力。因为考试费用不菲,如果不想浪费钱只能拼命看书。我在读研的 2000 年就通过了 OCP 8i 认证,后来又陆续通过 DB2 V5.2 认证。这些认证极大地增强了我的自信。同时,在帮助导师用 PB 、 Delphi 等编程工具做应用开发时,我有意识地增强对 SQL 的学习,这对我后来的性能调优工作非常有帮助。

  这里我想说的是,做好一个时期的人生规划非常重要。我们首先要有一个明确的努力方向和规划,然后有意识的往这个方向努力。这种积极主动的学习要比被动学习效率高很多。

第一次做培训

  [机遇偏爱于有准备的头脑],这句话虽是老生常谈,却是人生真谛。记得 2000 年底,我在网上看到一个帖子说需要一个人去安装 DB2 数据库,差旅报销,每天 500 元,我喜出望外。因为这项工作需要有 DB2 认证才能去,而我那时 DB2 高级系统管理和应用开发的认证都有,所以很快就通过了对方的审核。但是当我到客户现场时才发现,不是安装 DB2 而是要给客户讲课,当时我就傻眼了,因为讲课需要的知识远比安装配置数据库要难得多,更何况我之前根本没有讲过课。没办法,压力也是动力,只能前一天夜里看教材备课到凌晨 5 点。短短睡了两个小时后, 8 点半去讲课。四天讲课下来,我总共休息了 12 个小时。还好自己毕竟有 DB2 应用开发经验和 DB2 认证做基础,总算勉强应付了过去。只是没想到的是,这次并不算顺利的培训,竟是我未来几年培训生涯的开始。

将培训当学习的动力

  经过第一次讲课后,我看到了自己的差距,知道仅有认证是不够的。客户的很多问题,书本上没有答案,需要自己在实践经验上做努力。另外,讲课前讲师需要把一些原理、概念性的东西弄清楚,也需要对数据库进行深入学习。

  后来, IBM 培训部通过一些渠道知道我能讲 DB2 且拥有相关证书,就找我讲授 DB2 系列课程。所以,从 2001 年开始,我就经常作为 IBM 官方讲师讲授 DB2 系列的所有课程。我自认为讲课是一个很好的学习过程,因为课前要深入了解概念,对于自己的理论深入学习有很大帮助。同时,课堂上学员的实际操作问题也会强迫自己做更深入的研究。

  我对培训有这样的认识:学员听你讲三个小时,要远远胜过自己看 3 小时的书。如果把一堂课的内容比喻成一杯水,那老师至少应该提前储备一桶水。所以,在讲课之前,我精心准备实验,深入和学员交流。我讲课从不照本宣科,而是自己准备了很多教材外比较实用的知识来扩展教材内容。同时争取上课过程中把一些概念用浅显易懂的例子来讲解。要想做到这些,首先自己必须对这个概念有深刻的理解才行,这一切都在客观上促进了自己的学习。

  随着培训的增多,有部分客户开始找我做实际的调优工作。记得我第一次去为客户现场调优是 2001 年,去大连大通证券解决锁等待问题。客户环境用的是 AIX 和 CICS 。当时虽然问题解决了,但自己心里还是比较虚,因为对 AIX 和 CICS 不了解,万一是这两个方面有问题,自己就没办法搞定了 ; 这让我认识到一个复杂系统的调整往往需要具备多方面的知识。这件事之后,我在网上买了一个 140 的 IBM 工作站 小机,自己安装 AIX 并开始学习。

数据库学习 Tips

  根据我对数据库的理解,目前市场上虽然有 Oracle , DB2 , Informix , Sybase 和 SQL Server 数据库,但 Informix 数据库已经被 IBM 收购,而 Sybase 数据库在技术和市场上正走向没落,占据市场主要份额的就是 Oracle , DB2 和 SQL Server 数据库。 SQL Server 数据库非常好,但是很遗憾的是只能在 Windows 平台使用。所以如果你深入研究 SQL Server 数据库,我只能说获取高薪的概率稍低,而且坦白的说,使用 SQL Sever 数据库的企业一般是中小企业居多。而国内做 Oracle 数据库的人太多,如果你想在 Oracle 领域出人头地,难度极大。但是,做 DB2 数据库的人反而不太多,物以稀为贵。况且, DB2 数据库广泛应用在银行、电信、制造行业、零售行业、保险行业等[高薪]领域中,所以我强烈建议学习 DB2 数据库,做 IBM 技术一般获取高薪的概率相对会大一些。我们的时间精力是有限的,所以必须选择好方向然后努力为之。除了 SQL Server ,这几个数据库我都在使用,我个人感觉除了功能外,对于运行稳定而言,相对于 Oracle 不太稳定的优化器, DB2 无疑是最稳定的,它的优化器无比强大。如果能在锁方面再有更先进的技术,那么 DB2 将是完美的。

  这期间,我一边学习,一边通过了 AIX 的全部认证。记得非常清楚的是,为了做 HA 的实验,我花费了很大工夫。因为那时 小型机 不像今天这么普及,无法搞到 7133 阵列。后来我又学习了 CICS 、 WebSphere 、 MQ 和 存储 。就这样,在我培训的过程中,发现自己哪方面薄弱并且感觉这个方向有前途,我就会开始学习。不过,那时我的技术主要还是围绕 IBM 产品为主。由于自己对培训比较用心且颇受客户好评,找我做培训的国内培训机构开始变多。这个期间我自己的技术水平也增长很快。

   2002 年 11 月,我参加了首届 [ IBM DeveloperWorksLive! China 2002 ]大会,并获得 IBM 首次在国内评选的[杰出 软件 技术专家]奖,当时在 6 名获奖者中名列第 2 。这个奖项客观上对我在客户群的拓展方面起到很大帮助。找我解决问题的人更多了,所以 2002 — 2003 年也成了我技术提升最快的两年。

  这两年内,我陆续学习了 HP-UX 、 WebSphere 和 MQ 并通过认证。我自己的感觉是,如果你把一门技术研究得非常深、非常透,由于触类旁通的缘故,再去学习另一门技术时就很轻松。所以,我在学完 AIX 再去学习 HP-UX 时,感觉非常轻松。同样,在学习 ORACLE 和 DB2 后再去学习 Informix 也同样很容易。通过这种纵向的深入和横向的比较,各种产品的所长所短也会非常清楚,自己的技术视野无意间更加全面化。而且通过对一个产品的深入,你往往能够发现这个产品的缺点和需要改进的地方。就拿 DB2 来说,每次版本更新的新特性 , 在新版本未上市前我就可以猜得差不多了。这主要有三个原因:一是我贴近真实用户,了解他们的真正需求 ; 二是自己一直在用且不断总结思考 ; 三是这些特性别的数据库有,而 DB2 没有,那在下个版本就会增加。所以相对来说,我自身对新版本的新特性学习就非常轻松了。就 DB2 而言,我拥有 DB2 V5.2 、 V7.1 、 V8.1 和 DB2 V9 的全部认证,而且我应该是国内第一个把 DB2 V8 认证全部通过的人,当然,这其中也有巧合的成分。

  重要的一点是:学习过程中,要不断地把实践和理论融合,知其然更知其所以然,这样提升就会快很多。

现场救援[赶场]记

   2004 — 2005 年是我最忙碌的两年,那时候找我讲课的培训机构和需要性能调优的客户非常多,基本上整天在天上飞。培训机构找我讲课常常需要提前一个月预约。那两年内,除了过年几天,其他时间都是在做培训和诊断、调优,足迹遍及国内主要城市。我自己基本上是国内六大银行开发中心和数据中心培训的指定讲师,并为北京银信科技、山东农信、广东农信,交行大集中 IBP 等项目做数据库技术顾问。

  那时的我年轻、精力充沛。记得最刺激的一次是 2004 年 9 月的一天,上午 9 点为上海移动 IT 部门做 AIX 动态逻辑分区 (DLPAR) 培训,结束时是 17 点。之后,立刻坐出租车前往扬州,于 20 点到达扬州供电局并协助他们进行电力负荷控制系统项目上线,一直奋战到凌晨 3 点半。接着,又连夜乘出租车赶往上海,在凌晨 6 点到达酒店。休息两小时后, 8 点出发,准时出现在上海移动培训现场。那时我对报酬不太在意,想的主要是用心积累技术经验和客户资源。在我看来,能够不断通过实践让自己成长是第一要义。而且,去的客户现场越多,处理的问题就越多,也就越多地发现自己的不足,然后再拼命学习,不断积累、总结和思考,进入了一个良性循环。

  至今我仍然怀念那段充实、紧张而充满激情的光辉岁月。 2004 年和 2005 年,一方面因为以独立咨询顾问的个人身份无法出具发票 ; 另一方面,项目越做越大,尤其是很多银行的数据库架构和维护项目涉及合同金额也越来越大,需要签订正式公司合同。于是,我就分别在上海、北京注册了公司。当然这些年我并非都是一帆风顺,也犯过一些重大错误,例如:我曾经在 2002 年 5 月 1 日把海南美兰机场的数据库调死,导致机场航班信息管理系统瘫痪。早期也曾经因为调整某证券系统宕机而影响股民交易,这些都对客户造成了影响,但这些都是成长必须要走的路。经过这两次事件后,我自己也思考、总结了很多,在之后的调优工作中我基本上再没有犯过错误。

我的秘诀:学习、积累、规划

   2006 年 8 月我获得[ 2006 年中国首届杰出数据库工程师]称号,算是对我多年学习数据库的一个总结。自 2007 年开始,我专注于做一些大客户的运维工作,并相应减少了培训次数。 2008 年,我被建设银行以年薪 217 万聘请为资深技术专家来维护 Oracle 和 Informix 数据库。就做技术而言,以一己之力能挣到年薪几百万常常令我感到自豪,也让我感受到技术的魅力,觉得自己多年来对技术的钻研得到了认可。

  之所以讲述我的技术之路,主要目的是给大家一些参考,尽可能多地去了解社会的需求,有意识给自己制定人生规划。我自己认为,多年来能取得这样的成绩,勤奋、努力和坚持一直是我最看重的。因为有了这些,才不至于当机遇光顾时,你却不知所措。

  现在很多年轻人,恰恰缺少的就是这样的忘我与痴迷,在我熟悉的数据库技术领域,很多年轻人越来越早地将注意力集中在薪水和职位上,这是很不明智的行为。其实,往往那些将诸如高薪与职位忘怀的人反而能更快地取得成功。[不经一番寒彻骨,安得梅花扑鼻香 ? ]这样的道理人人都懂,可能够真正去实践的人却并不多。结合我的学习经验与感悟,我总结有 16 字要诀:去除浮躁,认真学习,不断积累,寻找机遇。

  最后,我用这句话与大家共勉:古之成大事者,不唯有超世之才,亦唯有坚韧不拔之志也 !

查看更多关于我的数据库学习“曲线”的详细内容...

  阅读:39次