一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

專(zhuān)訪李運(yùn)華:程序員如何在技術(shù)上提升自己

 風(fēng)不二 2016-02-16

專(zhuān)訪李運(yùn)華:程序員如何在技術(shù)上提升自己

發(fā)表于2014-10-29 09:48| 24922次閱讀| 來(lái)源CSDN| 109 條評(píng)論| 作者錢(qián)曙光

摘要:社區(qū)之星第56期采訪了UC的軟件工程師李運(yùn)華,他先后經(jīng)歷了電信行業(yè)和互聯(lián)網(wǎng)行業(yè)。在本次采訪中,李老師分享了他的職場(chǎng)經(jīng)歷、團(tuán)隊(duì)管理經(jīng)驗(yàn)、程序員提升自己的方法和應(yīng)具備的素養(yǎng),以及談了對(duì)面向?qū)ο蠛途幊陶Z(yǔ)言看法。


李運(yùn)華(博客),專(zhuān)注于Linux、MySQL、開(kāi)源技術(shù)、系統(tǒng)分析、架構(gòu)設(shè)計(jì),有豐富的需求分析、系統(tǒng)設(shè)計(jì)、編程的經(jīng)驗(yàn),熱愛(ài)技術(shù)但不拘泥于技術(shù)。喜歡挑戰(zhàn),從各方面不斷提升自己。

CSDN:請(qǐng)和大家介紹下你和目前所從事的工作。

李運(yùn)華:大家好,我是來(lái)自UC的軟件工程師,已經(jīng)在軟件領(lǐng)域摸爬滾打10年了,先后經(jīng)歷了電信行業(yè)和互聯(lián)網(wǎng)行業(yè)。畢業(yè)后首先是去了華為,做核心網(wǎng)的系統(tǒng)開(kāi)發(fā),做過(guò)軟件工程師、系統(tǒng)分析師;后來(lái)?yè)Q到現(xiàn)在所在的UC,先后做過(guò)技術(shù)研究、基礎(chǔ)平臺(tái)開(kāi)發(fā)、社區(qū)系統(tǒng),現(xiàn)在在九游游戲中心擔(dān)任項(xiàng)目leader。雖然說(shuō)是leader,但其實(shí)管理和開(kāi)發(fā)的時(shí)間是3/7比例,所以至今其實(shí)還是個(gè)“碼農(nóng)”。

非常愛(ài)好技術(shù),“精通”后端開(kāi)發(fā)技術(shù)(C++、Java、Linux、MySQL等),目前正在學(xué)習(xí)前端,力爭(zhēng)成為FSE;雖然很愛(ài)好技術(shù),但并不局限于只在技術(shù)上提升自己,管理技能、綜合技能等都在持續(xù)學(xué)習(xí)和提升。業(yè)務(wù)時(shí)間喜歡看書(shū),經(jīng)濟(jì)學(xué)、社會(huì)學(xué)、心理學(xué)都有廣泛的涉獵。

個(gè)人的夢(mèng)想是能夠帶領(lǐng)或者加入一個(gè)團(tuán)隊(duì),創(chuàng)造一個(gè)偉大的產(chǎn)品,大家也可以看到我的個(gè)人技能提升基本上都是朝著這個(gè)目標(biāo)的。

CSDN:有著10余年軟件行業(yè)經(jīng)驗(yàn)的你,是如何一步步走上這軟件開(kāi)發(fā)之路的?

李運(yùn)華:我來(lái)自農(nóng)村,高三的時(shí)候才見(jiàn)過(guò)電腦,當(dāng)時(shí)就體驗(yàn)過(guò)一兩次,我還記得是dos的系統(tǒng),雖然很難用,但當(dāng)時(shí)就覺(jué)得很神奇,加上我高中畢業(yè)的時(shí)候正好是計(jì)算機(jī)行業(yè)最火的時(shí)候,于是就選擇了計(jì)算機(jī)專(zhuān)業(yè)。

但是上大學(xué)后前三年并沒(méi)有投入太多時(shí)間,基本上是玩(打游戲、踢球)去了,到了大四找工作的時(shí)候,也不知道是什么原因,感覺(jué)突然覺(jué)醒了,覺(jué)得自己想做軟件開(kāi)發(fā),于是開(kāi)始買(mǎi)了一些書(shū)看,看了《深入淺出MFC》后覺(jué)得很神奇,很有意思,于是后來(lái)找工作時(shí)就堅(jiān)定了找軟件開(kāi)發(fā)的念頭?,F(xiàn)在回想起來(lái)感覺(jué)當(dāng)時(shí)真是一根筋,測(cè)試、產(chǎn)品、運(yùn)維等都不想做,只想做開(kāi)發(fā),即使面試不過(guò)也沒(méi)有動(dòng)搖 :)

后來(lái)機(jī)緣巧合進(jìn)入了華為,從此開(kāi)始了軟件工程師之路,一直到現(xiàn)在,都是從事軟件開(kāi)發(fā)相關(guān)的工作。

CSDN:你做過(guò)軟件開(kāi)發(fā)工程師、系統(tǒng)分析師、系統(tǒng)設(shè)計(jì)師等,能夠回顧一下自己的職場(chǎng)晉升之路,有什么心得和體會(huì)可分享?

李運(yùn)華:畢業(yè)后加入華為,先是做了大約2年多的軟件開(kāi)發(fā)工程師,后來(lái)加入系統(tǒng)組做了系統(tǒng)分析師(華為俗稱(chēng)SE,其實(shí)就是系統(tǒng)分析和設(shè)計(jì)),做了大約2年多后離開(kāi)華為加入U(xiǎn)C,一直從事軟件開(kāi)發(fā)的工作,先后做過(guò)技術(shù)研究(MySQL、Memcached等)、軟件設(shè)計(jì)和開(kāi)發(fā),項(xiàng)目leader工作,一路從高級(jí)工程師逐步提升到資深工程師,并擔(dān)任了項(xiàng)目leader。

回顧我的提升之路,我覺(jué)得有幾點(diǎn)可以跟大家分享的:

