第一部分 : 人員管理
1 我的第一次BillG審查:
在這個(gè)小結(jié)里面棘捣,作者通過回憶在微軟工作的時(shí)候构眯,自己設(shè)計(jì)Excel函數(shù)語言的時(shí)候被比爾蓋茨做例行審查龙致,蓋茨在作者提交的規(guī)格說明上認(rèn)真做了筆記端礼,審查的時(shí)候問了非常細(xì)致的問題,包括一個(gè)在之前產(chǎn)品出現(xiàn)的日期函數(shù)錯(cuò)誤問題株茶。作者通過將比爾蓋茨與其他幾位不懂技術(shù)的大公司高管對(duì)比,得出結(jié)論图焰。
“不懂編程的人管理公司启盛,就好像不懂沖浪的人硬要去沖浪。”
我比較贊同作者的這一想法技羔,通過自己為數(shù)不多的項(xiàng)目經(jīng)驗(yàn)僵闯,我也能體會(huì)到一個(gè)內(nèi)行的leader對(duì)一個(gè)軟件項(xiàng)目的成功起到?jīng)Q定性的作用。假如團(tuán)隊(duì)的領(lǐng)導(dǎo)只遵循經(jīng)濟(jì)藤滥,管理或者其他一些行業(yè)的經(jīng)驗(yàn)鳖粟,盲目地參與到軟件開發(fā)的需求獲取,設(shè)計(jì)甚至系統(tǒng)架構(gòu)過程中拙绊,那么這個(gè)項(xiàng)目十有八九會(huì)遭遇失敗牺弹。
2 尋找優(yōu)秀的程序員
3 尋找優(yōu)秀的程序員之實(shí)戰(zhàn)指南
這兩節(jié)中,作者從理論和實(shí)踐上向管理者傳授了如何識(shí)別和招攬優(yōu)秀程序員的方法时呀。有一個(gè)觀點(diǎn)說得很有道理张漂,優(yōu)秀的程序員不會(huì)出現(xiàn)在各類招聘市場(chǎng)和求職網(wǎng)站上,因?yàn)樗麄冊(cè)谝婚_始就會(huì)早早地從一個(gè)較好的實(shí)習(xí)公司得到機(jī)會(huì),不用去找其他工作。如果它們離開了當(dāng)初的公司分预,一種情況是創(chuàng)業(yè),一種是跟著老板跳槽到另一家公司漠畜。這里我想說,優(yōu)秀的程序員也可能是因?yàn)橛泻芏喃C頭和一些公司的HR會(huì)主動(dòng)聯(lián)系他們而不會(huì)出現(xiàn)在招聘市場(chǎng)上坞靶。那么如何招攬優(yōu)秀的程序員呢憔狞?作者就給出了創(chuàng)建技術(shù)社區(qū),去名校招攬實(shí)習(xí)生作為人才儲(chǔ)備彰阴,還有就是內(nèi)部員工推薦瘾敢,當(dāng)然最好的方法還是使自己的產(chǎn)品足夠有吸引力,無論是在前景或者經(jīng)濟(jì)或者技術(shù)上尿这。同時(shí)在社交簇抵、生活等方面,要尊重程序員的成果射众,給予他們一定程度的自主權(quán)碟摆。看到這里我想起了馬云曾說過的關(guān)于人才管理的一句話叨橱,員工為什么離職典蜕?要么是錢沒給到位断盛,要么是心受委屈了。真是切中要害愉舔。
在第三節(jié)郑临,作者說程序員實(shí)際上不在乎錢,當(dāng)有人在抱怨薪水的時(shí)候屑宠,說明他不是真正地喜歡現(xiàn)在的工作。這實(shí)際上跟我所處的環(huán)境的所見所聞?dòng)兴煌鹑谩N宜吹降闹苓叺耐瑢W(xué)典奉,在找工作的時(shí)候薪資的因素會(huì)考慮比較重的分量。大概是因?yàn)閲?guó)情不同吧丧叽,我們這邊的習(xí)慣是結(jié)婚成家必須有房子卫玖,有車更好,所以大家在經(jīng)濟(jì)上的壓力還是比較大的踊淳。不過有一個(gè)現(xiàn)象是合理的假瞬,就是技術(shù)越強(qiáng)的人,能夠找到自己滿意薪資的職位的概率越大迂尝,薪水的水平也一般在最高的水平脱茉。
4 三種管理方法
5 軍事化管理法
6 經(jīng)濟(jì)利益驅(qū)動(dòng)法
7 認(rèn)同法
在人員管理中比較流行的三種方法是軍事化管理法、經(jīng)濟(jì)利益驅(qū)動(dòng)法和認(rèn)同法垄开。軍事化管理方法絕對(duì)不適用于程序員的管理琴许。因?yàn)槌绦蚬ぷ魇莿?chuàng)造性的工作,軍事化管理需要的是絕對(duì)服從和嚴(yán)明的層級(jí)關(guān)系溉躲,這只會(huì)抹殺創(chuàng)造力榜田,造成公司的人員僵化,從而極大降低工作效率锻梳。經(jīng)濟(jì)利益驅(qū)動(dòng)的缺點(diǎn)是他將工作的驅(qū)動(dòng)力從強(qiáng)大的內(nèi)部驅(qū)動(dòng)轉(zhuǎn)變?yōu)橄鄬?duì)弱的外部驅(qū)動(dòng)箭券。還有可能使程序員們具有局部利益最大化傾向,從而使他們的目標(biāo)從優(yōu)雅高效地實(shí)現(xiàn)需求轉(zhuǎn)為考慮如何使得自己獲得的酬勞最大化疑枯。而認(rèn)同法辩块,指的是使員工們認(rèn)同你希望達(dá)到的目標(biāo)。這種方法被認(rèn)為是管理程序員最好的方法荆永,但是實(shí)施起來也比較困難庆捺。結(jié)合我自己的經(jīng)歷,我非常贊同認(rèn)同法是管理軟件團(tuán)隊(duì)最好的方法屁魏,但是更同意它是一種實(shí)現(xiàn)起來比較困難的方法滔以。可以說在我接觸的程序員中氓拼,絕大多數(shù)都不是說對(duì)自己做出的東西有多么的認(rèn)同你画。但是我認(rèn)識(shí)的那兩三位真正在做自己非常喜歡做的技術(shù)和產(chǎn)品的同學(xué)抵碟,都已經(jīng)取得了相當(dāng)?shù)某删汀?/p>
第二部分 :寫給未來程序員的建議:
8 學(xué)校只教Java的危險(xiǎn)性
作者的觀點(diǎn)是,Java這門語言可能很適合工作坏匪,但是它的出現(xiàn)給程序員的教育帶來負(fù)面影響拟逮。Java的出現(xiàn)屏蔽了一些類似指針和底層函數(shù)等能夠區(qū)分程序員學(xué)習(xí)能力和智商能力的語法點(diǎn),使得優(yōu)秀的程序員和平庸程序員之間的差異變得不再突出适滓。Java使同學(xué)們變得越來越懶敦迄。作為一個(gè)在學(xué)習(xí)和工作中主要使用Java語言的碼農(nóng),我表示雖然很不情愿凭迹,但是作者說的對(duì)罚屋。雖然我們學(xué)校不是作者所說的只教Java的學(xué)校,但是我們?cè)撼鰜淼耐瑢W(xué)好像都是把Java作為主要語言嗅绸。仔細(xì)回想脾猛,我們的C++課,Linux課鱼鸠,我自己確實(shí)學(xué)得都不太好猛拴。希望能在之后的工作中,不怕吃苦蚀狰,不懼困難愉昆,努力提高自己的技術(shù)全面性吧。
9 在耶魯大學(xué)的演講
10 給計(jì)算機(jī)系學(xué)生的建議
這兩節(jié)中麻蹋,作者給出了他對(duì)計(jì)算機(jī)類學(xué)生的建議撼唾。主要是7個(gè)方面:
畢業(yè)前練好寫作;
畢業(yè)前學(xué)好C語言;
畢業(yè)前學(xué)好微觀經(jīng)濟(jì)學(xué)哥蔚;
不要因?yàn)榭菰锞筒贿x修非計(jì)算機(jī)專業(yè)的課程倒谷;
選修有大量編程實(shí)踐的課程
別擔(dān)心所有工作都被印度人搶走;
找一份好的暑期實(shí)習(xí)工作糙箍;
對(duì)這七條建議渤愁,就我自己而言可能就選修大量實(shí)踐課程稍微符合。相信大家跟我一樣深夯,對(duì)印度人搶工作的說法比較感興趣抖格。原來在美帝各個(gè)行業(yè)都在擔(dān)心中國(guó)和印度會(huì)搶他們的飯碗,看來人多力量大在IT領(lǐng)域的宏觀觀察方面還是靠點(diǎn)譜的咕晋。針對(duì)這種想法雹拄,一是真正優(yōu)秀的程序員根本不會(huì)怕失去工作,二是除了計(jì)算機(jī)掌呜,其他的專業(yè)找工作的時(shí)候更坑爹滓玖,就作者的這兩種觀點(diǎn),我無法反駁质蕉。
第三部分 :設(shè)計(jì)的作用
11 字體平滑势篡、反鋸齒和次像素渲染
這節(jié)的內(nèi)容是作者通過比較微軟和蘋果對(duì)字體鋸齒處理時(shí)候的不同思想翩肌,得出蘋果重視桌面和出版物的設(shè)計(jì)效果,而微軟則更傾向于實(shí)用性禁悠,但是這兩種設(shè)計(jì)思想都會(huì)得到各自用戶的認(rèn)可念祭。然后作者拋出觀點(diǎn):一般情況下,用戶在面對(duì)模棱兩可的選擇的時(shí)候碍侦,會(huì)傾向于自己習(xí)慣的那種粱坤。
12 寸土必爭(zhēng)
在開發(fā)商業(yè)軟件的時(shí)候,我們應(yīng)該對(duì)每一個(gè)細(xì)節(jié)反復(fù)思量瓷产,不放過任何能夠產(chǎn)生正作用的微小改進(jìn)站玄。
我覺得就是這樣,在產(chǎn)品上拦英,所謂制作精良和粗糙的對(duì)比,對(duì)比的就是細(xì)節(jié)测秸。就我們編寫代碼來說疤估,當(dāng)你的每個(gè)組件,每個(gè)函數(shù)都考慮算法和效率以及寫法的優(yōu)雅性霎冯,那么我們整個(gè)項(xiàng)目就不會(huì)說搞得很雜亂铃拇,很難看。
13 大構(gòu)想的陷阱
本節(jié)是對(duì)《夢(mèng)斷代碼》一書的評(píng)論沈撞。作者指出:在軟件開發(fā)中慷荔,如果你頭腦提前有了一個(gè)整體構(gòu)想然后馬上一頭扎入工作去實(shí)現(xiàn),那么久陷入了所謂的“構(gòu)想陷阱”缠俺。一是對(duì)自己的構(gòu)想過于自信显晶,二是沒有考慮團(tuán)隊(duì)溝通的問題。
其實(shí)我覺得就是針對(duì)這種陷阱壹士,我們才有了后來軟件開發(fā)過程中的需求分析磷雇,體系結(jié)構(gòu),模塊設(shè)計(jì)躏救,詳細(xì)設(shè)計(jì)等階段唯笙。不過凡事皆須有度吧,由于軟件開發(fā)的特殊性盒使,有時(shí)候我們按部就班地做了這些工作后發(fā)現(xiàn)崩掘,其實(shí)所有階段的產(chǎn)出都被后續(xù)階段修改的面目全非,那么這些階段產(chǎn)物的維護(hù)管理又是很大的開銷少办。所以苞慢,我們又有了敏捷開發(fā)的快速迭代模式。具體怎么搞英妓,這個(gè)過程究竟是要多大程度上使用傳統(tǒng)的軟件工程迭代和敏捷開發(fā)枉疼,感覺還是要根據(jù)具體項(xiàng)目和團(tuán)隊(duì)成員來確定皮假。
14 別給用戶太多選擇
“關(guān)閉筆記本竟然有15種不同的方法”,這是作者本節(jié)對(duì)微軟vista操作系統(tǒng)的吐槽骂维。
像這種問題惹资,當(dāng)一個(gè)功能的解決方案有很多備選的時(shí)候,我覺得正確之道是做一個(gè)調(diào)查航闺,選出大家最認(rèn)可的兩三種保留褪测,其他的可以一概不要。
15 易用性是不夠的
本節(jié)旨在說明做好易用性的下一步是做好社會(huì)化界面的設(shè)計(jì):主要包括界面的協(xié)調(diào)性潦刃、功能可見性侮措、反饋性等。這章感覺沒什么新意乖杠。
16 用軟件搭建社區(qū)
程序員由于工作性質(zhì)分扎,一般比較宅,但是每個(gè)人都具有社會(huì)性胧洒,程序員也會(huì)渴望有多一點(diǎn)而的人際交往畏吓。于是他們涌向在線社區(qū)。我覺得我自己就是這樣的卫漫,除了微信朋友圈之外菲饼,我經(jīng)常刷知乎,微博列赎,水虎撲論壇等宏悦。感覺技術(shù)上的社區(qū)對(duì)程序員之間的交流作用比較大,這里推薦一下v2ex, 程序員專屬的交流場(chǎng)所包吝。
第四部分 :管理大型項(xiàng)目
17 火星人的耳機(jī)
“Web標(biāo)準(zhǔn)”非潮罚混亂,作者舉了IE7和IE8之間沖突的例子诗越。實(shí)際上由于這些混亂的標(biāo)準(zhǔn)派哲,現(xiàn)在IE在前端界根本不受待見,幾乎稍微現(xiàn)代一點(diǎn)的網(wǎng)頁項(xiàng)目都是只需要在chrome和firefox里面運(yùn)行正常就可以了掺喻。
然后作者就舉了一個(gè)為火星人造耳機(jī)的例子來說明開發(fā)者面對(duì)各種各樣不同的“標(biāo)準(zhǔn)”是怎樣崩潰的芭届。
18 為什么Microsoft Office的文件格式如此復(fù)雜
08年,微軟公開了Office文件的二進(jìn)制格式說明書感耙,光Excel有349頁那么多都沒說完褂乍。然后作者說,要寫出能與Office競(jìng)爭(zhēng)即硼,完美讀取和生成所有Office文件的軟件逃片,需要幾千年的工作量。我覺得金山WPS可能需要傳授作者一點(diǎn)人生的經(jīng)驗(yàn)∪焓担可能作者這里說的是一個(gè)人開發(fā)出所有的Office 辦公軟件吧呀狼。當(dāng)然,這確實(shí)不太現(xiàn)實(shí)损离。
19 要掙錢哥艇,就別怕臟
這既是針對(duì)軟件公司的運(yùn)營(yíng)來說的。包括業(yè)務(wù)推廣僻澎,招聘各類型的人才貌踏,客戶量的激增之后帶來的各種麻煩】卟總而言之祖乳,創(chuàng)業(yè)在當(dāng)今并不是隨便找兩個(gè)人搞個(gè)APP發(fā)布了,靠吹吹牛拉點(diǎn)投資就能叫創(chuàng)業(yè)那是非潮酰可笑的想法眷昆。