RSS 2.0 Feed
Certification
摘要:我的MCSD梦(一)前言:这个题目其实我很早就想写了。我不知道这篇是不是个开始,也不知道自己能不能把这段经历一直写完。因为一方面,我不知道自己能不能坚持每天都写一些,另一方面,梦现在还仍然只是梦,虽然它已经实现了4/5。我只是希望通过这些不成段落的文字记下自己从一个愤世嫉俗的摇滚青年渐渐成长的曲折道路,希望我所记录的这些能给后来者们一些启示。 在Java/Cisco/Oracle认证大行其道的今天,我无法忘记曾经对自己许下的承诺,在三个月前离开国内最棒的本土咨询公司最棒的业务部,全心投入到MCSD.NET的奋斗之中。 第一次听说微软认证是在大二(与很多人比起来,这个时间真的是很晚了)。那时的我深深厌透了自己的经济学专业,整日逃课。当时我能弹一手好吉他,是学校公认的第一把吉他手,每天多数的时间都是与吉他和乐友们相伴。有一天晚上,我和我最好的朋友、也是一位吉他高手坐在宿舍楼前。那小子一反常态,没和我聊我们都喜欢的音乐,而是谈起了他的一个新想法--考微软认证。 那是我第一次听说有这么一种认证。具体的认证类别我已记不清了,现在回想起来最有可能是MCSE。留给我最大的印象是考(学)这个认证很贵,大概要上万元!这个数目即使在今天也会让我倒吸一口冷气。我简直不相信会有人去考它,至少像我这样的穷小子是没戏。 从那天谈话以后,微软认证就被深深烙进了我的脑海。我不相信自己有勇气和实力去走那条路,尽管我也知道真的有很多很多人从那路上走了出去。 哦,对了,还有一点忘了提:当时的我还是个纯电脑肓。别说编程,就连最基本的操作也……,算了,别说出来丢人了:( 我的MCSD梦(二)四年大学生涯就在逃课、弹吉他和玩乐队之中度过了。毕业后我进入上海信息中心下属的一家网络公司做了一年半的编辑。 在这一年半的时间里,我深深地爱上了写软件,爱上了Delphi和Borland。记得听说李维(Borland台湾高级顾问,技术作家,写过几本很棒的Delphi/C++Builder/Kylix专著,在Borland技术圈内深受爱戴)要去上海做Web Service讲座时,我兴奋得连续几天茶不思、饭不想。讲座以后把领到的技术资料和印有Borland logo的打火机像珍品一样保存。 那时我还对Linux感了兴趣。Linux创始人Linus Torvalds的自传Just For Fun中译本《乐者为王》刚一推出后,我就马上买了一本,并把里面的内容一字不漏地敲进电脑(顺便也复习一下有点荒疏了的五笔,活活筋骨:),然后放到e书(http://www.eshu.net)里,颇有Linux传教士的意味(可惜我自学的那些小技巧根本就算不上什么)。我知道自己单从技术上很难给国内开放源代码社区做出什么贡献,就只好以这种方式来表达自己的热情了。只是后来一想,这样做可能是侵犯了Linus的版权,因为那书本身好像并不是GPL的:) 在那段时间里,我痛恨微软,恨它的垄断,恨它的霸道,甚至恨它的好。也难怪,身处Borland和自由软件圈内的人,好像很少能以平和的心态面对微软的,至少当时的我做不到。 我的MCSD梦(三)国企的工作一天比一天乏味,更为可恶的是,我所在的那家公司不但丝毫不培养员工,而且还想着法儿地克扣工资。我入职时他们承诺的月薪到我辞职的那一天还仍然是打着折扣;而公司高层却分车分房,甚至出国旅游(美其名曰“出国考察”)。我无法再忍受了。我必须离开! 在那段日子里,我一边找着北京的工作,一边自学起了MCSD(VC track)。我知道,虽然自己一直很热爱编程,也给自己和公司写了好多软件,但我需要一个系统的学习过程,也需要一个业内都认可的证明。软考一年只有一次,我需要等大半年的时间,而去意已决的我实在不想在公司里多留一日;SUN认证非常火,可我对Java的兴趣不大;Borland新推出了Delphi认证,Delphi也是我非常喜爱和擅长的工具,可Borland认证的名气在当时的业内并不响亮(到现在好像选择Borland认证的也不多,当然数量并不是衡量认证水平的标准,我当时只能评感觉做决定,因为我的时间太少了)。权衡再三,我决定选择微软的MCSD。 对于是考VB还是VC我感到很矛盾。VB学起来很容易,能大大缩短获得认证的周期;VC非常难,但它的功能异常强大也是不争的事实。而且MFC与Windows平台结合地非常紧密,对MFC的了解将能极大地促进我对Windows操作系统的理解。因此,考虑再三,我还是决定迎难而上,选择VC。 考虑到自己对VC的了解甚少(在那之前,我仅大致学过一遍David Kruglinski的《VC技术内幕》,VC的应用水平还属于入门级),为了能快点学成通过认证,我决定参加CTEC的培训。了解了一下,上海最棒的CTEC应该算南洋,所以就跑过去报名。可那里只有VB的班,要学VC得等三个月!我当时就有点方寸全无--我一定要学VC,可也不能真等它三个月呀?想来想去,我咬咬牙,反正编程也是我一路自学来的,就自学MCSD吧!买了一套MOC教材,我信誓旦旦、咬牙切齿地开始啃起了VC。 从那开始,我几乎取消了一切业余活动。把吉他扔在一边,全身心地投入MCSD的学习过程之中。那时我住在公司的集体宿舍里,我的室友在热火朝天地准备交大的计算机系研究生考试。我俩有如患难兄弟,每天发疯般地共同学到深夜。实在憋不住了就互相嘲弄一番,然后把音箱打开听听Beyond。我在墙上帖了一张纸(其实就是超市买东西的小票),每天都要在上面记上学到的页数。室友后来帖了一张大的(那是他一次疯狂采购的证据),上面记的是他的每月复习计划。后来这计划变成了周计划、日计划,并详细到了小时,一直帖到他考试的那天。 我的疯狂学习计划顺利地进行着,一直到今年2月末。来自北京一家著名的咨询公司的工作机会使我如愿以偿。虽然这不是一家软件公司,所做的工作也与软件开发丝毫无关,但一想到可以马上离开让我做呕的公司,这本身已经让我欣喜若狂了;至于编程和学习,我完全可以利用业余时间完成。于是,我干净利落地结束了在上海的工作,取下墙上的那张纸,带着我的书和梦想只身来到了北京。到了新公司一个星期后我知道了,我的MCSD梦要搁浅了…… 我的MCSD梦(四)这是一家很棒的咨询公司,它的汽车咨询业务即使是在亚洲地区也几乎无人能敌。然而,优秀的代价是无穷尽的付出,从加入公司的第二天开始,我的生活便彻底地改变了。开不完的会,设计不完的问卷,做不完的访问,写不完的报告……从proposal到presentation,没有休息,没有周末,没有放松,我就像一台机器一样终日运作,我的心都麻木了。 我不是一个吃苦怕累、不愿付出的人,可我也无法勉强自己的选择--我爱编程,尽管我不敢奢望能得到一份正式的软件开发的工作,但我希望自己能有足够的业余时间去继续这项爱好,业余时间是我实现梦想的唯一寄托,可是忙碌的工作却让我连一段完整的时间都拿不出来,更别说用心地去钻研什么了。如此下去,我只能在忙忙碌碌中忘记自己曾有的爱好和曾经的梦想,可我真的不能失去它们! 我把自己原本风平浪静的生活带向了痛苦的抉择--要么留下,成为一名优秀的咨询师,要么马上离开,去实现我软件开发的梦想,去走一条更为艰辛的不归路。 我已经24岁了,再也不能漫无目标地随遇而安了。我要选择自己真正喜欢的事业,我要创造自己真正喜欢的生活! 走! 我的MCSD梦(五)失业是一件可怕的事情!它的可怕不单单存在于经济上的沉重压力,更重要的是对一个人精神状态的不断施压和摧残,在这种状态下,空虚就意味着无穷无尽的恐怖和不安。我对这一切早就做好了准备,我相信自己不会被失业所吓倒,因为我早已经给自己找到了目标--拿下MCSD,充实自己,最后去找份软件开发的工作! 我是个认真的人,认定的目标一定要去实现,哪怕再苦再累。我重新找出了原来那些的VC资料,准备继续原来的征程。但同时我也了解到微软MCSD认证已经有了.NET版本,而针对.NET开发的大量资料也已经铺天盖地。说实在的,我特别留恋VC 6.0的开发方式,不愿轻易改变自己的开发习惯;但我对新技术有着天生的好奇感,越是了解.NET平台和.NET开发的一些好的特性就越是想尝试这种新的开发方式。于是,我给自己两星期的时间来做这个决定。 为此,我买了一些.NET和C#开发的书籍,对照着自己当时已经掌握的VC知识做了些比较,结果没等我真正做完比较的时候,自己已经被.NET Framework和C#给深深吸引过去了。我无法用任何语言来形容.NET给自己留下的深刻印象,因为.NET最大的特点就是“只可意会不可言传”,我只觉得自己马上就进入了一个全新的世界。在这个世界里一切都是崭新的,都印证着我们所处的这个时代和所处领域的最新的成果。我感觉自己已被一种幸福和强大所包围,它使我深刻地感受到了自己的渺小,也让我立下了决心--自学.NET! 我的MCSD梦(六)更加忙碌的日子开始了。 7月20日,我开始了MCSD.NET第一门--70-315的学习;8月27日,我在中科院软件所的MCP考场里拿下了它。当看到屏幕上显示出Congratulations的字样时,我激动得几乎要哭出来。 是啊,也许对于一位技术高手来说通过一门MCP考试是多么轻而易举,多么地平常,可对于承受了巨大经济和精神压力的我而言,顺利通过第一门考试无异于世间最大的奖赏和鼓励,它使我感到了自己一个月的辛苦努力终于有了回报。更为重要的是,它使我肯定了自己的学习方法,让我对自己这种破釜沉舟式的奋斗更加自信。我感到眼前的路不再那么模糊不清,而自己的目标也越来越清晰了。 从那以后,我逐渐总结出来了一条很适合自己的学习方法:先看辅导书,在看书的过程中动手做大量的demo以巩固学到的知识,然后对照着辅导资料所提供的一些习题查缺补漏。 我看书的习惯是找两本(或两本以上)不同的书来对照进行,比如说微软出的Self-paced系列和Que的辅导用书(从网上下载的电子版,因为国内还没有引进)。微软教材的特点是按照知识本身的结构来划分章节,而Que的特点则是严格按照考识知识点来进行归纳。这样比较下来,自己对于知识的理解以及对考试要求的把握都有了提高,从而既避免了学“跑题”(即在考试范围之外的知识点上做过多纠缠,毕竟自己的时间非常紧张),又避免了过于追求考试通过而不顾知识本身的内在联系,因为我的目标不单单是通过考试,而是要在这个过程中掌握.NET开发技能,为以后从事相关工作打好基础。 在看书的过程中做大量的练习可能是学习软件开发的最佳办法,我所学到的知识也是在这个过程中被真正地加以理解和应用的。有趣的是,我有一个很好的习惯,那就是经常自己给自己出题。记得在学70-316的Code Access Security这部分时,我给自己设计了大量相关的练习,其中有一个关于扮演(impersonation)的练习竟在考试中几乎原样地出现了!此外,我深信学以致用的道理,在学ADO.NET时就把一些知识点连起来写了个简单的“考点记忆系统”,专门把自己觉得有难度甚至无法理解的知识点组织起来,通过分类和加以不同的标志,让自己以非常形象的方式去理解和记忆,从而有效地提高了学习效率。后来,随着所学知识不断地增多,我又适当地在原来的基础上增加了新功能,比如说在系统的核心应用Serviced Component(尽管把COM+用在这么小的系统上有点大材小用了),通过Remoting把应用程序域(domain)进行扩展,应用Web Service来衔接系统的关键模块等。虽然在这个过程中遇到了大量的技术或非技术的困难(有一些问题至今还没有解决),但在解决这些问题的同时自己的开发能力也有了真正的提高。 我特别喜欢微软辅导书所附CD中的习题,记得70-315辅导书中所附的习题模拟软件运行总是有问题,情急之下我就动手破解了习题文件(Access+VBA)才算看到庐山真面目。此外,微软网页上推荐的MeasureUp给出的习题也给我很多启发,特别是其中的讲解更是值得品味。只可惜未注册用户只能获取10道题,不能不算是个遗憾! 我的日子就这样紧张而充实地进行着。在这个过程中我曾几次差点把身体累垮。印象最深的是考70-316之前的那段日子,由于长期昼夜不分的高强度学习,自己已经忘记了该怎样入睡,每每都是望着窗外从黑夜坐到天明…… 我的MCSD梦(七)8月27日,通过70-315;9月24日,通过70-316;10月22日,通过70-320;11月14日,通过70-229。 ? 我的学习计划顺利地进行着,由于每次都做了充分的准备(我的评价标准是当觉得再没什么可学的、心里一发闲,就说明自己该去考试了:),所以考试进行得也都很顺利。当然,让我真正感到高兴的是,自己真的从无到有地长了好多本领,最直接的衡量标准就是在博客堂上能看懂的东西又多了,呵呵:D 就这样,我--一个从北方偏远小镇走出来、21岁才接触电脑、从未受到计算机专业教育、甚至从未想过自己会去走软件开发这条路的年轻人,为了一个曾经遥不可及的梦想而心甘情愿地破釜沉舟。虽然这只是一段再平凡不过的经历,但它却是我生命中难得的一次磨炼。当我多年以后再去回首自己的往事时,我想我一定会清晰地记起自己在2003年所做的那个决定,一定会为自己敢于实现梦想的勇气而感到欣慰。 后记:真心感谢所有在我最困难之时给我以无私帮助的人--我的家人还有朋友们。是你们的人格、信任和爱心让我始终信心满怀、斗志昂扬。感谢所有博客堂的网友们--尽管你们可能从不知道我的存在,但你们的文章和文章中的你们却让我深深沉醉。...[阅读全文]

posted @ | Feedback (61) |

摘要:今天在MCP成员专用站点上申请了Welcome Kit for MCSD.NET,接下来就又是一段漫长的等待了。   考完试后我的计划是学习并动手做一个完整的ASP.NET项目,我选的是http://www.asp.net上的Time Tracker。这是一个相对来说比较简单的项目,但对我来说很合适,因为几个月下来,自己为了准备考试已经很少做像样的东西;特别是学到后面的MSF项目管理,整天与UML/ORM等为伴,更是把前面的ASP.NET等基础知识忘了个差不多。这时的我非常需要找一个不太复杂但结构又很完整的项目来学习和练手,而Time Tracker就刚好符合这个要求。   Time Tracker最吸引我的一是它不太复杂但却又结构完整(很典型的三层结构,层与层之间划分得非常干净),另外就是其中所附的源码查看程序,把项目的各个部分标示得非常清晰,同时有很棒的导航功能,特别适合我现在的水平(我到目前为止还没按正式的软件开发流程做过项目呢,都是按照自己的需要随想随写。在学MCSD.NET的过程中,我就不断地发现自己原有开发方法的不足,同时在书本和案例中学到很多很棒的开发方法,因此迫切地需要找一个项目来予以实践)。   经过今天一整天的学习,自己果真从中发现了好多有价值的设计和开发方式。比如先从数据层入手(当然前提是已经做好了周密的需求分析,已经撰写好相应的概念文档),在构建好数据库后再写出所需的存储过程(自定义函数、视图等,这一过程同样需要大量的use case来支持)来作为与逻辑层联系的接口。这样的好处是把数据层与中间的逻辑层彻底分开,既有利于代码共享、维护,又有利于把项目移植到不同的DB之上。   在逻辑层Time Tracker应用了一个共享组件——Microsoft Data Access Application Blocks,通过合理的代码封装把数据操作过程予以简化。而此前,我都是手工撰写ADO.NET代码的。   今天的收获主要就是这些,明天继续努力!  ...[阅读全文]

posted @ | Feedback (1) |

摘要:经过今天中午的一番苦战,我终于把MCSD.NET第五门考试——70-300:Analyzing Requirements and Defining Microsoft .NET Solution Architectures通过,从而获得MCSD.NET认证资格! 与前几门考试不同,70-300的成绩单上没有具体得分,只显示pass,看来微软在试题内容保密方面一直在做努力。考试成绩将在两个工作日内更新到MCP网站My Transcript中,届时就可以要求微软发送MCSD.NET的证书和徽标了。 从自己当初从单位辞职的那天起,六个月已经过去了。MCSD.NET从一个遥不可及的梦想到今天成为了现实,这阶段里自己的收获真的很多很多。我开始懂得,人生就是一个不断梦想又不断实现梦想的过程。 感谢家人的理解和支持,感谢朋友们的鼓励!...[阅读全文]

posted @ | Feedback (24) |

摘要:今天在中科院软件所培训中心考过了我的第四门MCP考试——70-229(SQL Server 2000实现)。这样,距离实现我的梦想——MCSD.NET就只有一步之遥了。   考完试以后的感觉仍和往常一样,再没什么惊喜,因为自己已经为这一目标付出了太多的努力。回想当初的自己,为了那份难以割舍的热爱而毅然辞职选择自学MCSD,想起自己在酷热的七月里挥汗如雨地刻苦学习,想起自己第一次迈进考场时异常紧张的心跳……我第一次感觉,似乎正是从辞职的那一刻起我才真正地懂得了自己要做什么,自己该怎样去做。   接下来的一门70-300可能是MCSD中最难的一门了。现在自己手里连一本教材也没有,外面市面上也没有任何相关的教材和资料,应该从何处学起呢?哪位有经验的朋友能给些建议吗?...[阅读全文]

posted @ | Feedback (0) |

摘要:本来计划上周三考的70-229,因为最近在试Office 2003中的新功能而推迟了一周,昨天又因自己尚未准备好再度推迟一天。这样一来,觉得自己似乎都快要习惯推迟考试了。准备不好就晚几天,虽然这样做可行,可推迟的时间都是因为自己计划不周或浪费而导致的,所以每推迟一次自己心里都会感到深深的内疚。   说些其它的吧。我的MCP和MCAD Welcome Kit一直未收到,昨天我实在等不及了,便按照一份资料上提供的邮件地址和微软方面进行了联系。对方回复得非常快,经两次确认以后,发现是自己没在MCP专有站点上注册而导致。其实这个站点我原来曾试过很多次,可每次提交的注册信息都不对,我甚至怀疑自己在MCP考试注册时提交的资料是错的;而经微软方面回复后再去试,竟然马上注册成功了,真的很怪!在Program Benefits中找到了Welcome Kit一项,确认了自己的邮政地址,然后提交了发送Welcome Kit的申请。接下来应该就是等微软方面发送一封邮件进行最后的确认,然后就可等待寄送了。   可是这封确认邮件到今天晚上还没有收到,同时我在微软站点上订的MCP Flash的确认信息也没收到。看来我还得再联系一下。   另外,我的MCSD.NET应该会在圣诞节前考下来,在那之后再去学什么我有点犹豫不决。是MCDBA还是MCSA?其实最后我是要考MCSE for Windows 2003的,两条路算是殊途同归了。...[阅读全文]

posted @ | Feedback (0) |