数据加载中……
关于选择方向

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

 

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

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

 

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

 

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

 

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

 

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

 

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

posted on 2010-03-21 15:57 白菜芯 阅读(1568) 评论(10) 编辑 收藏

评论

#1楼 2010-03-21 16:34 陈梓瀚(vczh)      

公司做什么都不是你说了算的,所以你只要考虑你在下班的时候自己想写什么代码就好了。现在假设你在下班的时候不会去接受一些外快,那么可以做的事情其实不多。

1:网站,不可能做。
2:企业用的**管理系统,不可能做。
3:开源小工具,无论是优化电脑也好,优化程序员写程序的过程也好,这个其实倒是挺好玩的。
4:Photoshop,要有专业知识。
5:Word,……
6:浏览器,……
7:编译器,……
8:操作系统,……
9:游戏,这个不仅要有专业知识,而且你还得会玩游戏……
10:……

--------

总而言之,如果你学到的东西不是非常多的话,那你只可能做3……
   回复 引用 查看   

#2楼 2010-03-21 16:52 麦舒      

引用陈梓瀚(vczh):
公司做什么都不是你说了算的,所以你只要考虑你在下班的时候自己想写什么代码就好了。现在假设你在下班的时候不会去接受一些外快,那么可以做的事情其实不多。

1:网站,不可能做。
2:企业用的**管理系统,不可能做。
3:开源小工具,无论是优化电脑也好,优化程序员写程序的过程也好,这个其实倒是挺好玩的。
4:Photoshop,要有专业知识。
5:Word,……
6:浏览器,……
7:编译器,……
8:操作系统,……
9:游戏,这个不仅要有专业知识,而且你还得会玩游戏……
10:……

--------

总而言之,如果你学到的东西不是非常多的话,那你只可能做3……

3 同样也不能做,因为根本不可能挣到钱,挣不到钱,项目就不可能维持下去。
   回复 引用 查看   

#3楼 2010-03-21 17:15 chenping2008      

数据挖掘 这个方向,范围好大好大啊
   回复 引用 查看   

#4楼 2010-03-21 17:36 别爱上哥,哥只是个传说!      

楼主在现么?上研究生能说明什么?我毕业,现在觉得后悔
   回复 引用 查看   

#5楼 2010-03-21 19:41 chenkai      

看完的你的文章 本来我不想把话说得太过于偏激. 只能说你是一个"可爱的研究生". 当然没有贬义. 你的想法怎么说没错. 其实在我日常工作接触来看. 身边并不缺乏有非常 nice idea的人. 坦白说很多. 有些人三年前我都已经接触了.3年后还是当初一般显得碌碌无为.给我最大感受是 务实这两个字.
李开复在访谈中有句话说得还是有道理的: 回到中国创建梦想工厂. 太多的年轻大学生来向他致函. 其实在这种现象背后让他感到一种担心. 他不仅强调要有idea的人. 同时更重要的务实 肯为他做实事的人.
有时说前进就是走入一种迷途. 方向固然很重要. 但如果除此自外如果没有务实 踏踏实实做事 很多人将和我身边同事一样 那些仅仅说说而已罢了....
   回复 引用 查看   

#6楼[楼主2010-03-21 21:37 白菜芯      

@chenkai
说得很有道理,谢谢。我相信自己不会是碌碌无为的人,行动是决定一个人是空想家还是实践者的标准,我会用勤力去实现自己的想法的。
   回复 引用 查看   

#7楼[楼主2010-03-21 21:41 白菜芯      

@别爱上哥,哥只是个传说!
我还没有上研究生,只是我觉得现在就出去工作的话,实际一点来讲,学历没有竞争力。另外,我的一位老师说过,本科去工作很容易被一个岗位所局限,你需要去适应自己的职业而非主动去选择适合自己的职位。所以我更愿意多用两年时间再扩充自己的视野
   回复 引用 查看   

#8楼 2010-03-22 00:17 陈梓瀚(vczh)      

@白菜芯
根据个人情况我认为本科也不一定就会被一个岗位所局限的。
   回复 引用 查看   

#9楼 2010-03-22 10:39 破刀      

你其实现在做什么都可以.
就看你出来工作进什么样的公司了...

如果可以的话, 你可以按照这些原则来挑选公司,
当然前提是你有得挑的话..
   回复 引用 查看   

#10楼 2010-03-22 14:07 疯狂的狐狸      

引用白菜芯:
@别爱上哥,哥只是个传说!
我还没有上研究生,只是我觉得现在就出去工作的话,实际一点来讲,学历没有竞争力。另外,我的一位老师说过,本科去工作很容易被一个岗位所局限,你需要去适应自己的职业而非主动去选择适合自己的职位。所以我更愿意多用两年时间再扩充自己的视野


没有工作过,就去读研,和工作了一年后再去读研,完全是两个概念

好的公司,根本不挑学历,看博主的意思是,想搞开发,不想搞理论研究,那么,先学好数学吧

除了这个,研究生课程大部分是你永远用不上的

数据挖掘、和机器学习以及人工智能关于集体智慧方面

这些东西,数学要求比较高,比如某人现在就很可怜的在自学某些数学科目

另外,基本的编码能力就不说了,这个是看再多书都没用的,研究生几年先写个10来W行代码吧(PS:低质量的代码就算了,越写越菜)
   回复 引用 查看