第一是 “興趣”。這也是我認(rèn)為最重要的一點(diǎn),一件事情做10年甚至做一輩子,如果沒(méi)有興趣的話,我覺(jué)得是很痛苦的。興趣是本能的驅(qū)動(dòng)力,有了興趣,遇到問(wèn)題會(huì)一直想著怎樣去解決,而不是覺(jué)得“很難做”;有了興趣,碰到一個(gè)新的東東會(huì)覺(jué)得很興奮,而不會(huì)覺(jué)得是一種負(fù)擔(dān);有了興趣,接觸到一個(gè)東西后就像更加深入的去了解,而不是用過(guò)了就不管了。所以我認(rèn)為如果想在一個(gè)行業(yè)(不限于軟件行業(yè))長(zhǎng)期發(fā)展并有所提升的話,一定要問(wèn)問(wèn)自己是否有足夠的興趣。

我當(dāng)時(shí)之所以換工作,也是因?yàn)槲覍?duì)當(dāng)時(shí)的工作內(nèi)容不感興趣,因?yàn)槲腋矚g親手做出一個(gè)產(chǎn)品,而不是找一群人開(kāi)會(huì)討論然后寫(xiě)個(gè)文檔就完事了。

第二是“堅(jiān)持”。《異類(lèi)》一書(shū)中提到一個(gè)10000小時(shí)理論,我覺(jué)得非常有道理,意思就是說(shuō)如果你想成為頂尖人才的話,一定要積累10000小時(shí)以上的訓(xùn)練和經(jīng)驗(yàn)。特別是在軟件開(kāi)發(fā)這個(gè)領(lǐng)域,技術(shù)又多,技術(shù)更新又快,如果沒(méi)有堅(jiān)持去積累和提升的話,是很難達(dá)到一定高度的。操作系統(tǒng)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、編程語(yǔ)言、設(shè)計(jì)方法等都要掌握,每個(gè)技術(shù)點(diǎn)又有很多更細(xì)的分類(lèi)。以編程語(yǔ)言來(lái)說(shuō),C、C++、Java、PHP、Python等主流的都有10來(lái)種,每個(gè)語(yǔ)言繼續(xù)深入的話又有很多內(nèi)容,例如Java可以列出來(lái)的有JVM、IO、NIO、網(wǎng)絡(luò)編程、反射。。。。。。等等。所以這么多的東東,短時(shí)間內(nèi)快速入門(mén)還可以,但如果說(shuō)21天就精通XXX,那是不可能的,必須經(jīng)過(guò)長(zhǎng)時(shí)間的積累。其實(shí)我現(xiàn)在都不敢說(shuō)我精通什么,只能說(shuō)相對(duì)周?chē)渌藭?huì)精通一些。

第三就是“方法”。掌握正確的方法,能夠讓我們事半功倍,更快的提升,一些常見(jiàn)的方法我就不啰嗦了,這里特別分享獨(dú)家秘方:

一個(gè)秘方是“寫(xiě)博客”,注意這里不是“看博客”,也不是“轉(zhuǎn)載博客”而是“親自寫(xiě)博客”。哪樣?xùn)|西你覺(jué)得你比較懂了,那么你就寫(xiě)成博客。當(dāng)你真正去寫(xiě)的時(shí)候,你會(huì)發(fā)現(xiàn),其實(shí)還有很多不懂或者不清楚的地方,這樣就會(huì)促使你又去學(xué)習(xí)研究;當(dāng)你的博客發(fā)表后,其他人除了能夠從你的博客中學(xué)到東西外,也能夠幫你發(fā)現(xiàn)一些問(wèn)題或者錯(cuò)誤,這樣你就更進(jìn)一步的掌握了;

另外一個(gè)秘方就是“鏈?zhǔn)綄W(xué)習(xí)”。形象點(diǎn)說(shuō),就是你抓住了一個(gè)鏈條的一個(gè)鏈,然后慢慢慢慢把所有的鏈都拉出來(lái)。舉一個(gè)很簡(jiǎn)單的例子:socket sever編程。很多人在編程的時(shí)候,都是去搜索引擎搜索一下“socket server樣例”,然后對(duì)照樣例很快就寫(xiě)完功能了。然后呢。。。。。。很多人沒(méi)有然后了,完成任務(wù)就不管了。其實(shí)這樣做就錯(cuò)過(guò)了一次提升自己的好機(jī)會(huì)。

“鏈?zhǔn)綄W(xué)習(xí)”則不一樣,它是這樣做的:我通過(guò)搜索引擎搜索到樣例完成工作后,我會(huì)問(wèn)自己很多問(wèn)題:樣例中的api每個(gè)參數(shù)都是什么含義,有哪些注意事項(xiàng),還有其它API么?為了解決這些問(wèn)題,我就可能去找本書(shū)看,某個(gè)編程語(yǔ)言的socket編程;看完以后我知道socket編程的全貌和一些注意事項(xiàng),而這些是通過(guò)搜索引擎搜索的樣例中沒(méi)有的;知道socket編程的全貌后,我又會(huì)問(wèn)自己:操作系統(tǒng)是怎么做的呢? 那我又會(huì)去看《UNIX網(wǎng)絡(luò)編程》,看完后我就對(duì)操作系統(tǒng)層面的又掌握更多了;看完《UNIX網(wǎng)絡(luò)編程》后,我又知道socket是和tcp/ip相關(guān)的,那我又會(huì)去看《TCP/IP協(xié)議詳解》。。。。。。

這樣去做就是一條學(xué)習(xí)鏈: socket server編程 -> socket 編程 -> UNIX網(wǎng)絡(luò)編程 -> TCP/IP協(xié)議,后面還可以繼續(xù)不斷拓展下去。如此不斷的拓展和深入,一個(gè)很小的契機(jī)就能初始你學(xué)到很多東西,而這些東西在以后的工作中某些時(shí)刻就派上用場(chǎng)了。

我之前在華為是在Windosw平臺(tái)上用MFC開(kāi)發(fā),后來(lái)到了UC轉(zhuǎn)為L(zhǎng)inux平臺(tái)開(kāi)發(fā),用這種方法,大約用了2年就熟練掌握了Linux平臺(tái)相關(guān)的開(kāi)發(fā)技術(shù),包括Linux、MySQL、C++、Java、PHP等

