Re: [問卦] C語言學到什麼程度才可以說自己會寫C已回收

看板Gossiping作者 (松鼠)時間6年前 (2018/04/03 13:37), 編輯推噓237(240344)
留言287則, 250人參與, 6年前最新討論串2/3 (看更多)
※ 引述《orz77586 (成大harden)》之銘言: : 需要強到像Jserv一樣可以邊演講邊用開外掛的速度打扣 : 還是學到什麼程度就可以說算是會寫C了 : 版上大大們有沒有什麼看法 板上先進比比皆是,但是大多忙碌,最近剛好在研究社交網路的我代替大大們回覆。 身為中學摸 C 語言、大學摸 C 罩杯的大叔,我只想說「均衡發展」遠比鑽牛角尖 重要。 解釋之前,前美國總統甘迺迪 (John F. Kennedy) 曾說: > I believe that this nation should commit itself to achieving the goal, > before this decade is out, of landing a man on the Moon and returning > him safely to the Earth. (我相信美國在 1960 年代結束前,將全力以赴地實現一個目標,那就是讓人類 登陸月球,並確保安全返回) [0] 這句話非常明確:在美蘇冷戰時期,讓所有參與太空國防的上萬名人員,乃至於 當時的聯邦人民都知道,枝幹該把怎樣的養份送到主幹,更明確來說,機構的專家 會去研究夠耐用的船體、天文物理的專家會去研究重力對路線的影響、電子通訊的 工程人員構思一系列有效的傳輸方式,而投身教育者則是從國會議員到普羅大眾都 涵蓋,確保資金和人才供給不斷絕。最終,阿波羅 11 號 (Apollo 11) 作為 NASA 阿波羅計畫中的第 5 次載人任務,實現人類第一次登月 (並且成功返回地球的) 任務 (當然第一次人類登月任務始於神州大陸的嫦娥,中國人帶著逃離中國的基因 可見一班),繞行月球 30 周。 等等,上面的故事和 C 語言有何關係?「你 484 來混 P 幣呢?」且慢,讓我 繼續說下去。 阿波羅計畫的規模之大,即便是今天回顧,也難用簡單幾句帶過,遑論 1950 年代 末期總是被蘇聯太空技術 [1] 壓著打的美國政府,上面甘迺迪那席話就在 1961 年 ,啟動阿波羅計畫之際。而 1960 年代中期啟動 Project MAC (與阿波羅登月計畫 平行,由 DARPA 贊助的大型計畫) 的 Multics 專案,定位開發多人分時多工作業 系統,並且運作於多核的硬體環境 (multi-processor!),更有意思的是,Project MAC 這麼龐大的計畫卻由麻省理工學院 (MIT) 領軍開發關鍵技術,並由 GE (美國 通用電氣) 提供硬體及 AT&T 旗下的 Bell Laboratories 開發軟體和技術支持 (受 到反壟斷條款的處分,AT&T 不得涉及硬體銷售,但研發專利技術並授權他人不在 此限),今日我們熟知的 C 語言開創者 -- 已故的 Dennis M. Ritchie (縮寫 dmr) [4] 和今年 75 歲卻供職於 Google Inc. 並帶領一群高手投入 Go 程式語言開發的 Kenneth Thompson (縮寫 ken) -- 即服務於 Bell Labs。 以商業的角度來說,Multics 是個失敗的作業系統,但 ken 和 dmr 卻汲取其中的 養分,帶著戲謔的口吻,開發出名為 UNICS 的作業系統,"uni-" 和 "multi-" 是 對比的前綴,後來 UNICS 被正名為 UNIX,自此為世人熟知,並且影響你我生活的 個別面向。UNIX 第一版用組合語言開發,提供了檔案系統的服務,後來用 C 語言 重寫,其中 Research UNIX version 6 (UNIXv6) 是大量被學校和公司行號採用的 作業系統 (在 AT&T 的律師團收取天價授權費之前)。 但是,你若把 C 語言當作「只是另一個程式語言」來看待,那就大錯特錯了。 在資訊科技領域,部分工程師和甚至是企業家跟編譯器發展有關,比方說 Eric Schmidt (Novell 前執行長、Google 前執行長) 在 Bell Labs 服務時,重寫了 lex 工具程式 [2],dmr 在發展 Unix 作業系統和 C 語言之前,參與 Multics 專案的編譯器開發工作,他們得以熟悉程式語言理論 (Programming Language Theory, 縮寫 PLT) [3] 和電腦硬體的特性,進而到其上的作業系統和各式應用 程式。 dmr 有次被人問及: > 「一個人從新手到精通 C 語言的電腦程式開發者,並得以寫出卓越不凡的 > 程式碼,根據你的經驗,需要多長時間呢?」 這位帶有幽默感的曠世奇才回覆道: 「不知道,我不需要學 C」 回到最初的提問「學到什麼程度就可以說算是會寫 C?」,那終極回覆大概就如 dmr 這樣簡單的答覆:實際解決複雜且影響深遠的問題,過程中萃取出 UNIX 哲學 [5] 和 C 語言這樣的人類文化資產出來,塑造今日我們所見的一切。 引用中正大學吳昇教授日前的話: [6] > 以武俠世界的武功來比喻,一些拳法、招數學好很重要,但是內功心法也很重要。 > 在金庸射鵰英雄傳小說裡馬鈺道長到塞外教郭靖兩年內功心法,奠下了郭靖武學的 > 雄厚根基後來成為大俠。 我相信學習 C 語言絕對不是把玩拳法、熟記招數,而是打通經脈,深植雄厚根基, 著眼於開發高品質的軟體、關注清晰且一致的 coding style、時時關注高可讀性、 勤勞地調整出清晰漂亮的結構,更不忘在高效能、好維護、具延展性、強韌性、安全 性等議題持續精進。 做到這樣的話,已可算是「開始學習 C 語言」了。歡迎各位和我同事宅色夫一起 學習和交流 C 語言: * 線上教材: http://hackfoldr.org/dykc * (偽) 網紅頻道: https://www.youtube.com/c/guts4tech (請幫忙按讚) 身為 C 語言初學者,我不以進展遲緩為恥,相反的,我樂見自己的創作能夠用在 我家人和身邊朋友每天用的 Android 手機、中文輸入法、嵌入式裝置,甚至包含 大眾交通設施 (先賣關子 :P)。人類的歷史中,還有什麼時期能夠憑藉雙手,對這 世界帶來持續廣泛的影響呢?我只是單純地追隨 dmr 和 ken 等前輩的步伐。 同場加映: 2001 年,J. T. S. Moore 以自由軟體和開放原始碼軟體發展為主題,導演了相當 可貴的紀錄片《Revolution OS》,訪談了若干先鋒者,是理解駭客 (hacker)、 GNU 計畫、自由軟體基金會 (FSF)、Linux 核心 (kernel)、開放原始碼 (open source) 和自由軟體 (free software) 基於不同理念各自發展、Netscape 宣佈 Mozilla 開放原始碼專案、基於 Apache 和一系列開放原始碼技術的公司、在 NASDAQ 上市等等歷程的第一手資訊。隨後新竹交通大學資訊工程系「自由開源 軟體與專案協作」課程師生更新了紀錄片諸多細節和增添註釋。對理解 C 語言前世 今生乃至於當今的資訊工業發展,應有一定程度的助益: https://hackmd.io/s/r1dUx8ltg [0] 阿波羅計畫可參照 Discovery 拍攝的紀錄片〈登月機具:導航系統〉,我學生 幫忙翻譯了中文字幕: https://amara.org/en/videos/oJHtDEuqZfVK/info/navigation-computer/ [1] 蘇聯於 1957 年 10 月 4 日發射 Sputnik I,後者是第一顆進入行星軌道的 人造衛星,隨即震撼了整個西方,在美國境內引發了一連串事件,如史普尼克 危機、華爾街發生小股災。開始了美蘇兩國之間的太空競賽 [2] lex 的中文解說可見: https://mropengate.blogspot.tw/2015/05/parser-lex-yacc-1.html [3] PLT 的極佳資料彙整可見: https://github.com/steshaw/plt [4] 追憶 Dennis M. Ritchie 的文章: http://www.ituring.com.cn/article/14315 [5] 由於 AT&T 和 University of California, Berkeley (UCB) 曠日費時的官司, 今天我們說的 "UNIX" 或 UNIX-clone (如 Linux, FreeBSD, macOS 等等) 裡頭 的原始程式碼已經和最初 AT&T UNIX 的版本相差甚遠。但 UNIX 帶來的精神和 哲學思維至今長存,在資訊科技的許多地方可及。詳情可見: https://en.wikipedia.org/wiki/Unix_philosophy [6] 出處: https://www.facebook.com/sunwu2011/posts/1619624211457570 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.82.61 ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1522733861.A.FE0.html

