什么才算是真正的編程能力寡润?

還在讀書,也在實驗室?guī)兔ψ隽诵〇|西舅柜,自己也搭過幾個網(wǎng)站梭纹。在周圍人看來似乎好像我很厲害,做了那么多東西致份,但是我發(fā)現(xiàn)這些東西雖然是我做的变抽,但是實際上我手把手自己寫的代碼卻并沒有多少,很多都是用開源的東西氮块,我寫的代碼無非是把別人的東西整合下绍载,類似于膠水一樣的工作。

我之前所認(rèn)為的編程是全手動一行一行敲代碼滔蝉,但是現(xiàn)在我發(fā)現(xiàn)哪怕是工程上也有很多人是復(fù)制黏貼來解決問題的击儡,并且提倡不要重復(fù)造輪子。

但是靠谷歌和復(fù)制別人的輪子蝠引,雖然我做出了很多東西阳谍,可是我并不覺得自己能力上有提升蛀柴,倒是利用搜索引擎的能力的確提升了不少。而學(xué)校里另外一部分在搞ACM的人边坤,他們每天都在刷題練算法名扛,但單憑我個人的感受感覺他們似乎對工程上有些東西并不了解,或許算法的能力才算是實打?qū)嵉木幊棠芰胙鳎磕?膠水"的能力和整合輪子的能力算不算編程能力呢?

所以我現(xiàn)在就很困惑,所謂的編程能力到底是什么融蹂,我該如何提升自己的編程能力旺订?

非常好的一個問題。這可能是我在知乎見到過的問編程有關(guān)的問題中問得最好的一個了超燃。我非常喜歡這個問題区拳。

計算機科學(xué)有兩類根本問題。一類是理論:算法意乓,數(shù)據(jù)結(jié)構(gòu)樱调,復(fù)雜度,機器學(xué)習(xí)届良,模式識別笆凌,等等等。一類是系統(tǒng):操作系統(tǒng)士葫,網(wǎng)絡(luò)系統(tǒng)乞而,分布式系統(tǒng),存儲系統(tǒng)慢显,游戲引擎爪模,等等等等。

理論走的是深度荚藻,是在追問在給定的計算能力約束下如何把一個問題解決得更快更好屋灌。而系統(tǒng)走的是廣度,是在追問對于一個現(xiàn)實的需求如何在眾多的技術(shù)中設(shè)計出最多快好省的技術(shù)組合应狱。

搞ACM的人共郭,只練第一類。像你這樣的更偏向于第二類侦香。其實挺難得的落塑,但很可惜的是第二類能力沒有簡單高效的測量考察方法,不像算法和數(shù)據(jù)結(jié)構(gòu)有ACM競賽罐韩,所以很多系統(tǒng)的苗子都因為缺少激勵和正確引導(dǎo)慢慢就消隱了憾赁。

所以比爾蓋茨才會說,看到現(xiàn)在學(xué)編程的人經(jīng)常都把編程看作解各種腦筋急轉(zhuǎn)彎的問題散吵,他覺得很遺憾龙考。

做系統(tǒng)蟆肆,確實不提倡“重復(fù)發(fā)明輪子”。但注意晦款,是不提倡“重復(fù)發(fā)明”炎功,不是不提倡“重新制造”。恰恰相反的缓溅,我以為蛇损,系統(tǒng)的編程能力正體現(xiàn)在“重新制造”的能力。

能把已有的部件接起來坛怪,這很好淤齐。但當(dāng)你恰好缺一種關(guān)鍵的膠水的時候,你能寫出來嗎袜匿?當(dāng)一個已有的部件不完全符合你的需求的時候更啄,你能改進它嗎?如果你用的部件中有bug居灯,你能把它修好嗎祭务?在網(wǎng)上繁多的類似功能的部件中,誰好誰壞怪嫌?為什么义锥?差別本質(zhì)嗎?一個開源代碼庫喇勋,你能把它從一個語言翻譯到另一個語言嗎缨该?從一個平臺移植到另一個平臺嗎?能準(zhǔn)確估計自己翻譯和移植的過程需要多少時間嗎川背?能準(zhǔn)確估計翻譯和移植之后性能是會有提升還是會有所下降嗎贰拿?

系統(tǒng)編程能力體現(xiàn)在把已有的代碼拿來并變成更好的代碼,體現(xiàn)在把沒用的代碼拿來并變成有用的代碼熄云,體現(xiàn)在把一個做好的輪子拿來能畫出來輪子的設(shè)計藍圖膨更,并用道理解釋出設(shè)計藍圖中哪些地方是關(guān)鍵的,哪些地方是次要的缴允,哪些地方是不容觸碰的荚守,哪些地方是還可以改進的。

如果你一點不懂理論练般,還是應(yīng)該學(xué)點的矗漾。對于系統(tǒng)性能的設(shè)計上,算法和數(shù)據(jù)結(jié)構(gòu)就像在自己手頭的錢一樣薄料,它們不是萬能的敞贡,但不懂是萬萬不行的。

