原文:
https://news.cnblogs.com/n/578657/
簡單歸納一下膳灶,總共有 7 條:
1:保持健康
2:編程之外的愛好
3:持續(xù)學(xué)習(xí)
4:正確應(yīng)對犯錯
5:不要囿于角色
6:展示你的創(chuàng)意
7:刻意練習(xí)手速
下面我來詳細說說每一點。
保持健康
三寸氣在千般用立由,一旦無常萬事休轧钓。
——《金瓶梅》
首先要說的當(dāng)然是健康,脫離了這個本錢锐膜,一切都無從談起聋迎。
久坐、不運動枣耀、睡眠不足、不注意及時補充水分庭再、長期的伏案工作等都會對健康造成很大的影響捞奕,而不幸的是,程序員這幾樣全都占了拄轻。很多程序員往往年紀輕輕就已經(jīng)有了各種各樣的疾猜А:頸椎病、腰椎間盤突出恨搓、高血脂/高血壓院促、膽結(jié)石筏养、腱鞘炎等等,關(guān)于程序員過勞死的新聞更是隔一段時間就來刺激一下我們的神經(jīng)常拓。
研究表明渐溶,長期保持同一姿勢(不論坐著還是站著)對身體都有不同程度的害處,而且這種害處是無法事后彌補的弄抬。也就是說茎辐,如果白天上班坐 8 個小時,那么就算你下班后去健身房練一個小時也于事無補掂恕。這幾年很流行的“站立式辦公”也是一樣拖陆,如果你白天站立時間過久,會對膝關(guān)節(jié)造成較大的壓力懊亡,同樣會損害健康依啰。比較推薦的方式是,寫 30-40 分鐘代碼就起來走一走店枣,喝杯水速警,遠眺一會,跟同事聊聊天艰争。
我知道坏瞄,作為程序員我也常遇到那種寫代碼寫 High 了連廁所也不想去的時候。不過為了長遠的健康甩卓,還是要養(yǎng)成良好的習(xí)慣鸠匀。
戒除不良習(xí)慣
除了長時間保持同一姿勢之外,許多程序員還有各種不良習(xí)慣逾柿。比如:
吸煙
喝酒
嗜糖(碳酸飲料缀棍,其他高糖飲料)
這些習(xí)慣一般都會被美其名曰提神,大家都知道机错,程序員加班在業(yè)界算是比較常見的爬范,萎靡不振是常態(tài)。然而這些號稱提神的方法弱匪,其實沒有一個是真正管用的青瀑。這些不良習(xí)慣說到底都是一種“毒癮”,跟吸食大麻在本質(zhì)上并無二致萧诫。不過好消息是你完全可以戒除這些不良習(xí)慣斥难,只需要堅持一段時間,讓“毒癮”過去就好了(和真正的毒癮一樣帘饶,它們更多的是精神依賴哑诊,一旦你戰(zhàn)勝了自己對它的精神依賴,就可以獲得自由)及刻。
我在大學(xué)和剛開始工作的前幾年镀裤,也有煙癮竞阐。寫代碼寫累了就會去辦公室外邊冒一根,那種一氧化碳中毒帶來的短暫微醺感確實令人有放松的錯覺暑劝,但是抽完煙回來寫代碼會感覺更累骆莹。而且口中老感覺有異味,咽喉不適铃岔,最主要的是精神萎靡汪疮,終于有一天我受不了了,決定戒煙(事實上和很多人一樣毁习,之前也有過無數(shù)次的戒煙)智嚷。當(dāng)煙癮發(fā)作的時候,我就去喝杯水纺且,晚上則站站樁(站完之后口齒生津盏道,神清氣爽)。剛開始的 3 天是最難的载碌,一周之后我基本可以控制住去抽煙的欲望猜嘱,然后就越來越輕松,完全感覺不到煙癮對我的影響了嫁艇。
碳酸飲料朗伶、高糖飲料也是一樣。在飲食本來就不充裕的自然界步咪,我們的祖先遇到了富含可以為身體提供能量的糖(比如蜂蜜)论皆,自然會大量攝入。這種嗜糖的基因在今天還在不斷的產(chǎn)生作用猾漫,但是不同的是点晴,我們現(xiàn)在可以很輕松的在食物、飲料中攝入比身體所需多得多的糖悯周。這些糖會給健康帶來很多問題粒督,比如肥胖,高血糖禽翼,冠心病等等屠橄。
更多時候,我們想要喝飲料更多的是精神上的依賴闰挡,也就是上面說到的“毒癮”仇矾。戒除對糖的依賴比煙和酒要困難一些,因為生活中有很多陷阱解总,比如酸奶、面包姐仅、餅干花枫、水果等等刻盐。
零度可樂的陷阱
現(xiàn)在香煙的包裝上印有焦油含量,有 10mg 的劳翰、有 15mg 的敦锌。焦油含量是影響一支煙口感的重要因素,通常說的“綿”其實是說焦油含量較低佳簸,這會讓你感覺比較健康乙墙。然而陷阱是,一支煙抽完覺得不過癮生均,神經(jīng)感受到的刺激不夠強烈听想,這會驅(qū)動你抽第二支,結(jié)果吸入的焦油反而更多马胧。本來 15mg 焦油的一支煙就可以讓你過癮汉买,現(xiàn)在兩支 10mg 的才能達到同樣的效果,相當(dāng)于攝入了 20mg佩脊。
零度可樂也是一樣蛙粘,那種無糖的有著甜味的添加劑會刺激你對糖的渴求,你需要攝入更多的糖來抵消這種虛幻的渴求威彰,然后變得更不健康出牧。
有人可能會說,沒有這些嗜好歇盼,那活著有什么意思呢舔痕?相信我,當(dāng)你戒除了這些“毒癮”旺遮,有了一個健康的體魄赵讯,才真正能體會到活著的樂趣。當(dāng)你為這些嗜好所控制耿眉,產(chǎn)生的那種病態(tài)的舒適感其實是虛無縹緲的边翼。
一些建議
有規(guī)律的做一些運動可以緩解頸椎、腰椎的不適鸣剪,可以加快新陳代謝的速度组底,消耗多余的、會沉積下來的能量筐骇。比如比較容易接觸到债鸡、也容易上手的運動:
瑜伽/普拉提
乒乓球
跳繩
選擇一個適合自己的運動方式,然后將其培養(yǎng)成一個習(xí)慣(比如堅持每周兩次瑜伽铛纬,或者每天中午打 30 分鐘的乒乓球)厌均。如果這些和工作有沖突的話,比如公司要求長期晚上加班告唆,那你可以考慮換一家公司棺弊。
培養(yǎng)一個編程之外的愛好
如果讓不同的人對程序員打標簽并排序晶密,宅一定會排在前三。在任何的聚會上模她,程序員總是很容易被識別出來的:聰明稻艰、戴眼鏡、話不多侈净、略顯悶騷尊勿、聊天容易冷場等等。也難怪畜侦,長期鉆研技術(shù)元扔,沉浸在非黑即白的二進制世界,愛刨根問底夏伊,這樣很容易把天聊死摇展。
我建議新手程序員可以找一個編程之外的愛好,一來可以拓展自己的社交圈溺忧,周末可以有個不一樣的過法(而不是宅在家里寫代碼)咏连;二來可以幫助你成為更好的程序員。
你肯定有過這樣的經(jīng)歷:一個編程問題一直困擾著你鲁森,試了很久都找不到解決方法祟滴,結(jié)果出去散了會兒步,或者和別人嘮家常歌溉,突然腦海里靈光一閃垄懂,想到了問題的答案。事實上痛垛,我們大腦的工作方式就是如此奇妙草慧,換一個完全不同的上下文就可以讓大腦得到很好的休息,而且往往可以產(chǎn)生1+1>2的效果匙头。寫代碼寫累了去聽聽音樂漫谷,或者打一會乒乓球就可以很好的緩解疲勞,甚至可以打開思路蹂析,產(chǎn)生新的靈感舔示。
一些建議
學(xué)習(xí)一項與編程無關(guān)的技能,比如:
樂器(如吉他电抚,架子鼓)
繪畫(素描惕稻,水粉,水彩等)或者書法
制作美食
某一項武術(shù)(拳擊蝙叛,泰拳俺祠,空手道等)
這些看似毫不相干的愛好可以幫助大腦休息。另外需要注意的是,你無需真正成為某一項愛好的專家蜘渣,不要有額外的壓力:擔(dān)心演奏不好妓布、沒有繪畫天賦等等。沒關(guān)系宋梧,它只是一個愛好而已。
我自己就嘗試過很多不同的愛好狰挡,比如素描捂龄、書法等。
持續(xù)學(xué)習(xí)
軟件開發(fā)是一個需要終身學(xué)習(xí)的行業(yè)(其實如果你不想做那種混吃等死的人的話加叁,基本上每個行業(yè)都是這樣)倦沧。我畢業(yè)的時候,SSH(Spring Struts Hibernate)是 Web 開發(fā)的主流它匕,jQuery則是前端的新銳展融。有一些企業(yè)開始嘗試Adobe的ActionScript,不過這個語言很快就消逝在了人們的視野中豫柬「嫦#基于jQUery,但是融入了MVC理念的Backbone.js提供更高級的抽象能力烧给,成為了開發(fā)“大型”前端應(yīng)用的首選燕偶;緊隨其后的,大而全的Angular.js則通過內(nèi)置的雙向綁定础嫡、依賴注入指么、完善的測試支持等讓前端開發(fā)變得和后端開發(fā)一樣健全;再后來虛擬 DOM榴鼎,Reactive 范式的React棧則又一次顛覆了前端的開發(fā)方式伯诬。雖然現(xiàn)在還不知道下一次的顛覆會在哪里發(fā)生,但是可以肯定的是它一定會發(fā)生巫财。
除了基礎(chǔ)框架之外盗似,各種構(gòu)建工具也是層出不窮,從最早和后端放在一起的maven翁涤,rake桥言,到基于NodeJS的grunt,再到gulp葵礼,到webpack号阿,最后又回歸到npm script。
程序員被裹挾在技術(shù)演進的洪流中鸳粉,不能自已扔涧。作為程序員,你不但要非常扎實的掌握基礎(chǔ)知識(操作系統(tǒng)原理,計算機網(wǎng)絡(luò)枯夜,數(shù)據(jù)結(jié)構(gòu)弯汰,算法等),還需要有非常強的快速學(xué)習(xí)能力湖雹,以及愿意不斷去學(xué)習(xí)的態(tài)度咏闪,而后者可能更重要。
一些建議
- 讀書
- 通過視頻/文本教程等學(xué)習(xí)新技術(shù)
建議新手每天抽出一個小時來讀書摔吏,周末可以多讀一些鸽嫂。ThoughtWorks 有個讀書雷達,是一個很不錯的書單征讲,包括了很多的經(jīng)典書籍据某。讀書之外,還可以在線學(xué)習(xí)一些教程诗箍,比如 Tutorialplus 和 Egghead 等癣籽,都非常值得經(jīng)常去看看,如果有比較新鮮有趣的技術(shù)滤祖,不妨自己親自動手試一試筷狼。
關(guān)于英文能力
毫不夸張的說,英文能力是優(yōu)秀程序員和普通程序員的華麗分割線氨距。有了好的英文能力桑逝,可供你學(xué)習(xí)的資料庫會立刻擴大數(shù)百甚至數(shù)千倍:海量的優(yōu)質(zhì)免費教程,視頻俏让,和優(yōu)秀的中文教程一樣楞遏,它們都深入淺出,通俗易懂首昔,風(fēng)趣幽默寡喝,只不過中文的會比較少,而且一般總是會滯后于英文版本而已勒奇。
英文能力不但可以幫你熟悉各種前端庫预鬓、CSS 框架等的介紹。還可以讓你學(xué)習(xí)世界各國程序員對各種庫的測評赊颠、框架的使用心得格二、踩過的坑等等。
我在 2012 年加入 ThoughtWorks 的時候竣蹦,面試時磕磕絆絆的說不出話來顶猜。等到 6 個月試用期結(jié)束的時候,已經(jīng)可以出差去澳洲和客戶的 OPs 談笑風(fēng)生了痘括。2013 年的 8 月长窄,在印度普內(nèi)滔吠,我已經(jīng)可以用英文給來自世界各國的學(xué)生講課。
除了更順暢的和不同文化的人交流挠日、討論問題之外疮绷,可以明顯感覺到學(xué)習(xí)的速度變得更快,更有效率嚣潜。
我自己實踐過的一個比較有效的方法冬骚。我每天會花兩個小時(早晚各一個小時)看澳洲之音上的視頻,我會聽寫出視頻中的每一句話懂算,如果聽不清就重復(fù)唉韭,有的句子可能會重復(fù)十遍。聽到最后犯犁,視頻中的每句話我都能聽懂,而且能一邊聽一邊寫出來女器。這樣堅持了差不多 3 個月酸役,我基本上就可以聽懂客戶的需求澄清,開會的時候也可以比較完整的聽明白每個人討論的點驾胆。
其實訣竅就是堅持涣澡,這 3 個月中,每天兩個小時丧诺,我沒有一天間斷入桂。過了這一關(guān)之后,就很容易了驳阎,盡量多聽多說就好抗愁。
另一個提高的方法是翻譯書,我更建議你跟另外一個有經(jīng)驗的同事一起翻譯呵晚,大家互相監(jiān)督蜘腌,也有個照應(yīng),比較不容易半途而廢饵隙。
正確應(yīng)對犯錯
斯坦福大學(xué)的 Carol Dweck 教授通過一些實驗和后續(xù)的研究提出了很有名的心智模型(Mindset)理論撮珠,簡而言之,她發(fā)現(xiàn)不同的人們對待失敗這件事有著完全不同的態(tài)度:有一類人害怕失敗金矛,失敗后會變得不能接受芯急,而且容易否定自身并影響進一步的嘗試,Dweck 教授稱這類人為固定型思維模式(Fixed Mindset)驶俊;而另一類人則“喜歡”失敗娶耍,視失敗/犯錯為學(xué)習(xí)的一種方式,他們更關(guān)注過程而不是結(jié)果废睦,Dweck 教授稱其為成長型思維模式(Growth Mindset)伺绽。
Dweck 在演講中提到,通過向成長型思維模式的轉(zhuǎn)變,關(guān)注從失敗/犯錯中學(xué)習(xí)奈应,人們的潛力可以得到很好的發(fā)揮澜掩,也更容易獲得理想的結(jié)果。
很多新人不敢嘗試杖挣,又不愿意讓同事知道自己的不足肩榕,這樣的態(tài)度會導(dǎo)致他更傾向于選擇更容易的工作,這樣就可以避免暴露自己的不足惩妇,久而久之就會形成惡性循環(huán)株汉。其實企業(yè)對于新人的期望一般都不會很高,對于新人犯錯也是有容忍度的歌殃,新人要勇于承認自己的不足乔妈,勇于嘗試新的事物,勇于犯錯并從中學(xué)習(xí)氓皱。
承認自己的不足在剛開始是一件很困難的事情路召,不過在嘗試過幾次之后,你就會發(fā)現(xiàn)其實也沒有那么恐怖波材。你慢慢會喜歡那種不帶任何包袱的股淡、全身心聚焦在學(xué)習(xí)本身上的快樂。
不要被角色限制
都梁在《血色浪漫》里有段描述陜北農(nóng)民的文字:
鐘躍民驚訝地發(fā)現(xiàn)廷区,在如此貧困惡劣的生存狀態(tài)下唯灵,村民們卻很少愁眉苦臉, 他們始終很樂觀隙轻,他們最喜歡談?wù)摰脑掝}是飲食男女埠帕。在飲食方面,由于他們沒見過更好的食品玖绿,所以堅持認為酸湯餃子和油潑辣子是天下最美味的食品搞监,如果有人提出世上還有很多更好吃的東西,那大家會一致認為此人太沒見過世面镰矿,這八成是沒吃過酸湯餃子琐驴,才在這兒胡咧咧.
就像酸湯餃子并非天下最美味的食品一樣,開發(fā)也不是世界上最牛逼的工作秤标。任何一個良好的绝淡,健康的產(chǎn)品、項目都需要不同的角色共同配合苍姜,共同努力牢酵。如果僅僅將自己局限在程序員這一角色,時間久了未免會有坐井觀天的狹隘衙猪。
作為程序員馍乙,既可以往上游去探索需求的梳理布近,用戶痛點的分析,業(yè)務(wù)價值的挖掘丝格,又可以向下游如測試的編寫撑瞧,產(chǎn)品的發(fā)布挽荡,運維監(jiān)控够庙。視野開拓了妈拌,才有可能對產(chǎn)品有整體的了解北启,也更容易在程序員這個角色上做的更好。
作為新人菲盾,能在自己擅長的方面發(fā)揮長處當(dāng)然很好磺芭,但是如果僅僅局限在自己擅長的方面則未免太過單薄婴噩。如果你在前端非常有經(jīng)驗骆撇,那么除了將這些經(jīng)驗和知識分享給別人之外瞒御,你還可以向別的角色學(xué)習(xí)他們擅長的技能,比如向測試學(xué)習(xí)自動化神郊、SBE 等葵腹;向后端學(xué)習(xí)高性能,高可用服務(wù)器的技術(shù)屿岂、數(shù)據(jù)庫設(shè)計及優(yōu)化、API 設(shè)計等鲸匿;向 DevOps 學(xué)習(xí)運維技能爷怀,自動化provision技能等等。
這些不同的技術(shù)不但可以讓你的視野更加開闊带欢,也可以為自己以后嘗試不同的角色和機會打好基礎(chǔ)运授。以我自己為例,我剛工作的時候是一個 Java 開發(fā)乔煞,后來開始做產(chǎn)品的前端開發(fā)吁朦。換了工作后又跑到 Linux 下用C寫服務(wù)。再后來加入 ThoughtWorks 后渡贾,正經(jīng)職位是開發(fā)逗宜,不過在項目上還兼職過一段時間 QA,在有些項目上空骚,當(dāng) UX 不在場的時候還可以做些簡單的設(shè)計纺讲,在技術(shù)社區(qū)當(dāng)講師,還在一些客戶現(xiàn)場做過咨詢顧問囤屹。我自己覺得在不同的角色上切換非常有意思熬甚,我自己也很享受整個過程。
展示你的創(chuàng)意
將一個創(chuàng)意肋坚、復(fù)雜概念或者想法簡潔而準確的描述出來是一個非常重要的能力乡括。我見過太多的程序員都是沉默寡言肃廓,講東西聲音又小,又緊張诲泌,即使有很好的想法也難以完整的表述出來盲赊。
不過這個能力是可以鍛煉的,只需要借助原型的制作就可以了:
畫圖
靜態(tài)原型
紙上原型
俗話說档礁,一圖勝千言角钩。你只需要學(xué)習(xí)一些簡單的繪畫技巧就可以大大提高自己的表述能力。
手速
關(guān)于程序員是否要求很快的手速是一個頗具爭議的話題呻澜。支持者認為這屬于基本功递礼,每個程序員都應(yīng)該打字都很快;反對者則認為程序員的價值在于思考并解決問題羹幸,追求速度快脊髓,那還不如招個打字員。我個人的觀點是栅受,好的程序員應(yīng)該有很快的手速(包括打字的速度将硝,但不局限于此)。
我在 ThoughtWorks 西安辦公室組織過很多次提升手速的工作坊屏镊,比如三周三頁面依疼,閃電計劃等《妫基本原則就是對一個具體的“作業(yè)”律罢,不斷的重復(fù)練習(xí)。
最近帶兩個新人棍丐,我給他們布置了一個簡單的作業(yè):
基本要求是以最快的速度實現(xiàn)這個頁面误辑,并有一點微小的交互(比如選擇聯(lián)系人之后的 checkbox 會顯示選中狀態(tài),剩余 invites 的數(shù)量減少等)歌逢。第一次做他們用了 5 個多小時(連同搭建環(huán)境巾钉,安裝 Node.js,npm 包等)秘案,第二次用時 2 個半小時砰苍,第三次用時 1 個半小時,第四次用時 50 分鐘阱高。
對同一個頁面的不斷練習(xí)聽起來是在做重復(fù)工作师骗,其實可以聯(lián)系到很多的內(nèi)容:
- 命令行的熟悉程度
- 快捷鍵的使用
- 搜索引擎的使用
- Stackoverflow 的使用
當(dāng)你真的可以熟極而流的時候,你才有時間來考慮如何優(yōu)化讨惩,比如如何抽取模板工程(這樣下次做同樣的事情就會快很多)辟癌,如何精簡 DOM 結(jié)構(gòu),如何用命令行工具來幫助自己提速等荐捻。手速是大前提黍少,沒有速度寡夹,一切優(yōu)化都是腦海中的意淫,無法真實落地厂置。
總結(jié)
要成為一個厲害的程序員菩掏,首先當(dāng)然是要有一個好的身體。此外需要培養(yǎng)一個編程之外的愛好昵济,這樣可以讓你活的像一個正常人(而不是傳統(tǒng)的工科書呆子)智绸。程序員是一個需要不斷學(xué)習(xí),不斷充實的職業(yè)访忿,在學(xué)習(xí)的過程中瞧栗,英文能力可以幫助你學(xué)的更快,更有效海铆,另外正確的應(yīng)對學(xué)習(xí)過程中必然會犯的錯誤迹恐,并將每次錯誤都當(dāng)成學(xué)習(xí)的機會。
開發(fā)只是軟件開發(fā)流程中的一環(huán)卧斟,程序員需要拓展自己的視野殴边,和其他角色一起配合才能保證產(chǎn)品的交付。在日常的開發(fā)中珍语,程序員還需要快速锤岸、準確的將自己的想法和創(chuàng)意表達出來。最后板乙,更快速的完成手頭的工作可以讓你有更多的時間來思考是偷,來改進那些低效的工作方式。
擴展閱讀
- Carol Dweck 教授的演講《請相信亡驰,你可以進步》
- Paul Graham 的黑客與畫家
- 如果你能畫這三種基礎(chǔ)性狀,你就可以畫一切
- 為什么優(yōu)秀的程序員喜歡命令行
- 刻意練習(xí)
- 不想當(dāng) UX 的開發(fā)不是好咨詢師