那些年考的那些认证

架构师的信仰系列文章,主要介绍我对系统架构的理解,从我的视角描述各种软件应用系统的架构设计思想和实现思路。

从程序员开始,到架构师一路走来,经历过太多的系统和应用。做过手机游戏,写过编程工具;做过大型Web应用系统,写过公司内部CRM;做过SOA的系统集成,写过基于Hadoop的大数据工具;做过外包,做过电商,做过团购,做过支付,做过SNS,也做过移动SNS。以前只用Java,然后学了PHP,现在用R和Javascript。最后跳出IT圈,进入金融圈,研发量化交易软件。

架构设计就是定义一套完整的程序规范,坚持架构师的信仰,做自己想做的东西。

关于作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/architect-certification/

architect-cert

前言

回忆当年在学校的生活,真是幸福,毫无生活压力;时不常逃逃课,学习自己追求的技术,享受编程乐趣。那些年考过了不少有价值的认证,都不知道自己是怎么坚持下来的,5年时间一共完成了10的认证。

回过头来,我自己都不知道当时哪里来的动力,几乎是一件不可能完成的事情。一头走来跌跌撞撞,但最终找到了自己的职业方向。

目录

  1. SCJP
  2. SCWCD
  3. XML-141
  4. Websphere-285 & websphere-286
  5. DB2-700 & DB2-701
  6. SCBCD
  7. SCDJWS
  8. SCMAD

1. SCJP

我记得学Java是从大二开始的,对于专业课完全没有兴趣,同时又觉得C的代码很丑,觉得JSP做网页很牛的样子,就开始了我的Java生涯。自己学了半年,看着书按照例子,可以写一个小程序,但总觉得摸不着门,于是假期回到北京报了一个新东方的SCJP培训班,3天课程,800元。老师很负责把Java基础整个讲了一篇,我听的特别过瘾,(当时真应该留下老师的电话,特别感谢!)。

上完课后,剩下的25天的假期,我完全就在家中对着电脑度过的。从那一刻起,我终于开始对Java入门了。在假期的倒数第二天,我去考了SCJP1.4的考试。2个半小时考试,紧张的不得了,第一次用电脑考试,全英文的试题,硬着头皮一点一点读。题目都是选择题,单选和不定项选择题,对于不定项选择题ABCDEFGH 8个选择项给你,猜对的可能性很小,不过能让参加考试的有思路上的方向。考试过程中有摄像头一直监控,考试的屋子很小,一排5个台式机,每个人有一个小格子,一张草稿纸,外面是嘈杂的市场叫卖声音,坐满了2个半小时,检查了3篇,我最后是82分考过的。

从那时起,我终于开始对自己有信心了,并坚信自己找到自己的方向。

2. SCWCD

考完SCJP,对Java的基础核心有所了解了,但还是不知道Java能干什么。想做Web开发,又要学JSP和Servlet,当时甚至都不知道,JSP与ASP,PHP的区别。按照SCWCD的考试大纲,自己准备复习。虽然,还有补习班可以去学,但动辄4000-5000元的价格,已经不是一个学生可以承担了。

通过Google,在互联网上找到一切可以学习的教程,几乎看了几百份的教程,去相关的论坛天天逛逛。10年前我逛学习网站coderanch,竟然还在: http://www.coderanch.com/forums

当时看着网站上,老外各种晒着自己的认证,真是羡慕嫉妒恨啊!我就憋着,什么时候,我也能晒出我的认证,让别人也羡慕嫉妒一下。嘿嘿。

一咬牙一跺脚用了一个学期,就在屋里把所有的SCWCD认证的相关知识都学透了。这里不得不提一句,当时我认为写的最好的参考书:“SCWCD 认证专家应考指南”。

8821265-1_w

我吃透里面每一句话,完成所有的代码实例。就这样,我在第二个假期回到北京,又考过了SCWCD的认证。

此时,开发一个网站,对于我来说已经很简单了。不仅可以做网站,还可以利用Web容器的机制,实现各种复杂的功能,比如认证和授权,定时器,JNDI等。

3. XML-141

