什么才算是“真正的”编程能力?不提升这些能力,你何时能拿高薪!
真正的編程能力,兩個詞概括:
? ? ? ?建模+實現
? ? ???建模能力如何提高?關鍵在于分析問題
理解越深,預測能力越強,自己的智慧才越好發揮。這就是學習軟件編程最快的方式之一 “造輪子” ——造輪子就是為了深刻理解輪子、預測輪子的行為。
實現能力如何提高?關鍵在于工具的使用
(數據結構,算法基礎,語言,框架,工具,軟件)
把目標轉化成指揮方案,這種 “做應用題” 的能力你造嗎?不會告訴你建模的知識點,也不會透露全部必要條件,增強這個能力你需要 “理解垂直行業的業務邏輯”。
當用戶覺得我們的東西功能齊全、用起來得心應手,恭喜你,你已經成功了!
1、編程能力是一種解決問題的能力
如果問題沒能很好地解決,知道再多也沒用。
2、編程能力是一種運用機器解決問題的能力
什么問題可以被機器解決?如何讓機器更好地理解問題?不同的問題適用不同的編程語言。讓機器更高效率地解決問題吧!
3、編程能力是一種抽象問題的能力
借用輪子省力省時間,而想要高效地借用輪子,就需要將問題分解再分解,抽象再抽象。任何一個實用的系統都需要進行大量的分拆和組合。
所以系統設計是編程能力里的高級技能,合理的假設、簡化問題尤其有難度。
高手和新手的區別在于:新手往往不知道輪子的適用范圍,而高手不僅輪子多且熟知輪子間的差異,不同的問題用不同的輪子,及時找不到合適的,也可以自己動手改造。
當然能知道怎樣快速在搜索引擎里搜出輪子也是一種能力。
4、編程能力是一種需要考慮擴展性的能力
算法競賽中的很多算法考慮的是單機的內存算法。計算模型經過高度抽象,在實踐中機器的模型更為復雜。比如單機的多級結構帶來的各種時間空間復雜度的取舍平衡,多機網絡中如何能在提高單機性能外進一步優化整體性能。
除了在機器端的擴展,在程序員一端的擴展也很重要。復雜的問題和工程往往意味著團隊協同以及更長時間的開發維護。
圖片來源網絡
5、編程能力是一種取舍的能力
局部的最優解未必是全局的最優解。如果一個美妙的解決方案需要將完工時間向后推遲一兩個月,那么你就需要考慮是否先使用平凡方案解決問題,之后再進行優化。
當你的工作延后會阻礙別人的工作時尤其如此,不要為了追求心理滿足而花很多時間放在一個漂亮的輪子上去(參考 Amdahl 定律)。
6、編程能力是一種預見未來的能力
目前的方案有哪些假設和局限性,在何種情形下會遇到問題甚至崩潰。在未來出現問題時問題是否需要重新定義,系統是否需要重新設計,代碼是否需要重構或優化等等都需要未雨綢繆。
7、編程能力是一種工程能力
無它,唯手熟爾。
如何去提升編程能力?在約定的條件下,對自己的模型和實現能夠知道(how),和為什么(why)的情況下,選擇最合適的方案建模并有能力實現設計來滿足需求。提高編程能力的方法:學習 + 建模 + 實現(造輪子或者仿造別人造輪子)
拿起你的武器,建立你的 “國度” 吧
“我是一名從事了10年開發的老程序員,最近我花了一些時間整理關于C語言、C++,自己有做的材料的整合,一個完整的學習C語言、C++的路線和工具。如果你感覺你自學C/C++編程有難度的話,可以湫湫掃下方二維碼。這里是編程愛好者的聚集地,歡迎初學和進階中的小伙伴。希望你也能憑自己的努力,成為下一個優秀的程序員。
C/C++學習路線圖:
?
總結
以上是生活随笔為你收集整理的什么才算是“真正的”编程能力?不提升这些能力,你何时能拿高薪!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jakarta Struts应用的七个经
- 下一篇: 【硬核干货】如何高效找到优质编程项目?