白菜芯的菜田

关于选择方向

最近一直在考虑如何选择自己上研究生后的方向,因为对计算机科学类的研究方向也不是很了解,最近一直在阅读关于不同的研究方向和它们的应用的书籍。最后终于确定了自己的研究方向,总结一下自己的思考吧。

 

我认为自己不属于那种埋头研究型和论文型的人才,我更希望能把知识应用到软件的开发中,做出一些实用的激动人心的软件来,所以理论研究的路线我就不考虑了。从实际的应用出发,我认为软件粗略地可以分为三类----专用型软件,企业级软件,个人应用软件。当然这三类之间界限不是非常的清晰。

首先,专用型软件,类似Photoshop,一些图形图像工作站中应用的软件,MATLAB之类的。人们对于这类软件的需求是比较固定的,变化相对较少。这类软件的市场相对成熟,一些巨型公司不断应用更新的技术去满足用户的这些需求。

 

其次,企业级软件。这种针对大型企业,多用户,对软硬件需求都较高。这种软件又可以分为两类,一种是通用性企业软件,是基本每个企业都需要的,如财务,人事管理,企业运作,ERP之类。这类软件发展已经很完善,SAP、用友、金蝶等大公司已经占据了市场,从某个层面上讲,这些企业不是在卖软件,而是在卖他们的企业管理思想。另一类就是专门针对企业的业务流程的定制化软件,这类软件发展得前景很大,越来越多的企业将对其业务流程进行电子化。但这种软件的需求需要较强的背景知识,目前国内的软件团队往往往往缺乏这些领域知识,所以开发前需要大量人力物力投入到了解业务需求以及和客户沟通,而最终结果往往不能很好满足客户需要,这种高成本高风险的开发方式最终会被取代。随着需求的发展,应该会有更多针对单个领域进行软件开发的团队,他们都是这一领域的专家,代码可以极大程度上复用,和客户沟通更容易。同时,针对市场预测,数据存储和计算的需求也会相应增强,针对专业领域的技术如计算机视觉,以及高性能计算将会有很大的用武之地。

 

最后,个人应用软件。一类是走向专业化的个人应用,比如游戏机,独立的硬件平台,专门为这一应用进行过优化。另一种软件则在向云端进发,谷歌的设想会慢慢地变为现实。个人pc的地位逐渐被更小巧,便携,拥有网络接入的手机,PDA以及上网本所取代。这些网络接入设备将越来越流行,无线网络覆盖和网络带宽将不断提高。但目前平台非常多样,软件之间的移植比较困难,往往是针对一个平台进行开发,由app store集中管理,而开发者很多是个人或小型的团体,未来应该会出现更多的专业平台应用开发商。因特网上的数据越来越多。有人形容因特网实际是一个巨大的数据库,只不过里面的数据以非形式化的方式以自然语言存储。那不必说,数据库技术必然会大有前途。对这些海量数据的管理、运算、抽取知识也将是一个发展的热点,就像谷歌做的那样,这需要数据挖掘、搜索、机器学习、人工智能方面的技术,来处理这些数据。相应高性能计算也会有强劲需求。软件的因特网化对信息安全也会有巨大需求。

 

最近在看一本叫做《集体智慧编程》的书,里面介绍了在web2.0时代,利用海量的世界各地用户制造的数据进行处理的技术,如推荐系统,搜索,文件过滤等等。世界各地大量的人产生了海量的看似杂乱无章的数据,如何从这些数据中提取出有用的信息是一项非常有挑战性的难题。谷歌利用复杂的算法,从因特网中找到用户需求的网页,成就了如今的辉煌。

 

分析完这些技术的前景,再分析我自己吧。我一直对软件工程有一定的兴趣,但没有强烈到让我下定决心一直把这一领域作为我的方向,我感觉软件工程的知识是每个开发团队都必需的,不管哪一领域,软件工程对于开发都是必需品。老师给我的建议是,选自己的方向首先要不讨厌它,在你比较有兴趣的领域中再去选择一个更有前景的。综上,我决定开始了解数据挖掘、和机器学习以及人工智能关于集体智慧方面的知识,争取在研究生之前先对这些有初步的了解。

 

个人了解非常有限,片面的分析了一下软件的方向,希望大家能多多批评指正:)

posted on 2010-03-21 15:57  白菜芯  阅读(1753)  评论(10)    收藏  举报