大学计算机系教授和IT公司工程师比较,谁的编程能力强?
大学计算机系教授和IT公司工程师比较,谁的编程能力强?
-----
网友解答:
-----
这个问题可以通过三个方面来回答:
第一:真不好比较,两个都是计算机方面的,但是具体的工作有些不一样的,大学教授侧重的是学术方面的,基础知识比较牢靠,侧重于教学这一块,当然,实战这一块有的也是不错的,很多的研究生、博士生都是他们带出来的,包括IT公司里的工程师当初也可能是他们的学生。
第二:IT公司里的工程师,他们编程能力和敲代码的能力是非常强的,你想一想天天在加班加点的练习,能不强吗?在公司里这些工程师们有时分工很细,有架构师,有前端和后端工程师,他们专做自己领域的,他们的能力肯定很强的,很多的熟练程度比大学的教授快很多,但是综合能力和基础的牢靠程度可能比不上大学教授。
第三:这些IT公司的工程师可是最前沿的实战者,接触的东西都是些最潮流的,有些大学教授也是不断的探索新的知识,也是走在前沿,但还有些大学的教授,就比较落后了,使用的课本都已经淘汰了好几年,教出来的学生到公司里根本不能胜任,必须有专人带个一两年才能达到要求,这类教授就有些落后了。
-----
网友解答:
-----
好久没答题了~~
作为计算机领域的一名研究僧,身边既有计算机系professor,也有攻城狮,在这个问题上,表示有一定的话语权。那么coding能力对于这两类人群来说,谁更强呢?
其实这个问题的答案是不一定的,coding对于一些年轻的、喜欢自己动手的professor来说是比较简单的事,因为他们大部分从硕士到博士甚至博士后都在不断的进行实战,而且属于理论和时间都没拉下的那种,不然也做不了professor;而有一些攻城狮呢,coding并不一定强,而业务方向也决定了你敲代码的多少,而且有时候大部分是重复性的代码,做过工程的应该比较了解这一块。而你coding年限也决定了你的编程能力,不能一概而论。
所以,在回答这个问题之前,先定义问题所提到的以下的“名词”。
计算机系full professor(
正
教授):科研能力(评职称以发Paper质量为准,专利较少)强
IT工程师:3年+工龄且具有独立开发项目能力的攻城狮
编程能力:独立开发项目熟练度\u002F解决问题的速度
研究领域:一致
以本人所在Top10高校身边绝大多数计算机教授来说,除了一些年轻教授(国外常春藤doctor特聘回国空降副教,过几年直接正教授这类),一般这些professor(占比10%左右)都是30岁左右,很多时候都在沉迷自己的世界中,通常不愿意带学生,喜欢单干,憋大招。因此,这类professor无论是工程能力还是理论知识都很强,解决问题的同时还能做出一些创新性且普适性的东西。个人认为这类教授是要比攻城狮在编程能力强,因为他们不仅具备了解决问题的能力还具备发现问题,解决一系列\u002F同类问题的能力。这里举一个身边发生的例子,去年参加kaggle比赛(世界级的大数据\u002FAI比赛),国内top2队伍一个是中科院的博士,还有一个是资深的高级工程师。当时做的任务是:判断两个英文句子所表达的意思是否相同?最后博士队伍拿下了国内的top1(世界top4),在比赛结束后,该队伍还开发了一些工具,以及针对这个问题处理的一个普适性框架;而后者更多的是在工程性上的不断尝试新的办法,因为理论基础的不够扎实,很多时候其实做了不少重复性的工作或者是无法从根本上找到一个更好的解决方案,在比赛后期愈乏力。
当然,有一部分professor(占比20%左右,可以coding,但是不多)其实和IT攻城狮差不多水平,平时刷Paper的时候,一些核心算法还是会自己动手来实现,工程能力也不会太弱,他们通常遇到问题可以秒知道问问题出在哪?并知道如何去解决。我想有一个情形,研究僧们应该十分熟悉:做项目的时候碰到一个特别难解决的问题,花了好几天都没想出来,最后实在是憋不住了去问老师,然后老师二话不说,就说你去检查这***,看看是不是这里忘记干啥了,是不是写错了**。
最后,还有部分professor(年纪较大,coding基本没有,强度有点大),占比最多,侧重于理论,侧重于刷Paper,甚至到了教授这个层级就做业务了,各种给实验室拉活,让学生们干,干完发Paper之类的。这部分professor大概占70%左右,coding能力已经丧失很多了,有问题知道该怎么解决,但是自己动手来做基本很难了。他们的编程能力要比攻城狮们弱一点。
希望professor多coding,攻城狮多theory。
-----
网友解答:
-----
为某矿山设计并制做一个“废水处理车间计算机监控系统”。当时省环保局提出要求:如果该厂的这套废水处理系统不能正常运行,就不允许该厂开工生产。该厂每天可以提炼出50吨某种矿石精粉,每吨价值40万元,晚开工一天就少收入2000万元。当我把该监控系统的所有硬件设备如探头、监控模块安装完成后,并且用Tubro C编写好监控程序以后,对方又提出了很多新要求(全套的数据库操作……数据存储、查询、检索、打印报表),导致监控软件必须改用另一种程序语言VB6完成。而我当时只是大概了解但是并没有用过该语言,只能突击学习该语言。方法是:同时打开两部台式电脑,左边一台运行该语言的教学光盘,右边一台安装该语言正式软件。在左边电脑上看过一段教学演示视频(比如创建一个新窗口),马上到右边电脑操作一下。用了不到两天时间完全掌握了该语言,又用了不到10天时间编写了该系统的全部监控软件,撰写出操作规程、绘制出全套图纸,按时完成任务。这套系统用了六年多时间,每年河水开化(4月中旬)就开机,每天24小时不停机,直到这年河水上冻(每年11月上旬)才关机。
当时该矿山技术人员和领导说了不少夸奖我的话,别的话我都没在意,也都忘了。只有一句还记得……不愧是吉林大学毕业的,思路就是不一样!
-----
网友解答:
-----
这个问题我不直接回答你,我给你举个不恰当的例子但是能够回答你的问题,比如工地的房子设计师具有国际设计标准,现在你让他和工地的瓦工师傅比谁砌墙厉害,我想说肯定是瓦工师傅。但是你要知道瓦工师傅每个砌墙的方向都是设计师设计的。设计师相对瓦工说人数少,门槛高,所以比砌墙没有可比性。
-----
网友解答:
-----
谢谢邀请。
这个类似于军事指挥学院的教授,和军队的指挥官相比,谁的指挥能力强?这可不好说。
总体上看,大学教授长于理论,工程师长于实操。但也不可一概而论,特别是在国外,大学计算机教授转任IT工程师,IT工程师转任大学教授,都是很平常的事。
-----
网友解答:
-----
真实事件1:我刚上大学的时候,我们的高等代数老师,做不出证明全等三角形,被我们几个后来补考的学生暗地里笑话了好久。
真实事件2:我刚入职的时候,因为盖不上机箱盖子,也被我现在的下属,那个桌面搞运维的同事数落一阵。
个人觉得,教授级的人,理论知识一定是丰富且扎实。计算机这行,还是要看基础的,我也是工程师,自我感觉是,无他,唯手熟尔。遇到问题,还是要找当年的老师去请教。他们那个层面的知识面,接触的人的水平,眼界,远远高于我们这个层次。
最后,题主是不是想问,一个教书的有没有实战的人更有动手能力吧?在计算机这个应用性极强的行业,哪个教授没个公司呢?啥项目接触不到?真要说哪个教授只搞理论,那更比不了了,那是神级人物。
-----
网友解答:
-----
我认为答案应当是IT公司的资深工程师编程能力更强。之所以要加”资深”这个定语,是因为IT公司的一般工程师,编程很辛苦,但论水平谈不上。
计算机系教授具有高深的理论水平,对发展方向有较强的把控力。
计算机系教授,参加的学术会议、论坛比较多,对编程的前沿技术、发展方向知道的会很多,对各语言的特点、市场前景了解的更全面。所以,现在的毕业生,虽然水平一般,但大都很快会选择到高薪的编程工作,这与教授们的指导分不开。
我们也经常找一些教授座谈,听一听教授们对编程的看法。如,JAVA,python,java script,VC,VS,C,到底选那种好;操作系统,windows,RTOS,linux到底选那个好;鸿蒙能否用在控制系统中?等等。
教授终究是见多识广的。
具体到某一领域的编程,资深工程师碾压计算机系教授。
这是很容易理解的。工程师如果不跳槽到陌生领域,估计一辈子用一种语言编程。如C语言,起初DOS下C语言编程,后来发展到linux、windows下的C编程,面向对象的C++......
三十几年的各种C的开发,估计各种问题都经历了一遍,把C语言的那些类库存在什么bug,也都整明白了。这样的经历,教授们是不会有的。
当然,一般的菜鸟工程师,基本没有编程水平,与工地的搬砖师傅真的没什么区别。
总结:论高深的理论、前沿技术,我们要听教授的,需要多和他们交流。论编程经验及编程水平,只能看资深IT工程师的,这是他们一辈子的工作。
-----
网友解答:
-----
首先,单纯从职称上来比较的话高级工程师要比副教授高半级,因为高级工程师职称是跟教授平级的。(因为高级职称在很多领域都有正副之分,比如教育方面的正副教授,医学方面的正副主任医师等,而工程类的高级职称是没有正副之分的)要说到牛,可以说前者要比后者“牛”一些。然而,如果要选导师的是不能仅以此来决定的。两位都取到了高级职称,从工作阅历上来说应该都是很“厉害”的,都干了大量的工作,跟他们哪一个都好,都有前途。我个人认为选择谁作导师要看你所学的专业来决定,如果是工程技术类的话选前者,是教育类的话就要选后者(如果是双职称的话更好),以后发表东西的话对你都会有帮助的。
-----
网友解答:
-----
同样是 计算机编程,也分非常多的类别,比如web 开发,app 开发,系统驱动开发,人工智能开发,每个人都在自己熟悉的领域 擅长,没有谁高低的问题。现在好多大型it 公司 的主要开发人员 硕士学历 占比很大,硕士毕业后,和继续读博士,当教授的 同学 走上了 不同的道路。区别是 在公司,开发的目的 以产品为中心,当教授,主要以发表论文为中心。从结果上看,比如 linux kernel 的开发者 linus,是本科学历,python 开发者 是硕士学历,好多操作系统 和编程语言 都是公司开发的,当然也有 大学开发的 编程语言,比如 lua. 总体上说,在系统编程 这一块,是公司开发人员和开源软件开发人员更擅长。在ai 领域,是另外一回事情,deepmind 创始人 本身 有博士学历,好多 ai 算法,比如 神经网络,蒙特卡洛 树搜索,都是 大学 或研究机构的人 发展出来的。
一般来说,在已经 成熟,产业化的领域,公司开发人员更熟悉,在前沿研究领域,学术机构的人员更擅长。
-----
网友解答:
-----
不好比较,主要是因为学习和研究方向不同,而且一个是靠宽度吃饭,一个是靠深度吃饭。
所谓的宽度,是指对大多数程序员来说,他们需要学会的技术比较多,通常都是公司要用什么技术,就去学什么技术,且IT技术更新很快,需要持续不断地学习,你不学习,慢慢就会被淘汰。
而大学里的教授呢,除了完成相应的教学任务,可能会去研究一下某个方向的技术,而他们研究的,大都是底层的实现原理,有关空间和时间的性能问题。
要是研究出了能解决当下计算机痛点问题的理论,便会发表相关的论文,让更多的人了解和使用这个理论。而对大多程序员来说,只要明白这个理论的实现原理就可以,可以不用知道实现的具体细节。
所以以编码来论能力的话,是挺片面的,毕竟在IT公司里面,大佬一般是不写代码的,比较看重的是分析解决问题的能力。外加上程序员写的代码,主要是针对公司的具体业务,而这些业务,大学里的教授一般是不了解的。
-----
网友解答:
-----
现在的文凭。学历。鱼龙混杂。不管做什么都要证要学历。纸上谈兵。和令兵打仗。应该是两回事。
------------------
推荐阅读: