本文分為2個部分:1、優秀程式設計師的定義 2、程式設計師的提公升
程式設計師?什麼是程式設計師,個人的見解是了解至少一門程式語言,利用這門語言在某些場合獲取到金錢。(一般地,碼農、黑客、或者架構師等等,只要使用程式語言)
優秀程式設計師的定義
若是想要提公升自己,首先要明確乙個方向,然後朝著方向堅定不移的前進。有關於程式設計師的前進方向,或者稱為程式設計師技術的指標,我分為3種:
1、基礎功底:
程式設計師對自己所熟悉的技術的了解程度,比如程式語言,當然,程式語言只是其中很少的一環(畢竟總有程式設計師號稱幾天就可以熟悉甚至是精通一門語言)
2、抽象能力:
所謂抽象能力,是脫離於具體的環境,而程式設計師仍然具備的特質,或者說技能。
一般的抽象能力有:**的健壯度(對**的松耦合的把握,注釋的編寫等)、設計模式的能力(包括gof的設計模式或是個人提取的經驗)、與團隊的協作能力、對專案從模糊的概念比轉變為清晰設計的能力等
抽象能力一般都很難用語言說明,而且比起基礎功底,抽象能力更難獲取提公升,除了部分專門的書籍外,抽象能力通常隱藏在程式設計書中的細枝末節裡。
3、數學功底(或演算法能力)
數學功底其他,它是游離於程式設計範圍之外,卻又十分重要的能力。
在部分專門的環境裡,十分依賴於優秀乃至卓越的數學能力,譬如圖形學、資料庫編寫、**效能的提公升等
以上三種劃分不包括程式設計師的自學能力、英語能力等,因為它們是乙個程式設計師能否成長為優質程式設計師的特質,卻不是乙個優秀程式設計師必備的因素
三種能力程式設計師通常只需要基礎功底加上其餘一種即可,貪多嚼不爛,除非你的時間真的很多,或者你真的是不世出的奇才
價效比最高的就是提公升到一定程度的基礎功底,加上不錯的抽象能力
程式設計師的提公升
勤奮、努力,這些通常是成功學裡必須要有的東西,但比起這些,提公升自己的學習效率可能更為重要,如果朝著彎路一路前進,再多的努力和勤奮也沒有作用。
以下簡單的談論一些學習思路:
1、迭代:對,迭代,如同程式設計一般,乙個優秀的學習計畫、學習方法可能不是一會就能夠成型的,你需要反覆的實驗,最終找到合適自己的方法
3、輸出:古話有學而不思則罔,思而不學則殆。雖然意思不一樣,不過任何學習都非常依賴於輸出的過程、無論是程式設計、傳授、還是寫部落格(對,我就是靠寫部落格來提公升自己吖!)
輸出會讓人意識到自己的問題,在一些微小的地方出現的錯誤是書上不能學會的,而且人總是對自己的犯過的錯誤特別敏感
4、元認知:所謂元認知,就是指乙個人對自己的了解、認知程度,我個人引申為:乙個人對自己所做的事情的清晰程度。
比如說你在發怒的時候,你是否意識到你的情緒已經不對了呢?你如果能夠意識到,你的情緒就能穩定下來,但是,乙個人真的發怒的時候,是很難意識到自己的情緒已經異常了。正如同程式設計中,你在程式設計的時候,是否真的清晰的認識到自己寫的**的意思?如果你需要靠一次次程式設計來使程式達到自己的目的,你可能缺少這種能力
如果乙個人擁有元認知的程式設計能力,即使是白板程式設計,應該也能夠寫的很好!(但這種能力是及其難以提公升、一般人很少有這種特質)
5、跳出舒適區:舒適區、恰當壓力區、壓力區 這是對壓力的一種劃分——如果反覆編寫同樣的**,雖然很舒服,但是就不能獲取提公升,這就是舒適區。
如果很難受,完全不能適應,比如初學一門語言就要靠它來編寫大型專案,或是閱讀超長**等,這就是壓力區,壓力太大也會讓人氣餒
而適當的壓力,就能夠使我們進步
以上,就是我本篇的內容了,我雖然是個菜雞程式設計師,但每個程式設計師都有一顆成為卓越程式設計師的夢想,讓我們共勉吧!
程式設計師的提公升
引用 1.太害怕學不會新的工具 語言和框架 一般的程式設計師會墨守他們最喜歡的工具,而不希望學習新的,因為他們認為,離開了那些語言和工具,多年的經驗就會付諸東流。而強大的程式設計師會擁抱那些挑戰和機會,積極地學習新的工作方式。2.直到特性 完成 的時候才會提交。但永遠都不會完成!他在markedup...
程式設計師的自我修養
一忌 輕易言敗,沒有自信 沒有永不放棄精神的程式設計師,只是乙個有程式設計師名號的假程式設計師。乙個真正的程式設計師,知道在程式設計的過程中,可能會遇到不計其數的困難和問題,可能有極多的挫折和失敗,而成功只有一次。就為解決乙個問題,我們可能連續十幾甚至幾十小時的坐在計算機前不停的工作。乙個問題解決了...
程式設計師的自我修養
一忌 輕易言敗,沒有自信 沒有永不放棄精神的程式設計師,只是乙個有程式設計師名號的假程式設計師。乙個真正的程式設計師,知道在程式設計的過程中,可能會遇到不計其數的困難和問題,可能有極多的挫折和失敗,而成功只有一次。就為解決乙個問題,我們可能連續十幾甚至幾十小時的坐在計算機前不停的工作。乙個問題解決了...