04/03 13:38, 6年前 , 1F
1
04/03 13:38, 1F

04/03 13:38, 6年前 , 2F
爽 第一
04/03 13:38, 2F

04/03 13:38, 6年前 , 3F
是大神!
04/03 13:38, 3F

04/03 13:38, 6年前 , 4F
感覺很厲害 可是我end了
04/03 13:38, 4F

04/03 13:39, 6年前 , 5F
5
04/03 13:39, 5F

04/03 13:39, 6年前 , 6F
有神快拜
04/03 13:39, 6F

04/03 13:39, 6年前 , 7F
...
04/03 13:39, 7F

04/03 13:40, 6年前 , 8F
可以發論文了
04/03 13:40, 8F

04/03 13:40, 6年前 , 9F
你是初學者 那我們不就垃圾都不如
04/03 13:40, 9F

04/03 13:40, 6年前 , 10F
好,跟我想得一樣
04/03 13:40, 10F

04/03 13:41, 6年前 , 11F
老師好
04/03 13:41, 11F

04/03 13:42, 6年前 , 12F
04/03 13:42, 12F

04/03 13:42, 6年前 , 13F
04/03 13:42, 13F

04/03 13:42, 6年前 , 14F
老師好 先推再看
04/03 13:42, 14F

04/03 13:42, 6年前 , 15F
04/03 13:42, 15F

