4年磨一剑----从零开始到成长为最年轻的非计算机专业系统分析员的历程
0 引言
2003年1月16日,也许是个永远值得我纪念的日子吧。这天我收到一个从软考办传来的好消息,我顺利地一次通过全国软件资格与水平考试最高级别——系统分析员级别的考试,而这对于一个非计算机专业学生,仅仅23岁的我来说,真是一个来之不易的成绩。虽然我不是全国最小的系统分析员,但也许是由于是非计算机专业年龄最小的系统分析员的缘故吧,这次考试能一次通过也会让许多人惊讶。网上也有许多同行发来了E-mail或在论坛上对我表示祝贺。我在高兴的同时,也觉得我能一次就成功拿下系统分析员考试,这与我平时的努力和4年来积累的大量经验分不开的,当然也与我出色的心理素质、沉着冷静的临场发挥分不开,我记得考试的时候我前面坐着一位计算机专业的学生,整个考场就我们两个学生,我们通过这场考试认识之后成为了好朋友,结果我通过了,他没有,真是可惜。许多同行和朋友纷纷让我写写自己的经验和感受,所谓“解脱之味不独饮,开心之果不独证”,我觉得自己在备考的过程中所遇到的问题也许是将来的考生也会碰到的问题,自己的经验也许对各位有借鉴作用,所以也就“好为人师”一回吧。如果说的有不妥的地方,我衷心希望各位同行高手能给予批评和指正。
准备系统分析员考试可以分为两个方面来谈,一是提高自身水平,二是针对考试的应试策略。这两者是紧密结合,缺一不可的。
1 提高水平
要提高计算机水平,我认为不懈的学习(书、报刊、杂志),不断的实践(装机、编程、做项目)以及经常的总结(坚持写技术日记,修正以往的错误)三者是分不开的。
1.1 不懈的学习
(1)基础知识
基础知识的学习,主要是书本知识的学习,也就是计算机专业的相关课程,如数据结构、数值分析的基本方法、计算机网络等等,是奠定基础知识的保证,是平时必须积累的,这些知识掌握了,一生都可以受益,而且,这种知识不是短期可以积累的。
另外,软件工程的书籍,如软件工程、软件需求、CMM1文档等,也必须在平时阅读。
对我个人来说,进入大学,不是计算机专业,却因为对计算机有着近乎痴迷的热爱,所以课外疯狂的看书。从大二起我开始旁听计算机专业的核心课程,并且在准备计算机四级和高级程序员的时候,将以前的基础知识又进行了一次梳理。所以基础知识不成问题。
(2)最新技术
计算机技术是一个日新月异的技术,每天都在发生着新的变化。所以,不管是不是一名计算机专业的学生,如果热爱计算机技术,就应该关注这些变化,经常看报刊、杂志、利用网络(论坛、技术站点)的便捷来了解最新的技术。经常看报刊杂志,经常上网了解和学习一些新的知识。如UML,净室方法,敏捷编程,极限编程。当然,有一个前提—--着手于自己的行业,将计算机技术应用于自己所处的行业,才能获得最大的学习效果。
我经常到图书馆看《电脑报》、中国计算机报、中国电脑教育报以及期刊,并且用一个专用的笔记本归类记录知识。
常去的网站:
www.cnitunion.com 中国软考联盟
www.csdn.net 中国程序员
www.sdmagazine.com 软件开发杂志(E文)
1.2 不断的实践
(1)装机
硬件:组装机器,维修电脑故障
软件:装系统(windows,linux),装通用软件Word ,excel , powerpoint等等
当时同学机器出了什么问题,都是叫我去修的。修的电脑多了,渐渐的,也就成了所谓的电脑高手。
(2)编程
Visual basic , powerbuilder , matlab , j2ee , .net 等。
一开始一有时间就跑到机房去上机,当时也没有什么计划,看着什么都新鲜,什么都想学。学到一点什么就上机去实践一下。后来就做一些小的计算程序。
(3)做项目
刚好学院课题组有相关的项目,需要人手,我就参与进去,将自己的水平又提升了一个高度,能够有全局观,学会与客户打交道,可以将学到的书本知识应用到实践中去,然后进行修正。作为课题组的核心系统分析员,我参与的所有项目都通过了验收,并获得了高度评价。我逐渐成长成一位系统分析人员,之后又通过计算机协会的活动认识了不少优秀的系统开发人员,能够进行交流,互相促进。并且成立了一个工作室----“远征工作室”,承担了大量的项目。在考试之前我做过多个相关方面的项目,积累了大量的经验。所以对于下午的论文就有话可说。
1.3 经常的总结
(1)技术日记
每天的技术日记,这是我在看电脑报的时候从EASPORTS的一个游戏开发组中吸取的经验,我觉得这是一个非常好的习惯。能够将每天自己的学习心得,不同开发人员的开发分歧意见都记录下来,然后思考解决方案。每次学习,都要注意学习笔记的总结。
我有意识的将软件需求、CMM中运用到自己的项目中去,这样就会形成螺旋式的开发和成长过程。在项目过程中,我自己还设计了进度表,对软件的进度进行控制。
(2)项目文档
经常对自己做过的项目做出总结,包括需求分析报告、开发报告和用户手册。其实,在技术日记里也许包含了这些文档的内容。总结性的文章(实际上就是一篇论文)是站在一个更高层次的地方来看以前的开发。这时我常常深有感悟。觉得以前的开发,其实可以做的更好,对于管理系统来说,一个良好的框架,非常有利于以后的扩展。
2 应试策略
系统分析员考试全称是“全国软件资格与水平考试系统分析员级”。其大纲中称“通过本考试的合格人员具有从事计算机应用系统的分析和设计的实际工作能力和业务水平,能指导系统设计师工作”。其考试内容分为三部分:计算机与软件工程综合基础知识、系统分析设计、系统分析设计论文。其中第一部分考试时间为150分钟,内容以计算机和软件工程中的基础知识以及最新技术的相关知识为主。第二部分考试时间为90分钟,内容以具体实践中的系统分析和设计方法为主。第三部分考试时间为120分钟,内容以一篇叙述实践中的系统分析过程的论文为主。
对于这三部分的内容,有不同的准备方法。
(1)计算机与软件工程综合基础知识
考前一个月进行强化记忆,毕竟,很多东西需要识记,数学基础和英语基础则是要平时注意的。
(2)系统分析设计
多看书、看报刊、杂志,网络期刊,必须平时多跟踪新技术,初步了解后,深入掌握自己所需要的技术。如敏捷方法,UML等。
强烈推荐郑人杰《实用软件工程》、《程序员》杂志。
强烈推荐以下网站:
www.cnitunion.com 中国软考联盟
www.csdn.net 中国程序员
www.sdmagazine.com 软件开发杂志(E文)
(3)系统分析设计论文
做的项目需要经常总结,同时参考一下别人的项目经验。
注意论文格式:
日本考试的那几页资料,是相当有用的,它描述了论文的格式,可以采用。也许看上去有点像八股文,但其实是考虑问题的一个比较全面的方式。我参照这个文本,修正了自己思考问题的方式,并且写出了自己开发系统的提纲。要应对下午的论文,就迫使自己全面对项目进行反思。这样又提升了自己的思考,从项目中发掘多方面的素材,如系统分析,质量控制,进度控制等等。
3 结束语
总之,我觉得,平时的项目积累和知识积累与考前的梳理以及书本知识的强化记忆是缺一不可的。
通过系统分析员考试并不能说明什么,只能激励自己更加努力地去学习、去实践。“以考带学”,是我一贯的原则,通过报名参加考试,给自己一定的压力,去将所有学过的知识,做过的项目进行归纳总结,以利于将来的学习和工作。
非计算机专业人员,大可不必跟风赶潮流,转行去学计算机,虽然各行各业都需要计算机人才,但是只有深入了解了该行业的知识,才能开发出好用的、让客户满意的软件来。所以我认为大家最好有行业背景,将自己本行的知识学好了,计算机终究只是一个工具,只是根据各个行业不同的需求学习不同的软件技术。一个原则:适用、好用就行,不要追求技术的多和花哨。
现在能够回想起来的也就这么多,希望我的这些经验能够对大家有所帮助。如果大家还有一些什么具体的问题或有什么更好的意见,请给我来信,一来可以鼓励我,二来也可以激发对系统分析员考试更全面的思考。我的email是 winboy20@sina.com ,欢迎来信。
更多信息见中国软考联盟:www.cnitunion.com 中国软考联盟