本站首页    管理页面    写新日志    退出



公告


 求真务实打基础,
 宁缺毋滥读好书。

数据挖掘青年(DMman)


我的分类(专题)

日志更新
问君能有几多愁,恰似一群太监上青楼
我和僵尸有个约会:灵异世界或真实存在?
赤壁(下)观后小感:雷人
英科学家:酒精和烟草的危害大于大麻和摇头
只有社会主义才能拯救世界(由金融危机引发
求职心得(非名牌院校 硕士 计算机)
省外就业协议录入
数据挖掘方面的资源、期刊、会议的网址集合
面试心得(摘)
为学
EI收录中国期刊-核心(2008-5)
混沌理论:随机世界的建模
分子计算机已经问世,纳米计算机指日可待?
绝对好用免费的网络电话
NLP:基于机器学习的人类思想及行为建模
Weka中用于组合多个模型的的装袋、提升
数据挖掘在企业中应用的四种途径
(转)几点做人做事的建议
大学计算机软件专业生应该学什么(转)
一个程序员对学弟学妹建议(转)

最新评论

留言板

链接

Blog信息
blog名称:DMman(数据挖掘青年)
日志总数:102
评论数量:564
留言数量:57
访问次数:1637653
建立时间:2007年4月9日




[程序人生]关于攻读计算机研究生的若干见解 
网上资源,  所见所闻

数据挖掘青年 发表于 2007-5-28 17:54:28

说明:转载于论坛,显然是一位图形学专业的研友写的。虽不完全正确,亦多有可取之处。与大家共享。       就自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。   如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上 更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是完全取决于你自己。需要特别说明的是,工作经验并不一定等于开发经 验,我见过很多工作2-3年的人,但是没有一点开发经验。   你说:“他们都有很强的开发能力,只是不太喜欢读书,也只是希望混个学历对今后在岗位上晋升有好处”,我可以向你保证,你所说的人绝对不是开发能力很强的人。因为,1)高手不可能不喜欢读书;2)高手不可能想去混一个学历;3)高手不可能认为晋升是因为学历的原因。   还需要说明的是,考计算机的人未必个个都是高手,严格来说,大部分都不会编程序。也就是说,庸庸碌碌之辈仍然占绝大多数。研究生毕业的师兄只拿2500 元左右的比比皆是,所以不要寄希望于拿一张研究生文凭出去赚高薪。但是,对于有实际开发工作经验的人,要想自己在3年之中有一个真正的提高的话,计算机学 院提供了广阔的平台。就我所知,每一个月拿2万以上的也有(上海育碧,图形特效算法设计)。所以,同为研究生毕业,能力的差距是极大的。所以,不要去问 “研究生毕业能拿多少?”,要问“像我这种水平的人,研究生毕业能拿多少钱?”这样人家才能够准确地回答你。   所谓“有实际开发工作经验”是指 你目前已经具备下列能力:1)你已经认为C++和汇编语言都是很简单的语言,并能够自如地运用;2)你能够在30分钟之内想到正确的五子棋AI算法设计思 路和方向;3)你完全理解STL为什么这么重要;4)你能够独立地解决所有的编译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问任何人;5)英文 网站是你的首要信息来源;6)能够读懂英语写成的国际标准,比如NTFS磁盘格式标准。7)你经常站在集合论的角度思考算法问题;8)能够理解一个简单的 驱动程序,能够理解一个简单3D交互程序;9)你能够认识到线性代数和概率论在实际编程工作中的极端重要性;10)你完全理解COM的设计思想,尤其能够 理解COM为什么要设计成这样;11)当我说到虚函数的重要作用时,你不会急着去找书来翻;12)你能够说出C++为什么比其他语言优秀的理由,记住这种 理由应该来自于你的开发体会,而不是因为其他人都这么说。此外还有很多判断标准,但如果你同时具备5条以上,可以认为你已经具备相应的开发经验了。在这种 状态下读研,你将取得读研效益的最大值。   读研最重要的是要明白你自己要干什么,不能等导师来告诉你你应该干什么。研究生的优势在于理论功底深 厚,思维具有穿透力,当然编程能力首先要过关,不要读完研究生还不知道MFC程序的WinMain函数在哪里。所以,研究生期间,你一定要做有理论深度的 算法设计,比如大规模数据的搜索算法,性能是首要考虑因素,不要奢望SQL函数能够帮你解决问题,所有的问题你都必须自己解决,你必须解决内外存交换的性 能瓶颈。再比如极品飞车的3D场景生成,图形变换,碰撞检测,物性模拟,纹理映射,灯光模型等等,这些都是可以保证你能拿到2万以上月薪的技术。如果你认 为这些东西太难,不可能做得出来的话,那么你就不适合读研。真的,要是你认为读研之后还是要去搞一般的程序设计,如信息管理系统之类的软件,那么你读研的 价值就完全不会得到体现,因为这些工作根本就不需要读研。   软件学院宣称培养软件开发人才,恕我直言,我从来没有看见那个高手是培训成功的。成 为软件开发高手的路只有一条:自学!软件开发中需要大量的编程实践和独立思考,只有在此过程中,你才能够逐步成长起来。软件学院宣称培养软件项目经理,这 更是搞笑,在某种意义上这是欺骗行为。学院里面能够培养出软件开发经理更是十足的谎言,软件项目经理必须,或者说更强调从战争中学会战争。没有实践经验的 项目经理就是绣花枕头一个。   实话实说,软件学院就是一个蒙钱的机构,公关工作做得很好,善于打广告,而且都是打着高薪的幌子,就如同外面的什么北大青鸟培训班一样。两个字:蒙钱!四个字:还是蒙钱!   总之一句话,如果你只想成为软件开发高手(比如认为会编驱动程序或杀毒软件就是高手的那种),建议工作,不要考研;完全没有工作经验的,也不建议考研, 你进来了只有瞎混一通。如果你有上述工作经验且想成为高级软件工程师(能够独立理解并设计出快速傅立叶变换算法的那种软件工程师)的话,那么强烈建议考 研。考研让你有3年放松思考的机会,也有3年让你思想和技术积累沉淀的机会。非常难得的机会。不考研的话,这种机会就是一种奢侈,可望而不可即的那么一种 奢侈。   所以,不管你是哪一种情况,都不建议考软件学院。除非你是女生,把能够成为一个研究生当着一生最大满足的那种女生。   1)关于读书的机会成本问题。读研的机会成本的确是很高。任何人都可以简单地计算出来。所以,我也不赞成所有的人都去读研。读研只适合那些痛感数学在编程中的极 端重要性的人。如果对理论工具和理论思维的极端重要性没有切肤的认识,那么读研的价值几乎为0;读研的好处在于:A,把你自己放在一个学术和工程的交叉点 上;B,让你具备了进入微软等世界顶级软件研发机构的可能性;记住只是可能性。但是不读研这种可能性为0;C,如前所述,如果没有读研的机会,你也就没有 静下心来好好钻研几年理论的机会;一边工作拿高薪,一边深入地学习各种理论,诸位认为这可能吗?我反正认为不可能,我觉得学习钻研理论最需要的就是一个长 期安静独处的环境,一边工作一边读书是不可能有这样的环境的,你会觉得每天都在疲于奔命。而读研正好可以提供这样一个环境。我同时还反对整天跟着导师的屁 股后面跑,这样会浪费很多时间。读计算机的研究生,主要依靠自己去查阅最新文献,自己去研读文献,和导师的口头交流一个月一次就足够了,前提还需要导师的 水平足够牛。如果导师的水平不牛,这也没关系,不理他就是了,自己做好自己的事情即可。   2)关于研究生教学质量问题。坦白地说,全国都是“洪 桐县中无好人”,尤其在计算科学领域,大牛极少。那为什么还要去读研?大哉问!把读研的收获寄托在名校或名师的名我认为气上,是注定要失败的。读研全靠自 学,研究生之间的差距全部体现在自学能力上面。又有人问,既然是自学,为什么非要读研?回答是:因为读研就是为你买一份保险,就是买一份你自学三年之后不 会失业的保险。这份保险主要是一种心理上的后盾,让你在自学过程中经得起诱惑,能够从容镇定地去追寻计算机理论发展的坚实足迹,从欧拉,费马,高斯,康 托,图灵等巨匠那里寻找方法论的珠宝。倘若没有这份保证,你在家里面自学3个月,保证你会被失业的压力压得喘不过气来,何谈安心学习?   3)关于实战经验与理论学习的优劣问题。这没有定论,如前所述,管理信息系统,设备驱动开发,工具软件开发,软件病毒剖析等等这些工作不太需要创造性,需要的是 耐心和经验,需要的是对既有规范的准确理解,这类开发工作最适合在实战中提高,理论学习没什么作用。但是在人工智能,模式识别,图像压缩,虚拟现实,巨量 数据检索,自然语言理解,计算机图形学等等领域,理论学习就占据着绝对的统治地位!这些领域的突破对人类的生活的影响是极其巨大而深刻的。某些领域处于一 个极其快速发展的态势之中,比如计算机图形学,相信诸君能够从众多3D游戏的灿烂辉煌中体认到我的这种说法。在这些领域,如果没有扎实的理论功底,一切都 是那么遥远,不管你花了多少时间在编程上面。   4)关于高级研发人员的知识结构问题。首先声明,我不是一个纯粹理论激进分子,即认为除了理论之 外,一切都不重要。我认为,纯熟的编程技能是最基本但也是最必不可少的技能。没有这个基础,一切计算机理论就是空谈(研究图灵可计算性理论的研究者除 外)。有了这个基础之后,下列理论学习方向必须重点突破:   1,科学哲学。这是核心中的核心!可惜国内不开这门课。不但不开课,而且还作为批判 对象来引用,实在是遗憾至极!这是一门教你如何“钓鱼”的学科,在一切科学研究中居于最核心的地位。它是古今科研方法和思维方法的集大成者,很难想象一个 成熟的研究者没有一套自己的方法论体系。科学哲学最需要的是领会与总结,它的思想与启示会伴随我们的一生。   2,康托集合论,矩阵方法,离散结 构,图论方法,群论方法之间的紧密关系。最重要的认识这些理论对实践的重要启示和方法引导。我始终认为,如果你学了一门理论之后,却不知道这门理论有什么 作用,那么你的理论就白学了,你什么东西都没有捞着。所以,学习任何理论之前,先问自己:它有什么用?在哪里用?如何用?带着这些问题去学习理论,你才会 真正地学到东西。用这三个问题去问你的理论课老师,他的回答就是判断其实际水平的最佳标准。   3,思维要有极强的穿透力,学会看透文献作者没有 写出来的动机。绝大部分大师都有隐瞒自己最具有方法论启示意义的思考环节的习惯。牛顿和华罗庚先生都有这个坏习惯。这让大家认为他们是天才,因为很多问题 他想到了,我们想不到。但是为什么他们能想到,我们想不到?他们是怎样想到的?没有人告诉我们牛顿发现万有引力定律时的思考过程,当然,牛顿可以慷慨地把 他的思考结果告诉我们,但是,他那可以点石成金的“金手指”却没有教给我们。我们的任务就是要培养透过文章看穿作者背后意图和动机的能力,在这方面,台湾 的侯捷和美国的Donbox是绝佳典范。这两只老狐狸(呵呵,是爱称)凭着其猎犬一般的嗅觉,抽丝剥茧,一个把COM背后的幕后设计动机揭开并暴露到了光 天化日之下,另一个把MFC的宏观架构做了一次完美的外科手术。其非凡的思维穿透力令人惊叹。   4,英语。英语本身不重要,但是用英语写成的文献就极其重要了。所以,专门把英语作为一个重头戏列出来。大家不要相信英语无用论的鬼话。对于搞计算机的而言,英语就是你的母语!   5,其它的具体理论还有很多,但是都不如这三个方面重要,因为我觉得这三个方面是最具有根本性,全局性的能力培养环节。需要指出的是,很多高深理论对你的工作是无意义的,当心时间陷进去。一定要把效率最高的时间段用在最具有决定性意义的理论学习上。   6)关于读研之后的出路是否光明的问题。我们应该承认,读研之后,你的工作机会不是变多了,而是变少了。而且越是高手,他的工作机会和工作范围就越少。 这是因为,越是搞前沿研发的公司,其数量越少,在这个圈子的人也就越少。你找工作的范围就越小,试问:如果微软的OS设计专家出来找工作,能够让他选择的 公司能有几家?但是,这种公司数量的减少是以工资待遇的急剧上升为补偿的,同时,你在工作中所受到的充分尊重也是在一般公司中体会不到的。所以不要担心学 了高科技用不上,呵呵,你只会越来越感觉自己学的不够用。相信接到过猎头公司电话的人会体会得到。真正的高手从来就不会担心工作的问题,也从来不会到人才 市场上去找工作。既然选择了理论深入,那么就应该把眼光放得更远。 DMman简评:1 研究生的优势在于理论功底深 厚,思维具有穿透力,当然编程能力首先要过关”------读研就要培养这种优势。很多人只是充当导师廉价的劳动力,每天确实很充实,与编程为伴,却忽略了理论学习。如果我们读研只是为了增加编程经验的话,直接去工作不是更好?经验更多,更真实,还有更多的工资赚。读研就是为我们自己创造一个能深入研究学习的机会。 2 培养思维的穿透力,“学会看透文献作者没有写出来的动机”。说得好。一个能思想的人,才是一个力量无边的人(巴尔扎克语)。思考是金,实战是金。 3 关于作者所说的 所谓“有实际开发工作经验”是指 你目前已经具备下列能力...实不敢苟同。这样看来DMman只是一坨屎了:-)