04/03 13:42, 6年前 , 16F
(づ′・ω・)づ ..這位是誰 怎那摸多推
04/03 13:42, 16F

04/03 13:43, 6年前 , 17F
<(_ _)>
04/03 13:43, 17F

04/03 13:43, 6年前 , 18F
@userpeter, 噓文也用 variadic function 嗎?
04/03 13:43, 18F

04/03 13:43, 6年前 , 19F
先跪下再說
04/03 13:43, 19F

04/03 13:43, 6年前 , 20F
看到ID先拜 m(_ _)m
04/03 13:43, 20F

04/03 13:44, 6年前 , 21F
大神!!
04/03 13:44, 21F

04/03 13:44, 6年前 , 22F
老師好
04/03 13:44, 22F

04/03 13:44, 6年前 , 23F
我媽問我為什麼跪著推 騙你的
04/03 13:44, 23F

04/03 13:44, 6年前 , 24F
這報告是出自哪???
04/03 13:44, 24F

04/03 13:45, 6年前 , 25F
語言就是語言 真的就只是語言
04/03 13:45, 25F

04/03 13:45, 6年前 , 26F
04/03 13:45, 26F

04/03 13:45, 6年前 , 27F
講三小 廢話一堆
04/03 13:45, 27F

04/03 13:45, 6年前 , 28F
Hen棒
04/03 13:45, 28F

04/03 13:46, 6年前 , 29F
J大推推
04/03 13:46, 29F

04/03 13:46, 6年前 , 30F
成大慣C哥
04/03 13:46, 30F

04/03 13:47, 6年前 , 31F
04/03 13:47, 31F

04/03 13:47, 6年前 , 32F
老師好
04/03 13:47, 32F

04/03 13:47, 6年前 , 33F
大神!
04/03 13:47, 33F

04/03 13:48, 6年前 , 34F
推!
04/03 13:48, 34F

04/03 13:48, 6年前 , 35F
有神快拜
04/03 13:48, 35F

04/03 13:48, 6年前 , 36F
04/03 13:48, 36F

