寫blog
已經(jīng)快兩年了,起初僅僅是為了自己“備個(gè)案”,結(jié)果慢慢演變成為了“分享成癮”。前幾天一個(gè)朋友給我的blog
留言,談到希望在新年里能夠看到的不僅僅是我對(duì)技術(shù)的分享,更希望能夠看到對(duì)于技術(shù)學(xué)習(xí)、職業(yè)發(fā)展的規(guī)劃。因此想到了寫一點(diǎn)什么分享一下自己這些年的一點(diǎn)點(diǎn)“收獲”,周星馳的喜劇之王里面說(shuō)到他是一個(gè)演員(雖然被叫做跑龍?zhí)椎模蚁胛?,就一個(gè)寫代碼的。
愛這行
從事任何行業(yè)都一樣,只有真正的愛上了這份工作,才會(huì)投入熱情,才會(huì)在順境中自我警醒,在逆境中尋找突破。這個(gè)行業(yè)的競(jìng)爭(zhēng)很激烈,你停下來(lái)走,別人就立刻會(huì)跑步超過你,沒有對(duì)這一行業(yè)的一種熱情,就很難在困境中保持一種執(zhí)著的態(tài)度堅(jiān)持到底。
踏踏實(shí)實(shí)“扎馬步”
今天無(wú)意中看了“校長(zhǎng)”的“程序員&司機(jī)”,其中談到了關(guān)于程序員速成的問題。其實(shí)速成班畢業(yè)的 “系統(tǒng)殺手”早已在遍布大江南北,只是在互聯(lián)網(wǎng)時(shí)代,互聯(lián)網(wǎng)的應(yīng)用型軟件生命周期越來(lái)越短,業(yè)務(wù)驅(qū)動(dòng)主導(dǎo)的情況下,這種速成方式看起來(lái)反而提高了企業(yè)生產(chǎn)效率。但這樣的人才也就只能寫幾個(gè)Facebook上的插件應(yīng)用或者iGoogle上的Gadget,真的要出Google,Amazon,Yahoo改變互聯(lián)網(wǎng)世界的企業(yè),還是需要踏踏實(shí)實(shí)先學(xué)“扎馬步”的人。
很多在學(xué)校的同學(xué)或者剛剛畢業(yè)的朋友都看什么熱門學(xué)什么,Spring,AJAX,Hibernate等等,又有多少人在看Spring之前把J2SE的NIO,XML,Collection等先好好學(xué)習(xí)一下,在看AJAX之前把Http協(xié)議、DTD、XML Schema好好看一下,在學(xué)習(xí)Hibernate以前先把J2EE事務(wù)規(guī)范搞清楚。Java最大的好處就是開源,能夠讓人們站在更高的起點(diǎn)來(lái)作出更多的創(chuàng)新,但是對(duì)于學(xué)習(xí)者來(lái)說(shuō),不了解自己站在什么上面的時(shí)候,可能摔下來(lái)會(huì)很痛。在用的時(shí)候多問一些為什么,在遇到問題的時(shí)候多找找原因,在了解以后多提出一些優(yōu)化的方案,這樣才會(huì)進(jìn)步的更快,走的更遠(yuǎn)。
記得我前一陣子回家的時(shí)候和媽媽聊起最近的工作,雖然媽媽不太明白,但是也知道我現(xiàn)在做的東西技術(shù)含量比較高,囑咐我“千萬(wàn)不要什么都教給自己的同事,徒弟帶出就不要師傅了”(這當(dāng)然是老一輩的觀念了)。我和她說(shuō):“不要擔(dān)心,這種學(xué)的會(huì)的不教遲早也會(huì),學(xué)不會(huì)的教了也學(xué)不會(huì)”。其實(shí)這里說(shuō)的學(xué)的會(huì)的就是技術(shù),而學(xué)不會(huì)的就是經(jīng)驗(yàn)和能力。這個(gè)行業(yè)的人在日積月累過程中并不會(huì)去比較掌握的知識(shí)面有多廣多深,畢竟這行業(yè)更新很快,其實(shí)能力強(qiáng)的人在多年的學(xué)習(xí)中就積累了很多的找問題,分析問題,總結(jié)問題,提出建議,發(fā)掘創(chuàng)新的能力,這些才是這行業(yè)人在發(fā)展中最寶貴的財(cái)富,也是一個(gè)人成長(zhǎng)的標(biāo)志。開始的過程中,踏踏實(shí)實(shí)地“扎馬步”,了解一些最基本的知識(shí),那么上層技術(shù)的發(fā)展對(duì)于他來(lái)說(shuō)僅僅只是一個(gè)短暫的學(xué)習(xí)過程,甚至可以觸類旁通。因此還是要奉勸每一個(gè)新入行的同學(xué),踏踏實(shí)實(shí),靜下心來(lái)做技術(shù),就算工作安排得都是一些浮躁和重復(fù)的工作,用高效的方式來(lái)結(jié)束那些重復(fù)勞動(dòng),多留一些時(shí)間給自己打基礎(chǔ)。
逆境養(yǎng)兵、順境攻城掠地
普通人的工作經(jīng)歷通常都是起伏不定的,一個(gè)人的能力是否能夠得到體現(xiàn),不僅僅靠自己的努力,有時(shí)候也需要“天時(shí)”、“地利”。馬云比較有名的一句話:“今天很殘酷,明天更殘酷,后天很美好,但是大多數(shù)人死在明天晚上,看不到后天的太陽(yáng)!??!”,其實(shí)也在說(shuō)明一件事,就是很多時(shí)候需要一種堅(jiān)持的精神才能得到寶貴的機(jī)會(huì)。
今天是我進(jìn)入阿里巴巴滿3年,這3年讓我感觸很深的是:1.逆境不要?dú)怵H,厚積薄發(fā)。2.順境不要懈怠,一股作氣,把握機(jī)會(huì)展現(xiàn)自己最大的能力。3.在逆境和順境的轉(zhuǎn)換過程中,創(chuàng)造機(jī)會(huì),不要坐等機(jī)會(huì),要學(xué)會(huì)不在其位,也謀其職。最后一點(diǎn)就拿我自己的親身經(jīng)歷來(lái)說(shuō),我原來(lái)就職于一家通信公司,因此對(duì)于互聯(lián)網(wǎng)應(yīng)用的開發(fā)和架構(gòu)設(shè)計(jì)要比很多人弱,進(jìn)入阿里巴巴以后工作了半年(主要作業(yè)務(wù)開發(fā)),正好阿里軟件創(chuàng)立,當(dāng)時(shí)被分配到了阿里軟件第一個(gè)產(chǎn)品負(fù)責(zé)客戶模塊,當(dāng)時(shí)的應(yīng)用是通過MDA框架配置搭建的,開發(fā)人員很大程度上不需要自己做太多的編碼,但是這個(gè)平臺(tái)并沒有搭建過如此復(fù)雜的大型應(yīng)用,因此存在著不少問題,當(dāng)然這些問題都是通過業(yè)務(wù)產(chǎn)品線的人反饋給平臺(tái)部的人,當(dāng)時(shí)平臺(tái)部門人員很少,但是卻要修復(fù)和完善諾大一個(gè)平臺(tái),因此常常擱置開發(fā)人員的反饋。當(dāng)時(shí)在自己工作之余就琢磨和研究平臺(tái),同時(shí)跟蹤調(diào)試平臺(tái),最后直接給出解決方案,逐漸的就融入到了平臺(tái)開發(fā)中,最后被吸收到了平臺(tái)部門,進(jìn)入平臺(tái)部門以后遇到了兩位很好的老大,根據(jù)我的特質(zhì)給我安排了研究和學(xué)習(xí)的工作。接下去就是不斷地參與阿里軟件各個(gè)基礎(chǔ)平臺(tái)的構(gòu)建,核心技術(shù)的研究和探索,找到了興趣和工作的最佳結(jié)合點(diǎn)。因此,當(dāng)你困惑的時(shí)候首先不是去抱怨,而是審視一下自己是否還有作的不夠的,是否還有可以提升的空間,多給自己制造一些機(jī)會(huì),也許我們不用等到后天,也不會(huì)死在明天夜里,明天早晨我們就看到了太陽(yáng)。
海納百川、冰凍三尺
很多朋友可能聽老師或者前輩也說(shuō)過類似的話,就是作為一個(gè)技術(shù)人員要廣也要鉆。就好比現(xiàn)在很多人都要DB Scale out,同時(shí)也要Scale up。我從自己的角度來(lái)說(shuō)一下廣和鉆的看法。廣:1.要有容人之量。(很多時(shí)候程序員最大的毛病就是喜歡在技術(shù)上比較,未嘗不是好事,但是一個(gè)人的能力總歸有限,多看看別人的,多聽聽別人的,也許能夠讓自己少用時(shí)間獲得更多的收獲,特別是自己戰(zhàn)友的聲音)2.觸類旁通,多問個(gè)為什么,多跨過界去學(xué)習(xí)。在阿里巴巴,PD、SA、DBA、UI等等職位各司其職,作為開發(fā)的我們其實(shí)也應(yīng)該去了解如何去畫Use Case,如何假設(shè)服務(wù)器和應(yīng)用環(huán)境,如何寫一些略微復(fù)雜的SQL,了解一些DB的特性,如何能夠簡(jiǎn)單的作出一些基礎(chǔ)的頁(yè)面,使用簡(jiǎn)單的css來(lái)美化一下門面。這些就是需要多跨過界,多虛心的去學(xué)習(xí)。鉆:1.本職工作技術(shù)一定要扎實(shí),每作一個(gè)技術(shù)點(diǎn)就要把技術(shù)吃透,同時(shí)延伸開來(lái),發(fā)掘更多的技術(shù)亮點(diǎn)。2.多接觸新鮮事物,但是有選擇的去了解,有目的的去學(xué)習(xí)和實(shí)踐(目的的源泉就是工作的需求)。3.學(xué)會(huì)分享,一個(gè)人自己搞懂一個(gè)技術(shù)很容易,一個(gè)人要把他熟悉的技術(shù)寫下來(lái)就會(huì)發(fā)覺原來(lái)自己還有那么多沒有搞清楚,一個(gè)人如果要把寫下來(lái)的東西宣講給別人聽,他就會(huì)發(fā)現(xiàn),原來(lái)寫下來(lái)的僅僅是那么一小塊,因此學(xué)會(huì)分享,從自己了解,到記錄分享,到演講傳播就是一個(gè)不斷深化和廣化的過程。個(gè)人覺得小公司鍛煉人(啥都自己干),大公司培養(yǎng)人(該干的要干好),因此自己?;仡^看看自己在廣和鉆上的不足,可以讓自己進(jìn)步的更快,學(xué)的更全面。
學(xué)中醫(yī)積累經(jīng)驗(yàn),學(xué)西醫(yī)尋找突破
中醫(yī)以對(duì)人體經(jīng)絡(luò)血脈了解為基礎(chǔ),通過望聞問切來(lái)尋找病理根源,行醫(yī)年限越久,找問題解決問題的經(jīng)驗(yàn)越強(qiáng)。西醫(yī)以科學(xué)技術(shù)為手段,通過試驗(yàn)化的方式不斷尋找突破,并且將成果積累并且傳遞給更多的人,但是否年限越久越有能力,或者是使用得器材越廣越資深,這點(diǎn)全要看個(gè)人對(duì)于醫(yī)術(shù)的理解,如果僅僅停留在對(duì)器械的使用和對(duì)成果的依賴,那么只會(huì)成為一個(gè)庸醫(yī)。當(dāng)然這里絕對(duì)沒有對(duì)中西醫(yī)的差別化或者評(píng)價(jià),僅僅要說(shuō)明的是,在手段豐富的情況下,容易忽視了本質(zhì),只看到了皮毛,積累的時(shí)候多一些追根溯源,站在別人的成果上才更踏實(shí),因此在對(duì)經(jīng)驗(yàn)積累上向中醫(yī)多學(xué)一些,在尋找突破,傳播技術(shù)上多學(xué)一點(diǎn)西醫(yī)的風(fēng)格。不過說(shuō)到低,還是要看學(xué)習(xí)的人,靜的下心,沉得住氣,才會(huì)有積累,才會(huì)有突破.
不做一個(gè)純粹的“技術(shù)人員”
不做一個(gè)純粹的“技術(shù)人員”,其實(shí)也就是說(shuō)要培養(yǎng)自己多方面的能力,我僅僅把自己想到的一些點(diǎn)列出來(lái)說(shuō)說(shuō):
1. 項(xiàng)目產(chǎn)品化的思想。現(xiàn)在就算在學(xué)校里面給導(dǎo)師作項(xiàng)目都講究一個(gè)商業(yè)價(jià)值,更不要說(shuō)在企業(yè)里工作。作為一個(gè)開發(fā)或者架構(gòu)師最重要的就是要有產(chǎn)品化的概念,這也是項(xiàng)目是否成功的關(guān)鍵。軟件的目的是為人服務(wù),如何服務(wù)的好,那就要以一個(gè)產(chǎn)品的思路去做項(xiàng)目,而不是作為實(shí)驗(yàn)室的實(shí)驗(yàn)品,為客戶提供好服務(wù)就會(huì)給公司帶來(lái)商業(yè)價(jià)值,對(duì)自己的工作也會(huì)有很好的肯定。這是一個(gè)良性循環(huán),反之則是惡性循環(huán)(多贏變成多輸)。如何做到產(chǎn)品化,首先就是需要去了解需求,而不是布置需求,其次就是設(shè)計(jì)時(shí)多聽取一些不同角色的意見,最后就是在客戶的反饋過程中反省。
2. 多一些設(shè)計(jì),少砌兩塊磚。代碼寫的再好,其實(shí)也只是用磚塊砌墻砌的比較好罷了,這年代已經(jīng)不會(huì)為了節(jié)省兩塊磚而給一個(gè)優(yōu)秀工作者了,同時(shí)技術(shù)的日新月異,總是擺弄技巧,學(xué)習(xí)花拳繡腿已經(jīng)跟不上時(shí)代了。多了解一些行業(yè)背景,多參與一些架構(gòu)設(shè)計(jì),將業(yè)務(wù)設(shè)計(jì)用良好的架構(gòu)體系來(lái)實(shí)現(xiàn),那才是一個(gè)稱得上有能力的技術(shù)人員。
3. 學(xué)會(huì)前瞻,學(xué)會(huì)自己找事。記得我剛進(jìn)平臺(tái)組,最不適應(yīng)的就是我的老大基本不太給我布置太詳細(xì)的任務(wù),這就好比進(jìn)入大學(xué),老師不給作業(yè),自己反而心里沒底了,其實(shí)自己找事的過程就是一個(gè)自己學(xué)習(xí)的過程,當(dāng)我一天下來(lái)感覺沒干什么,沒學(xué)到什么,心里就開始發(fā)虛。如何能夠前瞻性的去選擇一些目標(biāo),如何對(duì)現(xiàn)有情況提出一些創(chuàng)新和建議,都是一種更高能力的要求。現(xiàn)在SIP組也是一樣,在我們這個(gè)組里雖然現(xiàn)在每周還是布置一定工作,但是我對(duì)其他兩個(gè)同學(xué)的要求也是希望能夠有前瞻性,學(xué)會(huì)發(fā)現(xiàn)問題,預(yù)防問題,更甚者就是提出創(chuàng)新。當(dāng)你具備了這種環(huán)境的時(shí)候,你就需要鍛煉自己的能力了。
4. 做個(gè)讓老大放心的人。這點(diǎn)也許很多人和我一樣在業(yè)務(wù)上很早就讓老大覺得可以安心睡覺了,但是其實(shí)另一方面,如何在商業(yè)角度看問題,如何培養(yǎng)新人,如何協(xié)調(diào)部門合作等等,都會(huì)讓你的老大更加安心。另一方面來(lái)看,其實(shí)在這些能力的培養(yǎng)過程中,你不再局限于業(yè)務(wù)水平的提升,讓自己在更多方面更加成熟。
六脈神劍
今天是我進(jìn)入阿里巴巴3年整。在阿里巴巴有個(gè)說(shuō)法,只有在阿里巴巴工作了3年,才能算是一個(gè)真正的阿里人,因?yàn)槔斫獍⒗锇桶偷奈幕?,需要三年時(shí)間的沉淀。這里就從一個(gè)寫代碼的角度分享一下阿里巴巴的六脈神劍文化。
客戶第一:如果你是做架構(gòu)的,作平臺(tái)的,作開發(fā)工具的,那么客戶就是和自己一樣的開發(fā)者,多學(xué)習(xí)一下開源項(xiàng)目的精神,多從使用者角度去考慮問題,那么你的東西才會(huì)被更多的人認(rèn)可和使用,永遠(yuǎn)不要去做一個(gè)“玩具”的開發(fā)者。如果你是做產(chǎn)品的,那么就多聽,多想,多問,永遠(yuǎn)不要急著去寫代碼。
擁抱變化:敏捷開發(fā)的基本原則?;ヂ?lián)網(wǎng)應(yīng)用尤其如此,不要害怕變化,在需求和架構(gòu)之間找到平衡點(diǎn)(說(shuō)起來(lái)比較容易^_^)。
團(tuán)隊(duì)合作:一個(gè)人的力量始終有限,分享,交流,合作能夠讓自己事半功倍,學(xué)的更多,看得更遠(yuǎn)。
誠(chéng)信:說(shuō)到就要做到,做了就要做好,做軟件開發(fā)一樣也需要有責(zé)任感,貼滿狗皮膏藥的代碼上如果注釋是你的名字未來(lái)也會(huì)給你蒙羞。踏踏實(shí)實(shí)地用心去寫代碼,去設(shè)計(jì)架構(gòu),不經(jīng)意間得到的要遠(yuǎn)遠(yuǎn)比那么一點(diǎn)工資來(lái)的多。
激情:還是那句話,你如果不愛這行,乘著年輕趕快轉(zhuǎn)行。
敬業(yè):專業(yè)執(zhí)著,精益求精
很感謝各位能看完這篇感受分享,以上都僅僅是個(gè)人的一點(diǎn)感受,能夠引起共鳴那么證明我們的經(jīng)歷很相似,如果能夠給到你一點(diǎn)幫助,那寫這些就真的有意義了。不論你在別人眼里是一個(gè)資深架構(gòu)師還是開發(fā)人員,其實(shí)如果你愛這個(gè)行業(yè)的話,你應(yīng)該就是一個(gè)寫代碼的,但是每個(gè)人的經(jīng)歷都是一本“寫代碼的自我修養(yǎng)”,珍惜自己的選擇,讓自己在興趣和工作中找到最佳結(jié)合點(diǎn)。