阅读全文(5798) | 回复(8) | 编辑 | 精华
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

knight(游客)发表评论于2007-10-5 0:14:38

对我这样的在考研和找工作边上徘徊的人来说确实有启发啊!!! 以下为blog主人的回复:  选择都是有得有失,可以倾向自己兴趣的一边~


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

KingShooter(游客)发表评论于2007-7-28 14:47:01

以下引用superzxt(游客)在2007-5-31 16:24:48的评论:总体来说该文有些道理,但是又有些偏激。首先,作者本人估计对C++比较热爱,但是语言毕竟是一种工具,C++有很多高级特性,可我认为那些高级特性可能是一开始设计失误导致的,很多东西我感觉C++是违反了面向对象的设计哲学的,所以要引入虚函数等复杂机制。其次,STL毕竟只是个类库,实际应用中好像并不多见,如果想提高自己,Java的类库也可以研究,学习其中的框架,模式,领会大师的思想。第三,以作者看来对底层的东西理解的越多就越是高手,但是在我看来,一个有良好的理论修养和设计能力的人就是高手。能开发驱动程序就是高手了吗?未必,驱动程序也是一种程序,只要熟练了,任何人都能作好。第四,COM设计并不是很优秀,你大可以取研究一下其他的分布式应用模型。我很赞同!其实我也是软件工程硕士。但是社会上对这种学位的认可度不是很高,其实他们都是一种误解或者是一种片面的理解。如果我们理解了正态分布这个概念的话,也不难理解为什么这个学位不能被认可。不管读什么专业或拿什么学位,这都不重要,重要的是人的因素。如果一个人一直保持着一种热情和积极性的话,终究会修炼到一种特定的境界,而不是像搂住定义的一样用统一的标准来衡量。其实每个方面都需要很特定的人才。这才是中国教育的目的,为下一代提供一个土壤和环境。

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

