其實programming concept姐係點???

我係中四讀過pascal,大學讀過c++, java

我睇post, 大家話學concept,但係我唔係好知咩係prgramming ge concept.....其實係咪姐係個logical flow定係點???

原帖由 傳紙仔 於 2010-1-11 01:39 發表
我係中四讀過pascal,大學讀過c++, java

我睇post, 大家話學concept,但係我唔係好知咩係prgramming ge concept.....其實係咪姐係個logical flow定係點???


Programming Paradigm : 一種program language 背後對"computation" 既理念唔同, 導致developer 需要用唔同既方式思考. java 同 c# 既理念相近, 好多想法可以相通, 但係Java 同 SQL, Lisp 就完全唔同, 初學者幾乎要洗腦先可以完成呢種思考模式轉換, 成熟既developer 應有三五七種唔同既Paradigm 係手, 好多時一個program 都需要多於一種paradigm 先可以「做好呢份工」.

Programming Languages : 一種programming language 要由不同層次去理解. 一方面要了解相關既 paradigm (OOP, Functional, Rule-based, Stack-based, 等等) , 另一方面要了解syntax (語法, 即係grammar), semantics (語義, 一段code 所包含既意思), Type System (一種programming language 如何表達資料數據), platform library (系統已預設的function, class, 等等)

Software Engineering : Coupling 與 Cohesion 既分野與權衡, 各種了解一個程序既觀點 (結構為本, 時序為本, 需求為本, 數據為本), 對於「正確性」,「可維護性」, 「效率」, 「可伸縮性」, 「可擴展性」, 「安全性」, 「複雜性」等各種程序既質素評價觀點.

重有好多, 值得投入一生既心思去學習, 不過 "this margin is too narrow to contain."  

TOP

其實concept有好多種既,有high level有low level
thinkpanda講得好好,假如你讀CS既話,一定要學上面既野
我試下講d較low level既野,可以歸納在Software Enginnering入面,亦都係實作一個program要知道既野:

首先你要知道,大概係部電腦點運作
programmer要知道最低level既野就係CPU instructions,
成個memory system點運作
如果你學既係C,咁你一定要識以上既野,因為C逼programmer一定要自己管理memory,唔識既話d pointer, stack overflow, memory leak可以整死你

繼而你要知個OS點運作,你個program(正確d黎講係process)係點樣響個OS上面生存,你d code點樣用到OS既facility(system calls)
點解個OS要咁設計....etc

有以上既concepts,你可以知道點解你個program行得慢,點解會crash,點解compiler唔比你咁做
無既話,你都可以寫到program,不過唔會係一個好既program

TOP