第三個(gè)秘方就是“閉環(huán)學(xué)習(xí)”。“鏈?zhǔn)綄W(xué)習(xí)”適合于一組相關(guān)聯(lián)的知識(shí)或者技能的學(xué)習(xí),而“閉環(huán)學(xué)習(xí)”更適合業(yè)務(wù)、相互配合的知識(shí)和技能的學(xué)習(xí)。由于軟件開(kāi)發(fā)是需要多個(gè)團(tuán)隊(duì)分工合作的,所以絕大部分人都只負(fù)責(zé)整個(gè)系統(tǒng)或者全流程中的一環(huán),這樣導(dǎo)致很多人以為只需要將自己負(fù)責(zé)部分精通就可以了。其實(shí)這樣不利于個(gè)人的發(fā)展,一個(gè)原因是自己負(fù)責(zé)的一般都比較窄,可學(xué)習(xí)和提升的空間可能不多,另外一個(gè)原因是很難設(shè)計(jì)整體上優(yōu)秀的方案。

而“閉環(huán)學(xué)習(xí)”則不一樣,它是這樣做的:了解整個(gè)功能或者業(yè)務(wù)的全流程實(shí)現(xiàn),涉及了哪些模塊和系統(tǒng),每個(gè)模塊和系統(tǒng)主要負(fù)責(zé)什么功能,涉及到什么技術(shù),性能怎樣,有什么注意點(diǎn)。舉一個(gè)我做個(gè)的HTTP的業(yè)務(wù)樣例:從用戶(hù)點(diǎn)擊一個(gè)url開(kāi)始,經(jīng)過(guò)了 瀏覽器 -> 網(wǎng)絡(luò) -> CDN -> Nginx -> PHP -> MySQL -> PHP -> Nginx -> 網(wǎng)絡(luò) -> 瀏覽器,最后呈現(xiàn)在用戶(hù)面前。我開(kāi)發(fā)的時(shí)候只是用PHP開(kāi)發(fā),但并不只局限于PHP本身,閉環(huán)學(xué)習(xí)就要求全流程中的每個(gè)環(huán)節(jié)都要去了解和熟悉,這樣你就可以學(xué)到了“瀏覽器、Nginx、CDN、MySQL”等很多知識(shí)。

有的朋友可能會(huì)問(wèn):這樣做有什么用呢?其實(shí)用處非常大,一個(gè)是當(dāng)出現(xiàn)問(wèn)題的時(shí)候,有了閉環(huán)學(xué)習(xí)掌握的知識(shí)和技能,你就知道哪些地方可能有問(wèn)題,應(yīng)該如何處理;另外一個(gè)用處是,當(dāng)你考慮設(shè)計(jì)方案的時(shí)候,就不局限于PHP本身了,也許某個(gè)功能Nginx或者CDN或者前端能做的更好,用PHP實(shí)現(xiàn)反而很蹩腳。

CSDN:你對(duì)代碼有著怎樣的情感?對(duì)豐富的編程語(yǔ)言是否有什么特別的喜好嗎?

李運(yùn)華:我喜歡寫(xiě)代碼,在寫(xiě)代碼的過(guò)程就是一個(gè)創(chuàng)造的過(guò)程,我特別享受這種創(chuàng)造的過(guò)程,夸張點(diǎn)說(shuō):我就是我的軟件的造物主,在代碼里面我就是“神”,我可以設(shè)計(jì)我的作品,實(shí)現(xiàn)我的作品,改進(jìn)我的作品。

對(duì)于目前豐富的編程語(yǔ)言,我沒(méi)有什么特別的愛(ài)好,對(duì)我來(lái)說(shuō),編程語(yǔ)言就是一個(gè)工具,用來(lái)實(shí)現(xiàn)業(yè)務(wù)目標(biāo)或者自己的想法。每種編程語(yǔ)言都有特點(diǎn)和適用場(chǎng)景,哪種語(yǔ)言更適合我的需求我就用哪種,不會(huì)執(zhí)著于用1門(mén)語(yǔ)言來(lái)包打天下。我先后用過(guò)C、C++、Java、PHP、Python、Ruby,現(xiàn)在在學(xué)前端編程的JavaScript、Coffeescript,也關(guān)注目前還未流行的Go語(yǔ)言等。

CSDN:平時(shí)你最大的愛(ài)好是看書(shū),請(qǐng)問(wèn)這給了你什么樣的幫助?有什么好書(shū)推薦嗎?

李運(yùn)華:看書(shū)有很多好處,對(duì)于專(zhuān)業(yè)上的書(shū),擴(kuò)大了知識(shí)面和提升了技能;對(duì)于非專(zhuān)業(yè)的書(shū)來(lái)說(shuō),幫助就更多了,有的書(shū)讓我學(xué)到了很多溝通、交流、為人處世的一些方法和技巧;有的書(shū)改變了我的思維方式;有的書(shū)提升了自己的知識(shí)水平;甚至有的書(shū)改變了我的命運(yùn)。

我看過(guò)的書(shū)比較多,但我特別向大家推薦如下幾本:

《羊皮卷》:目前市面上的《羊皮卷》大部分都是心靈雞湯式的文章的組合,但有一本其中有一篇《選擇的力量》,我看了后醍醐灌頂,真的是就像佛家禪宗說(shuō)的突然“悟道”一樣,看了后深受啟發(fā),從此后很多為人處世方式都因此而改變了;

《異類(lèi)》:一本從不同視角講述成功人士到底是如何成功的,會(huì)告訴你很多不為人知的故事,能夠讓你免受心靈雞湯之害,也能夠明白成功既要靠自己努力,也要靠機(jī)遇;

《隨機(jī)漫步的傻瓜》:這本書(shū)看起來(lái)是講投資的,但其實(shí)講述了一個(gè)關(guān)于“運(yùn)氣和命運(yùn)”的問(wèn)題,讓你能夠以不同的視角來(lái)評(píng)價(jià)和判斷所謂的“成功”