连续考了2个SUN的认证,几乎让我破产了,都是1200元一次大本投入,好在都通过了,不然真的要哭死了。

大三的时候,学校成立了IBM俱乐部,我就报名参加了,加入俱乐部的好处是考IBM的认证从原价1000元一次,变成学生价150元一次。简单一算,考一次SUN的认证可以考8次IBM的认证,接下我的重点马上转向IBM认证。我当时应该所有人中是最大的受益者了。

XML-141,这个认证是对我计算机软件基础知识形成最大支持的一个认证,让我认识到了计算机可以变成世界,也是我所有考过的认证中最难的一个。

这个认证的难点,主要在于知识面非常广,并与现实应用结合,所以对于当时我来说特别的困难。我将近花了1个月时间,从互联网上找到所有关于XML的资料,并每天晚上偷偷跑去旁听计算机研究生的XML课程,长期泡图书馆每天都盯着一本书 XML高级编程(第2版),这是一本看上去就不可能读完的书,16开1051页。伴着有点发霉的味道,第一遍读就花了3个月。对照着上面的例子,运行了所有程序。

507302-1_w

在这个学期结束的时候,我报名了参考XML-141的考试,虽然我认为我已准备的足够充分了,但是我还是高估了自己的基础知识,好像是48分没有通过。这个打击对于我来说是巨大的,我花了一学期的时间,几乎每天是每天12小时在学习,半年的努力竟然不能给自己划一个逗号。可能当时真的是自己没有企业应用的经验,很多案例题的解决方案都出了差错。痛定思痛,从图书馆借走了,“XML高级编程(第2版)” 背着回家了继续苦读。艰苦的又过了一个假期,我把 “XML高级编程(第2版)” 这本书一共看了3遍,而且把里面很多简单介绍的框架和程序包,都去对应的官网下载并运行。这1个月的补习,让我更加了解 为什么需要XML?XML能做什么?XML可以对原来方案有什么改进?JavaEE的Web容器中的以web.xml做为配置文件的意义!

再次开学的时候,我是带来卷土重来的决心回来的。开学的第三周,我又一次去考了XML-141这个认证,并且是90分的成绩通过了。这次考试的通过,我可能就已经具备了架构师的思考方式,并且很深刻地影响了我很多年的程序设计理念。

4. Websphere-285 & websphere-286

同是这个学期,我又完成参加了 Websphere-285和websphere-286的考试。对我来说,这两个考试基本上已经难度不大了,我是在一个下午,连续考了两门了,就像高考连考一样。最后很幸运的都通过了,并且没有给自己太大的压力。

Websphere-285,主要是考Websphere的家族产品,安装和使用。而Websphere-286,有点像SCJP和XML的结合,主要考如何用Websphere家族产品,设计基于JAVA的企业级解决方案。Websphere-286的证书,又依赖于SCJP的认证,考过了以后,Websphere-285很快就寄到了,Websphere-286还需要我先把SCJP的证书传真发给美国的IBM考试中心(就两张纸花了好几十块),这样就获得了这两个证书。

5. DB2-700 & DB2-701

DB2的认证,完全是无意所获得的。大三下学期,IBM的俱乐部开始推广IBM的数据库产品DB2,我也申请到了学生用的正版软件,然后就在自己的电脑上开始了各种倒腾。之前的专业课,学过MS-SQL-Server,对数据库有所了解。不过对于DB2来说,原来的基础知识是远远不够的。在DB2创建数据库,竟然要10行左右的命令,而不是像MS-SQL-Server点一个按钮就完成了的。

建库,建缓冲区,建表空间,定义分区大小,分离表空间和索引空间,再建Schema,建用户,分配权限,完成上面的整个过程,才能开始创建表,然后建视图,定义触发器和存储过程,性能监控,SQL执行计划,再通过JDBC与Java连接。。。一大串东西走下来,内容是丰富的,过程是复杂的,还需要细心整理各种命令脚本。不过对我来说,DB2已经没有特别难度了,只要一步一步仔细地操作一下来,就可以完成了。

