點擊藍(lán)色“程序員書單”關(guān)注我喲
加個“星標(biāo)”,每天帶你看好文,讀好書!
本文轉(zhuǎn)自知乎:https://zhuanlan.zhihu.com/p/34994820
最近在看程序員的自我修養(yǎng) (豆瓣),作者陳逸鶴,一本寫給程序員的思考書,其實市面上類似題材的書也不少,比如我看過的另外兩本內(nèi)外兼修:程序員的成長之路 (豆瓣)、程序員必讀的職業(yè)規(guī)劃書 (豆瓣),我只是后悔自己看的太晚,很多道理明白的太晚,要多看看此類書,給自己尋找點方向感和動力,我也一直在努力踐行書中的一些方法和認(rèn)識,本文是此書的第一部分內(nèi)容的歸納,希望對你有幫助,感興趣的朋友可以買來此書詳細(xì)學(xué)習(xí)。
好了,正文開始~~~
當(dāng)我成為一名IT管理者時,我從更多的程序員身上看到了他們身上的一些特質(zhì)對其職業(yè)生涯所產(chǎn)生的影響;當(dāng)我開始自學(xué)設(shè)計,我又從設(shè)計大師們那里得到很多極具啟發(fā)性的觀點,而它們對程序員們同樣具有很大的價值;而當(dāng)我開始寫作,每一篇文章完成后與年輕的程序員讀者們進(jìn)行交流的過程中,我的想法和觀點又能得到進(jìn)一步的完善和提升。
寫給年輕程序員的10點啟示
- 正確認(rèn)識自己
相比碼農(nóng)、程序猿、軟件工程師、張江男、屌絲程序員等等這些網(wǎng)絡(luò)詞匯,當(dāng)你把自己看作是一個屌絲程序員的話,那你也可能就是那個衣食不愁,但整天渾渾噩噩、無所追求的屌絲。我更愿意用技匠這個詞來形容程序員,就像我給自己起的花名一樣。程序員應(yīng)該是那些不斷追求更高技術(shù),并有著自己產(chǎn)品夢的工匠。當(dāng)你通過對自己技術(shù)不斷打磨,一次又一次做出那些優(yōu)秀產(chǎn)品的時候,你會發(fā)現(xiàn)自己不再是他人口中的碼農(nóng)或是屌絲,而更多被稱為了大師、大神,而受到大家的尊重。
- 比一般人更加努力
優(yōu)秀的程序員往往會被同天才或高智商的人聯(lián)系在一起,但我想告訴你,你周圍所看到的那些天才(身邊的優(yōu)秀程序員)只是在你沒看到的時候花了更多時間工作或者學(xué)習(xí)而已,當(dāng)你也堅持這么做時,你也會變得和他們一樣優(yōu)秀。
- 適時建立個人權(quán)威
建立個人權(quán)威,這能讓其他人看到你的不同之處,并為你在公司或團(tuán)隊內(nèi)部構(gòu)建起良好的影響力。當(dāng)然,這一切的前提是你通過不斷努力積累了自己的實力,并在恰當(dāng)?shù)臅r候去展現(xiàn)它。
- 遵循最佳實踐
技術(shù)更新太快,作為程序員,如何才能適應(yīng)這種變化呢?其實,就像每年都會有新的流行設(shè)計趨勢,然而設(shè)計的本質(zhì)和原則卻始終不變一樣。這些最佳實踐或由此衍生出來的框架、工具都是那些富有經(jīng)驗的程序員通過大量實踐,總結(jié)出來的最優(yōu)秀的軟件開發(fā)思想。通過理解和對它們的有效實踐,能夠讓你站到前人的肩膀之上,對軟件開發(fā)本身獲得更深入的理解和認(rèn)識。
- 保持好奇心并樂于探索新的事物
優(yōu)秀的程序員們也往往非常樂于探索那些看似與工作無關(guān)的技術(shù)。比如,做后端的程序員去學(xué)習(xí)前端的技能,前端工程師則去學(xué)習(xí)UI設(shè)計,等等,這些雖不會讓他們成為那一個領(lǐng)域的專家,但技術(shù)往往是相通的,當(dāng)你在探索這些新鮮事物的同時,你會發(fā)現(xiàn)你原有的技能也得到了提升。
- 拋開代碼與人溝通
“緊盯著電腦屏幕,不斷敲擊鍵盤,目光有些呆滯?!边@可能是程序員給人的印象。而我所看到的那些優(yōu)秀的程序員卻都不是這樣的,他們往往興趣廣泛,并且都樂于與人溝通交流。程序員們很容易會忽視與人的溝通,這其實對他們的職業(yè)生涯發(fā)展是不利的。我很支持那些年輕的程序員們堅持去走技術(shù)路線,但這不應(yīng)該成為你排斥與人溝通的理由。你需要與人溝通來獲得他人的幫助;你需要與人溝通來建立良好的工作關(guān)系;當(dāng)你的能力不斷提升,被賦予更多職責(zé)時,你更需要與人溝通來管理好自己的團(tuán)隊,以及與老板或客戶進(jìn)行有效的溝通等。
- 要為優(yōu)秀的人工作
環(huán)境對一個人的影響是巨大的,而最可怕的是當(dāng)你身處其中時,很難意識到你正在變得越來越糟。我之前帶過一些不錯的程序員,他們中的一些人去了一些整體氛圍或環(huán)境不是太好的公司。過了一段時間后,再次與他們碰面聊天時,我發(fā)現(xiàn)他們的思維、觀點相較之前并沒有提升,有些甚至反而退步了。
- 生活、睡眠、旅行
我希望每個程序員都能明白工作、技術(shù)、寫代碼這些并不是你存在的意義,而生活才是,你需要懂得生活,并且學(xué)會生活。
生活:嘗試有節(jié)制和有規(guī)律的生活,程序員生涯絕不是一次沖刺,而更像一場馬拉松。
睡眠:很多人覺得睡眠是弱者的表現(xiàn),他們往往會長時間熬夜,其實我覺得這是這一種惡性循環(huán),反而會使你的工作效率變的更低。
旅行:去任何一個新的地方都可以稱之為旅行,讓你發(fā)現(xiàn)和感受新的東西,而這些是從電腦屏幕上無法獲得的。
- 相信自己的天賦和創(chuàng)造力
每個人的身上都有屬于他自己的天賦和創(chuàng)造力,但它們也絕不是與生俱來的,你需要在生活中不斷地培養(yǎng)和發(fā)掘它們。下面是我覺得一些行之有效的方法。
閱讀優(yōu)秀的書籍:好的想法絕不是憑空產(chǎn)生的,嘗試從書中尋找那些能激發(fā)你創(chuàng)意和靈感的優(yōu)秀內(nèi)容。
記錄和收集:嘗試用一個小本子,將你轉(zhuǎn)瞬即逝的好想法記錄下來,它們可能并不直接有效,但下一個更好的想法可能就是從這些你記錄下來的想法中產(chǎn)生的。
嘗試動手:光有好的想法是不夠的,你需要成為一個有工匠精神的人,通過親自動手去嘗試和實踐,你會不斷從中得到新的創(chuàng)造力。
- 如果上面提到的其他建議都對你無效,那么就請堅持第2點吧,因為它將成為你最大的競爭優(yōu)勢。
那些程序員們后知后覺的職涯經(jīng)驗
- 你的薪酬與工作量無關(guān)
換句話說你是否容易被取代。公司很容易找到一個和你差不多的應(yīng)屆畢業(yè)生,而那些對公司產(chǎn)品非常熟悉,并且起到關(guān)鍵作用的老員工,要想替代他們,公司所需要付出的代價及需要承擔(dān)的風(fēng)險就會高得多。所以,不妨擺正心態(tài),正確認(rèn)識到自己在公司中的位置,努力修煉內(nèi)功,讓自己變得越來越重要,相信你的薪資也會隨之提升的。
- 盡可能持續(xù)做一件事
既然你對于公司的價值來自于你的不可替代性,那又該如何有效提升它呢?我的建議是盡可能持續(xù)做一件事。這既是指技術(shù)上的積累,也是指你能完整或較長時間參與同一個項目或開發(fā)一個產(chǎn)品。
技術(shù)深度及完整項目經(jīng)驗的重要性,如果你總是在跟隨那些新出現(xiàn)的技術(shù)和框架,那你很難在某一項技術(shù)上達(dá)到理想的深度;同樣,在一個公司里,如果你總是在更換項目,那你也很難提升自己的價值。參與10個項目,不如完整參與一個項目。持續(xù)做一件事是要你把每一件事做透、做好,而不是蜻蜓點水,淺嘗輒止。
- 唯一不變的就是變化本身
作為程序員,我們又應(yīng)該如何應(yīng)對這些變化呢?我想說,你很難去改變所處的環(huán)境,或是阻擋那些變化的大趨勢。你所能做的恰恰是培養(yǎng)自己持續(xù)學(xué)習(xí)的能力。
- 你的聲譽(yù)非常重要
除了那些經(jīng)常掛在嘴邊的誠實守信、踏實肯干等之外,有一點特別重要,那便是嚴(yán)謹(jǐn)。因為它往往是判斷一名程序員是否具備優(yōu)秀潛質(zhì)的重要因素。嚴(yán)謹(jǐn)?shù)某绦騿T對于分配給自己的任務(wù)會認(rèn)真理解,對于自己的產(chǎn)出會仔細(xì)檢查,這些都能大大減少工作中的出錯概率,給團(tuán)隊或公司中的其他人留下良好的印象。
- 理解溝通的意義
當(dāng)我們沒有對問題有深入理解的時候,我們很難寫出正確的程序來,因此我們需要向用戶虛心求教,去真正理解他們所希望解決的問題。
- 你的右腦將是你成功的關(guān)鍵
談到那些我們眼中非常成功的技術(shù)大牛、IT高管,都會出人意料地將一些非技術(shù)能力作為自己獲得成功的關(guān)鍵。比如,編寫文檔或做PPT的能力、演講的能力、說服他人的能力,等等。我雖然并不完全贊同最優(yōu)秀的程序員不寫代碼這種觀點,但我確信你的右腦將會是決定你能否成功的關(guān)鍵。
- 不要輕易說簡單和不可能
年輕程序員們不應(yīng)該輕易做出那些過于絕對的判斷,應(yīng)盡可能去使用科學(xué)的方法進(jìn)行分析和論證,然后用不易被人誤解的方式進(jìn)行有效的表達(dá),這樣你提出的觀點才能讓大家感到信服。
- 你不應(yīng)該總是單打獨(dú)斗
如果你真的希望做出一些具有影響力的東西,那么光靠個人是很難實現(xiàn)的。你需要和團(tuán)隊中不同角色的人進(jìn)行合作,有時候你需要說服別人,有時候你則會被別人說服。
- 讓你的能力顯而易見
那些優(yōu)秀的程序員無時無刻不在體現(xiàn)他們的能力,從輕松地解決技術(shù)難題,到會議上提出被一致認(rèn)可的解決方案,以及他們寫出的那些優(yōu)雅且完善的代碼,這些都讓他們顯得與眾不同,仿佛是天生的優(yōu)秀程序員。但我想說,他們其實都是那些努力并使用了正確方法的人。程序員的能力來自于大量的編碼實踐,以及持續(xù)學(xué)習(xí)的能力和勤于思考的習(xí)慣。任何自作聰明,不懂裝懂,以及投機(jī)取巧在明眼人看來都只會是東施效顰,顯得如此微不足道。
每個程序員都應(yīng)該了解的一件事
我曾經(jīng)接觸過一些IT高管及行業(yè)的技術(shù)大牛,當(dāng)私下聊起他們是如何變得如此出類拔萃時,他們大多會以自嘲但又略帶得意的語氣來講述他們的那些獨(dú)門秘籍。
我的文檔寫得特別好。
我的口才很好,總是能成功說服別人。
我的PPT做得非常棒,是公司里數(shù)一數(shù)二的。
我寫過幾篇很受歡迎的技術(shù)文章。
我熱愛開源文化,并在社區(qū)里很有名氣。
……
我發(fā)現(xiàn),這些普通人眼中的大神們很少會提及自己的技術(shù)有多牛,反而更多地把功勞歸于那些看似與技術(shù)毫無關(guān)系的能力。大家千萬別誤以為他們只是一群華而不實,靠著一些小伎倆往上爬的小人。完全不是,而且我敢向你保證,他們中的每一個人在擔(dān)任程序員或負(fù)責(zé)其他技術(shù)工作時,同樣都有著非常出色的技術(shù)能力和優(yōu)秀的工作表現(xiàn)。但為什么在他們眼中這些還不足以使他們達(dá)到現(xiàn)在的高度,反而是那些不起眼的寫文檔、做PPT、演講等這些技能使他們能夠在一次次競爭中勝出,并成為了我們中的佼佼者呢?
其實在我看來,他們所謂的這些秘籍,都可以歸納為一種能力,那就是自我營銷。
一名程序員如果能夠盡早意識到自我營銷的重要性,并有意識地鍛煉和運(yùn)用這種能力,那將對你的事業(yè)產(chǎn)生有益的幫助。
那么對于程序員們來說,又有哪些能夠提升自我營銷能力的方法呢?下面便是我的一些建議。
- 讀與技術(shù)無關(guān)的書
我建議只買一些經(jīng)典的技術(shù)書籍來幫你打基礎(chǔ),然后從網(wǎng)上去學(xué)習(xí)一切新的東西。我尤其鼓勵大家去讀那些與技術(shù)無關(guān)的書籍。程序員不善于自我營銷,其中一個重要原因是他們自身所掌握的知識體系太過于單一,很難跳出技術(shù)范疇與人交流,并引起別人的興趣和認(rèn)同。你可以讀任何歷史、經(jīng)濟(jì)、人文、藝術(shù)類的書籍,它們都能夠幫助你豐富自己的知識和思想,使你變得更加全面和完善,而這反過來,又能幫助你建立信心。
- 會寫文檔
文檔可能是你完成代碼編寫后一個最佳的展示機(jī)會。當(dāng)代碼實現(xiàn)了它的功能之后,就很少有人會再去看它,除非它出錯了。但文檔被閱讀的概率卻大得多。從一個文檔中,我們可以看到關(guān)于作者的很多東西,思路是否縝密,邏輯性是否強(qiáng),設(shè)計方案是否優(yōu)秀,等等??梢哉f,文檔質(zhì)量的高低是衡量一名程序員是否優(yōu)秀的重要標(biāo)準(zhǔn)之一。
- 學(xué)會包裝
說到包裝,人們往往會產(chǎn)生一種不好的感覺,把它與虛偽、假的東西聯(lián)系在一起。其實,我所說的包裝應(yīng)該包含兩層意思:
知道什么是美的(優(yōu)秀的)。
精心制作。
作者舉例一個普華永道的高級經(jīng)理通過一個長達(dá)114頁的非常精美的PPT而贏得了保監(jiān)會關(guān)于償付能力改革的會議。
在日常工作中,我經(jīng)常發(fā)現(xiàn)身邊的程序員很難寫出美觀整潔的文檔或PPT來。這一方面與我們從小缺乏美學(xué)教育有關(guān),而更重要的往往是他們并沒有真正用心去制作它。其實,我們可以通過尋找一些優(yōu)秀的文檔示例來學(xué)習(xí)如何制作優(yōu)秀的文檔,這其實并不困難。知道什么是優(yōu)秀的,然后像寫你的代碼一樣用心去制作就行了。
- 嘗試多講
講話一直是很多程序員的硬傷,當(dāng)然這也曾是我的硬傷。根據(jù)我的經(jīng)驗,你需要跨過以下兩個障礙:
敢說。
讓說的和你想的一致。
5.建立社會化聯(lián)系
一個完全封閉的程序員一定不是一個優(yōu)秀的程序員。優(yōu)秀的程序員往往愿意并善于與他人交流,分享自己的經(jīng)驗和想法,并在交流中獲得有益的東西。這樣做有很多好處:
通過這些社會化的活動能夠使你的想法和技能更加完善。
能夠使你建立權(quán)威,你的技術(shù)博客,在一些社區(qū)上的技術(shù)問題解答,以及你的開源項目等都會使人認(rèn)為你是這方面的專家。
同樣,你也可以獲得他人的幫助,來解決棘手的難題。
你可以找到與你有相同興趣的人,一起做有趣的事情。
你的社交網(wǎng)絡(luò)將因此擴(kuò)大,這意味著你所獲得的機(jī)會將會更多。
程序員的煩惱
- 是否還應(yīng)該留在一線城市
一切都能為你的生活賦予意義,并讓你感到更加快樂的話,那你還是應(yīng)該更堅定地留下,而非選擇離開。
- 小公司做的事情太繁雜了
時常會說“雜事不雜”,雖然看著被很多與技術(shù)無關(guān)的事務(wù)纏身,但它們對你來說同樣具有意義。你從中可能獲得溝通能力、管理能力、建立更廣的人脈,在企業(yè)內(nèi)部建立影響力,等等
- 創(chuàng)業(yè)公司中的危機(jī)感
無論成功與否,經(jīng)歷一次完整的創(chuàng)業(yè)都將讓你受益匪淺。你將學(xué)到很多在大公司僅僅做一顆螺絲釘所學(xué)不到的東西。雖然在此過程中,你一定會有挫敗感、焦慮,但或許堅持一下就會看到曙光。
另外一點我想說的是,創(chuàng)業(yè)的過程將讓你獲得不同的眼光。創(chuàng)業(yè)大多是在一個新的領(lǐng)域中進(jìn)行的,你不應(yīng)僅僅專注于公司所使用的那些技術(shù),而更需要通過深入理解這個新的領(lǐng)域,去獲得不同的視角和眼光,因為它們也會在未來成為你的核心競爭力。
- 技術(shù)單一,想學(xué)習(xí)更多
我總是很鼓勵身邊的程序員們?nèi)ド娅C不同的技術(shù)甚至領(lǐng)域,但前提是你必須首先對某一門技術(shù)做到精通。技術(shù)是需要深耕的,深入學(xué)習(xí)一門主流的開發(fā)技術(shù),并不斷提升編程思維,比對很多技術(shù)棧都淺嘗輒止要好很多。因此,如果精力有限不妨先學(xué)好一門技術(shù),你會發(fā)現(xiàn)之后再去學(xué)習(xí)其他技術(shù)會變得容易許多,因為它們之間往往都是相通的。
- 我想自學(xué)編程,應(yīng)該學(xué)哪一門語言?
如果你真的沒有任何思路,只是希望你學(xué)的這門編程語言能夠有用,我的建議是JavaScript,因為它看起來是唯一可能在未來所有領(lǐng)域內(nèi)得到應(yīng)用的編程語言,從我們的移動設(shè)備,到傳統(tǒng)的Web應(yīng)用,再到服務(wù)器端開發(fā)甚至是硬件編程,它幾乎無處不在。
- 大專學(xué)歷,能進(jìn)大公司嗎?
全日制本科幾乎成了所有內(nèi)部職位的最低要求,所以學(xué)歷上的缺失確實會成為你進(jìn)入大公司的障礙。當(dāng)然還是有例外的情況:
通過內(nèi)部員工的推薦。
通過外包公司進(jìn)入后,再轉(zhuǎn)為內(nèi)部員工。
努力成為某一領(lǐng)域的專家,或者建立個人影響力。
如果你還是一名大專在讀學(xué)生,那么我希望你不要過早焦慮,嘗試問問自己除了學(xué)歷之外還有什么讓你能夠脫穎而出的東西?是否有自己的個人項目?是否為知名的開源項目貢獻(xiàn)過代碼,甚至只是參與編寫文檔?是否通過寫博客闡述過自己的獨(dú)到觀點,并得到大家的認(rèn)可?在哪家公司實習(xí)過?這些都可能抓住雇主的眼球,從而彌補(bǔ)你在學(xué)歷上的不足。
給年輕程序員的職涯建議
1.盡早確定你想做的事情。盡早確定自己想做的事情——你的職業(yè)目標(biāo),意味著你可以獲得比其他人更多的時間去努力。
2.一萬小時定律
3.提高工作效率。有以下兩點建議:
加快工作節(jié)奏
借助工具完成工作
4.簡明的溝通方式
5.持續(xù)學(xué)習(xí)
6.學(xué)會控制情緒
7.讓最優(yōu)秀的人圍繞在你身邊
8.善于歸納與表達(dá)
9.掌握英語
10.睡眠使你更強(qiáng)大
— 【 THE END 】—
本公眾號全部博文已整理成一個目錄,請在公眾號里回復(fù)「m」獲??!
傳說中最經(jīng)典的外包案例
程序員竊取「傳奇霸業(yè)」源代碼:被判 8 個月、緩刑 1 年、罰 2000 元!
說說程序員讀書這點事兒!長文慎入
代碼整潔之道:程序員的職業(yè)素養(yǎng)
3T技術(shù)資源大放送!包括但不限于:Java、C/C++,Linux,Python,大數(shù)據(jù),人工智能等等。在公眾號內(nèi)回復(fù)「1024」,即可免費(fèi)獲?。?!