我不太會(huì)寫(xiě)書(shū)評(píng),光看我的介紹可能有的人沒(méi)什么感覺(jué),但強(qiáng)烈建議都去看看,真的會(huì)有很大收獲。

程序員如何在技術(shù)上提升自己

CSDN:你因個(gè)人時(shí)間不多問(wèn)題,一直專(zhuān)注在CSDN博客,你一天的時(shí)間是安排的呢?

李運(yùn)華:我工作日的一天大約是這樣的:早上7:00起床, 7:20送小孩上學(xué),8:00去地鐵,9:10分到公司,晚上20:00下班,21:10分回到家,回家后陪小孩玩到大約10:30,然后自己洗澡準(zhǔn)備睡覺(jué),大約23:30分上床睡覺(jué);雙休日也差不多,就是把上班的時(shí)間改為陪小孩了。

平時(shí)一般是早上或者晚上瀏覽一下CSDN,了解一些技術(shù)趨勢(shì),學(xué)習(xí)一些技術(shù)。

CSDN:在你眼中,一個(gè)優(yōu)秀的程序員應(yīng)該具備哪些技能和修養(yǎng)?

李運(yùn)華:這個(gè)問(wèn)題就像“1千個(gè)人眼中有1千個(gè)哈姆雷特”一樣,每個(gè)人都有不同的看法。我認(rèn)為一個(gè)優(yōu)秀的程序員應(yīng)該具備如下技能和修養(yǎng):

首先是“快速學(xué)習(xí)能力”。這里不是說(shuō)一定要去快速去學(xué)習(xí)各種各樣的新技術(shù),而是說(shuō)當(dāng)有需要時(shí),能夠快速的學(xué)習(xí)。很多人開(kāi)始學(xué)新的技術(shù)和技能時(shí),一開(kāi)始就一頭扎進(jìn)去寫(xiě)樣例、寫(xiě)Demo、看源碼,我認(rèn)為這不是好的方法,而且比較耗費(fèi)時(shí)間,收效也不明顯。

我給大家分享我的4W2H快速學(xué)習(xí)方法。我在學(xué)習(xí)新的技術(shù)的時(shí)候,都是按照這樣的步驟去了解的:1)這個(gè)技術(shù)能解決什么問(wèn)題(why) 2)比較適合在哪些場(chǎng)景應(yīng)用(where + when) 3)這個(gè)技術(shù)跟我已經(jīng)掌握的哪個(gè)知識(shí)或技能類(lèi)似,有什么差別、有什么特點(diǎn)、 有什么優(yōu)點(diǎn)和缺點(diǎn)(what),4)了解前面的問(wèn)題后,我才會(huì)開(kāi)始去嘗試寫(xiě)寫(xiě)Demo,或者更進(jìn)一步去應(yīng)用(How to use) 5)覺(jué)得有興趣或者其實(shí)現(xiàn)很牛逼的情況下,我就去研究一下原理機(jī)制,看看源碼等 (How it implements)

其次是“良好的理解能力”。程序員需要將產(chǎn)品人員或者用戶(hù)用自然語(yǔ)言表述的需求翻譯成程序語(yǔ)言。自然語(yǔ)言有一個(gè)特點(diǎn)就是通俗但不嚴(yán)謹(jǐn),而程序語(yǔ)言必須是非常嚴(yán)謹(jǐn)?shù)?。如果?duì)產(chǎn)品人員或者用戶(hù)提出的需求沒(méi)有很好的理解,即使程序語(yǔ)言寫(xiě)的再漂亮,技巧再高,最后做出來(lái)也是一個(gè)不符合要求的產(chǎn)品。

記得有一個(gè)關(guān)于“美女”的笑話:人聽(tīng)到“美女”后的反應(yīng)是想到“天使面孔魔鬼身材童顏巨乳”,而豬聽(tīng)到“美女”后的反應(yīng)是“烏克蘭大白豬”,貓聽(tīng)到“美女”后的反應(yīng)是“有著金色光滑皮毛的波斯貓”。如果程序員給了貓一個(gè)“天使面孔魔鬼身材童顏巨乳”的美女,貓一定會(huì)覺(jué)得很難看。

第三是“持續(xù)不斷的學(xué)習(xí)”。軟件開(kāi)發(fā)領(lǐng)域設(shè)計(jì)的知識(shí)和技能太多了。從廣度上來(lái)說(shuō),有操作系統(tǒng)、數(shù)據(jù)庫(kù)、編程語(yǔ)言、網(wǎng)絡(luò)、設(shè)計(jì)等,編程語(yǔ)言又有幾十種;從深度上來(lái)說(shuō),操作系統(tǒng)、數(shù)據(jù)庫(kù)、編程語(yǔ)言等都是可以不斷深入去學(xué)習(xí)的。無(wú)論你是從事對(duì)技能廣度要求更高的業(yè)務(wù)開(kāi)發(fā),還是從事對(duì)技能深度要求更高開(kāi)發(fā)專(zhuān)項(xiàng)系統(tǒng),都需要不斷的學(xué)習(xí),這樣才能不斷的提升自己的能力。

第四是“樂(lè)于分享”。如果單純從個(gè)人完成工作的能力來(lái)看,可能確實(shí)也有很多程序員不愛(ài)分享但確實(shí)很厲害。但我認(rèn)為真正優(yōu)秀的程序員一定是除了自己優(yōu)秀外,還能讓其他人也變得優(yōu)秀,或者能夠貢獻(xiàn)優(yōu)秀的開(kāi)源項(xiàng)目以降低別人的重復(fù)工作。分享的途徑有很多種,可以給公司人員做培訓(xùn),可以寫(xiě)博客,可以貢獻(xiàn)開(kāi)源項(xiàng)目等。

CSDN:你認(rèn)為程序員如何“擠”出時(shí)間來(lái)提升自己或在技術(shù)上提升自己?

李運(yùn)華:前面我提到了“要堅(jiān)持”,“要持續(xù)學(xué)習(xí)”,大家自然想到的問(wèn)題就是“時(shí)間從哪里來(lái)”?畢竟大家都比較辛苦,加班也比較多,有的還需要帶孩子,到哪里去找時(shí)間學(xué)習(xí)呢?

