吴忠躺衫网络科技有限公司

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>數值算法/人工智能>

編程能力是一種解決問題的能力

大小:0.3 MB 人氣: 2017-10-12 需要積分:1
 編程能力是一種解決問題的能力。如果問題沒能被很好地解決,知道再多也沒用。
  編程能力是一種運用機器解決問題的能力。首先是要判斷問題在什么程度上可被機器解決,比如理論計算機科學會告訴我們什么可做、什么理論上不可做、什么理論上可做實踐上不可做。然后是讓機器更好地理解問題,比如計算機都是(圖靈-馮諾依曼模型)等價,但不同的問題可能會適用不同的編程語言。再后是讓機器能更高效率地解決問題,比如同樣的問題可能會有效率差別巨大的算法
  編程能力是一種抽象問題的能力。借用輪子是很好的辦法,省力省時間。今天任何軟件工程師都會有意無意地使用很多輪子,從操作系統編譯器數據庫網絡到算法數據結構。想高效地借用輪子,就需要將問題分解再分解,抽象再抽象。任何一個實用的系統(不包括教科書上的示例程序和簡單的腳本程序)都需要進行大量的分拆和組合。所以系統設計是編程能力里的高級技能,加合理的假設簡化問題尤其有難度,此處不展開討論。高手和新手的區別在于新手往往不知道輪子的適用范圍,而高手的手上輪子數量多且熟知各種輪子的差異,所以對不同的問題可以輕松地找到合適的輪子,當實在找不到合適的輪子時可以自己動手改造現有的輪子。平時有時間拆裝和改造已有的輪子會對水平提升有較大幫助。當然能知道怎樣快速在搜索引擎里搜出輪子也是一種能力。
  編程能力是一種需要考慮擴展性的能力。算法競賽中的很多算法考慮的是單機的內存算法,計算模型經過高度抽象,在實踐中機器的模型更為復雜。比如單機的多級結構帶來的各種時間空間復雜度的取舍平衡,多機網絡中如何能在提高單機性能外進一步優化整體性能。除了在機器端的擴展,在程序員一端的擴展也很重要。復雜的問題和工程往往意味著團隊協同以及更長時間的開發維護,團隊分工和設計溝通這里暫且不論。舉個容易被忽視的例子,程序中的注釋。高手會更在意完整且表達清楚的注釋,因為這是寫給現在和未來的團隊(包括自己和其他成員)看的,直接影響到長期的整體開發維護效率。
  編程能力是一種取舍的能力。局部的最優解未必是全局的最優解。如果一個美妙的解決方案需要將完工時間向后推遲一兩個月,需要考慮是否先使用平凡方案解決問題,之后再進行優化。當你的工作延后會阻礙別人的工作時尤其如此。發現一個絕妙的優化方案時先想想這個優化是否真的有價值,如果只是系統中很小的部分,那么不要為了追求心理滿足而花很多時間放一個漂亮的輪子上去(參考Amdahl定律)。
  編程能力是一種預見未來的能力。目前的方案有哪些假設和局限性,在何種情形下會遇到問題甚至崩潰。在未來出現問題時問題是否需要重新定義,系統是否需要重新設計,代碼是否需要重構或優化等等都需要未雨綢繆。
  編程能力是一種工程能力。無它,唯手熟爾。
  編程能力是一種解決問題的能力。如果問題沒能被很好地解決,知道再多也沒用。
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      百家乐桌子定制| 网上百家乐骗人| 今晚六合彩开奖结果| 太阳城百家乐群| 九江县| 极速百家乐真人视讯| 百家乐官网大路小路| 威尼斯人娱乐城最新网址| 钱隆百家乐官网的玩法技巧和规则| 时时博娱乐城评级| 至尊百家乐停播| 百家乐官网博彩安全吗| 大发888加盟合作| 赌百家乐官网2号破解| 双鸭山市| 免费百家乐预测| 钱柜百家乐官网娱乐城| 广昌县| 威尼斯人娱乐场内幕| 八卦罗盘24山图| 百家乐官网多少点数算赢| 大发888在线娱乐合作伙伴| 百家乐怎么赢对子| 新利88网上娱乐| 百家乐赌场凯时娱乐| 百家乐官网怎么做弊| 海阳市| 大发888打法888| 缅甸百家乐赌博有假吗| 百家乐官网强对弱的对打法| 阿坝县| 大发888娱乐城下载lm0| 凯旋门百家乐娱乐城| 真人百家乐官网代理分成| 体球网| 百家乐技巧开户网址| 百家乐手机游戏下载| 博之道百家乐官网技巧| 新皇冠娱乐城| 威尼斯人娱乐网注册送38元彩金| 百家乐娱乐城博彩正网|