DB2-700如同Websphere-285一样,主要是考DB2的家族产品,产品线,安装和使用。而DB2-701就考到了,从建库到存储过程,再到SQL优化,和最后的数据库案例设计。

一个学期又完成了2个认证,到大三结束的时候,我已经有了7个认证。

6. SCDJWS

这些认证意味什么?我开始的时候,很迷茫。当初的想法,是很天真很幼稚的,以为有了认证就可以去找到一份不错的工作;以为有了认证就可以直接去做架构师。但当你去找工作的时候,亮出认证的那一刻,你会发现,招聘的考官仅仅是有点的好奇,拿着各种认证证书,简单扫一遍,然后就是放到旁边,就跟认证不存在一样,继续问着他们那些应届毕业生在课堂中应该学到的那些问题。

我坦率的讲,我不是学计算机的,并且当时的确不了解 教课书里的算法,不会用时间复杂度和空间复杂度去解决数据结构中树或图的问题,我也不懂C和C++。回想我学的Java的所有知识体系中,都没讲要特别地要用Java去实现这些算法,JDK中的各种基础包已经封装好了这些算法。虽然当时各不理解,也几乎没有获得大公司的offer,不过我还是相信自己选的路,因为我知道我能做什么出来。

毕业了,回到北京。通过社会招聘,投简历,很容易的就找到了一份工作。几乎是回到北京的第二天投的简历,第三天就去面试,第四天就上班了。看着别人应聘的辛苦,我的这种上班速度还是有点小快呢。

从之前的面试经历,考认证已经不再是为了找工作了。我遇到的99%考官都不知道,认证是个啥玩意,有个别人的会说,我们这里招过获得SCJP认证的人也挺一般的。所以,我觉得中国和美国在教育上的差距真的是不可逾越的鸿沟。

看到coderanch上那些晒认证的美国人,无一不是通过认证获得了与自己付出相对应的工作,而在中国知识确是无法量化的。在我大三的时候,有个印度的朋友,获得SCJP后,向我请教如何学习Websphere, DB2, SCWCD,并想继续考认证,而且目标很明确的告诉我,有了认证就可以申请去美国的读书了。再一次的心理落差,让我感觉到中国教育的落后,中国人比印度人的出路都少。

从这以后,我考认证就不以找工作为目的了,而变成了为了丰富自己的知识结构而参加的考试,从而给自己的阶段性学习划上句号。

在XML成为标准以后,WebService和SOA成为后来的大火大紫的技术热点。为了明白底层的原理,我又开始准备SCDJWS的认证考试。很庆幸的是,有了XML的基础,在学习WebService的基础的架构的时候,没让我走太多的弯路,像DOM,SAX, SOAP, WSDL, UDDI, JAXB, JAXP, XSTL, XPath, XPointor等的各种技术规范,我都快速熟练地掌握了,对于SOA的框架层次理解地更清晰。虽然工作中难以用到这些,但很多时候别人的问题我已经能通过原理做解释了。我自己已经开始构思自己未来的系统了。

就算基础很好,学习SCDJWS也花了我半年的时间,白天上班晚上学习,拿到这个认证也是不容易的。

7. SCBCD

说起EJB,曾经是Java程序员都希望追求的技术,不是因为EJB有多牛,而EJB足够复杂。在Spring出现之前,Java社区的开发都是来自于SUN, IBM, Oracle的声音,他们在尝试用Java构建整个的软件生态系统,其中EJB就是SUN的企业级应用开发规范中必须的作为核心的一部分,分为Session Bean, Entity Bean, Message Bean。当然这个方案的实体Bean部分的设计比较复杂,比今天的Hibernate的复杂度要高好几个量级。BEA公司基于EJB做的宠物商店的demo,动辄就是上万行代码,让Java程序员感觉这才“高大上”的程序开发。

9037541-1_w

后来Spring框架出现了,expert one-on-one J2EE Development without EJB 一书动摇了大型软件厂商对企业级应用的定义。越来越多的复杂应用,开始像Spring的IOC模式迁移,Java开始变得更轻更自由了,Apache中的很多项目也开始基于Spring去重新构建,或者提供或Spring集成的接口了。后来,我们常用的SSH (Struts+Spring+Hibernate) 变形成了Java的Web开始的MVC铁三角组合。