我的方法就是“擠”,那么問(wèn)題又來(lái)了,如何擠? 比如說(shuō)大家看我的工作日作息時(shí)間,早上7:00起床到晚上10:30,基本上就沒(méi)有什么時(shí)間了,10:30以后還要自己休閑一下,打打魔獸玩玩CS,恩,真的很難有時(shí)間了,那怎么辦?

關(guān)鍵就在于一個(gè)“擠”字,其實(shí)就是“利用時(shí)間碎片”,10分鐘就可以了,以我最近為例談?wù)勎椰F(xiàn)在怎么擠時(shí)間的,大家可能就明白了。

  • 7:40 ~ 8:00:送完小孩后到出門(mén)去地鐵中間有20分鐘,看《失控》一章
  • 08:20 ~ 09:00:地鐵上帶一本書(shū),大約可以看完一章,容易看的書(shū)可以看兩章
  • 09:30 ~09:50:看技術(shù)類(lèi)的PDF,比如說(shuō)最近看JQuery,大約可以看一章,不用擔(dān)心,每天20分鐘完全不會(huì)影響工作
  • 20:20 ~ 21:00:和早上地鐵一樣
  • 睡覺(jué)前15分鐘:看15分鐘書(shū),前段時(shí)間這樣花了大約2個(gè)月看完《三國(guó)演義》

這樣累積下來(lái),我一天大約可以看2個(gè)小時(shí)書(shū),今年上半年看了大約23本書(shū)。

以上只是我的一個(gè)案例,其實(shí)每個(gè)人都有很多機(jī)會(huì)擠出時(shí)間的,比如說(shuō)你習(xí)慣8點(diǎn)起床,那么把鬧鐘改為07:40起床,對(duì)你休息沒(méi)有什么影響,多出來(lái)20分鐘就可以看幾頁(yè)書(shū)了;如果你習(xí)慣晚上玩游戲玩到12點(diǎn)才睡,那么提前到11:40就不玩了,對(duì)你玩游戲也不會(huì)有什么影響;如果你坐地鐵太擠了沒(méi)法看書(shū),那么可以聽(tīng)英語(yǔ)……總之一個(gè)人的一天中是有很多時(shí)間碎片可以擠出來(lái)的,關(guān)鍵就在于自己是否有這個(gè)“意識(shí)”。

通過(guò)這種方法,我既沒(méi)有“頭懸梁錐刺股”,也沒(méi)有放棄自己的愛(ài)好“打魔獸玩CS”,工作也沒(méi)有受到影響,同時(shí)知識(shí)和技能又提升了很多。也許開(kāi)始1個(gè)月兩個(gè)月你還感受不到這樣做帶來(lái)的明顯好處,但堅(jiān)持半年一年你就會(huì)發(fā)現(xiàn)有很大不同,堅(jiān)持5年10年,也許你就會(huì)發(fā)現(xiàn)人生境界和成就都會(huì)不一樣了。

CSDN:你目前在UC擔(dān)任軟件主任工程師職位,同時(shí)兼顧團(tuán)隊(duì)leader,在技術(shù)團(tuán)隊(duì)管理方面,你有什么心得和體會(huì)可分享?

李運(yùn)華:雖然說(shuō)是leader,但管理投入和技術(shù)投入大約是3/7,所以大部分還是在做技術(shù)工作。技術(shù)團(tuán)隊(duì)管理方面談不上很有經(jīng)驗(yàn),簡(jiǎn)單談一些我的體會(huì)吧。我是一個(gè)基層的小頭頭,因此以下分享都是針對(duì)基層的leader說(shuō)的,總監(jiān)和CEO沒(méi)當(dāng)過(guò),不敢妄加評(píng)論 :)

首先,基層leader不能完全放棄技術(shù),變成一個(gè)項(xiàng)目管理者或者任務(wù)管道。對(duì)于技術(shù)人員來(lái)講,多少都有點(diǎn)技術(shù)情結(jié)了,如果一個(gè)leader不懂技術(shù)或者不管技術(shù),就開(kāi)開(kāi)會(huì),轉(zhuǎn)發(fā)郵件,安排一下任務(wù),慢慢就會(huì)與其他成員脫離,技術(shù)水平就會(huì)逐漸下降,這樣其實(shí)就是威信不斷下降。當(dāng)一個(gè)leader都無(wú)法和組員探討技術(shù)問(wèn)題、解決技術(shù)問(wèn)題的時(shí)候,這個(gè)leader其實(shí)就是一個(gè)擺設(shè)了,我相信很多時(shí)候組員都會(huì)從心里鄙視這樣的leader的。

其次,基層leader的最重要任務(wù)是幫助組員提升。基層leader受限于環(huán)境和資源的約束,很難做到幫組員實(shí)現(xiàn)宏偉的夢(mèng)想,或者提供一個(gè)很大的平臺(tái)給組員施展。這種情況下以什么來(lái)激勵(lì)組員呢?我覺(jué)得最好的方式就是幫助組員不斷提升,包括技術(shù)上的提升、做事能力的提升、溝通技巧的提升等,這些是能夠做到也比較容易做到的。如果真的遇到各方面能力都比自己強(qiáng)的人,趕緊向上推薦,讓他有更大的空間發(fā)展。

第三,基層leader要身先士卒。有一個(gè)管理的說(shuō)法說(shuō)的很好:10個(gè)人時(shí)你要沖在最前面,1000個(gè)人時(shí)你要走在中間,10000個(gè)人的時(shí)候你要走在最后面?;鶎觢eader就是要沖在最前面的那個(gè),遇到難的設(shè)計(jì)問(wèn)題,你要帶領(lǐng)團(tuán)隊(duì)攻堅(jiān);遇到線上質(zhì)量事故,你要能夠帶領(lǐng)團(tuán)隊(duì)快速解決;出了重大問(wèn)題,你要能夠用于承擔(dān)責(zé)任;這樣才能通過(guò)實(shí)際的行動(dòng)言傳身教,幫助團(tuán)隊(duì)成員提升,也能在這個(gè)過(guò)程中樹(shù)立威信。

