关于计算机科学的50个误解

作者: 阮一峰

日期: 2019年11月 3日

腾讯课堂 NEXT 学院

计算机科学(Computer Science,简称 CS)是大学的热门专业。但是,社会上对这个专业有很多误解,甚至本专业的学生也有误解。

一个美国的 CS 老师写了一份清单,列出了许多关于计算机科学的伪命题。它们都是 CS 学生信以为真,以后才慢慢明白,这些都是不正确或不完全正确的命题。

下面就是计算机科学的50个常见误解,欢迎补充。

1、

CS 毕业生懂 C 和 C ++ 语言。

2、

Java 语言是几乎所有编程任务的合理选择。

3、

懂得编程 == 懂得计算机科学。

4、

CS 毕业生是优秀程序员。

5、

CS 毕业生会编程。

6、

CS 教授懂编程。

7、

CS 教授会使用计算机,或者懂得互联网原理。

8、

如果一个软件可以运行在我的笔记本电脑上,就可以运行在其他人的笔记本电脑上。

9、

StackOverflow 问答社区的答案都是可信的。

10、

如果一段代码出现到互联网上,就意味着你可以使用它。

11、

开源软件意味着更少的错误并且更加安全。

12、

开源软件(open software)和自由软件(free software)是同义词。

13、

git 和 GitHub 是同义词。

14、

Unix 和 Linux 是同义词。

15、

bash 和 sh 是同义词。

16、

AWS 和"云服务"是同义词。

17、

"隐私"和"秘密"是同义词。

18、

"加密"和"安全"是同义词。

19、

聪明的程序员会写出聪明的代码。

20、

编程能力是一名优秀软件工程师的最重要品质。

21、

拥有 CS 学位是成为一名优秀软件工程师的必要和充分条件。

22、

计算机解析时间和日期是轻而易举的。

23、

CS 毕业生知道如何验证电子邮件地址。

24、

雇主关心 CS 学生选修了哪些课程。

25、

分布式网络是可靠的。

26、

第三方服务是可靠的。

27、

AWS 云服务是可靠的。

28、

你可以将整个文件读入内存。

29、

fork命令之后,父进程始终先执行。

30、

删除文件需要对该文件具有写权限。

31、

线程竞争很少发生。

32、

面向对象编程是最好和最常见的编程范式。

33、

CS 毕业生不会被黑客钓鱼,因为他们了解计算机。

34、

CS 毕业生了解计算机。

35、

CS 毕业生已经学过大多数的重要课程。

36、

电子表格和 Powerpoint 只适用于商业活动。

37、

程序员大部分时间都花在编程上。

38、

计算机可以按照指令进行操作。

39、

技术和算法是中立的。

40、

学习人文学科是浪费时间。

41、

你的职业生涯需要使用大量数学。

42、

如果谷歌使用它,那么别的公司也应该使用它。

43、

如果一种技术很先进,就应该使用它。

44、

如果一种技术超过5年,就不是新技术。

45、

只为了能够用上红黑树或某个高级算法,重写代码是值得的。

46、

大学毕业后,你还有机会遇到霍夫曼编码。

47、

具有 CS 学位的两个人,将具有非常相似的背景和知识。

48、

算法复杂性和大 O 表示法在现实世界中一直使用。

49、

学术界某种程度上跟现实世界不一样。

50、

没有人会输入这种数据,或者这样写代码。

(完)

留言(27条)

加一条:
51. CS 毕业生会修电脑修手机

开源软件(open software)和自由软件(free software)是同义词。

-----

每日一句

52. CS毕业生打字很快,而且会五笔输入法

(我是不是暴露年龄了...)

28、你可以将整个文件读入内存。
这个看情况吧。

这篇文章好像跟 CS 专业学生 杠上了~

CS毕业生都是黑客

100. This list is finite.

会编程的就会装系统

cs 专业的知道配电脑、修电脑、装系统

cs 毕业生 会做ppt。。。。

“计算机科学”其实
1. "is not really about computers", "is no more about computers than astronomy is about telescopes", ... (https://en.wikiquote.org/wiki/Computer_science)
2. 也不是科学

“技术和算法是中立的”,这句“误解”是不是作者意味着:有些 技术/算法 是某些价值观的反应,比如机器学习算法代表的链接主义?

所以才说:并不是所有的技术/算法都是中立的?

如果不是上面的意思,那么误解中的"中立"是对于什么中立?

感觉这50条不是在同一个水平上的。比如9到16根本就是初学者水平的错误,这么直接混到一起挺莫名其妙的。

引用MM的发言:

“技术和算法是中立的”,这句“误解”是不是作者意味着:有些 技术/算法 是某些价值观的反应,比如机器学习算法代表的链接主义?

所以才说:并不是所有的技术/算法都是中立的?

如果不是上面的意思,那么误解中的"中立"是对于什么中立?

应该就是类似于链接主义的表现

Technology and algorithms are neutral.

这里的“neutral”,我个人认为当作“没有偏向性”意义更加明确,因为“中立”这个词在中文语境其实还有其他意思

53. 会编程的都会翻墙

请问博主能讲一下第80和81条吗?
All traffic on the internet is either UDP or TCP.
DNS traffic always uses UDP.

我查了后还是不能明白这为什么是错的……能举出一些例子吗??

引用Leon的发言:

请问博主能讲一下第80和81条吗?
All traffic on the internet is either UDP or TCP.
DNS traffic always uses UDP.

我查了后还是不能明白这为什么是错的……能举出一些例子吗??

第一个问题:
比如:IPX/SPX 协议
https://baike.baidu.com/item/IPX/SPX/611281
第二个问题:
DNS 也有TCP协议的。 参考:https://tools.ietf.org/html/rfc7766

// 哈哈,想必大家都会修电脑吧?

引用Leon的发言:

53. 会编程的都会翻墙

其实我感觉这不算是误解....毕竟国内的搜索引擎很多编程问题是没有答案的...

cs确实很好玩,又叫反恐精英。

看了这篇文章标题,就进来期待看神回复的

54 以后工作以后一定用得上(逃)

49、

学术界某种程度上跟现实世界不一样。
=========
这句话已经很“圆滑”了,有什么问题吗?

这期博客,50条?就没了?

CS毕业生干久了都会变秃头或白头

"学习人文学科是浪费时间。"为啥,就是与人打交道是浪费时间,于世界进步无补?

有幸上过这个老师的两门课,631 adv unix 搞了个c差点没及格…

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接