根尖周病治疗原则应是:软件人才的“钱”途何在3 - 中国计算机报 - 刘洪宇

来源:百度文库 编辑:偶看新闻 时间:2024/04/20 17:04:00
如果去问我的同学以后打算做什么,不少人会说不知道。而正因为不清楚,我们都会努力地学好每项知识,把基础知识学得扎实些。一些人可能会从事科研工作,但更多人还是要走进企业,成为软件开发人员。奇怪的是,在这样一个应用性较强的专业中,我很少看到有同学到企业中去了解或实习,这样就很难知道企业到底需要什么样的人才。有人简单地相信学好主线课程就是正确的,有人则对基础知识重视不足,这些都是因为他们不知道这些知识到底有什么用。没有大目标的学习一定会是疲惫的。

独立操作,却没学会共事

北大的同学都喜欢用一款叫Maze的P2P软件下载资料,Maze正是我院的几个研究生合作开发的。从创意到实现,他们仅用了3个月,从这里我们可以看到团队协作的力量,然而这样的学生团队却并不多见。

在我们的学习环境里,更多讲究个人能力的培养,也就是面对问题能否通过个人力量独立解决,最多也不过是鼓励同学通过讨论获得思路,然后独立实现。在这样的氛围中,几个人在一起共同完成一个程序似乎是被严格禁止的。在实习中我了解到,工作后的软件开发几乎都是团队协作的过程,这不仅需要个人编程能力,更需要与同事的沟通能力以及管理、组织能力。

不实战就不知道差距

在几段实习工作中,我发现:这些企业架设的服务器是Linux或FreeBSD平台的,使用的程序设计语言大多是Java;他们用JSP做网页,要求软件附有完整的帮助文档;要求程序不光性能好,界面也要美观……很多要求都与我们在校进行的“编程”有着明显差异。

在学校方面,老师已经开始有意识地强化训练我们的说明文档编制能力,也要求我们将程序写得可读性更好。但学校单方面的努力还远远不够,站在自身的角度,如果希望能更加适应未来的工作环境,最好多去接触社会,在锻炼中扩展知识面。

Part3

走向优秀路有多远

——为程序员成长指路

John Kaster

Borland 软件公司 (美国)首席工程师

拥有高水平的开发技术,需要保持好奇心,而与此相关的超强吸收能力和创新精神也是必不可少。

Borland公司在软件行业中耕耘了20 多年,对软件开发行业有着深入了解。我们认为,作为软件开发从业人员,要想实现个人成功,两方面的素质是不可或缺的:一方面,是对开发人员个人专业技术方面的要求。另一方面,是开发人员适应整个行业的发展特点,在团队协作、整体软件开发质量管理和交付方面具备更高的认识和能力。

软件开发是一个脑力非常集中的工作,这个行业的技术更新和发展非常迅速,开发人员想要了解技术的发展,跟上技术变化,拥有高水平的开发技术,这当中要保持好奇心,而与此相关的超强吸收能力和创新精神也是必不可少。这会是在就业市场和未来的职业生涯中保持强势竞争力的最佳手段。参加各种技术大会是一个很好的学习途径,Borland 每年举办的 BorCon 大会就是这样的平台,让大家进行技术交流、激发创新、把握新的技术方向。这个大会的技术性很强,内容也非常深入。同时我们作为一个独立的平台厂商,能够得到不同阵营的合作伙伴支持,在以往的 BorCon 大会上,像微软、SUN 这些厂商都能走到台前,与大家共同交流技术发展方向,这对开发人员来讲是不可多得的学习机会。

对于第二方面的素质,我们认为,在目前的市场环境下,软件要成为完整产品,技术只是一方面,同时还要求更高的大团队协作能力,整体项目过程管理等考虑。而这些能力需要具备相应功能的产品和技术来支持,只有这些都具备了,软件开发才能真正有效。Borland已经形成了从产品技术到咨询服务的完整系统,使得很多软件公司大大提升整体运作方式。

对软件开发人员来讲,有一套完整的管理体系,或者管理平台是对软件项目的一个质量保障,是按照时间表及时完成项目的一个保证,同时不会超预算,对于项目的方方面面的风险控制都是一个有效的保证。

程勇中国科学院计算机研究所

项目参与是能否把知识用到实处的重要环节,从程序员开始,一直到更高层次,毫不例外,我们都是从实际项目中成长起来的。

成为合格的程序员显然是软件人才的最基本要求,很难想象连程序都写不好还能开发出高质量的软件产品。对于程序员来说,要求一定能够精通一门或两门程序设计语言,请注意,要求是精通。对于在校学生来说,学习C/C++或Java这些开发语言较多,这都是比较基础又必须熟练掌握的语言,但却能够利用这些语言开发出高质量的方法和类;一般而言,学校也会开数据库查询语言SQL这门课,这在实际中应用很多,也是应该熟练掌握;如果学有余力,还能自学使用某种开发环境(如Visual Studio、Eclipse),学会调试程序、版本控制的话,当然就更好了。可以说这些是程序员入门的最基本要求。对于大学生来说,做到这些并不难。

如何提高编程能力呢?途径无非只有两个,多实践,亲自编写程序,现在大学校园里程序抄袭成风,这就对自己很不负责任了;充分利用现有资源,包括书籍和网络资源,《C++ Primer》、《The C programming Language》、《Java编程思想》、《Introduction to Algorithm》这几本书都是我很喜欢的,而且也是很多同行证明的优秀书籍,值得仔细阅读,对快速提高编程水平一定会大有助益;此外,网上有很多程序员在一起交流学习的论坛,这些都是帮助自己快速成长的好去处。

系统分析和设计员作为更高层次的软件人才,还要求对客观世界及其关系具有深刻理解,并能统观全局。系统分析员成长初期,理论学习极为重要,深入研读《面向对象的系统分析和设计》、《UML手册》这些书籍有助于提升看待软件系统的视角。而培养系统分析和设计员最有效的方式还是参与实际项目,毕竟没有两个系统完全相同,分析和设计经验具有更突出的作用。(n101)