作為一個(gè)從業(yè)快10年的程序員己儒,我想給新入行的程序員們一些建議讶凉。這些建議是我希望自己可以在畢業(yè)時(shí)就讀到的,也希望它們可以幫助你成為一個(gè)更好的程序員。
簡(jiǎn)單歸納一下,總共有7條:
- 保持健康
- 編程之外的愛(ài)好
- 持續(xù)學(xué)習(xí)
- 正確應(yīng)對(duì)犯錯(cuò)
- 不要囿于角色
- 展示你的創(chuàng)意
- 刻意練習(xí)手速
下面我來(lái)詳細(xì)說(shuō)說(shuō)每一點(diǎn)擦盾。
保持健康
三寸氣在千般用,一旦無(wú)常萬(wàn)事休淌哟。
——《金瓶梅》
首先要說(shuō)的當(dāng)然是健康迹卢,脫離了這個(gè)本錢,一切都無(wú)從談起徒仓。
久坐腐碱、不運(yùn)動(dòng)、睡眠不足掉弛、不注意及時(shí)補(bǔ)充水分症见、長(zhǎng)期的伏案工作等都會(huì)對(duì)健康造成很大的影響喂走,而不幸的是,程序員這幾樣全都占了筒饰。很多程序員往往年紀(jì)輕輕就已經(jīng)有了各種各樣的疾病:頸椎病壁晒、腰椎間盤突出瓷们、高血脂/高血壓、膽結(jié)石秒咐、腱鞘炎等等谬晕,關(guān)于程序員過(guò)勞死的新聞更是隔一段時(shí)間就來(lái)刺激一下我們的神經(jīng)。
研究表明携取,長(zhǎng)期保持同一姿勢(shì)(不論坐著還是站著)對(duì)身體都有不同程度的害處攒钳,而且這種害處是無(wú)法事后彌補(bǔ)的。也就是說(shuō)雷滋,如果白天上班坐8個(gè)小時(shí)不撑,那么就算你下班后去健身房練一個(gè)小時(shí)也于事無(wú)補(bǔ)。這幾年很流行的“站立式辦公”也是一樣晤斩,如果你白天站立時(shí)間過(guò)久焕檬,會(huì)對(duì)膝關(guān)節(jié)造成較大的壓力,同樣會(huì)損害健康澳泵。比較推薦的方式是实愚,寫30-40分鐘代碼就起來(lái)走一走,喝杯水兔辅,遠(yuǎn)眺一會(huì)腊敲,跟同事聊聊天。
我知道维苔,作為程序員我也常遇到那種寫代碼寫High了連廁所也不想去的時(shí)候碰辅。不過(guò)為了長(zhǎng)遠(yuǎn)的健康,還是要養(yǎng)成良好的習(xí)慣介时。
戒除不良習(xí)慣
除了長(zhǎng)時(shí)間保持同一姿勢(shì)之外乎赴,許多程序員還有各種不良習(xí)慣。比如:
- 吸煙
- 喝酒
- 嗜糖(碳酸飲料潮尝,其他高糖飲料)
這些習(xí)慣一般都會(huì)被美其名曰提神榕吼,大家都知道,程序員加班在業(yè)界算是比較常見(jiàn)的勉失,萎靡不振是常態(tài)羹蚣。然而這些號(hào)稱提神的方法,其實(shí)沒(méi)有一個(gè)是真正管用的乱凿。這些不良習(xí)慣說(shuō)到底都是一種“毒癮”顽素,跟吸食大麻在本質(zhì)上并無(wú)二致咽弦。不過(guò)好消息是你完全可以戒除這些不良習(xí)慣,只需要堅(jiān)持一段時(shí)間胁出,讓“毒癮”過(guò)去就好了(和真正的毒癮一樣型型,它們更多的是精神依賴,一旦你戰(zhàn)勝了自己對(duì)它的精神依賴全蝶,就可以獲得自由)闹蒜。
我在大學(xué)和剛開(kāi)始工作的前幾年,也有煙癮抑淫。寫代碼寫累了就會(huì)去辦公室外邊冒一根绷落,那種一氧化碳中毒帶來(lái)的短暫微醺感確實(shí)令人有放松的錯(cuò)覺(jué),但是抽完煙回來(lái)寫代碼會(huì)感覺(jué)更累始苇。而且口中老感覺(jué)有異味砌烁,咽喉不適,最主要的是精神萎靡催式,終于有一天我受不了了函喉,決定戒煙(事實(shí)上和很多人一樣,之前也有過(guò)無(wú)數(shù)次的戒煙)荣月。當(dāng)煙癮發(fā)作的時(shí)候函似,我就去喝杯水,晚上則站站樁(站完之后口齒生津喉童,神清氣爽)撇寞。剛開(kāi)始的3天是最難的,一周之后我基本可以控制住去抽煙的欲望堂氯,然后就越來(lái)越輕松蔑担,完全感覺(jué)不到煙癮對(duì)我的影響了。
碳酸飲料咽白、高糖飲料也是一樣啤握。在飲食本來(lái)就不充裕的自然界,我們的祖先遇到了富含可以為身體提供能量的糖(比如蜂蜜)晶框,自然會(huì)大量攝入排抬。這種嗜糖的基因在今天還在不斷的產(chǎn)生作用,但是不同的是授段,我們現(xiàn)在可以很輕松的在食物蹲蒲、飲料中攝入比身體所需多得多的糖。這些糖會(huì)給健康帶來(lái)很多問(wèn)題侵贵,比如肥胖届搁,高血糖,冠心病等等。
更多時(shí)候卡睦,我們想要喝飲料更多的是精神上的依賴宴胧,也就是上面說(shuō)到的“毒癮”。戒除對(duì)糖的依賴比煙和酒要困難一些表锻,因?yàn)樯钪杏泻芏嘞葳逅∑耄热缢崮獭⒚姘惭贰灨上云纭⑺鹊取?/p>
零度可樂(lè)的陷阱
現(xiàn)在香煙的包裝上印有焦油含量,有10mg的码耐、有15mg的追迟。焦油含量是影響一支煙口感的重要因素溶其,通常說(shuō)的“綿”其實(shí)是說(shuō)焦油含量較低骚腥,這會(huì)讓你感覺(jué)比較健康。然而陷阱是瓶逃,一支煙抽完覺(jué)得不過(guò)癮束铭,神經(jīng)感受到的刺激不夠強(qiáng)烈,這會(huì)驅(qū)動(dòng)你抽第二支厢绝,結(jié)果吸入的焦油反而更多契沫。本來(lái)15mg焦油的一支煙就可以讓你過(guò)癮,現(xiàn)在兩支10mg的才能達(dá)到同樣的效果昔汉,相當(dāng)于攝入了20mg懈万。
零度可樂(lè)也是一樣,那種無(wú)糖的有著甜味的添加劑會(huì)刺激你對(duì)糖的渴求靶病,你需要攝入更多的糖來(lái)抵消這種虛幻的渴求会通,然后變得更不健康。
有人可能會(huì)說(shuō)娄周,沒(méi)有這些嗜好涕侈,那活著有什么意思呢?相信我煤辨,當(dāng)你戒除了這些“毒癮”裳涛,有了一個(gè)健康的體魄,才真正能體會(huì)到活著的樂(lè)趣众辨。當(dāng)你為這些嗜好所控制端三,產(chǎn)生的那種病態(tài)的舒適感其實(shí)是虛無(wú)縹緲的。
一些建議
有規(guī)律的做一些運(yùn)動(dòng)可以緩解頸椎鹃彻、腰椎的不適技肩,可以加快新陳代謝的速度,消耗多余的、會(huì)沉積下來(lái)的能量虚婿。比如比較容易接觸到旋奢、也容易上手的運(yùn)動(dòng):
- 瑜伽/普拉提
- 乒乓球
- 跳繩
選擇一個(gè)適合自己的運(yùn)動(dòng)方式,然后將其培養(yǎng)成一個(gè)習(xí)慣(比如堅(jiān)持每周兩次瑜伽然痊,或者每天中午打30分鐘的乒乓球)至朗。如果這些和工作有沖突的話,比如公司要求長(zhǎng)期晚上加班剧浸,那你可以考慮換一家公司锹引。
培養(yǎng)一個(gè)編程之外的愛(ài)好
如果讓不同的人對(duì)程序員打標(biāo)簽并排序,宅一定會(huì)排在前三唆香。在任何的聚會(huì)上嫌变,程序員總是很容易被識(shí)別出來(lái)的:聰明、戴眼鏡躬它、話不多腾啥、略顯悶騷、聊天容易冷場(chǎng)等等冯吓。也難怪倘待,長(zhǎng)期鉆研技術(shù),沉浸在非黑即白的二進(jìn)制世界组贺,愛(ài)刨根問(wèn)底凸舵,這樣很容易把天聊死。
我建議新手程序員可以找一個(gè)編程之外的愛(ài)好失尖,一來(lái)可以拓展自己的社交圈啊奄,周末可以有個(gè)不一樣的過(guò)法(而不是宅在家里寫代碼);二來(lái)可以幫助你成為更好的程序員掀潮。
你肯定有過(guò)這樣的經(jīng)歷:一個(gè)編程問(wèn)題一直困擾著你菇夸,試了很久都找不到解決方法,結(jié)果出去散了會(huì)兒步胧辽,或者和別人嘮家常峻仇,突然腦海里靈光一閃,想到了問(wèn)題的答案邑商。事實(shí)上摄咆,我們大腦的工作方式就是如此奇妙,換一個(gè)完全不同的上下文就可以讓大腦得到很好的休息人断,而且往往可以產(chǎn)生1+1>2
的效果吭从。寫代碼寫累了去聽(tīng)聽(tīng)音樂(lè),或者打一會(huì)乒乓球就可以很好的緩解疲勞恶迈,甚至可以打開(kāi)思路涩金,產(chǎn)生新的靈感谱醇。
一些建議
學(xué)習(xí)一項(xiàng)與編程無(wú)關(guān)的技能,比如:
- 樂(lè)器(如吉他步做,架子鼓)
- 繪畫(素描副渴,水粉,水彩等)或者書法
- 制作美食
- 某一項(xiàng)武術(shù)(拳擊全度,泰拳煮剧,空手道等)
這些看似毫不相干的愛(ài)好可以幫助大腦休息。另外需要注意的是将鸵,你無(wú)需真正成為某一項(xiàng)愛(ài)好的專家勉盅,不要有額外的壓力:擔(dān)心演奏不好、沒(méi)有繪畫天賦等等顶掉。沒(méi)關(guān)系草娜,它只是一個(gè)愛(ài)好而已。
我自己就嘗試過(guò)很多不同的愛(ài)好痒筒,比如素描宰闰、書法等。
持續(xù)學(xué)習(xí)
軟件開(kāi)發(fā)是一個(gè)需要終身學(xué)習(xí)的行業(yè)(其實(shí)如果你不想做那種混吃等死的人的話凸克,基本上每個(gè)行業(yè)都是這樣)议蟆。我畢業(yè)的時(shí)候闷沥,SSH
(Spring Struts Hibernate)是Web開(kāi)發(fā)的主流萎战,jQuery
則是前端的新銳。有一些企業(yè)開(kāi)始嘗試Adobe
的ActionScript
舆逃,不過(guò)這個(gè)語(yǔ)言很快就消逝在了人們的視野中蚂维。基于jQUery
路狮,但是融入了MVC
理念的Backbone.js
提供更高級(jí)的抽象能力虫啥,成為了開(kāi)發(fā)“大型”前端應(yīng)用的首選;緊隨其后的奄妨,大而全的Angular.js
則通過(guò)內(nèi)置的雙向綁定涂籽、依賴注入、完善的測(cè)試支持等讓前端開(kāi)發(fā)變得和后端開(kāi)發(fā)一樣健全砸抛;再后來(lái)虛擬DOM
评雌,Reactive范式
的React
棧則又一次顛覆了前端的開(kāi)發(fā)方式。雖然現(xiàn)在還不知道下一次的顛覆會(huì)在哪里發(fā)生直焙,但是可以肯定的是它一定會(huì)發(fā)生景东。
除了基礎(chǔ)框架之外,各種構(gòu)建工具也是層出不窮奔誓,從最早和后端放在一起的maven
斤吐,rake
,到基于NodeJS
的grunt
,再到gulp
和措,到webpack
庄呈,最后又回歸到npm script
。
程序員被裹挾在技術(shù)演進(jìn)的洪流中派阱,不能自已抒痒。作為程序員,你不但要非常扎實(shí)的掌握基礎(chǔ)知識(shí)(操作系統(tǒng)原理颁褂,計(jì)算機(jī)網(wǎng)絡(luò)故响,數(shù)據(jù)結(jié)構(gòu),算法等)颁独,還需要有非常強(qiáng)的快速學(xué)習(xí)能力彩届,以及愿意不斷去學(xué)習(xí)的態(tài)度,而后者可能更重要誓酒。
一些建議
- 讀書
- 通過(guò)視頻/文本教程等學(xué)習(xí)新技術(shù)
建議新手每天抽出一個(gè)小時(shí)來(lái)讀書樟蠕,周末可以多讀一些。ThoughtWorks有個(gè)讀書雷達(dá)靠柑,是一個(gè)很不錯(cuò)的書單寨辩,包括了很多的經(jīng)典書籍。讀書之外歼冰,還可以在線學(xué)習(xí)一些教程靡狞,比如Tutorialplus和Egghead等,都非常值得經(jīng)常去看看隔嫡,如果有比較新鮮有趣的技術(shù)甸怕,不妨自己親自動(dòng)手試一試。
關(guān)于英文能力
毫不夸張的說(shuō)腮恩,英文能力是優(yōu)秀程序員和普通程序員的華麗分割線梢杭。有了好的英文能力,可供你學(xué)習(xí)的資料庫(kù)會(huì)立刻擴(kuò)大數(shù)百甚至數(shù)千倍:海量的優(yōu)質(zhì)免費(fèi)教程秸滴,視頻武契,和優(yōu)秀的中文教程一樣,它們都深入淺出荡含,通俗易懂咒唆,風(fēng)趣幽默,只不過(guò)中文的會(huì)比較少内颗,而且一般總是會(huì)滯后于英文版本而已钧排。
英文能力不但可以幫你熟悉各種前端庫(kù)、CSS框架等的介紹均澳。還可以讓你學(xué)習(xí)世界各國(guó)程序員對(duì)各種庫(kù)的測(cè)評(píng)恨溜、框架的使用心得符衔、踩過(guò)的坑等等。
我在2012年加入ThoughtWorks的時(shí)候糟袁,面試時(shí)磕磕絆絆的說(shuō)不出話來(lái)判族。等到6個(gè)月試用期結(jié)束的時(shí)候,已經(jīng)可以出差去澳洲和客戶的OPs談笑風(fēng)生了项戴。2013年的8月形帮,在印度普內(nèi),我已經(jīng)可以用英文給來(lái)自世界各國(guó)的學(xué)生講課周叮。
除了更順暢的和不同文化的人交流辩撑、討論問(wèn)題之外,可以明顯感覺(jué)到學(xué)習(xí)的速度變得更快仿耽,更有效率合冀。
我自己實(shí)踐過(guò)的一個(gè)比較有效的方法。我每天會(huì)花兩個(gè)小時(shí)(早晚各一個(gè)小時(shí))看澳洲之音上的視頻项贺,我會(huì)聽(tīng)寫出視頻中的每一句話君躺,如果聽(tīng)不清就重復(fù),有的句子可能會(huì)重復(fù)十遍开缎。聽(tīng)到最后棕叫,視頻中的每句話我都能聽(tīng)懂,而且能一邊聽(tīng)一邊寫出來(lái)奕删。這樣堅(jiān)持了差不多3個(gè)月俺泣,我基本上就可以聽(tīng)懂客戶的需求澄清,開(kāi)會(huì)的時(shí)候也可以比較完整的聽(tīng)明白每個(gè)人討論的點(diǎn)急侥。
其實(shí)訣竅就是堅(jiān)持砌滞,這3個(gè)月中侮邀,每天兩個(gè)小時(shí)坏怪,我沒(méi)有一天間斷。過(guò)了這一關(guān)之后绊茧,就很容易了铝宵,盡量多聽(tīng)多說(shuō)就好。
另一個(gè)提高的方法是翻譯書华畏,我更建議你跟另外一個(gè)有經(jīng)驗(yàn)的同事一起翻譯鹏秋,大家互相監(jiān)督,也有個(gè)照應(yīng)亡笑,比較不容易半途而廢侣夷。
正確應(yīng)對(duì)犯錯(cuò)
斯坦福大學(xué)的Carol Dweck教授通過(guò)一些實(shí)驗(yàn)和后續(xù)的研究提出了很有名的心智模型(Mindset)理論,簡(jiǎn)而言之仑乌,她發(fā)現(xiàn)不同的人們對(duì)待失敗這件事有著完全不同的態(tài)度:有一類人害怕失敗百拓,失敗后會(huì)變得不能接受琴锭,而且容易否定自身并影響進(jìn)一步的嘗試,Dweck教授稱這類人為固定型思維模式(Fixed Mindset)衙传;而另一類人則“喜歡”失敗决帖,視失敗/犯錯(cuò)為學(xué)習(xí)的一種方式,他們更關(guān)注過(guò)程而不是結(jié)果蓖捶,Dweck教授稱其為成長(zhǎng)型思維模式(Growth Mindset)地回。
Dweck在演講中提到,通過(guò)向成長(zhǎng)型思維模式的轉(zhuǎn)變俊鱼,關(guān)注從失敗/犯錯(cuò)中學(xué)習(xí)刻像,人們的潛力可以得到很好的發(fā)揮,也更容易獲得理想的結(jié)果并闲。
很多新人不敢嘗試绎速,又不愿意讓同事知道自己的不足,這樣的態(tài)度會(huì)導(dǎo)致他更傾向于選擇更容易的工作焙蚓,這樣就可以避免暴露自己的不足纹冤,久而久之就會(huì)形成惡性循環(huán)。其實(shí)企業(yè)對(duì)于新人的期望一般都不會(huì)很高购公,對(duì)于新人犯錯(cuò)也是有容忍度的萌京,新人要勇于承認(rèn)自己的不足,勇于嘗試新的事物宏浩,勇于犯錯(cuò)并從中學(xué)習(xí)知残。
承認(rèn)自己的不足在剛開(kāi)始是一件很困難的事情,不過(guò)在嘗試過(guò)幾次之后比庄,你就會(huì)發(fā)現(xiàn)其實(shí)也沒(méi)有那么恐怖求妹。你慢慢會(huì)喜歡那種不帶任何包袱的、全身心聚焦在學(xué)習(xí)本身上的快樂(lè)佳窑。
不要被角色限制
都梁在《血色浪漫》里有段描述陜北農(nóng)民的文字:
鐘躍民驚訝地發(fā)現(xiàn)制恍,在如此貧困惡劣的生存狀態(tài)下,村民們卻很少愁眉苦臉神凑, 他們始終很樂(lè)觀净神,他們最喜歡談?wù)摰脑掝}是飲食男女。在飲食方面溉委,由于他們沒(méi)見(jiàn)過(guò)更好的食品鹃唯,所以堅(jiān)持認(rèn)為酸湯餃子和油潑辣子是天下最美味的食品,如果有人提出世上還有很多更好吃的東西瓣喊,那大家會(huì)一致認(rèn)為此人太沒(méi)見(jiàn)過(guò)世面坡慌,這八成是沒(méi)吃過(guò)酸湯餃子,才在這兒胡咧咧.
就像酸湯餃子并非天下最美味的食品一樣藻三,開(kāi)發(fā)也不是世界上最牛逼的工作洪橘。任何一個(gè)良好的絮爷,健康的產(chǎn)品、項(xiàng)目都需要不同的角色共同配合梨树,共同努力坑夯。如果僅僅將自己局限在程序員這一角色,時(shí)間久了未免會(huì)有坐井觀天的狹隘抡四。
作為程序員柜蜈,既可以往上游去探索需求的梳理,用戶痛點(diǎn)的分析指巡,業(yè)務(wù)價(jià)值的挖掘淑履,又可以向下游如測(cè)試的編寫,產(chǎn)品的發(fā)布藻雪,運(yùn)維監(jiān)控秘噪。視野開(kāi)拓了,才有可能對(duì)產(chǎn)品有整體的了解勉耀,也更容易在程序員這個(gè)角色上做的更好指煎。
作為新人,能在自己擅長(zhǎng)的方面發(fā)揮長(zhǎng)處當(dāng)然很好便斥,但是如果僅僅局限在自己擅長(zhǎng)的方面則未免太過(guò)單薄至壤。如果你在前端非常有經(jīng)驗(yàn),那么除了將這些經(jīng)驗(yàn)和知識(shí)分享給別人之外枢纠,你還可以向別的角色學(xué)習(xí)他們擅長(zhǎng)的技能像街,比如向測(cè)試學(xué)習(xí)自動(dòng)化、SBE等晋渺;向后端學(xué)習(xí)高性能镰绎,高可用服務(wù)器的技術(shù)、數(shù)據(jù)庫(kù)設(shè)計(jì)及優(yōu)化木西、API設(shè)計(jì)等畴栖;向DevOps學(xué)習(xí)運(yùn)維技能,自動(dòng)化provision
技能等等户魏。
這些不同的技術(shù)不但可以讓你的視野更加開(kāi)闊驶臊,也可以為自己以后嘗試不同的角色和機(jī)會(huì)打好基礎(chǔ)。以我自己為例叼丑,我剛工作的時(shí)候是一個(gè)Java開(kāi)發(fā),后來(lái)開(kāi)始做產(chǎn)品的前端開(kāi)發(fā)扛门。換了工作后又跑到Linux下用C寫服務(wù)鸠信。再后來(lái)加入ThoughtWorks后,正經(jīng)職位是開(kāi)發(fā)论寨,不過(guò)在項(xiàng)目上還兼職過(guò)一段時(shí)間QA星立,在有些項(xiàng)目上爽茴,當(dāng)UX不在場(chǎng)的時(shí)候還可以做些簡(jiǎn)單的設(shè)計(jì),在技術(shù)社區(qū)當(dāng)講師绰垂,還在一些客戶現(xiàn)場(chǎng)做過(guò)咨詢顧問(wèn)室奏。我自己覺(jué)得在不同的角色上切換非常有意思,我自己也很享受整個(gè)過(guò)程劲装。
展示你的創(chuàng)意
將一個(gè)創(chuàng)意胧沫、復(fù)雜概念或者想法簡(jiǎn)潔而準(zhǔn)確的描述出來(lái)是一個(gè)非常重要的能力。我見(jiàn)過(guò)太多的程序員都是沉默寡言占业,講東西聲音又小绒怨,又緊張,即使有很好的想法也難以完整的表述出來(lái)谦疾。
不過(guò)這個(gè)能力是可以鍛煉的南蹂,只需要借助原型的制作就可以了:
- 畫圖
- 靜態(tài)原型
- 紙上原型
俗話說(shuō),一圖勝千言念恍。你只需要學(xué)習(xí)一些簡(jiǎn)單的繪畫技巧就可以大大提高自己的表述能力六剥。
通過(guò)用靜態(tài)頁(yè)面(HTML/CSS/JS),mock數(shù)據(jù)等方式峰伙,快速的將創(chuàng)意表達(dá)出來(lái)是程序員的一個(gè)優(yōu)勢(shì)仗考,你可以用靜態(tài)數(shù)據(jù)、數(shù)據(jù)文件等方式词爬,通過(guò)一些簡(jiǎn)單的代碼快速的作出可以做交互的原型秃嗜,然后通過(guò)和用戶不斷確認(rèn)的方式來(lái)漸進(jìn)增強(qiáng),這種做法可以避免太大的浪費(fèi)顿膨,盡早的將客戶價(jià)值交付锅锨。
原型并不局限在草圖,可以工作的靜態(tài)頁(yè)面恋沃,還可以是一個(gè)清晰簡(jiǎn)潔的演講必搞。基于PPT的原型還可以用來(lái)分析目前產(chǎn)品痛點(diǎn)囊咏、對(duì)比方案的優(yōu)劣恕洲、展示自己的看法等等。
紙上原型是另一種低成本梅割,可供快速交流溝通的原型方式:
(圖片來(lái)自我在ThoughtWorks的同事劉海生)
手速
關(guān)于程序員是否要求很快的手速是一個(gè)頗具爭(zhēng)議的話題霜第。支持者認(rèn)為這屬于基本功,每個(gè)程序員都應(yīng)該打字都很快户辞;反對(duì)者則認(rèn)為程序員的價(jià)值在于思考并解決問(wèn)題泌类,追求速度快,那還不如招個(gè)打字員底燎。我個(gè)人的觀點(diǎn)是刃榨,好的程序員應(yīng)該有很快的手速(包括打字的速度弹砚,但不局限于此)。
我在ThoughtWorks西安辦公室組織過(guò)很多次提升手速的工作坊枢希,比如三周三頁(yè)面桌吃、閃電計(jì)劃等“危基本原則就是對(duì)一個(gè)具體的“作業(yè)”茅诱,不斷的重復(fù)練習(xí)。
最近帶兩個(gè)新人呕屎,我給他們布置了一個(gè)簡(jiǎn)單的作業(yè):
圖片來(lái)源:dirbbble.com
基本要求是以最快的速度實(shí)現(xiàn)這個(gè)頁(yè)面让簿,并有一點(diǎn)微小的交互(比如選擇聯(lián)系人之后的checkbox會(huì)顯示選中狀態(tài),剩余invites的數(shù)量減少等)秀睛。第一次做他們用了5個(gè)多小時(shí)(連同搭建環(huán)境尔当,安裝Node.js,npm包等)蹂安,第二次用時(shí)2個(gè)半小時(shí)椭迎,第三次用時(shí)1個(gè)半小時(shí),第四次用時(shí)50分鐘田盈。
對(duì)同一個(gè)頁(yè)面的不斷練習(xí)聽(tīng)起來(lái)是在做重復(fù)工作畜号,其實(shí)可以聯(lián)系到很多的內(nèi)容:
- 命令行的熟悉程度
- 快捷鍵的使用
- 搜索引擎的使用
- Stackoverflow的使用
當(dāng)你真的可以熟極而流的時(shí)候,你才有時(shí)間來(lái)考慮如何優(yōu)化允瞧,比如如何抽取模板工程(這樣下次做同樣的事情就會(huì)快很多)简软,如何精簡(jiǎn)DOM結(jié)構(gòu),如何用命令行工具來(lái)幫助自己提速等述暂。手速是大前提痹升,沒(méi)有速度,一切優(yōu)化都是腦海中的意淫畦韭,無(wú)法真實(shí)落地疼蛾。
總結(jié)
要成為一個(gè)厲害的程序員,首先當(dāng)然是要有一個(gè)好的身體艺配。此外需要培養(yǎng)一個(gè)編程之外的愛(ài)好察郁,這樣可以讓你活的像一個(gè)正常人(而不是傳統(tǒng)的工科書呆子)。程序員是一個(gè)需要不斷學(xué)習(xí)转唉,不斷充實(shí)的職業(yè)皮钠,在學(xué)習(xí)的過(guò)程中,英文能力可以幫助你學(xué)的更快酝掩,更有效鳞芙,另外正確的應(yīng)對(duì)學(xué)習(xí)過(guò)程中必然會(huì)犯的錯(cuò)誤,并將每次錯(cuò)誤都當(dāng)成學(xué)習(xí)的機(jī)會(huì)期虾。
開(kāi)發(fā)只是軟件開(kāi)發(fā)流程中的一環(huán)原朝,程序員需要拓展自己的視野,和其他角色一起配合才能保證產(chǎn)品的交付镶苞。在日常的開(kāi)發(fā)中喳坠,程序員還需要快速、準(zhǔn)確的將自己的想法和創(chuàng)意表達(dá)出來(lái)茂蚓。最后,更快速的完成手頭的工作可以讓你有更多的時(shí)間來(lái)思考,來(lái)改進(jìn)那些低效的工作方式劫笙。
擴(kuò)展閱讀
- Carol Dweck教授的演講《請(qǐng)相信溉躲,你可以進(jìn)步》
- Paul Graham的黑客與畫家
- 如果你能畫這三種基礎(chǔ)性狀,你就可以畫一切
- 為什么優(yōu)秀的程序員喜歡命令行
- 刻意練習(xí)
- 不想當(dāng)UX的開(kāi)發(fā)不是好咨詢師
文/ThoughtWorks 邱俊濤