CSDN:你在10年寫(xiě)了篇《如何與你的老大溝通? 》的文章受到熱捧,如今成為leader的你,能否再簡(jiǎn)要的和大家分享下你的經(jīng)驗(yàn)?

李運(yùn)華:雖然我現(xiàn)在是一個(gè)leader,但因?yàn)槲沂羌夹g(shù)出身而且一直在從事技術(shù)相關(guān)的工作,所以我和團(tuán)隊(duì)成員交流是沒(méi)有問(wèn)題的。但我在向上溝通和匯報(bào)的時(shí)候,用到的還是這些方法。比如說(shuō)我做了一個(gè)系統(tǒng)解耦的工作,我不會(huì)只說(shuō)“系統(tǒng)結(jié)構(gòu)更優(yōu)美”,而是說(shuō)“解耦后版本開(kāi)發(fā)速度大約可以提升1倍”這樣的說(shuō)法。

面向?qū)ο螅∣bject Oriented,OO)和編程語(yǔ)言

CSDN:程序員在應(yīng)聘時(shí),面試官問(wèn)應(yīng)聘者如何理解面向?qū)ο螅阏J(rèn)為應(yīng)聘者該怎么說(shuō)?

李運(yùn)華:首先要了解面向?qū)ο蟪霈F(xiàn)的歷史背景,然后要了解面向?qū)ο蠛兔嫦蜻^(guò)程的對(duì)比,面向?qū)ο蟮膬?yōu)點(diǎn)缺點(diǎn)等,最后才是面向?qū)ο蟮倪@些概念、原則、方法。如果談到面向?qū)ο缶椭恢馈俺橄?、?lèi)……”等這些概念,是知其然不知其所以然,在實(shí)際中也很難更好的應(yīng)用面向?qū)ο蟆?/p>

這部分內(nèi)容可以參考我的博客專(zhuān)欄《面向?qū)ο罂▽毜洹贰?/p>

CSDN:技術(shù)大師們?cè)趯?duì)軟件架構(gòu)的研究中經(jīng)歷了很長(zhǎng)時(shí)間的摸索,從面向過(guò)程到面向?qū)ο?,從設(shè)計(jì)原則到設(shè)計(jì)模式,請(qǐng)問(wèn)常用的設(shè)計(jì)模式和原則有哪些?

李運(yùn)華:毫無(wú)疑問(wèn),設(shè)計(jì)模式就是GoF提出的23個(gè)設(shè)計(jì)模式,其它模式基本都是這些模式的變體或者組合;設(shè)計(jì)原則就是SOLID原則。 設(shè)計(jì)模式和設(shè)計(jì)原則在我的博客專(zhuān)欄《面向?qū)ο罂▽毜洹?/a>都有深入和別出心裁的闡述,大家可以參考。(編者注:李老師在專(zhuān)欄中針對(duì)設(shè)計(jì)模式和原則進(jìn)行了全面深入的闡述,由于內(nèi)容較多,這里不再引用,還請(qǐng)移步專(zhuān)欄閱讀。)

CSDN:軟件工程相關(guān)的軟件開(kāi)發(fā)流程有很多,結(jié)合你這么多的軟件開(kāi)發(fā)經(jīng)歷,面向?qū)ο蟮拈_(kāi)發(fā)技術(shù)流程應(yīng)該是如何的?與面向過(guò)程的開(kāi)發(fā)過(guò)程有什么不同?

李運(yùn)華:面向?qū)ο蟮拈_(kāi)發(fā)技術(shù)流程我總結(jié)起來(lái)就是如下階段:

1. 需求模型

通過(guò)和客戶(hù)溝通,結(jié)合行業(yè)經(jīng)驗(yàn)和知識(shí),明確要求客戶(hù)的需求。

在這個(gè)階段中, 面向?qū)ο蠛兔嫦蜻^(guò)程的開(kāi)發(fā)方式?jīng)]有差異,如果有人認(rèn)為分析方法不一樣,那是因?yàn)闆](méi)有明白需求分析具體的目標(biāo)是什么,

需求分析的目標(biāo)就是要準(zhǔn)確把握客戶(hù)需求,和具體的實(shí)現(xiàn)技術(shù)、開(kāi)發(fā)流程都沒(méi)有關(guān)系。

2. 領(lǐng)域模型

基于需求模型,提煉出領(lǐng)域相關(guān)的概念,為后面的面向?qū)ο笤O(shè)計(jì)打下基礎(chǔ)。 面向過(guò)程的開(kāi)發(fā)流程中對(duì)應(yīng)的階段是“功能提取”。

在這個(gè)階段,面向?qū)ο蠛兔嫦蜻^(guò)程的開(kāi)發(fā)過(guò)程差異就很明顯了,面向?qū)ο蟮牧鞒讨饕蝿?wù)是從需求模型中提煉“領(lǐng)域類(lèi)”,而面向過(guò)程的開(kāi)發(fā)要求的是從需求模型中提煉“功能的處理過(guò)程”。

3. 設(shè)計(jì)模型

以領(lǐng)域模型為基礎(chǔ),綜合面向?qū)ο蟮母鞣N設(shè)計(jì)技巧,完成類(lèi)的設(shè)計(jì)。 面向過(guò)程的開(kāi)發(fā)流程對(duì)應(yīng)的階段是“功能分解”

在這個(gè)階段,面向?qū)ο蟮拈_(kāi)發(fā)過(guò)程要求完成從“領(lǐng)域類(lèi)”演進(jìn)到“軟件類(lèi)”,并逐步細(xì)化求精,完成最終的軟件類(lèi)設(shè)計(jì),而面向過(guò)程的開(kāi)發(fā)此時(shí)需要做的是將全流程的功能分解為子功能,并細(xì)化子功能的具體步驟。

4. 實(shí)現(xiàn)模型

以設(shè)計(jì)模型為基礎(chǔ),將設(shè)計(jì)模型翻譯為具體的語(yǔ)言實(shí)現(xiàn),完成編碼。