lgz(游客)发表评论于2007-6-9 15:50:08

我是学物理的.现在想考人工智能方面的研究生.兄台看来对IT领域颇有见地.想请问下:要考计算机专业的话,专业课怎样复习,复试时要注意什么,那些学校这方面做得比较好? 以下为blog主人的回复:   见地谈不上,我也只是一名研一生而已。我觉得人工智能方面要想发展下去,一定要读到博士学位。现在南大 复旦这方面是国内的龙头,建议您到http://www.ieee.org.cn/index.asp计算机考研交流版,那里的版主是南大、北大的牛人,人工智能的研究生,那有很多珍贵的考研内部资料。  考研的时候可能还体现不出人工智能的特色,专业课 不同的学校大同小异。好学校要难一些,可能会考编译原理、离散数学等;一般的院校也就是考数据结构、操作系统、数据库之类。专业课复习的时候 该学校的内部资料非常有价值,因为所谓的考试重点都是老师圈定的,所以历年题、笔记都很重要。   我个人觉得专业课的复习一定要早下手,和数学同步吧。先看书(看几遍能理解就看几遍,重点地方重点看,有些地方如果内容多 而且历年考试都没有涉及到,时间不足可以放弃看),还要做题,比如各个高校该科目的考研真题。基础打好了,再研究真题。   复试的问题现在说还早点,而且网上很多谈的,我也没什么好的见解。一定要听听该学校师兄师姐的建议。   祝你考研成功!

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

