題圖:黃昏時分的上海陸家嘴前端
最近在看《程序員的自我修養》,做者陳逸鶴,一本寫給程序員的思考書,其實市面上相似題材的書也很多,好比我看過的另外兩本《內外兼修——程序員的成長之路》《程序員必讀的職業規劃書》,我只是後悔本身看的太晚,不少道理明白的太晚,要多看看此類書,給本身尋找點方向感和動力,我也一直在努力踐行書中的一些方法和認識,本文是此書的第一部份內容的概括,但願對你有幫助,感興趣的朋友能夠買來此書詳細學習。程序員
好了,正文開始~~~編程
當我成爲一名IT管理者時,我從更多的程序員身上看到了他們身上的一些特質對其職業生涯所產生的影響;當我開始自學設計,我又從設計大師們那裏獲得不少極具啓發性的觀點,而它們對程序員們一樣具備很大的價值;而當我開始寫做,每一篇文章完成後與年輕的程序員讀者們進行交流的過程當中,個人想法和觀點又能獲得進一步的完善和提高。後端
相比碼農、程序猿、軟件工程師、張江男、屌絲程序員等等這些網絡詞彙,當你把本身看做是一個屌絲程序員的話,那你也可能就是那個衣食不愁,但成天渾渾噩噩、無所追求的屌絲。我更願意用技匠這個詞來形容程序員,就像我給本身起的花名同樣。程序員應該是那些不斷追求更高技術,並有着本身產品夢的工匠。當你經過對本身技術不斷打磨,一次又一次作出那些優秀產品的時候,你會發現本身再也不是他人口中的碼農或是屌絲,而更多被稱爲了大師、大神,而受到你們的尊重。服務器
優秀的程序員每每會被同天才或高智商的人聯繫在一塊兒,但我想告訴你,你周圍所看到的那些天才(身邊的優秀程序員)只是在你沒看到的時候花了更多時間工做或者學習而已,當你也堅持這麼作時,你也會變得和他們同樣優秀。網絡
創建我的權威,這能讓其餘人看到你的不一樣之處,併爲你在公司或團隊內部構建起良好的影響力。固然,這一切的前提是你經過不斷努力積累了本身的實力,並在恰當的時候去展示它。前端工程師
技術更新太快,做爲程序員,如何才能適應這種變化呢?其實,就像每一年都會有新的流行設計趨勢,然而設計的本質和原則卻始終不變同樣。這些最佳實踐或由此衍生出來的框架、工具都是那些富有經驗的程序員經過大量實踐,總結出來的最優秀的軟件開發思想。經過理解和對它們的有效實踐,可以讓你站到前人的肩膀之上,對軟件開發自己得到更深刻的理解和認識。框架
優秀的程序員們也每每很是樂於探索那些看似與工做無關的技術。好比,作後端的程序員去學習前端的技能,前端工程師則去學習UI設計,等等,這些雖不會讓他們成爲那一個領域的專家,但技術每每是相通的,當你在探索這些新鮮事物的同時,你會發現你原有的技能也獲得了提高。編程語言
「緊盯着電腦屏幕,不斷敲擊鍵盤,目光有些呆滯。」這多是程序員給人的印象。而我所看到的那些優秀的程序員卻都不是這樣的,他們每每興趣普遍,而且都樂於與人溝通交流。程序員們很容易會忽視與人的溝通,這其實對他們的職業生涯發展是不利的。我很支持那些年輕的程序員們堅持去走技術路線,但這不該該成爲你排斥與人溝通的理由。你須要與人溝通來得到他人的幫助;你須要與人溝通來創建良好的工做關係;當你的能力不斷提高,被賦予更多職責時,你更須要與人溝通來管理好本身的團隊,以及與老闆或客戶進行有效的溝通等。工具
環境對一我的的影響是巨大的,而最可怕的是當你身處其中時,很難意識到你正在變得愈來愈糟。我以前帶過一些不錯的程序員,他們中的一些人去了一些總體氛圍或環境不是太好的公司。過了一段時間後,再次與他們碰面聊天時,我發現他們的思惟、觀點相較以前並無提高,有些甚至反而退步了。
我但願每一個程序員都能明白工做、技術、寫代碼這些並非你存在的意義,而生活纔是,你須要懂得生活,而且學會生活。
生活:嘗試有節制和有規律的生活,程序員生涯毫不是一次衝刺,而更像一場馬拉松。
睡眠:不少人以爲睡眠是弱者的表現,他們每每會長時間熬夜,其實我以爲這是這一種惡性循環,反而會使你的工做效率變的更低。
旅行:去任何一個新的地方均可以稱之爲旅行,讓你發現和感覺新的東西,而這些是從電腦屏幕上沒法得到的。
每一個人的身上都有屬於他本身的天賦和創造力,但它們也毫不是與生俱來的,你須要在生活中不斷地培養和發掘它們。下面是我以爲一些行之有效的方法。
閱讀優秀的書籍:好的想法毫不是憑空產生的,嘗試從書中尋找那些能激發你創意和靈感的優秀內容。
記錄和收集:嘗試用一個小本子,將你轉瞬即逝的好想法記錄下來,它們可能並不直接有效,但下一個更好的想法可能就是從這些你記錄下來的想法中產生的。
嘗試動手:光有好的想法是不夠的,你須要成爲一個有工匠精神的人,經過親自動手去嘗試和實踐,你會不斷從中獲得新的創造力。
換句話說你是否容易被取代。公司很容易找到一個和你差很少的應屆畢業生,而那些對公司產品很是熟悉,而且起到關鍵做用的老員工,要想替代他們,公司所須要付出的代價及須要承擔的風險就會高得多。因此,不妨擺正心態,正確認識到本身在公司中的位置,努力修煉內功,讓本身變得愈來愈重要,相信你的薪資也會隨之提高的。
既然你對於公司的價值來自於你的不可替代性,那又該如何有效提高它呢?個人建議是儘量持續作一件事。這既是指技術上的積累,也是指你能完整或較長時間參與同一個項目或開發一個產品。
技術深度及完整項目經驗的重要性,若是你老是在跟隨那些新出現的技術和框架,那你很難在某一項技術上達到理想的深度;一樣,在一個公司裏,若是你老是在更換項目,那你也很難提高本身的價值。參與10個項目,不如完整參與一個項目。持續作一件事是要你把每一件事作透、作好,而不是走馬觀花,淺嘗輒止。
做爲程序員,咱們又應該如何應對這些變化呢?我想說,你很難去改變所處的環境,或是阻擋那些變化的大趨勢。你所能作的偏偏是培養本身持續學習的能力。
除了那些常常掛在嘴邊的誠實守信、踏實肯幹等以外,有一點特別重要,那即是嚴謹。由於它每每是判斷一名程序員是否具有優秀潛質的重要因素。嚴謹的程序員對於分配給本身的任務會認真理解,對於本身的產出會仔細檢查,這些都能大大減小工做中的出錯機率,給團隊或公司中的其餘人留下良好的印象。
當咱們沒有對問題有深刻理解的時候,咱們很難寫出正確的程序來,所以咱們須要向用戶虛心求教,去真正理解他們所但願解決的問題。
談到那些咱們眼中很是成功的技術大牛、IT高管,都會出人意料地將一些非技術能力做爲本身得到成功的關鍵。好比,編寫文檔或作PPT的能力、演講的能力、說服他人的能力,等等。我雖然並不徹底贊同最優秀的程序員不寫代碼這種觀點,但我確信你的右腦將會是決定你可否成功的關鍵。
年輕程序員們不該該輕易作出那些過於絕對的判斷,應儘量去使用科學的方法進行分析和論證,而後用不易被人誤解的方式進行有效的表達,這樣你提出的觀點才能讓你們感到信服。
若是你真的但願作出一些具備影響力的東西,那麼光靠我的是很難實現的。你須要和團隊中不一樣角色的人進行合做,有時候你須要說服別人,有時候你則會被別人說服。
那些優秀的程序員無時無刻不在體現他們的能力,從輕鬆地解決技術難題,到會議上提出被一致承認的解決方案,以及他們寫出的那些優雅且完善的代碼,這些都讓他們顯得不同凡響,彷彿是天生的優秀程序員。但我想說,他們其實都是那些努力並使用了正確方法的人。程序員的能力來自於大量的編碼實踐,以及持續學習的能力和勤于思考的習慣。任何自做聰明,不懂裝懂,以及投機取巧在明眼人看來都只會是東施效顰,顯得如此微不足道。
我曾經接觸過一些IT高管及行業的技術大牛,當私下聊起他們是如何變得如此出類拔萃時,他們大多會以自嘲但又略帶得意的語氣來說述他們的那些獨門祕籍。
我發現,這些普通人眼中的大神們不多會說起本身的技術有多牛,反而更多地把功勞歸於那些看似與技術毫無關係的能力。你們千萬別誤覺得他們只是一羣華而不實,靠着一些小伎倆往上爬的小人。徹底不是,並且我敢向你保證,他們中的每個人在擔任程序員或負責其餘技術工做時,一樣都有着很是出色的技術能力和優秀的工做表現。但爲何在他們眼中這些還不足以使他們達到如今的高度,反而是那些不起眼的寫文檔、作PPT、演講等這些技能使他們可以在一次次競爭中勝出,併成爲了咱們中的佼佼者呢?
其實在我看來,他們所謂的這些祕籍,均可以概括爲一種能力,那就是自我營銷。
一名程序員若是可以儘早意識到自我營銷的重要性,並有意識地鍛鍊和運用這種能力,那將對你的事業產生有益的幫助。
那麼對於程序員們來講,又有哪些可以提高自我營銷能力的方法呢?下面即是個人一些建議。
我建議只買一些經典的技術書籍來幫你打基礎,而後從網上去學習一切新的東西。我尤爲鼓勵你們去讀那些與技術無關的書籍。程序員不善於自我營銷,其中一個重要緣由是他們自身所掌握的知識體系太過於單一,很難跳出技術範疇與人交流,並引發別人的興趣和認同。你能夠讀任何歷史、經濟、人文、藝術類的書籍,它們都可以幫助你豐富本身的知識和思想,使你變得更加全面和完善,而這反過來,又能幫助你創建信心。
文檔多是你完成代碼編寫後一個最佳的展現機會。當代碼實現了它的功能以後,就不多有人會再去看它,除非它出錯了。但文檔被閱讀的機率卻大得多。從一個文檔中,咱們能夠看到關於做者的不少東西,思路是否縝密,邏輯性是否強,設計方案是否優秀,等等。能夠說,文檔質量的高低是衡量一名程序員是否優秀的重要標準之一。
說到包裝,人們每每會產生一種很差的感受,把它與虛僞、假的東西聯繫在一塊兒。其實,我所說的包裝應該包含兩層意思:
做者舉例一個普華永道的高級經理經過一個長達114頁的很是精美的PPT而贏得了保監會關於償付能力改革的會議。
在平常工做中,我常常發現身邊的程序員很難寫出美觀整潔的文檔或PPT來。這一方面與咱們從小缺少美學教育有關,而更重要的每每是他們並無真正用心去製做它。其實,咱們能夠經過尋找一些優秀的文檔示例來學習如何製做優秀的文檔,這其實並不困難。知道什麼是優秀的,而後像寫你的代碼同樣用心去製做就好了。
講話一直是不少程序員的硬傷,固然這也曾是個人硬傷。根據個人經驗,你須要跨過如下兩個障礙:
一個徹底封閉的程序員必定不是一個優秀的程序員。優秀的程序員每每願意並善於與他人交流,分享本身的經驗和想法,並在交流中得到有益的東西。這樣作有不少好處:
一切都能爲你的生活賦予意義,並讓你感到更加快樂的話,那你仍是應該更堅決地留下,而非選擇離開。
時常會說「瑣事不雜」,雖然看着被不少與技術無關的事務纏身,但它們對你來講一樣具備意義。你從中可能得到溝通能力、管理能力、創建更廣的人脈,在企業內部創建影響力,等等
不管成功與否,經歷一次完整的創業都將讓你受益不淺。你將學到不少在大公司僅僅作一顆螺絲釘所學不到的東西。雖然在此過程當中,你必定會有挫敗感、焦慮,但或許堅持一下就會看到曙光。
另一點我想說的是,創業的過程將讓你得到不一樣的眼光。創業大可能是在一個新的領域中進行的,你不該僅僅專一於公司所使用的那些技術,而更須要經過深刻理解這個新的領域,去得到不一樣的視角和眼光,由於它們也會在將來成爲你的核心競爭力。
我老是很鼓勵身邊的程序員們去涉獵不一樣的技術甚至領域,但前提是你必須首先對某一門技術作到精通。技術是須要深耕的,深刻學習一門主流的開發技術,並不斷提高編程思惟,比對不少技術棧都淺嘗輒止要好不少。所以,若是精力有限不妨先學好一門技術,你會發現以後再去學習其餘技術會變得容易許多,由於它們之間每每都是相通的。
若是你真的沒有任何思路,只是但願你學的這門編程語言可以有用,個人建議是JavaScript,由於它看起來是惟一可能在將來全部領域內獲得應用的編程語言,從咱們的移動設備,到傳統的Web應用,再到服務器端開發甚至是硬件編程,它幾乎無處不在。
全日制本科幾乎成了全部內部職位的最低要求,因此學歷上的缺失確實會成爲你進入大公司的障礙。固然仍是有例外的狀況:
若是你仍是一名大專在讀學生,那麼我但願你不要過早焦慮,嘗試問問本身除了學歷以外還有什麼讓你可以脫穎而出的東西?是否有本身的我的項目?是否爲知名的開源項目貢獻過代碼,甚至只是參與編寫文檔?是否經過寫博客闡述過本身的獨到觀點,並獲得你們的承認?在哪家公司實習過?這些均可能抓住僱主的眼球,從而彌補你在學歷上的不足。
1.儘早肯定你想作的事情。儘早肯定本身想作的事情——你的職業目標,意味着你能夠得到比其餘人更多的時間去努力。
2.一萬小時定律
3.提升工做效率。有如下兩點建議:
4.簡明的溝通方式5.持續學習6.學會控制情緒7.讓最優秀的人圍繞在你身邊8.善於概括與表達9.掌握英語10.睡眠是你更強大