在這個(gè)階段,面向?qū)ο箝_(kāi)發(fā)和面向過(guò)程開(kāi)發(fā)都是使用具體的編程語(yǔ)言來(lái)實(shí)現(xiàn)各自的設(shè)計(jì),流程上沒(méi)有什么差別,但使用不同的語(yǔ)言來(lái)開(kāi)發(fā)的話,效率上是有一定的差別的,

總體來(lái)說(shuō),面向?qū)ο缶幊陶Z(yǔ)言在語(yǔ)言層面上效率要比面向過(guò)程的開(kāi)發(fā)語(yǔ)言效率要高一些。但編程的效率是受很多因素影響的,單純的語(yǔ)言因素對(duì)總體的效率影響并不明顯。

總結(jié)一下,面向?qū)ο蟮拈_(kāi)發(fā)流程其實(shí)是以“類(lèi)”來(lái)串聯(lián)整個(gè)開(kāi)發(fā)流程,而面向過(guò)程的開(kāi)發(fā)流程是以“功能”來(lái)串聯(lián)整個(gè)開(kāi)發(fā)流程。

CSDN:當(dāng)前很多資料都在講述面向?qū)ο蟮膬?yōu)點(diǎn),可是在軟件開(kāi)發(fā)或者大型軟件項(xiàng)目中,面向?qū)ο髤s帶來(lái)了巨大的類(lèi)關(guān)系設(shè)計(jì)開(kāi)銷(xiāo),你認(rèn)為面向?qū)ο缶幊痰闹匾院瓦m用范圍在哪?以及面向?qū)ο缶幊痰谋锥耸鞘裁矗?/b>

李運(yùn)華:面向?qū)ο笏枷胱鳛閼?yīng)對(duì)軟件復(fù)雜性日益攀升的解決之道提出來(lái)的,其重要性在于通過(guò)封裝的方式將復(fù)雜性隔離開(kāi)來(lái)。但面向?qū)ο蟛皇恰般y彈”,不是所有場(chǎng)景都適合應(yīng)用的,我覺(jué)得面向?qū)ο筇貏e適合于“容易發(fā)生變化”的業(yè)務(wù)系統(tǒng)開(kāi)發(fā),例如互聯(lián)網(wǎng)相關(guān)業(yè)務(wù)、游戲開(kāi)發(fā)、ERP等行業(yè),不太適合底層系統(tǒng)如操作系統(tǒng)、驅(qū)動(dòng)、數(shù)據(jù)庫(kù)等開(kāi)發(fā)。

面向?qū)ο缶幊瘫旧砦矣X(jué)得并不存在固有的弊端。比如說(shuō)有的人認(rèn)為面向?qū)ο笤黾恿祟?lèi)關(guān)系設(shè)計(jì)開(kāi)銷(xiāo),但這個(gè)開(kāi)銷(xiāo)和隔離復(fù)雜度帶來(lái)的收益相比基本可以忽略不計(jì),加上設(shè)計(jì)模式和設(shè)計(jì)原則的成熟,設(shè)計(jì)良好的面向?qū)ο蠓桨覆⒉粫?huì)帶來(lái)多大的開(kāi)銷(xiāo);有的人說(shuō)面向?qū)ο髱?lái)了更多的復(fù)雜性,但這個(gè)復(fù)雜性主要是語(yǔ)言本身的復(fù)雜性,一旦熟練掌握后就不會(huì)成為障礙,而且我覺(jué)得面向?qū)ο蟾臃先祟?lèi)的思維特點(diǎn),是一種“人的思維”,一旦轉(zhuǎn)換后,人其實(shí)更加適應(yīng)面向?qū)ο蟮乃季S。

CSDN:正所謂樹(shù)大招風(fēng),越是流行的東西越容易變成人們的眾矢之的。網(wǎng)絡(luò)上流傳著“面向?qū)ο笫且粋€(gè)騙局”、“面向?qū)ο笠阉馈钡难哉?,?duì)此你怎么看?

李運(yùn)華:從面向?qū)ο蟮恼Q生歷史背景來(lái)看,面向?qū)ο笫?0~80年代為了解決日益增加的軟件復(fù)雜度而提出的,那么我們現(xiàn)在評(píng)估一下這個(gè)背景消失了么? 軟件復(fù)雜度下降了么?顯然沒(méi)有,原有的軟件復(fù)雜度并沒(méi)有消失或者減少,反而越來(lái)越增加了,現(xiàn)在的軟件規(guī)模和80年代相比已經(jīng)不可同日而語(yǔ)了。我們現(xiàn)在也沒(méi)有找到一種新的思想或者技術(shù)來(lái)解決或者減少軟件復(fù)雜度,所以說(shuō)“面向?qū)ο笠阉馈薄ⅰ懊嫦驅(qū)ο笫且粋€(gè)騙局”都是很偏激的評(píng)價(jià),沒(méi)必要去爭(zhēng)論。面向?qū)ο蟋F(xiàn)在活得很好,也很流行,看看排名前10的編程語(yǔ)言就知道了。

當(dāng)然,就像《人月神話》中說(shuō)的“沒(méi)有銀彈”一樣,面向?qū)ο笠膊皇墙鉀Q軟件復(fù)雜度的銀彈,因此不能期望用面向?qū)ο蟾愣ㄒ磺袉?wèn)題。

如果真要說(shuō)“面向?qū)ο笠阉馈?,那一定是另外一個(gè)更優(yōu)秀的思想出來(lái)替代面向?qū)ο螅壳皝?lái)看并沒(méi)有這樣的思想出現(xiàn)。

CSDN:對(duì)于初學(xué)者,你覺(jué)得他們?cè)鯓硬拍苤烙袥](méi)有掌握面向?qū)ο缶幊痰乃枷耄?nbsp;

李運(yùn)華:掌握面向?qū)ο缶幊痰募寄苁呛苋菀椎模瑫?huì)用Java寫(xiě)個(gè)類(lèi),寫(xiě)個(gè)繼承,寫(xiě)個(gè)接口,基本上就可以說(shuō)自己掌握了面向?qū)ο缶幊痰募寄埽绻偌由显O(shè)計(jì)模式和設(shè)計(jì)原則,基本上就可以說(shuō)熟練掌握了面向?qū)ο缶幊獭?/p>

