Re: [問題] 數學物理的基礎不佳對程式設計的影響

看板Programming作者 (ing)時間11年前 (2013/03/04 00:43), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串3/7 (看更多)
※ 引述《kusobike ()》之銘言: : ※ 引述《sheila221 (sheila)》之銘言: : 小弟不是專業的程式設計工程師,工作中會自己寫些程式做為輔助 : 提供一個外行人對於寫程式的心得 : 1.數學與物理很重要嗎? : 程式語言,類比於人類的語言, : 我們講中文,難道需要先學微分方程嗎? : 免~~~ : 所以寫程式語言,不一定要使用高深的數學 : 2.程式語言的基本重點 : 我們講中文,中文有文法,有邏輯架構 : 同理,程式語言也有語法與邏輯, : 這是學程式語言的基本心法 : 所以,不懂高深的數學沒關係, : 但是不能不懂語法與邏輯 : 3.你要寫什麼程式? : 電腦不只會撿土豆,還會控制戰車砲塔,又能自動洗車, : 連充氣型類雌性生物體仿真橡膠灌注體都有電腦溫控 : 所以第三步驟是,你要寫什麼程式,專業一點,可以說你要開發什麼專題? : 比如說,影像處理、圖型辯識、藍芽、GUI、最佳化演算法、數值計算...etc. : 不同的領域有各自的技術,先抓住大目標再專攻你要學的技術 : 資訊科的資訊,是information,但是information也有很多種 : 加上現在的資訊流動與更新很快,不能像劉姥姥逛大觀園一樣 : 看一項,讚嘆一項,項項都想學,最後跟對穿腸一樣吐血而亡 : 4.善用網路資源 : 以小弟的經驗是,與其每個程式或子程式都自己硬幹 : 不如先估狗有沒有開放原始碼,或者已經包裝好的執行檔(或工具箱) : 以數值計算為例,常見的數值方法都能估狗到原始碼, : 甚至連免費的Matlab 工具箱也有 : 如此一來,就不用事必躬親,把心力放在整合成完整的程式 : 其實最難的地方在整合拉... 另一個問題是 3rd 工具裡面可能會有包。 踩到雷之後 你知道這是雷 或是你只知道這東西怪怪的 : 最後分享自己的經驗,參考參考 : 小弟使用程式語言的經驗,大多是工程數值計算相關的問題 : 所以我會用到的技巧,其實很簡單 : 檔案I/O、迴圈、if判斷、呼叫其他程式、繪圖、矩陣 : 用這些基本技巧,就能寫最佳化演算法,跟其他程式溝通,修改數值模型 : 再複雜一點的話...加個亂數產生器(還是內建的喔)就夠嗆了 : 很簡單的功夫,就能把長官唬得一愣一愣的~~~ : 解工程問題一定會遇到數學技巧 : 不過還有更多領域只會用到以下這些運算符號... : +-*/()"";>< : 一個沒有微分與積分的世界,多棒阿~~~所以不用擔心 主要的差別在 你是否要研究電腦科學,或是你只想當個電腦程式工人 在一般的應用領域上,就是以資訊去輔助自動化的這個方面 會不會數學的差異不明顯 因為你沒有,也不需要碰到這些東西是怎麼在電腦裡運作的。 在這個方面絕大部份的應用都只是增刪查改,研究使用者UI的CP值還比較高 反正程式效能爛了沒差,硬體很強壯,就算爛到一個不行,硬體還是很便宜。 一台跑不了我用兩台,兩台跑不了大不了弄一團丟上去跑它個三天三夜 差別在於 這些東西本質上是數學運算,再本質上是電在機器裡面跑。 當你發現效能爛的時候,小範圍的應用沒有差。SCOPE一大就會開始麻煩。 尤其是大到硬體再加上去也不划算的時候。就是考驗你基本底子的時候。 數學本質上是把實際的情形抽象化成數字。再演繹歸納出各種工具(公式) 再透過這些工具反過來處理其他可以被抽象化成數字的問題 重點並不是你背了多少公式,而是你對實際情形是否可以把它抽象化成數字, 再應用你學過或找到的工具公式來找出你在實際狀況下想要知道的資訊 而這個其實跟你如何應用你手邊的程式工具等做出你需要的結果是類似的 問題在於怎樣應用你所知道的部分去找出更好的結果 甚至在其他的學科也是應用這樣的方式進行研究 比如增刪查改需要資料庫 資料庫慢了大家知道要加索引,但是為什麼要加索引? 索引是透過怎樣的機制去加速查詢的進行?哪些條件下加索引反而是不利的? 在加或不加之間的判斷是如何? 如果你沒有基本的數字處理能力的話,十分有可能你是只知其一不知其二的。 以加減乘除來說 加減簡單 乘除複雜 那麼你實際上用不用的到乘除呢 我大不了遇到乘法我就給他加加加加加加加嘛 反正電腦很快加一下就完了 遇到除法我就減減減減減嘛 反正也很快就減完了 但是你會乘法跟除法的話,處理複雜問題的時候會省你很多時間。 這就是對數學掌握程度的差別 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.79.188

03/04 20:43, , 1F
團隊合作, 大家截長補短, 不需要人人都
03/04 20:43, 1F

03/04 20:44, , 2F
是高手, 而且, 有熱忱會比多數高學歷,
03/04 20:44, 2F

03/04 20:45, , 3F
但只把寫程式當成混口飯吃的人好用.
03/04 20:45, 3F

03/05 19:59, , 4F
並不是
03/05 19:59, 4F

03/05 20:02, , 5F
熱血無敵勇者王的作法 除非你不想再維護
03/05 20:02, 5F

03/05 20:02, , 6F
這個案子 否則應該要被禁止的
03/05 20:02, 6F

03/05 20:12, , 7F
?_? 就是不需要"熱血無敵勇者王",所以
03/05 20:12, 7F

03/05 20:13, , 8F
不需要每個人都是能optimize performanc
03/05 20:13, 8F

03/05 20:14, , 9F
的algorithm高手.
03/05 20:14, 9F

03/06 13:13, , 10F
我是指 太多不知其所以然的人蠻幹會很慘
03/06 13:13, 10F

03/06 13:15, , 11F
大家都覺得自己的變更ok 但加起來就炸了
03/06 13:15, 11F

03/06 21:50, , 12F
能把一台電腦的問題拆成很多台電腦是高手
03/06 21:50, 12F

11/28 22:17, , 13F
推!
11/28 22:17, 13F
文章代碼(AID): #1HCtsUh- (Programming)
討論串 (同標題文章)
文章代碼(AID): #1HCtsUh- (Programming)