自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

中級程序員還應(yīng)該如何提高自己?

開發(fā) 后端
當(dāng)程序員已經(jīng)處于中級時(shí),應(yīng)如何提高自己?有很多關(guān)于“學(xué)習(xí)編程”的資源,能夠讓人從0到新手(雖然這些資源中大多數(shù)的質(zhì)量是值得商榷的),但是怎么樣才能將中級水平提高到專家級?如何構(gòu)建允許我在高級別編寫代碼的心理模型?

想法和問題

當(dāng)程序員已經(jīng)處于中級時(shí),應(yīng)如何提高自己?有很多關(guān)于“學(xué)習(xí)編程”的資源,能夠讓人從0到新手(雖然這些資源中大多數(shù)的質(zhì)量是值得商榷的),但是怎么樣才能將中級水平提高到專家級?如何構(gòu)建允許我在高級別編寫代碼的心理模型?

在這篇文章中,我將討論關(guān)于普遍性能改進(jìn)的一些理論,然后討論一些程序員用于實(shí)踐的方法(以及我對這些實(shí)踐的想法),然后是我對改進(jìn)成為中級或更優(yōu)秀程序員的***方法所作出的結(jié)論。

[[184663]]

關(guān)于普遍性能改進(jìn)的快速指南

我最近一直在閱讀大量關(guān)于性能改進(jìn)的內(nèi)容,大多數(shù)文獻(xiàn)使用K. Anders Ericsson的研究作為起點(diǎn)。他是性能研究的杰出面代表,幾乎在所有涉及這個(gè)主題的書中都被引用。他今年發(fā)表的書《Peak: Secrets from the New Science of Expertise》,濃縮其30多年的研究,易于理解,這也是我推薦給大多數(shù)新手的單個(gè)***資源。

簡要總結(jié)上下文:

  • 改進(jìn)任務(wù)的執(zhí)行來自于開發(fā)更好的心理模式,更好的心理模式通過有意或有目的的實(shí)踐。
  • 為了能夠?qū)崿F(xiàn)改進(jìn),必須能夠定義什么構(gòu)成改進(jìn)性能并且分解實(shí)現(xiàn)步驟。
  • 實(shí)踐和性能是不同的,***的實(shí)踐方法幾乎從不是性能。例如:一個(gè)想要提高擊中的棒球運(yùn)動(dòng)員應(yīng)該花費(fèi)30分鐘在練習(xí)場中練習(xí)200個(gè)投球(實(shí)踐),而不是用2個(gè)小時(shí)去比賽中觀看15個(gè)投球(性能)。

提高方法

我發(fā)現(xiàn)人們建議的大多數(shù)關(guān)于編程的改進(jìn)方法就是基于性能的。閱讀代碼,閱讀關(guān)于代碼的內(nèi)容,編寫代碼,做項(xiàng)目,談?wù)摯a等等。如果他們在自己的工作之外做這些事情,那么程序員基本上肯定會(huì)有所提高,但似乎不是很有效率。

如果我想更擅長于編程,但每周我只想從自己的時(shí)間中花幾個(gè)小時(shí)致力于編程呢?什么是建立更佳心理模型的最有效方式,以便于我可以做出更明智的決定? 《Peak》一書中關(guān)于刻意實(shí)踐的一個(gè)***例子是音樂家。想要提高特定樂器的技能或?qū)W習(xí)一首新的音樂,是有經(jīng)過定義的,標(biāo)準(zhǔn)化的方式的;包括一個(gè)音樂家在幾個(gè)月的時(shí)間里學(xué)習(xí)一首新音樂的例子——每日只是刻意練習(xí)5分鐘。而在編程中,我們沒有大量的明確目標(biāo)或改進(jìn)措施(即:在某一段音樂作品的錯(cuò)誤的數(shù)量),但其他的我發(fā)現(xiàn)都沒有這個(gè)比喻接近。

那么,我們?nèi)绾蔚玫轿覀冏鳛槌绦騿T的性能反饋循環(huán)?是的,我們有特定片段代碼的反饋循環(huán),無論代碼是否工作,它的性能和健壯性如何等等。我們對于系統(tǒng)的穩(wěn)健性有一個(gè)更長的反饋循環(huán),因?yàn)樗鼈冊谪?fù)載下會(huì)跌倒或隨著時(shí)間的推移會(huì)變得笨拙。但是我們并不經(jīng)常得到問題方法的實(shí)時(shí)反饋。

下面是我用來學(xué)習(xí)編程的方法,有些地方很不錯(cuò),也有些地方值得改進(jìn):

通過編程挑戰(zhàn)實(shí)踐

