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