版權聲明:本文爲北京尚學堂原創文章,未經容許不得轉載。html
21世紀是程序員的世紀。對程序員的需求比大部分崗位的需求都要高。那麼程序員須要掌握哪些技能呢?程序員的大腦跟通常人有什麼不一樣呢?菜鳥和專家 程序員的大腦又有什麼不一樣呢?如何才能提升程序員的能力呢?程序員
爲了作好勞動力儲備以應對此需求,你們開始考慮如何對編程技能進行分類。特定類型的人會不會更有可能在編程的角色取得成功呢?編程
關於軟件開發,咱們所知道的是它須要若干重要的核心技能:微信
分析——開發者必須分析需求而後作出知足這些需求的解決方案。網絡
創造力——軟件開發者必須可以設計軟件組件和系統,而且讓這些東西共同知足需求。架構
溝通——軟件開發者必須能寫出易於理解的軟件,給軟件寫文檔,並就軟件功能與同事及潛在用戶進行溝通。框架
人際技巧——軟件開發者頻繁地以小組的方式一塊兒工做,須要跟若干其餘開發者就係統展開協做,要跟經理或者客戶進行溝通,還要跟視覺設計師進行交流等……編程語言
學習——技術的變化之快使人眼花繚亂。軟件開發者必須成爲專家級的學習者,要可以適應不熟悉的框架,而且迅速造成生產力。學習
面向細節——開發者必須考慮周到,既要考慮快樂路徑或者說理想狀況下的用戶交互,又要照顧到鏈接失敗、預期以外的輸入等狀況url
面向大局——開發者必須可以把控好應用的總體架構:確保不一樣組成部分拼湊到一塊兒可以運做和交互。
數學與抽象——軟件開發者必須對抽象和計算模型感到舒服。功能表明瞭一切,數學公式、網絡通訊、屏幕顯示,還要處理用戶輸入。
邏輯——開發者必須能讀寫可能很複雜的邏輯,對切換和流控制進行處理。
考慮到溝通和人際技巧對於軟件開發者來講是重要技能,再考慮到事實上「語言」也屬於「編程語言」的一部分,因此在對計算機科學專業的學生在閱讀代碼過程當中發現他們的大腦語言中心被本身激活也就不足爲奇了。
研究發現,大腦跟語言處理、工做記憶以及注意力相關的特別區域被激活了。而儘管閱讀代碼涉及到數學、迭代以及條件分支,可是大腦一般跟數學和邏輯相關的區域並無被激活。
專家大腦與菜鳥大腦
專家大腦和新手的大腦一般是很不同的。比方說,菜鳥鋼琴手開始學習一段新曲譜時,他更多要考慮的是怎麼彈——這項任務主要就是把琴鍵按對就行。
而 專家級鋼琴家在彈奏已經轉化爲肌肉記憶的曲目時,樂曲幾乎到能夠自行彈奏的地步了。這有點像學騎自行車跟有經驗的騎手來一次急轉的區別。菜鳥自行車騎手會 擔憂摔倒而努力保持平衡。而有經驗的自行車騎手知道,只要輪子還在轉而且身子重心還保持在車上,車子基本上就不會倒。能夠說基本上他們已經進入了自動駕駛 模式,而且極可能根本就不會考慮平衡或者摔倒的事情。
隨着你學習新技能,你的大腦就會發生改變,能夠適應新的挑戰,而且學會從新調整本身,以便迎接這些挑戰的同時少費一些功夫。
音樂家的大腦與軟件開發
前面咱們說過,計算機科學專業學生閱讀源代碼的時候會激活大腦與工做記憶相關的區域。有研究代表,音樂家的大腦強化了工做記憶能力。
那有沒有可能音樂人的大腦已經組織成了正好有利於軟件開發者的形式?科學家對音樂家的大腦進行了功能磁共振成像研究,結果發現演奏樂器可讓大腦獲得最好的認知練習,效果比研究過的大部分其餘活動都要好。
演奏樂器激活了大腦的許多區域,而且在大腦的不一樣區域創建起了更強的聯繫,包括左腦(負責邏輯、分析、語言等)與右腦(負責創意、想象、直覺、可視化等)之間的鏈接,而高效軟件開發就須要左右腦的配合。
考慮到軟件開發者須要不一樣的認知技能,咱們開始發現,彈奏樂器也許是練習大腦的很好方式,能夠有利於你的軟件開發工做。
結論
程序員的大腦是否是跟別人不同?有很好的跡象代表,程序員強化了自身的工做記憶能力,提升了語言處理技能,加強了分析技能,可能還強化了海馬體能力(這個區域咱們還須要大量新研究來驗證這些猜測)。
好消息是,一樣也有很好的跡象代表,神經可塑性、練習以及訓練對於軟件開發者的認知能力強化是有幫助的——未必須要遺傳素質(儘管這極可能也扮演了必定角色)。
只要加以練習,你的大腦就會強化而且從新組織本身來爲你的工做提供火力支持。
若是你想了解更多Java資訊,但願從事技術相關的崗位和領取Java學習資料,歡迎關注「北京尚學堂」微信公衆號