我的技術成長之路比較野,也比較特別乡范,幾乎所有的技術都是靠自學。
我從小就喜歡打電子游戲啤咽,小學二年級時接觸了第一代游戲機晋辆,屬于黑白機,就是一個非常簡單的黑白顯示屏宇整,游戲數量也很少瓶佳,零用錢基本都上交給了它,沒錢玩的時候鳞青,居然被我破解了霸饲,投幣口的設計是直筒式的为朋,我就拿了一個鐵飛輪投了下去,居然通過了厚脉,可以玩习寸。后來類似的東西找不到了,發(fā)現(xiàn)更簡便的辦法傻工,就是拿一根直尺一捅霞溪,就可以了,機器基本就被我霸占了中捆,后來玩大了鸯匹,居然捅給別人玩,最后被老板發(fā)現(xiàn)了轨香,書包被扣忽你,讓家長去贖回,免不了一頓胖揍臂容。
從哪以后迷上了電子游戲科雳,為這事挨揍不計其數,一把心酸淚啊脓杉。最高戰(zhàn)績糟秘,街頭霸王三代,一個游戲幣球散,干掉其他人三十多個游戲幣尿赚,幾個人排著隊跟我對戰(zhàn),老板說我這一個游戲幣太值了蕉堰,玩了將近一個小時多凌净。
94年,高一時屋讶,第一次上微機課冰寻,Apple,只能玩BASIC程序皿渗。老師能教的也不多斩芭,不過正好給了我一個名正言順的理由,買了臺小霸王學習機乐疆,邊打游戲邊玩BASIC划乖。
95年買的第一臺電腦 486 cpu dx66,4M內存挤土,256M的硬盤琴庵,目的也是奔著游戲去的。
玩了一年DOS游戲,那個年代的游戲细卧,需要配置各種EMS尉桩, XMS,還得確保640K的低端內存留有足有的空間贪庙,才能啟動的了游戲。DOS年代玩游戲能學到不少東西翰苫,Windows年代玩游戲基本就是玩止邮。
為了這個,自己買了本DOS 6.22的書啃奏窑。游戲玩的沒意思了导披,就開始繼續(xù)學習QBasic,Turbo C, Turbo Pasical.
高二下學期開始埃唯,買了本《21天Visual C++入門》撩匕,開始自學 Visual C++ 1.0版本,這個是我學的最認真的一個墨叛,每天中午要么去我同學家止毕,用他的電腦,把書上個每一行代碼都敲一遍漠趁,看看運行效果扁凛,居然理解了C++面向對象;要么跑去電腦公司闯传、網吧無償幫忙安裝系統(tǒng)谨朝,配置游戲。
自學過程碰到許多許多的問題甥绿,當時貴陽玩程序的人不多字币,找不到人問,也沒網絡條件共缕。只能不斷買各種技術書籍洗出,電腦報,大眾軟件等各種雜志學習骄呼。
學C++碰到問題玩不下去時共苛,就改去學Pascal,同樣玩不下去蜓萄,就去學Basic隅茎,然后又是C++,正所謂他山之石可以攻玉嫉沽。學dbase辟犀,foxbase 。绸硕。堂竟。魂毁。。
由于時間都在學編程出嘹,玩游戲席楚,高考掛掉了,去了貴州工學院(貴州工業(yè)大學)讀計算機及應用的大專税稼。
發(fā)現(xiàn)大學的編程課程烦秩,基本都是我自學過了。
大二的時候郎仆,遇到貴人之一只祠,教我們離散數學的老師 Bruce Duan, 他發(fā)現(xiàn)我VC++編程還不錯,就叫我?guī)退鍪隆?/p>
當時他正好有個項目, 想在 AutoCAD r14 做二次開發(fā)扰肌,建立房屋結構的三維模型抛寝,進行建筑工程量預決算的計算。AutoCAD當時的二次開發(fā)要用Visual C++ 6.0曙旭。當時除了一個1.4M大小的API WinHelp格式幫助文件盗舰,其他什么資料都沒有,API就真的是API說明夷狰,一個例子都沒有岭皂。要命的是,AutoCAD我一點都不熟悉沼头,當時大概花了1個多月爷绘,硬是把它啃下來,實現(xiàn)了標線網格參數化創(chuàng)建进倍,柱土至、墻、梁猾昆、板陶因、門、窗的建模垂蜗,以及相應的體積楷扬,表面積計算。
去他的公司演示贴见,里面有六七個已畢業(yè)一兩年的開發(fā)人員烘苹,在搞Oracle開發(fā),聊天的時候片部,問起我在做什么镣衡,我說在做AutoCAD的二次開發(fā)。他們問我 難嗎?當時我認為他們是前輩廊鸥,技術經驗都應當比我牛多了望浩,我還沒畢業(yè),我能搞定的事惰说,對他們來說也應當不成問題磨德,就謙虛的說 ”不難,挺簡單的", 頓時他們臉都黑了助被,冷場剖张。后來我才知道知道他們每一個人都嘗試過,都搞不下去揩环,所以他們集體認為我太傲了,是在裝B該遭雷劈幅虑。
AutoCAD項目夭折了丰滑,也就沒再繼續(xù),但是至少證明我能做點事倒庵,后來開始給我不斷給我商業(yè)項目做褒墨,他只管給需求,用什么技術擎宝,如何實現(xiàn)郁妈,到交付部署,全由我自己決定绍申,只要我能交付就可以噩咪。
從 VB6.0 + VC6.0 為廣東省文化廳開發(fā)《24式太極拳》多媒體教學光碟;
ASP + ADO + Oracle 為貴陽市國土局開發(fā)《土地收益管理系統(tǒng)》极阅;
到大三 (2000年)的時候胃碾,為貴陽市煤氣公司開發(fā)收費管理系統(tǒng),與貴陽市商業(yè)銀行對接筋搏,煤氣用戶可以去銀行柜臺繳納煤氣費用仆百。
用VC++ MFC 寫Gateway為銀行提供服務,普通WinSock無法應對并發(fā)請求的壓力奔脐,現(xiàn)學Complete IO來處理并發(fā)請求俄周,以及如何制定通信包協(xié)議與格式,和如何處理包粘粘問題髓迎。
ASP + (ATL COM+) + ADO + MSSQL 做管理系統(tǒng)峦朗,05年之后流行的AJAX,當時我在ASP上就已經實現(xiàn)了竖般,煤氣度數錄入甚垦,錄單員要求在錄入的過程中,必須不能有頁面刷新動作,只能通過背后異步提交實現(xiàn)艰亮。
在2003年之前闭翩,都是跟著他做項目,有項目就做迄埃,沒項目時疗韵,就泡書店看書,就是不斷在學習侄非;或者是上CSDN (id: zhq2000) 去幫人解答各種問題蕉汪。在做項目過程中,我從都不需要他擔心或管理我該做什么逞怨,他也很放心者疤,我能夠順利交付,任何技術問題叠赦,我都會自己尋找解決方案驹马。他要做的事就是,每天晚上除秀,到我家坐在我身旁糯累,點支煙,時不時問我搞的怎樣了册踩,然后在凌晨兩三點的時候泳姐,帶我去吃各種宵夜。想想真是懷念那個無憂無慮自由自在的時光暂吉。
這段經歷對我來說胖秒,很重要,給了我許多實際的問題借笙,針對問題如何自行制定解決方案扒怖,如何爬出各種遇到的坑,交付后的自我回顧业稼,我總會問自己盗痒,再來接一次的話,有哪些地方是我不滿意的低散,可以改經的俯邓,如何改進,如何優(yōu)化熔号,有沒有另外不同的實現(xiàn)方式稽鞭。
同時,由于這些項目都是一個人獨立完成引镊,也迫使自己不斷去尋找如何用更少的工作量獲得更多的有效產出朦蕴。這個也是我后來會從 微軟線路 轉 JAVA線路 轉 Ruby/Elixir 線路的核心原因篮条。
2003年到深圳的第一份工作,是在一個做呼叫中心項目的公司吩抓,去面試的時候涉茧,公司老板李耘李總問我,會不會Delphi midas, 我說有接觸過疹娶,不太熟midas, 讓他借一本書給我伴栓,一周之內我會學會midas,并用它實現(xiàn)一個郵件代理服務器作為demo雨饺。一周之后準時交付钳垮,獲得工作。再過三周后成為項目的主力额港,帶領團隊到廣州的省勞動廳呼叫中心做現(xiàn)場開發(fā)饺窿。這個過程也沒人需要管理我如何做事,需要的是告訴我目標移斩、方向短荐。
隨后我所在的每一家公司,當我的老板是一件很爽很輕松的事情叹哭,他不需要費力氣管理我,只需不斷的給我新的目標及指導痕貌,我總會在他的預期內做到最好的交付风罩。
我不喜歡有人管我,喜歡有人指導我舵稠。我一直在思考如何才能不被管理超升,我的方案就是,不斷自我管理哺徊、自我學習室琢、自我改進,當你做到符合對方的期望落追,甚至超越期望盈滴,你就不需要被管理。不斷有人在給你指導方向轿钠,是一件非常幸運的事巢钓。
因此,我會自己不斷去學習新的技術疗垛,新的方法症汹、理論,為下一個階段做積累贷腕。技術對于我來說背镇,更多是一種樂趣咬展。挑戰(zhàn)自我棒动,創(chuàng)造價值也是樂趣吼虎。
敏捷強調的是自管理,突然發(fā)現(xiàn)我已敏捷了許多年 :) 洪橘。
我也在利用自身的經驗济瓢,去挑選與我有某些方面類似伙伴一起共事荠割,幫助他們,引導他們旺矾。