怎么提高系統(tǒng)編程能力呢摄职?土辦法:多造輪子誊役。就像學(xué)畫畫要畫雞蛋一樣获列,不是這世界上沒有人會畫雞蛋,但畫雞蛋能馴服手指蛔垢,感受陰影線條和筆觸击孩。所以,自己多寫點東西吧鹏漆。寫個編譯器巩梢?渲染器?操作系統(tǒng)艺玲?web服務(wù)器且改?web瀏覽器?部件都一個個換成自己手寫的板驳,然后和已有的現(xiàn)成部件比一比,看看誰的性能好碍拆,誰的易用性好若治?好在哪兒?差在哪兒感混?為什么端幼?

更聰明一點的辦法:多拆輪子。多研究別人的代碼是怎么寫的弧满。然而這個實踐起來經(jīng)常很難婆跑。原因:大部分工業(yè)上用的輪子可能設(shè)計上的思想和技術(shù)是好的,都設(shè)計和制造過程都很爛庭呜,里面亂成一團滑进,讓人乍一看毫無頭緒,導(dǎo)致其對新手來說非常難拆募谎。這種狀況其實非常糟糕扶关。所以,此辦法一般只對比較簡單的輪子好使数冬,對于復(fù)雜的輪子节槐,請量力而行。

輪子不好拆拐纱,其實是一個非常嚴(yán)重的問題铜异。重復(fù)發(fā)明輪子固然是時間的浪費,但當(dāng)輪子復(fù)雜而又不好拆的時候秸架,尤其是原來造輪子的人已經(jīng)不在場的時候揍庄,重新發(fā)明和建造輪子往往會成為無奈之下最好的選擇。這是為什么工業(yè)界在明知道重復(fù)發(fā)明/制造輪子非常不好的情況下還在不斷重復(fù)發(fā)明/制造輪子的根本原因咕宿。

程序本質(zhì)是邏輯演繹的形式化表達币绩,記載的是人類對這個世界的數(shù)字化理解蜡秽。不能拆的輪子就像那一篇篇丟了曲譜的宋詞一樣,能讀缆镣,卻不能唱芽突。

鄙人不才,正在自己研究怎么設(shè)計建造一種既好用又好拆的輪子董瞻。您沒那么幸運寞蚌,恐怕是等不到鄙人的技術(shù)做出來并發(fā)揚光大了。在那之前钠糊,多造輪子挟秤,多拆好拆的小輪子,應(yīng)該是提高編程能力最好的辦法了抄伍。

以上艘刚。嗯。

(文章屬個人觀點截珍,與本人工作雇主無關(guān)攀甚。)

作者:劉賀

鏈接:https://www.zhihu.com/question/31034164/answer/50423838

來源:知乎

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)岗喉,非商業(yè)轉(zhuǎn)載請注明出處秋度。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钱床,隨后出現(xiàn)的幾起案子荚斯,更是在濱河造成了極大的恐慌,老刑警劉巖查牌,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件事期,死亡現(xiàn)場離奇詭異,居然都是意外死亡僧免,警方通過查閱死者的電腦和手機刑赶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懂衩,“玉大人撞叨,你說我怎么就攤上這事∽嵌矗” “怎么了牵敷?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長法希。 經(jīng)常有香客問我枷餐,道長,這世上最難降的妖魔是什么苫亦? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任毛肋,我火速辦了婚禮怨咪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘润匙。我一直安慰自己诗眨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布孕讳。 她就那樣靜靜地躺著匠楚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪厂财。 梳的紋絲不亂的頭發(fā)上芋簿,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音璃饱,去河邊找鬼与斤。 笑死,一個胖子當(dāng)著我的面吹牛荚恶,可吹牛的內(nèi)容都是我干的幽告。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裆甩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了齐唆?” 一聲冷哼從身側(cè)響起嗤栓,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箍邮,沒想到半個月后茉帅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡锭弊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年堪澎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片味滞。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡樱蛤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出剑鞍,到底是詐尸還是另有隱情昨凡,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布蚁署,位于F島的核電站便脊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏光戈。R本人自食惡果不足惜哪痰,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一遂赠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晌杰,春花似錦跷睦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惋啃,卻和暖如春哼鬓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背边灭。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工异希, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绒瘦。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓称簿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惰帽。 傳聞我的和親對象是個殘疾皇子憨降,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 伯樂在線小編注:本文綜合整理自知乎同名問答帖授药。題主的問題補充如下: 還在讀書,也在實驗室?guī)兔ψ隽诵〇|西呜魄,自己也搭過...
    cmlong_閱讀 139評論 0 0
  • 轉(zhuǎn)載自什么才算是真正的編程能力爵嗅?作者:IT程序獅 知乎上看到一題主的發(fā)問: 還在讀書娇澎,也在實驗室?guī)兔ψ隽诵〇|西,自...
    Super_鄧帥閱讀 199評論 0 1
  • 編程能力是一種解決問題的能力。如果問題沒能被很好地解決伪很,知道再多也沒用岔激。 編程能力是一種運用機器解決問題的能力。首...
    切切歆語閱讀 424評論 0 0
  • 在書面表達上: 別人的文章很通順是掰,我的文字只有類似我這樣的人才懂:“這叫少有的內(nèi)涵” 為了表述清楚我的敘事...
    小宗兒閱讀 208評論 0 0
  • 走了很久很久虑鼎,擦擦額頭上的汗,天空中的日頭依舊那么蒼白。周邊依舊是一望無際的沙漠炫彩。我沒有水匾七。卻并不渴。也不擔(dān)心沒水...
    Deer_Elaine閱讀 230評論 0 0