我享受于編程挑戰(zhàn),但一般來說,我發(fā)現(xiàn)它們不值得去接觸一種新的編程語言。它們提供弱反饋循環(huán)——你的程序要么產(chǎn)生正確的輸出要么不產(chǎn)生——并且不會(huì)給你對設(shè)計(jì)過程的反饋。這個(gè)方法可能會(huì)介紹一個(gè)新的算法或一個(gè)你不熟悉的語言的新功能,但在實(shí)踐方面,很弱。比起“實(shí)踐”,它更接近于“性能”,并且你處理的是人為的問題,而不是真正的問題。

我發(fā)現(xiàn)的一個(gè)例外是由@ericwastl的Advent Of Code。編程問題很好地模擬了現(xiàn)實(shí)生活中的問題(需求定義明確,但是邊緣情況沒有寫入規(guī)范并且必須隱含),并且對于解決方案有多么設(shè)計(jì)良好具備即時(shí)反饋,因?yàn)閷γ總€(gè)拋出額外需求或一些其他困難的問題有part 2,這意味著你必須重新評估你的原始解決方案有多少精心設(shè)計(jì)。這并不***,但我喜歡看到我的解決方案具有挑戰(zhàn)性,并且經(jīng)常不得不重新考慮我的解決方案的結(jié)構(gòu)和設(shè)計(jì),當(dāng)我達(dá)到part 2的時(shí)候。

做業(yè)余項(xiàng)目

做業(yè)余項(xiàng)目,如果你有一個(gè)的話,將是投入額外編程時(shí)間的偉大方式;如果你做一些你喜歡的事情的話,你就不會(huì)覺得這像工作。不幸的是,因?yàn)轫?xiàng)目參差不齊,所以你可能不會(huì)真正學(xué)到東西。如果你的業(yè)余項(xiàng)目與想要學(xué)習(xí)的編程內(nèi)容相一致的話,那么恭喜你,這是一個(gè)好選擇,否則它只是性能vs實(shí)踐的另一個(gè)版本。即使在***的情況下,如果主要目標(biāo)是生產(chǎn)某種東西,那就意味著實(shí)踐和學(xué)習(xí)得排在后面。

閱讀關(guān)于編程實(shí)踐的書

閱讀編程書籍是一個(gè)快速提升知識的很好方式,我認(rèn)為它應(yīng)該是幾乎任何“提高編程”方案的一部分。然而,它并非是讓人能夠一勞永逸的銀彈。純粹的知識獲取可以幫助你知道有哪些可用的選項(xiàng),當(dāng)你碰到某個(gè)問題的時(shí)候,但知識不能代替更好的心理模型。

最終建議

不幸的是,我沒有能夠得出具體的結(jié)論。也許答案是,需要有編程教練或?qū)?,以便可以得到針對性的反饋和具體的實(shí)踐建議。也許這學(xué)科還太年輕,沒有正式的性能改進(jìn)方法,不像古典音樂訓(xùn)練和運(yùn)動(dòng)訓(xùn)練。

在評論中告訴我你的想法。我特別想聽聽那些通過教學(xué)/訓(xùn)練/指導(dǎo)而高水平產(chǎn)出的程序員的看法,或者在這樣的老師下學(xué)習(xí)的人。

如果我對程序員的性能改進(jìn)有任何更明確的想法,一定會(huì)再寫一個(gè)后續(xù)帖子。謝謝閱讀。

責(zé)任編輯:張燕妮 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2020-09-14 16:17:38

代碼開發(fā)GitHub

2017-12-19 20:35:22

程序員中興事件自殺

2021-12-07 13:45:38

WOT技術(shù)峰會(huì)技術(shù)

2021-03-02 15:31:37

程序員技能開發(fā)者

2021-07-19 05:53:32

程序員工作效率效率

2022-01-14 07:28:19

效益成本云部署

2017-12-22 10:48:00

AI深度學(xué)習(xí)遷移學(xué)習(xí)

2014-02-28 13:27:08

程序員代碼

2022-03-10 08:03:22

項(xiàng)目經(jīng)理技能服務(wù)

2009-03-13 15:18:45

程序員飲食雜談

2020-02-25 22:41:41

程序員技能開發(fā)者

2020-06-15 08:01:33

CRUD程序員代碼

2015-04-27 14:22:39

程序員提升自己價(jià)值

2018-01-16 11:42:28

程序猿職業(yè)規(guī)劃技術(shù)

2021-03-26 11:52:50

Debug效率運(yùn)行

2010-11-10 11:14:41

項(xiàng)目經(jīng)理

2020-08-13 13:45:08

程序員技能開發(fā)者

2016-04-11 17:49:33

程序員外包

2013-04-01 15:51:09

程序員管理

2009-03-18 13:12:36

程序員技術(shù)IT行業(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號