《maclean liu的oracle学习经历》 名字暂定,目前还仅开了个头,会长期连载更新,谢谢支持!
有一句网络用语说得好:”再多一起NB的岁月,也抵不上那些一起SB的日子” 。 谨以这篇帖子献给那些还奋战在学习Oracle的同学们。
最早接触Oracle还是在大三,为了攒学分而上了一门选修课,课名似乎是叫”Oracle数据库基础”,受限于大学的Oracle学习环境和师资力量,当时也仅仅是学习到一些SQL要如何写、哪个后台进程完成哪些工作这样的皮毛知识,开始会用sqlplus “/ as sysdba”登录数据库并做一些shutdown/startup操作了, 当时的我对于Oracle知识而言还完全是一个门外汉,甚至不知道有官方联机文档这种资源,所有的知识均来源于一本清华出的《Oracle数据库基础》, 实际现在回想起来当时国内的互联网也刚刚开始兴盛一段时间,网络上的Oracle资源远没有今天这么铺天盖地,处理一个ORA-错误往往要研究半 天; 但也是第一次从大学老师的口中知道了Oracle公司,知道了Oracle 9i,以及世界上还有OCP这么一门认证, 在05、06年左右9i的OCP在国内的还是很吃香的证书, 远非今日的10g/11g OCP可比。
怀揣着梦想在2007年踏出了校园,作为一个计算机系的毕业生,求职的理想工作当然是做一名coder程序员,1个月里我面试了有十来家单位, 最后敲定了以IT外包著名的印度四大之一的TCS; 说起来TCS在07年左右对应届毕业生的招聘还是稍有难度的, 第一天面试的时候,一个会议室里坐满了应届毕业生做题目, 题目包括 IQ测试、 写2个简单的伪代码 还有一份很长的英文邮件分析, 我还依稀记得其中一道题目是递归算法让你用循环去递归, 上面这些测试筛选下来就只剩3、4个人了, 完了还会有面试HR和 老印的主管面英语口语。面英语的老印问了我一些开发经验的问题, 我连英语待比划地跟他解释已经开发过的一个毕业设计软件, 这个老印是TCS常驻上海的PM之一,后来我常在linkedin网站上看到他。 值得一提的是 他问了这样一个问题 “如果让你管理Unix操作系统,你会做什么?”, 因为应届毕业生的招聘并不直接和position 或者 technology挂钩,所以 我一度认为进入TCS会去做Unix Sa, 甚至在等待OFFER的那段时间里恶补了一下Unix基础知识,总算把SHELL的基础概念大致过了一遍。
闲话少叙,总之一个月里来了OFFER, 一个07年应届毕业生合理的薪资待遇, 虽然现在看来那点钱微不足道,但我还是比较愉快地接受了OFFER。
=================================================================================================
总结这个阶段的ORACLE技术水准:
技巧 :无
基础知识: 几乎没有
Oracle眼界: 知识孤岛,只知道1-2本书
IT业界: 开始知道有ORACLE、HP、SUN 这些大的IT企业
经验:无
职业规划: 先找到工作再说呗!
=================================================================================================
下一节 入职后 理想与现实的差距, 看一个应届毕业生的职业DBA之路,敬请期待
第一天入职绝对是很兴奋的事情, 起了一个大清早, 8点半已经抵达TCS在张江软件园的OFFICE了, 面试的时候虽然来过这个OFFICE但仍不熟悉, 在一个狭小的前台走道我坐了下来准备9点联系入职的HR; 墙上的电视机放着TCS的宣传视频,不 断闪烁的LOGO跳跃在我的眼前,一曲清奇而充满印度情调的音乐袭来, 这首是TCS的企业代表曲, 我虽然在以后的1年多时间里每次CALL TCS的座机都会听到这首曲子,却叫不出其名字,所幸最近还是让我找到了,所以你也可以体会一下我当时的感受了。
当天入职的不止我一个人,总共是3位, 后来发觉我们3个被分到了同一个team里面。 简单地完成入职手续后, HR还是比较礼貌地带我们参观了一下OFFICE并介绍给其他员工。 入职的前2天都没有具体分配到项目, 我们(新入职的3个人)互相交流了一下信息,这里我们用代号简称, 小A依稀记得是厦门大学毕业的毕业2年,特长是英语很不错。 小B是上海大学计算机毕业(我的学长)毕业一年, 这里也提一下我自己: 小M(我)是上海大学计算机毕业,彻彻底底的应届毕业生, ORACLE只懂DBWR是写数据的,还有shutdown/startup 几个命令。
在这段刚入职而没有加入到team时间里, 我偶尔翻看从前Oracle选修课老师发的PPT;偶尔装一个netbean或者eclipse 写2段Java代码,当时的我还是很享受写几行代码的感觉的; 偶尔倾听发生在身边的这个印资IT外企的点点滴滴。 平心而论当时TCS shanghai的整体技术氛围还是不错的, 虽然身边可能没有什么牛人, 但似乎这个阶段的我和这里的整体技术氛围很是契合, 或者说心态上十分惬意。 这里有开不完的 电话会议conference call ,有每天都在进行的KT knowledge transfer , 而因为外包服务的是M记和G记这种IT建设较为先进的跨国外企, 所以要求日常邮件、电话最大程度使用英语交流。 这段时间里我并不确定到底要学什么技术,但即便学不到IT技术,在这里锻炼一阵子英语也还是不错的,虽然可能掺杂不少印度英语 🙂 。
大约是入职之后的一个礼拜又来了2位新人,分别叫小W和小L好了。
小W貌似大学里学的是物理,据他说他这个专业毕业后工作不好找,所以去达内培训了几个月,之前在某书友会工作了一段时间,
但是他对到专业的IT公司编代码有着十分的憧憬,所以来到了TCS。
补充一下: Maclean Liu(我本人)没有参加过任何第三方的Oracle培训机构,如果不出意外的话也不会去任何第三方培训机构任教;
我本人对于非OU的第三方培训的态度是嗤之以鼻的, 我也不推荐任何希望学好Oracle的同学去参加第三方或WDP的培训。
任何第三方培训机构或个人利用Maclean Liu(我本人)的名誉来炒作其培训的, 都是自己的炒作行为,未经过本人授权。
小L是应届毕业生,非计算机专业,对他我所知不多,因为最后他去了别的Team。
A Critical Point
关键时刻就这样来了:
这一周的某一天, 我的身后来了一位剃着板寸头、头型较圆、表情可爱的大叔,他逐一报出我、小A、小B和小W的名字,并示意让去会议室一起聊一聊。
这位大叔就是我们后来的team leader-LEON, LEON给我们介绍了这个项目的大致情况:M记是你肯定会知道的大型跨国通信业制造商企业,在亚洲M记分别在天津、马来西亚有工厂,在北京、新加坡有办公室。TCS的这个team主要是给M记的Oracle ERP系统做IT外包运维,这是一套11i的EBS系统,数据库是单机的oracle 9i(一开始是9.2.0.4),如果我没有记错的话数据库服务器采用的是SUN FIRE 6800,24 core+ 128GB内存,在当时我刚刚被分配到的工作用台式机仍只有512MB内存,在07年128GB的主机内存还是一个蛮惊人的配置。
后来知道M记从一开始就不是一家仅仅做通讯设备的企业,在早年M记甚至和SUN还有其他几家厂商一起开发过CPU。也许是由于合作关系和SUN建立的友谊,在当时M记作为一家500强企业所采用的服务器绝大多数都是SUN出品,直到09年”Oracle buys SUN”之后,M记开始大量采用DELL服务器+Oracle 11g的组合。
话题可能扯远了,LEON大叔和我们说了一大堆组织架构的话题,当时我只明白了3成; 而彻底搞明白的是一件事,那就是LEON的TEAM与编程无缘,不需要也不会做JAVA、C/C++、.NET这些事情,你需要懂的就是Oracle也唯有Oracle(这是我们的宿命吗?), 当时我们几个就傻眼了。。
大多数应届生在踏入社会后都能迅速体会到理想与现实的差距, 我、小W、小B 也是如此; 我可以想象如果此时我拒绝了加入LEON的TEAM,那么很可能被以没有其他合适的项目为由迅速被HR所FIRE掉。
应届生的工作问题实际上是一个社会问题,此时被FIRE掉的话,那么我在父母那边的声望又要降低一个信用水平了(简直是欧债危机….)
小W、小B大概和我类似的心理 ,也应承下LEON对项目的期许。 小A本质上是一个混在IT界的非IT类认识,而且作为有经验的人才,他似乎对这个position的工作职责一开始就非常清楚, 倒是我们三个糊涂蛋是最后知道的人。
注: 有同学对小W现在的状况感兴趣,据我的了解,小W目前仍在TCS,但是已经如愿以偿地转到LEVEL 3去维护项目的程序代码了,应当是一些Oracle Froms和PL/SQL,Oracle EBS的技术顾问。
小B虽然和我同是上海大学计算机毕业,但对底层技术反而没有我和小W那么狂热,他仍在TCS,目前对EBS的各模块非常熟悉,将来是Oracle EBS的功能顾问。
小A基本上和技术绝缘,平时以背单词消磨时间,一年后离开TCS Shanghai去了中兴,因为英语过硬被外派到一个南美洲国家,2年后归国,在上海我们几个还聚了一下,据说他现在回到老家炒股为生。
闲话少叙,直接穿越到我到TCS的一个月后GPP TEAM正是成立并GO LIVE。
M记不愧是500强老牌的外资企业,IT架构的总体水平还是杠杠的。
从系统不可用到用户的一些琐碎需求都会通过一个软件BMC Remedy来实现与相关部门的交互, 举个最简单的、也让我觉得最无聊的需求,用户(这些用户我99%都没见过,因为他们都在M记遍布全球的N个办公室里,通过VPN连接到M记的内网来实现全世界的远程办公)最近分配到了一台新的笔记本,Windows、Office都安装好了,唯一的问题是他使用的ETL工具要求使用到Oracle Client,而在他本地的IDM不会装这个简单的Oracle Client,于是他就会在Remedy上开一个Ticket(你可以理解为一个服务请求,类似于SR,这个Ticket也分成多个Severity严重性等级 :Cirtial、Normal等)要求你这个 IT外包人员远程帮他安装这个Oracle Client程序。
年轻人都所谓的叛逆心理,越是在这样一个纯Oracle的环境里, 越有对着干继续搞编程的想法。举个例子来说TCS的电脑都使用Windows域管理严格地控制,普通用户是没有权限直接安装一些软件,为了能在空闲时间学学JAVA,我挖空心思尝试安 装各类IDE,例如当时最著名的eclipse、初露头角的netbean、日薄西山的jbuilder,发觉在限制权限下安装都不成功。
最后试了一下Oracle自己的IDE Jdeveloper,居然能够免安装运行,这里要夸一下Jdeveloper的绿色环保; 在Windows下用Jdeveloper写了一个小程序,打成JAR包,之后上传到SUN FIRE 6800上用shell运行, SUN不愧是发明了JAVA的厂商,其SUNOS对JAVA的支持也是没的说的, 我很享受于编程的这点小幸福。
小W和小B当时的心理与我类似,我们在上班、值班的时候台子上总是放着一本《Java编程思想》(我相信很多IT青年都读过这本书),我们的这种挂羊头卖狗肉的态度最终惹怒了LEON,他就这件事情不留情面地当着别人面地把我们训了一遍:”TCS请你,不是让你来这里学JAVA的”!这个事件令我反思。
这之后编程的热情被实际的工作冲淡了, oracle的各种问题让我们几个未窥门径的年轻人感到无从下手,我们都萌发了系统地学习一下Oracle知识的想法, 随之OCP认证成为了我心中的一个目标。
但是作为Oracle信息的孤岛,我们对Oracle基础知识来源的了解也仅仅停留在上网或者去书城淘几本好书回来练练手上,左右打听据说有一本《OCP认证考试指南全册》口碑不错, 于是我和小W都买了人手一册, 准备在Oracle上下一猛功夫。
从被批评事件到后来的2个月里, 我都过得十分充实; 白天在公司忙的时候ticket接不完, 闲的时候却也能静下心来看书,虽然找到了《OCP认证考试指南全册》的电子版,但我还是坚持带实体书去看,看过这本书的同学都会知道这本书还是蛮厚的,有748页。 每天把它塞在包里去上班下班绝对算是一种负重。
需要说明一下的是, 虽然网上对这本书中部分习题或者理论的说法存在诟病,而书中的少部分章节也确实有着技术上的硬伤, 但这都不影响这本书成为你入门的一种方式,所谓的瑕不掩瑜吧。
上面提过我使用的TCS台式机仅有512MB内存,这导致我除了必要的工作开的窗口之外,没办法开更多的应用程序,这也算是我能静下心来看一些文档的愿意 之一, 但是这512MB内存装一个Oracle 10g实例还是太卡了, 我不得不在白天把书上的理论看完, 而回到家里再去做实验; 从TCS的办公室到家需要坐2号线换乘1号线之后再换地面交通,这意味着回家大约要耗费2个小时, 而TCS的标准下班时间是6点, 实际上往往6点你是无法离开公司的, 直接结果就是你到家已经是晚上8点了, 在加上吃饭半个小时。
晚上8点半以后才是我可以自得其乐的实验时间, 大多数人在一天的忙碌之后会需求一些娱乐或尽早休息, 但是我的时间规划中 20:30是雷打不动的实验时间, 往往白天看的理论只需要1个小时去消化, 而晚上做实验则需要2-3个小时或更多, 实际上因为没有人指导 , 会导致我的实验经常不能做成功, 这可能也是很多朋友在实践环节遇到的问题。 但是我在这里鼓励大家自学并自己完成实验, 这个学习阶段的绝大多数实验还是比较简单的, 教程当中对实验的操作步骤都有着详细的说明,实验不成功往往是一些例如参数值打错、配置对象搞错等等的低级错误,只要耐心去发现一下都可以发现是自己的疏 忽, 虽然这些问题很低级却是你初期锻炼问题诊断(troubleshooting)能力的最好机会,试问如果你连自己的低级疏忽都发现不了, 怎么可能去诊断别人环境中复杂的问题呢? 而这也恰恰是灌输式培训所不能给予你的; 即有问题总是试图自己去解决, 这会养成你troubleshooting的习惯和经验, 同时也培养了你自身对ORACLE技术的信心喜爱。
当你习惯了被动式地被填鸭知识,那么你将永远只能被动。 你身边是否有这样的人,他们在国企或者类似性质的企业一干就是几十年, 他的绝大多数工作时间花费在一些简单重复的劳动上, 而仅有的学习机会只是一年公司安排几次的培训机会,他没有自学的习惯, 虽然觉得年华一年年老去、技术水平没有有效增长、而个人能力也没有得到锻炼。 十几年过去了,他从技术岗位终于升级到管理岗位,当乙方或第三方的工程师路过他这里时(他往往都是甲方),他也不忘吹嘘几句自己当年的技术实力、或者获得过OCP之类的认证。
用《肖生克的救赎》的话说他被体制化了,他需要高墙才能继续生存,他会呆在一个地方直到退休。。。
一个男人应当不断自我完善,并满怀信心!
就是这本书被我在2个月内翻烂了,它可以算作我ORACLE职业生涯的一个重要纪念品:
这里有同学问:”你为什么不直接读官方的联机文档? 你不是很推荐通过官方文档打好基础吗?”
事实是人的学习总是循序渐进的,何况作为一个刚毕业的学生,我的眼界里还没有官方联机文档这样一种好东西。 从另一方面说自学绝不可能是一番风顺的东西,我们不能指望自学是Best Practice最佳实践,
除非今天的你穿越回去告诉过去的你,自学的最佳过程是如何的, 显然这不可能。 当然我后来还是通读了8i-11g的主要官方文档,和大量的metalink SR以及Interal only notes。
这几个人中以我和小W对技术最狂热,也最为话唠, 我们2个相约一起考OCP,算是考友也互相竞争。 这段时间里我了解了许多Oracle的概念,也陷入了许多的误区,例如关于undo、redo、checkpoint的这些话题,就我手头的这本《OCP认证考试指南全册》虽然都有讲到,但是以我目前的眼光来看这几个话题都没有真正意义上解释清楚; 一旦进入这些领域后,我就在推论和原理之间摇摆,以我当时的动手能力是无法用实验来证明这些有一定internal成分话题的,我所能做的仅仅是相信或者质疑理论,并派生出一堆我自己的推论来完善整个逻辑(这有点像杨过学蛤蟆功的情节:当下欧阳锋将修习蛤蟆功的入门心法传授了杨过,他这蛤蟆功是天下武学中的绝顶功夫,变化精微,奥妙无穷,内功的修习更是艰难无比,练得稍有不对,不免身受重伤,甚或吐血身亡,以致当年连亲生儿子欧阳克亦未传授。此时他心情激动,加之神智迷糊,不分轻重,竟毫不顾忌的教了这新收的义子。杨过武功没有根柢,虽将入门口诀牢牢记住了,却又怎能领会得其中意思?偏生他聪明伶俐,于不明白处自出心裁的强作解入), 整个阶段在理解一些非是显而易见的理论上是狠狠地花了一番功夫的,即便如此仍无法避免在这段时间里有大量的理论是有偏差的或者干脆是错误的。纵观整个学习过程,我总是在通过研究真正具有价值的资料和先人经验、实验证明和实践工作中推翻我本人对Oracle的种种看法,经过5-6年下来虽然我觉得矫枉得力,但仍有不足之处。。。。
看了上面这段文字大家要说, 我这是在入门阶段自学遇到了挫折。 实际在我看来上面这刚入职工作的1-2个月里,我哪里谈得上是入得山门啊,不过是在山下徘徊良久罢了,以我今日的眼光来看我正正入门的日子是在09年我获得10g ocm之后的事情了, 注意是在获得ocm之后才入的门,而非考ocm之前,你也许大惑不解,且看后文分解。 假设这个阶段我并非自学而是有人教或者培训,我可以肯定在理论上我会坚信或者相信对方授予我的理论,我可以减少在理论上思辨的时间而去看更多的内容,但是传道者会给你的知识和思域摆下封印和界限, 在Oracle圈子里我看到的大多数例子徒弟是很难超越师傅的,这不仅仅是在经验方面,在对理论的理解上也是一样,师傅教给你”1+1=2″这是一个结论,徒弟不需要再去推导一遍,只需要接受结论就是了; 我说这些是希望告诉你, 自学让我有自己鲜明的技术观点,我不会轻易去相信某本书或者某个文档上的结论,只有可验证的结论我是充分相信的,有一大堆不确定的事情是需要我自己动手去证明的,别人或者证明过但是没有共享出公开、可验证的文档,那么我来写一篇观点鲜明、可重复测试验证的文档,这样我可以确定越来越多的问题和理论,我的技术自信心因为我完成的工作而日益强壮,就像宝刀锋自磨砺出一样。 除此之外,皆是空对空。
在这里再归功一下TCS的环境对我迅速提升的帮助,众所周知10g 的OCP在06、07年就已经有题库可以参考,考试的范围几乎都囊括在这套题库当中, 这里我们不讨论参考题库对实际ORACLE学习工作的损益影响。 在正式参加OCP考试之前(当时的10g OCP只需要考2门,没记错的话是042和043),我是参考了TEST KIT的题库的,这一套题走下来自己的真实水平立马浮出水面,差强人意;找到自己的不足事情就容易多了,查遗补漏这是学习的必经之路,我不过是个新手、教材多看2遍毫不丢人,这一来一去对对10g的考试重点多少有些心得,注意仅仅是10g OCP的考试重点。
这里我想说明一下,Oracle的知识领域博大、精深,每个版本都引入大量的新特性,而每个版本OCP考试的重点都会有所侧重;譬如10g侧重于ASM和Resource Manager,而这2个特性也是ORACLE所大力推广的。而11g引入了AMM(自动内存管理)的特性,则AMM成了考试的当红炸子鸡。TCS业务靠拢Oracle和SAP这2条大船,平时的员工培训也会涉及到这些领域; 一次巧合的线上企业文化培训,让我发现TCS还有企业内部知识库这样好东西(类似于内部的MSDN),轻点几个training连接发现了大量9i OCP的资料, 而令我目瞪口呆的是9i的题目很多都是超出我当时知识范围的,为什么会这样? 恢复理智之后,我马上意识到正是以因为10g对新特性的侧重而减少了ocp考试对理论和经验方面的评测,当年不靠题库通过9i OCP的兄弟是真豪杰!
2个月后 我参加了获得OCP认证必须的一门原厂培训课,下面的这一段是当时的懵懂的我记录的上这次原厂培训的精力,现在读起来幼稚且生涩:
“时间:12月21日~23日
三天培训的费用是6500元,也就是每天2000多,对,没错是每天2000多,你没听错,比出国旅游还贵。
Oracle在上海市貌似没有研发中心,(可能在闵行紫竹有一个,不过不确切),我这天培训是在西藏中路18号32楼,港路广场的楼盘档次还是蛮高的,光 电梯就比软件园的高几个档次,我原本以为Oracle是独占32楼一隅的,到了上面才发现其实这层是好几家都在一起, 港路这里有名气点的还有久游,貌似Rock Li以前工作过的…
出电梯看到的就是Oracle的招牌,让我匪夷所思的事居然没有前台,我和一个同是来培训的人转了一圈只在休息室找到个在打电话的保安,这保安看起来是老 油条了自顾自的打电话并不招呼我们,其他几个房间已经有人在上课了,临近的一间貌似在讲ebs,开口闭口po so的,哈哈。。
无奈,打电话给当初招呼我的销售,他其实就在旁边的一间大的员工室里,不过那里是要刷卡的。。跟销售搞清楚是那间教室,结果里面已经开始讲了,索性都是最 基础的东西,这课程是给还没考完试的较少入门的,我来的目的主要是拿到hand on的Service number,还有心里有几个疑惑要找老师解答下。
找了个最后排靠窗的位子,32楼看出去风景不错。。
手机拍的将就看。。
进教室后随手发了2本教材,外加一支笔,笔的外形不错,经典的白底红字Logo,不过后来经证明写起来感觉十分十分差。。
Oracle做实验的机器还是不错的光内存就2G,比家里的还好,不过据考Ocm的兄弟说他们用这机器还是很卡,想想也是又实验环境又Rac又Data Guard的确实比较囧。用的是Red hat as 4.4也就是考试的环境,后来知道考ocm就是在这几个教室,考要预约,因为那几天这2教室要清场,知道为什么贵了吧。
跟我们讲课的是个ocm,年纪大约28,9是06年考出来的,不去做dba,不出国,看起来做讲师是利润高+休闲。只不过课程是入门的所以,讲的东西总体比较小儿科,而且喜欢用OEM。。
本来订单上说的中午饭是Oracle负责的,我倒也像看看Oracle的伙食是怎么样的,结果是中午发餐券全都到2楼去吃套餐,吃饭的时候一群一起上课的人围在一个桌子上,可却没人说话,搭讪也没有,看起来搞it真能把人搞冷漠了,我是天生的冷漠。。
吃完饭,上楼终于忍不住找起任来搭讪(交流交流嘛),一个也是做erp的貌似是工厂里的,做了erp还搞db,一个人当2个用,估计钱少不了,另一db之外还做做programmer蛮可以的,不过是私企。。
中间的插曲是,中午的联系是linux下装10g,结果有个号称公司里用windows server2003+oracle 的(进楼梯的时候他跟我说他们生产库30g,当时我就囧了,搞不懂他们为什么费那冤枉钱,这里一笔带过之前我面试的一 家日企,感觉不是那家的hr脑子抽住了还是怎么样,开价2000让我去做jsp..他当那玩样是高中里frontpage做个网页啊,后来谈的时候还要我 兼做公司网管,我反应说这价钱太低,结果就没回音了。。),回头说那位dba同志,他做这行的居然Linux的东西从来没碰过,terminal 也不知何物,过来请益于我,我小囧一下后,态度比较好的给他做了遍流程。不得不说我不清楚他乃至他的公司平时是怎么做事的,盖的?
下午继续讲课,几个似乎是新手的同志问了几个不爱看书的新手必问的问题,看起来先来上课再去考试走着正规路线的人还不少,索性大学里选过oracle做选修,心得固然全无,但概念少多少熟悉许多,感谢叶飞跃老师!!
课后问了几个比较困扰自己的问题,但感觉答案给我的启发不大,难道说学者未必为良师?其实我问的几个问题还是比较经典的,这里就不举出来了,避免在space上写技术性的东西。
课到5点结束,一天下来无甚心得,不过总算得到了一个交流的机会,让我知道这世界上还有这些人这些事。后来2天也是仿佛,上课全当时复习,能系统复习下也好啊。。。
PS: 当时真是很幼稚….”
未完待续,to be continued ……………..
Leave a Reply