相信我們做程式設計師的都聽說「青春飯」這兩個字,其實小猿圈認為程式設計師的職業生涯和年齡並沒有太直接的原因,重要的還是個人的規劃,今天小猿圈就給大家分享一下,程式設計師到了中級後要怎麼樣才能提公升自己。
當程式設計師已經處於中級時,應如何提高自己?有很多關於「學習程式設計」的資源,能夠讓人從0到新手(雖然這些資源中大多數的質量是值得商榷的),但是怎麼樣才能將中級水平提高到專家級?如何構建允許我在高階別編寫**的心理模型?
在這篇文章中,我將討論關於普遍效能改進的一些理論,然後討論一些程式設計師用於實踐的方法(以及我對這些實踐的想法),然後是我對改進成為中級或更優秀程式設計師的最佳方法所作出的結論。
關於普遍效能改進的快速指南
我最近一直在閱讀大量關於效能改進的內容,大多數文獻使用k. anders ericsson的研究作為起點。他是效能研究的傑出面代表,幾乎在所有涉及這個主題的書中都被引用。他今年發表的書《peak: secrets from the new science of expertise》,濃縮其30多年的研究,易於理解,這也是我推薦給大多數新手的單個最佳資源。
簡要總結上下文:
改進任務的執行來自於開發更好的心理模式,更好的心理模式通過有意或有目的的實踐。
為了能夠實現改進,必須能夠定義什麼構成改進效能並且分解實現步驟。
實踐和效能是不同的,最好的實踐方法幾乎從不是效能。例如:乙個想要提高擊中的棒球運動員應該花費30分鐘在練習場中練習200個投球(實踐),而不是用2個小時去比賽中**15個投球(效能)。
提高方法
我發現人們建議的大多數關於程式設計的改進方法就是基於效能的。閱讀**,閱讀關於**的內容,編寫**,做專案,談論**等等。如果他們在自己的工作之外做這些事情,那麼程式設計師基本上肯定會有所提高,但似乎不是很有效率。
如果我想更擅長於程式設計,但每週我只想從自己的時間中花幾個小時致力於程式設計呢?什麼是建立更佳心理模型的最有效方式,以便於我可以做出更明智的決定? 《peak》一書中關於刻意實踐的乙個首選例子是**家。想要提高特定樂器的技能或學習一首新的**,是有經過定義的,標準化的方式的;包括乙個**家在幾個月的時間裡學習一首新**的例子——每日只是刻意練習5分鐘。而在程式設計中,我們沒有大量的明確目標或改進措施(即:在某一段**作品的錯誤的數量),但其他的我發現都沒有這個比喻接近。
那麼,我們如何得到我們作為程式設計師的效能反饋迴圈?是的,我們有特定片段**的反饋迴圈,無論**是否工作,它的效能和健壯性如何等等。我們對於系統的穩健性有乙個更長的反饋迴圈,因為它們在負載下會跌倒或隨著時間的推移會變得笨拙。但是我們並不經常得到問題方法的實時反饋。
下面是我用來學習程式設計的方法,有些地方很不錯,也有些地方值得改進:
通過程式設計挑戰實踐
我享受於程式設計挑戰,但一般來說,我發現它們不值得去接觸一種新的程式語言。它們提供弱反饋迴圈——你的程式要麼產生正確的輸出要麼不產生——並且不會給你對設計過程的反饋。這個方法可能會介紹乙個新的演算法或乙個你不熟悉的語言的新功能,但在實踐方面,很弱。比起「實踐」,它更接近於「效能」,並且你處理的是人為的問題,而不是真正的問題。
我發現的乙個例外是由@ericwastl的advent of code。程式設計問題很好地模擬了現實生活中的問題(需求定義明確,但是邊緣情況沒有寫入規範並且必須隱含),並且對於解決方案有多麼設計良好具備即時反饋,因為對每個丟擲額外需求或一些其他困難的問題有part 2,這意味著你必須重新評估你的原始解決方案有多少精心設計。這並不完美,但我喜歡看到我的解決方案具有挑戰性,並且經常不得不重新考慮我的解決方案的結構和設計,當我達到part 2的時候。
做業餘專案
閱讀關於程式設計實踐的書
閱讀程式設計書籍是乙個快速提公升知識的很好方式,我認為它應該是幾乎任何「提高程式設計」方案的一部分。然而,它並非是讓人能夠一勞永逸的銀彈。純粹的知識獲取可以幫助你知道有哪些可用的選項,當你碰到某個問題的時候,但知識不能代替更好的心理模型。
最終建議
小猿圈總結了一下首先需要掌握一門可以獨當一面的技術,然後不斷學習市面上比較火的技能,讓自己不落伍,同時要培養自己的創新能力和管理能力,這樣菜不至於因為年紀而退出職場,謝謝大家。
小猿圈分享6個 JavaScript 小技巧(下)
nee necountry us state new yourk 複製 6.物件 6.1 使用解構刪除不必要屬性 有時候你不希望保留某些物件屬性,也許是因為它們包含敏感資訊或僅僅是太大了 just too big 你可能會列舉整個物件然後刪除它們,但實際上只需要簡單的將這些無用屬性賦值給變數,然後把...
分享,如何激勵程式設計師?
如何激勵程式設計師?關於這個問題,有個內在的矛盾。我想下面這兩幅漫畫就完美地表達出來了。這是個普遍現象,我也在自己身上發現這個問題了。如果其他程式設計師告訴你,因為你的 比較爛,他們正在重寫。沒有什麼比這更激勵程式設計師了。戴夫 托馬斯多年前已在他的經典專業發展演講中說到此問題,引述如下 非常有趣的...
小猿圈IT自學分享 自學程式設計需要克服的困難
隨著網際網路行業的蓬勃發展,越來越多的年輕人選擇改行做程式設計師,有些人選擇報名學習班,也有一些人選擇自學,因為現在網上的學習資料太多了,但是自學的話也不是那麼簡單的,需要客服很多困難,也有很多阻擋學習的因素,下邊就是小猿圈給大家總結的幾點自學程式設計需要克服的困難 1.充足的時間 如果你正在自學程...