一个理论计算机科学家眼里的码农是怎样的?

如题所述

首先来澄清题主的一个误区:计算机科学家并非一定对硬件十分了解,他们的研究领域可能是算法分析、编程模式之类的。真正对于底层硬件了解的非常清楚的是那些嵌入式开发工程师。一般来说,科学家(几乎所有学科的科学家)和程序员的共同点包括:他们都要用编程语言来完成自己的课题。科学家用程序来仿真,验证自己的算法或是模型;用程序来计算(比如MATLAB, mathematica)。程序员用程序来实现算法,完成项目。他们都要对数据进行分析。科学家用数据是为了发现规律、验证模型。程序员用数据是为了检测产品,判断算法的有效性。不同点主要在于:科学家注重建立模型、提出算法,程序员注重解决问题。我猜测题主可能想问的是:作为一个程序员,是否一定需要非常了解硬件?对于我说的这个问题,我的答案是:了解一些硬件对于理解编程语言和算法很有用。举个例子:在学C语言时,大家都对“指针”这一概念望而却步,但当你学了《计算机组成原理》这门课后,你会知道原来这是因为不同的寻址方式造成的,而指针就是间接寻址。另外,了解一些汇编对于调试程序非常有用。作为一苦逼科研党,最大的区别是程序员只追求解决问题,科学家追求最佳方案。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-06

总觉得很多人把搞理论计算机的和产品经理还是设计师(不知道叫什么,反正就是有个想法那个人)弄混了。理论计算机真的不需要再找一个程序员来帮他实现他的想法,他只要用笔证明自己的想法对就行了,其实很多理论计算机的东西,计算机本身是跑不出来的。这就好像党内自我监督是扯淡一样。

还有算法设计会涉及复杂度,但和搞理论计算机完全是两回事。从这个角度讲,理论计算机和ACM好像没什么关系吧。还有,会机器学习和计算机视觉语音识别也和理论计算机不沾边。

本回答被网友采纳
第2个回答  2017-12-06

教育技术学、现代教育技术、微电子学、自动化、电子信息工程、电子信息科学与技术、地理信息系统、通信工程、电子科学与技术、生物医学工程、电气工程与自动化、信息工程、信息科学技术、软件工程、影视艺术技术、网络工程、信息显示与光电技术、集成电路设计与集成系统、光电信息工程、广播电视工程、电气信息工程、计算机软件、电力工程与管理、智能科学与技术、数字媒体艺术、探测制导与控制技术、数字媒体技术、信息与通信工程、建筑电气与智能化、电磁场与无线技术。学生主要学习计算机、通信以及网络方面的基础理论、设计原理,掌握计算机通信和网络技术,接受网络工程实践的基本训练,具备从事计算机网络设备、系统的研究、设计、开发、工程应用和管理维护的基本能力。