hjx_221发表评论于2007-6-3 22:45:31

读研最重要的是要明白你自己要干什么 以下为blog主人的回复:  要知道自己想要什么

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

宝刀没开刃(游客)发表评论于2007-6-2 17:16:20

鉴定完毕!确实有很多东西引人思考。自己这一年来虽然也在不断地探索和尝试,但总觉得摸不着头绪。总是在理论学习和编程实践之间来回乱转与发懵,也许是我跨专业落下的东西太多了吧,呵呵。老乡,I'm yk. 以下为blog主人的回复:  感谢康哥光临。小弟又何曾不彷徨呢?只能用努力和降低标准来自嘲。

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

superzxt(游客)发表评论于2007-5-31 17:09:41

呵呵,经常上你的网站看看,写得不错。今天看了这个突然有点感受,随便牢骚一下。好久不写字了,语言有些不通,见谅。我是臧,呵呵。 以下为blog主人的回复:   晕,zxt果然有含义。偶大都是转的,自己虽然有想法,但没时间整理。多谢支持!哈哈....   敢说COM组件设计并不优秀,恐怕还前无古人吧...

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

数据挖掘青年发表评论于2007-5-31 16:37:31

  superzxt兄台见解更高深,小弟也号称学过C++懂点编程技术的人,但看明白兄台的留言还得多读几遍才行。   原作者可能也是一是冲动愤世嫉俗才有此作,或者他本人今天已经也不再认同他曾经的看法。   人关键是能思考,能有自己的看法。

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:关于攻读计算机研究生的若干见解
网上资源,  所见所闻

superzxt(游客)发表评论于2007-5-31 16:24:48

总体来说该文有些道理,但是又有些偏激。首先,作者本人估计对C++比较热爱,但是语言毕竟是一种工具,C++有很多高级特性,可我认为那些高级特性可能是一开始设计失误导致的,很多东西我感觉C++是违反了面向对象的设计哲学的,所以要引入虚函数等复杂机制。其次,STL毕竟只是个类库,实际应用中好像并不多见,如果想提高自己,Java的类库也可以研究,学习其中的框架,模式,领会大师的思想。第三,以作者看来对底层的东西理解的越多就越是高手,但是在我看来,一个有良好的理论修养和设计能力的人就是高手。能开发驱动程序就是高手了吗?未必,驱动程序也是一种程序,只要熟练了,任何人都能作好。第四,COM设计并不是很优秀,你大可以取研究一下其他的分布式应用模型。

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.063 second(s), page refreshed 144328608 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号