04/03 13:49, 6年前 , 37F
04/03 13:49, 37F

04/03 13:49, 6年前 , 38F
是jserv!
04/03 13:49, 38F

04/03 13:50, 6年前 , 39F
看到第三句就不想看了= =
04/03 13:50, 39F
還有 208 則推文
04/03 19:26, 6年前 , 248F
我以為你整片要分析奶子
04/03 19:26, 248F

04/03 19:38, 6年前 , 249F
有請老師再來一篇摸c罩杯的教學
04/03 19:38, 249F

04/03 19:46, 6年前 , 250F
大神現身
04/03 19:46, 250F

04/03 20:06, 6年前 , 251F
04/03 20:06, 251F

04/03 20:10, 6年前 , 252F
釣到神了,可惜我已經轉去寫我的興趣網頁了
04/03 20:10, 252F

04/03 20:11, 6年前 , 253F
04/03 20:11, 253F

04/03 20:14, 6年前 , 254F
有神快拜
04/03 20:14, 254F

04/03 20:24, 6年前 , 255F
我是資工廢物
04/03 20:24, 255F

04/03 20:44, 6年前 , 256F
04/03 20:44, 256F

04/03 20:50, 6年前 , 257F
@ku399999, https://github.com/jserv/facebooc 兼顧興趣?
04/03 20:50, 257F

04/03 20:54, 6年前 , 258F

04/03 21:07, 6年前 , 259F
04/03 21:07, 259F

04/03 21:28, 6年前 , 260F
04/03 21:28, 260F

04/03 21:36, 6年前 , 261F
04/03 21:36, 261F

04/03 22:05, 6年前 , 262F
有神快推~ 學長好!
04/03 22:05, 262F

04/03 22:17, 6年前 , 263F
我文組完全看不懂直接End
04/03 22:17, 263F

04/03 22:43, 6年前 , 264F
快推
04/03 22:43, 264F

04/03 22:53, 6年前 , 265F
老師好
04/03 22:53, 265F

04/03 22:56, 6年前 , 266F
吳昇老師是真的好老師
04/03 22:56, 266F

04/03 23:30, 6年前 , 267F
推!
04/03 23:30, 267F

04/03 23:42, 6年前 , 268F
先推
04/03 23:42, 268F

04/03 23:43, 6年前 , 269F
04/03 23:43, 269F

04/03 23:48, 6年前 , 270F
Hello world!
04/03 23:48, 270F

04/03 23:59, 6年前 , 271F
大神!
04/03 23:59, 271F

04/04 00:00, 6年前 , 272F
推推
04/04 00:00, 272F

04/04 00:25, 6年前 , 273F
看到id先推
04/04 00:25, 273F

04/04 00:38, 6年前 , 274F
我還不推爆
04/04 00:38, 274F

04/04 01:21, 6年前 , 275F
推!
04/04 01:21, 275F

04/04 02:31, 6年前 , 276F
老實說你這篇騙惹多少
04/04 02:31, 276F

04/04 03:01, 6年前 , 277F
宅色夫,未看先推!!
04/04 03:01, 277F

04/04 05:37, 6年前 , 278F
04/04 05:37, 278F

04/04 07:56, 6年前 , 279F
有神快拜~
04/04 07:56, 279F

04/04 08:35, 6年前 , 280F
04/04 08:35, 280F

04/04 14:23, 6年前 , 281F
04/04 14:23, 281F

04/04 15:01, 6年前 , 282F
04/04 15:01, 282F

04/04 16:13, 6年前 , 283F
04/04 16:13, 283F

04/04 16:19, 6年前 , 284F
我第一個語言是 C 推 
04/04 16:19, 284F

04/04 23:01, 6年前 , 285F
推 然後借機推個吳昇
04/04 23:01, 285F

04/04 23:03, 6年前 , 286F
唷唷大神!!!
04/04 23:03, 286F

04/09 09:56, 6年前 , 287F
原來是本人
04/09 09:56, 287F
文章代碼(AID): #1QmnCb_W (Gossiping)
討論串 (同標題文章)
文章代碼(AID): #1QmnCb_W (Gossiping)