關于計算機科學的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、

沒有人會輸入這種數據,或者這樣寫代碼。

(完)

留言(28條)

加一條:
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差點沒及格…

很多年以前,碰到一個汽車專業的高中同學,聊起來他考計算機二級的上機時,跟我抱怨,明明編譯器說第十行有錯,但第十行完全沒有錯 啊。那會兒我就知道,已經沒法跟他聊計算機了。

我要發表看法

«-必填

«-必填,不公開

«-我信任你,不會填寫廣告鏈接

体彩7位数