但如果說(shuō)真正掌握了面向?qū)ο缶幊痰乃枷?,我覺(jué)得一定是要看是否用面向?qū)ο蟮姆绞饺シ治龊屠斫鈫?wèn)題。舉個(gè)很簡(jiǎn)單的例子:很多人都是用面向過(guò)程的方法去分析和理解問(wèn)題,然后在實(shí)現(xiàn)的時(shí)候覺(jué)得這里可以封裝為一個(gè)類(lèi),那里可以用一個(gè)接口,有的地方可以用繼承,有的地方可以用抽象類(lèi)等,這樣其實(shí)就是用面向?qū)ο髮?shí)現(xiàn)了面向過(guò)程。

心中的大牛:“能夠設(shè)計(jì)和實(shí)現(xiàn)一個(gè)完整的系統(tǒng)”

CSDN:你夢(mèng)想有一天成為技術(shù)大牛,你對(duì)技術(shù)大牛的定義是什么?

李運(yùn)華:我心目中的大牛是這樣的,對(duì)某一方面的技術(shù)很精通,對(duì)相關(guān)的技術(shù)都有一定的掌握和了解,能夠清楚的理解和實(shí)現(xiàn)業(yè)務(wù),對(duì)行業(yè)有一定的敏感度和理解,一句話總結(jié)一下就是:能夠設(shè)計(jì)和實(shí)現(xiàn)一個(gè)完整的系統(tǒng)。

CSDN:“夢(mèng)想一定要有的,萬(wàn)一有一天實(shí)現(xiàn)了呢?”你期望能設(shè)計(jì)或?qū)崿F(xiàn)一個(gè)偉大的產(chǎn)品,目前有什么好的想法嗎?對(duì)于未來(lái)你還有什么樣的規(guī)劃和期許?

李運(yùn)華:實(shí)現(xiàn)一個(gè)偉大的產(chǎn)品更多時(shí)候是可遇不可求,所以現(xiàn)在暫時(shí)也沒(méi)有什么打算和計(jì)劃,只是努力在做各種技術(shù)和技能儲(chǔ)備,當(dāng)機(jī)遇來(lái)臨的時(shí)候能夠抓住機(jī)遇。目前在UC做的很開(kāi)心,也在不斷的提升自己,希望有一天能在UC實(shí)現(xiàn)這樣的夢(mèng)想 。

CSDN:你是什么時(shí)候接觸CSDN的?它對(duì)你學(xué)習(xí)和工作都帶來(lái)哪些影響?同時(shí),對(duì)CSDN有什么建議?

李運(yùn)華:基本上上大學(xué)的時(shí)候就接觸CSDN了,后來(lái)開(kāi)始在CSDN寫(xiě)博客。CSDN對(duì)我來(lái)說(shuō)主要提供了一個(gè)交流和展現(xiàn)的平臺(tái),這里可以學(xué)到新的技術(shù),掌握技術(shù)潮流,結(jié)識(shí)更多愛(ài)好技術(shù)的朋友,通過(guò)在CSDN寫(xiě)博客,既提升了自己的表達(dá)能力和寫(xiě)作能力,也擴(kuò)大的自己的技術(shù)影響力。

談到建議的話,CSDN能否提供一個(gè)類(lèi)似微博的技術(shù)分享平臺(tái),因?yàn)橛械募夹g(shù)點(diǎn)和經(jīng)驗(yàn)可能比較簡(jiǎn)短,但很關(guān)鍵很重要,寫(xiě)成博客有點(diǎn)太重,論壇發(fā)的話不利于傳播(要到指定版塊才能看到),另外很多技術(shù)牛人有很多積累,但寫(xiě)博客可能沒(méi)有那么多時(shí)間,寫(xiě)微博式的內(nèi)容就很輕松了,所以如果CSDN能夠提供這樣的功能,一個(gè)是能夠吸引更多有能力沒(méi)時(shí)間的牛人來(lái)分享,二是能夠讓更多人能學(xué)到一些別人壓箱底的功夫,這些功夫通過(guò)搜索引擎搜索基本上是搜不到的。

若想獲悉李運(yùn)華更多動(dòng)態(tài),請(qǐng)關(guān)注:

CSDN博客:點(diǎn)擊進(jìn)入   面向?qū)ο罂▽毜鋵?zhuān)欄:點(diǎn)擊進(jìn)入

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    欧美区一区二在线播放| 草草草草在线观看视频| 日本免费熟女一区二区三区| 国产剧情欧美日韩中文在线| 国产伦精品一区二区三区高清版| 91香蕉视频精品在线看| 麻豆印象传媒在线观看| 国语久精品在视频在线观看| 国产丝袜美女诱惑一区二区| 成年人黄片大全在线观看| 搡老熟女老女人一区二区| 日韩不卡一区二区在线| 女生更色还是男生更色| 欧美日韩亚洲综合国产人| 91久久精品中文内射| 黄色av尤物白丝在线播放网址| 中文字幕日韩无套内射| 91人人妻人人爽人人狠狠| 91人妻人人澡人人人人精品| 日本 一区二区 在线| 国产偷拍盗摄一区二区| 噜噜中文字幕一区二区| 色哟哟哟在线观看视频| 婷婷基地五月激情五月| 人妻亚洲一区二区三区| 精品亚洲av一区二区三区| 国产亚洲精品一二三区| 偷自拍亚洲欧美一区二页| 国产色第一区不卡高清| 日本免费一本一二区三区| 国产欧美日韩一级小黄片| 日韩中文字幕狠狠人妻| 日本婷婷色大香蕉视频在线观看 | 精品香蕉一区二区在线| 国产精品色热综合在线| 欧美日韩综合在线第一页| 久久国产亚洲精品成人| 五月情婷婷综合激情综合狠狠| 国产丝袜女优一区二区三区| 五月婷婷六月丁香狠狠| 午夜福利视频偷拍91|