精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: SmallBee.bbs@binary.csie.ncu.edu.tw (喵~~~), 信區: programming > ※ 引述《"newser.bbs@bbs.ee.ncu.edu.tw" <newser.bbs@bbs.ee.ncu.edu.tw, 看板: Language》之銘言: > : http://72.14.203.104/search?q=cache:0GqgsKdZ6z0J:www.jjhou.com/letters-2001-06.htm+turbo+C+paradi > gm&hl=zh-TW&gl=tw&ct=clnk&cd=24 > 幫你把全文節錄 > ============原始問題============== > 尊敬的侯先生: > 您好,我是您的一個小小的崇拜者.^_^ > 我是個程序愛好者,因為受各種客觀條件限制,我不得不在學習的過程中小心翼翼,怕自己 > 走彎路. > 我現在學習方法是這樣的:我是從VBSCRIPT開始我的程序學習的.我目前正在學習C/C++.同 > 時也在學習VB/ASP. > 我學習C/C++是用一些在國內口碑皆佳的入門書.在我學習的過程中,我逐漸發現,事情並沒 > 有我想象的那麼簡單.原來我以為,學習好C/C++後,我就能編寫那些很優秀,很厲害的程序. > 然而入了門後,隨著自己知識一點點地提高,我發現並不是只學好C/C++就能開發出很好的 > 軟件.還要學習很多其他方面知識,比如網絡原理,硬件基礎知識,數據庫原理等. > 侯先生,我目前的路該如何走呢?我不想急功近利地學習一些技術含量相對不高的東西去賺 > 錢,靠它吃飯(目前這種情況在大陸很多).我的目的是提高自己.我目前是不是該學習一些 > C/C++以外的知識?比如我想在硬件上面下功夫,是不是要深入學習彙編,硬件原理呢?在 > C/C++上面,我是該深入地學習鑽磨那些高深的算法,還是去下功夫學習底層的彙編呢?請告 > 訴我我該怎麼走? > 將信分成幾段,目的是為了讓您閱讀輕鬆一些.不知如此撰寫,看起來是否輕鬆點?:) > 多謝 > =============侯捷回覆============== > 侯捷回覆:C++ 只是一個語言。它是利器沒錯,但軟體開發的決勝場在 domain > knowledge,程式設計的好壞在你的思維。以為使用 C++(或任何語言)就能開發出很好 > 的軟件,就高人一等,是大大的錯誤。「我目前是不是該學習一些C/C++以外的知識?」 > 是的,當然,語言只是幫助你將你的想法表現出來(做為一個程序員,這是最基本的要求 > ),重要的是你解決問題的想法。要解決資料的處理,請熟練(熟用)各種資料結構;要 > 解決資料的操作,請熟練(熟用)各種演算法;要開發繪圖軟體、色彩分析軟體、文書處 > 理軟體、排版軟體、股票行情軟體…、都有各行各業的 domain knowledge 需要學習。 > assembly 語言非常低階。我一向認為,除非你需要撰寫 driver,否則以目前的情況來看 > ,不再需要學習它。 > ==============摘錄結束=========== > 首先,不要隨便的幫別人斷章取義 > 要摘錄請整段摘錄,不要中間少一兩句,有誤導視聽的嫌疑 > 這邊的回應,以我的看法來說 > 主要是說明,重點不在於使用哪一套語言 > 而是你打算要做出甚麼 > 對於這個目標,應該要有相應的基本知識 ========= 這裡有一個有趣的問題. 請教者: 我的目的是提高自己.我目前是不是該學習一些C/C++以外的知識? 比如我想在硬件上面下功夫,是不是要深入學習彙編, 硬件原理呢? 在C/C++上面,我是該深入地學習鑽磨那些高深的算法,還是去下功夫 學習底層的彙編呢? 請告訴我我該怎麼走? 回應者提到了 ....都有各行各業的 domain knowledge 需要學習。 assembly 語言非常低階。我一向認為,除非你需要撰寫 driver, 否則以目前的情況來看,不再需要學習它。 1. 想在硬件上面下功夫, 那麼 "硬件" 是否會有相關的 domain knowledge ? 2. 彙編(這是大陸術語, 就是 Macro Assembler), 硬件原理是否是 "硬件" 的 關鍵性 Domain Knowledge ? 3. 組合語言非常低階, 除非需要撰寫 driver , 目前的情況, 不再需要學習它. 過去的大學課程, " 計算機組織與組合語言 " 是一門資工的必修課, 但最近教 的人少了, 主因是 X86 CPU 的使用環境與架構是在 VM386 上運行, VM86 模式 則又跟實體 I/O 有距離, 因此 I/O Driver 的練習環境在 MS-Window 軟體不 開放下, 就變得與現況不符, 想練習都有困難, 所以 assembly 語言的 i/o driver 被認為不必教了. 個人猜測這也是組合語言反而移到 8051 cpu 的原因. 現在幾乎多數科系的學生都要學程式語言與程式規劃, C/C++ 是高階語言, 棄 COBOL , FORTRAN 改教 C/C++ 者所在都有. 資工系也因此 "棄硬從軟" 就更加在 資料結構, 演算法 更軟化, 更抽象化, 企 圖藉此有所區分. 但上層的應用本身就是涉及專業知識, 那麼資工/資管/資科的 電腦應用又是那些特殊專業 ? 但若要讓電腦有效發揮軟硬體整體效益, 讓高階語言以下的世界是一團黑洞, 顯 然是個該思考的問題. 即使改用 8051 CPU 組語代替, 依舊是讓微軟組成一道鴻 溝. 組語不需精通, 因為有高階語言與編譯器可以協助, 但組織架構, 硬體介面 與軟硬模組彼此間的高效協同卻是做電腦(含軟硬體系統, 未必是資x)者必備的 知識. 台灣的 資x系 也只是 "使用電腦" 的專業學系之一, 她的 Domain Knowledge 正隨潮流演化而移動, 而電腦只是能處理 Information 的裝備之一, 她不如 人腦, 所以電腦做不好, 就用有人腦的人代替. -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234
UNARYvvv:資工必修「計算機組織」教的人少了?????????? 04/15 14:12