当Hibernate在持久化层获得市场上的巨大成功以后,SUN开始重新定义EJB的规定,设计EJB3.0来轻量化EJB2.x,减少开发人员的准入门槛。

此时我依然是SUN的忠实粉丝,期待着EJB3.0的改进,我又完成了SCBCD的认证考试。而讽刺的是,完成考试后,我决定了放弃所有的ORM映射的框架,用iBatis的提供的原生SQL来实现持久层调用,同时自己写了一套基于MyBatis(iBatis)的持久层工具,更快速和轻量的构建我自己的Java系统。

8. SCMAD

SCMAD 这个认证是针对 JavaME手机移动的应用开发,考这个认证就有点奇葩了。当时,只是为了丰富自己的知识,虽然做半年过手机游戏,但没有理解很深,以后也不知道有没有机会再做手机相关的应用,为了完善自己的知识结构,从而考的SCMAD。

这个认证考试的时候,已经是我工作的第三年了,我已经没有太多的时间学习了,而且会很容易被身边的其他的事情所影响。复习过程中,虽然整体内容不太多,而且自己也有了一定的实际经验,但是拖的时间很长,花了将近一年的时间复习和准备。最后,也是考试券快过期之前完成的。

从2003年底大二开始到2008年初,5年时间我一共完成了10的认证。回过头来,我自己都不知道,当时哪里来的学习动力,几乎是一件不可能完成的事情。如果没有这些认证所学的基础知识,我现在又何去何从?

一篇博客,记录自己以前的学习经历。告诫后人珍惜时间,未来的成就,都是之前的积累,爆发就在未来的某个瞬间。

转载请注明出处:
http://blog.fens.me/architect-certification/

打赏作者

This entry was posted in IT相关知识, JAVA语言实践

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

21 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
ypchen

让人想起某句话 “考而不死是为神” 丹神威武!!!

Conan Zhang

过奖!雁平足迹广阔啊,今天刚写的文章,就被你发现了。

ypchen

这不是来你博客学习的嘛

Conan Zhang

你想学的内容,还没动手写呢;应该这两天就会动手的,其他的章节,基本都整理好了!

leizhou

真是大神了,给跪了。。。

Conan Zhang

坚持 + 努力

walt you

看了这个,真心觉得前面的路还有很远很远,要继续努力,希望能多多向你学习看齐!

Conan Zhang

加油!

yisuoyanyu111

好吧,神了,关键是坚持啊。现在又是一个技术爆发的时代

Conan Zhang

打牢基础知识,再坚持学习。

Kongnuan Zhao

偶像不是计算机专业的呀~

Conan Zhang

计算机是自学的,:-)

Kongnuan Zhao

那是什么专业的呢~有这么多课余时间去学习这些,佩服!

Conan Zhang

课余时间总是有的,比如 逃几节吹水的课,有节制的打打游戏或看电影,少点社会活动。大学生时的日子,还是挺轻松的。

龙猫宝贝

现在想想大学时间真的浪费了好多……

Conan Zhang

大家的体会都差不多,呵呵。

伟 戴

张丹老师,我有点java的基础,在学hadoop,可是最近想学点Web的开发了,不知道是选择JSP比较好,还是PHP比较好啊,求教

Conan Zhang

开始不要学太杂了,找一点花时间突破。JSP,PHP各有利弊。

bingo

从昨天寻找websocket 看到你的博客,挺震惊的。现在我大四,从一个小公司实习回来。也是学java的,也非计算机专业,但和计算机相关专业。基础比较薄弱,一直在补。看到老师对技术的热爱,让人佩服。

Conan Zhang

边做边学,慢慢补充基础知识。

[…] 最后考试通过了,也算是对于自己学习能力没有退步的一种肯定。现在,我已经有11个IT认证了,前10认证的考试经历请见文章,那些年考的那些认证。 […]

21
0
Would love your thoughts, please comment.x
()
x