編程的意義是什么辜羊,我又為什么要編程呢?這是一個不時會浮現(xiàn)在我腦海中的問題,它來得并不頻繁,但每次卻都伴隨著對自己職業(yè)生涯或人生目標的質疑而產生诱咏,令我感到些許困惑和不安。而在這十幾年的職業(yè)生涯中,我也似乎總能在每個階段為自己找到一個繼續(xù)熱愛編程的理由,直到它已無法解答再一次疑惑的產生狡逢。就這樣一次又一次的循環(huán)往復,我似乎漸漸理解了編程的意義……
編程是一項技能
回想大學畢業(yè)剛成為一名程序員時拼卵,自己對技術是如此狂熱奢浑,我不斷地購買各類技術書籍,幾乎所有的業(yè)余時間也都被用來鉆研技術腋腮,提高自己的編程能力雀彼。我也因此很快成了同一批入職新人中,編碼效率和質量最突出的一個即寡。而在那段時間里所做的技術積累徊哑,也成了我日后工作的堅實基礎,編程作為一項技能已經深深地嵌入到了我的身體里聪富。
即使到了今天莺丑,我仍非常懷念那段心無旁騖,一心鉆研技術的日子墩蔓。我為能在工作中寫出的每一行優(yōu)秀代碼而興奮梢莽,更為每一天能在技術上取得的點滴進步而喜悅,一切都是那么單純奸披,編程的意義對于那時的我來說就在于技術本身昏名。
編程是去解決問題
“能力越大,責任也也大”阵面,這句電影“蜘蛛俠”中的經典臺詞同樣適用于程序員的職業(yè)生涯轻局。隨著技術能力的提升以及工作中獲得的認可,我的職位也由原來的初級程序員變?yōu)榱速Y深開發(fā)工程師样刷,以及后來的架構師仑扑。相應的,除了編程之外置鼻,我工作中的很大一部分時間需要用來與用戶進行溝通镇饮,并分析他們提出的需求。對于我來說這個角色轉換的過程沃疮,是艱難甚至有些痛苦的盒让。 我不得不用自己最薄弱的溝通技能去和用戶打交道,更要命的是我所習慣使用的那些技術語言有時很難讓他們理解司蔬。
我很快意識到自己已不再是那個只需被動接受任務安排邑茄,并將自己的編程工作完成好就萬事大吉的初級程序員。除了技術之外俊啼,我更需要能夠突破程序員思維肺缕,去發(fā)現(xiàn)用戶需求背后所隱含的真正問題。我比以前變得更加務實,不再刻意追求技術的高深同木,而是盡可能從問題本身出發(fā)浮梢,選擇最有效的技術手段去解決它。
此時彤路,編程的意義也發(fā)生了改變秕硝,它已不再局限于技術本身,而成了解決問題的理想工具洲尊。
編程是在表達远豺,也是在創(chuàng)作
就這樣又過了幾年,當“為什么要編程坞嘀?”這個問題再次擺在我的面前時躯护,自己也已過了而立之年。對于大多數(shù)中國程序員來說丽涩,這個年紀已經算是高齡棺滞,甚至還有很多人會認為 30 歲還在編程,一定是混得不夠好吧矢渊。當然继准,對于這些質疑我也總是一笑了之。其實昆淡,在此之前我也有過很多轉型的機會锰瘸,比如去業(yè)務部門,或是轉作管理等等昂灵,但最終我還是選擇留在了技術崗位上,因為我覺得編程仍是我最喜歡的舞萄,或許也是我唯一擅長的吧眨补。
而這個時期也成了我整個程序員生涯的黃金期,我寫了公司的核心框架以及一些重要業(yè)務系統(tǒng)的核心算法倒脓。我很享受這段時光撑螺,因為我已幾乎感受不到那些技術上的牽絆,我更像雕刻師使用手中的刻刀一般崎弃,自如地運用編程來實現(xiàn)那些我認為優(yōu)秀的東西甘晤。
編程對于我來說已不再是一項技能或是工具,我是在通過編程進行著自我表達與創(chuàng)作饲做,這種感受帶給了我極大的自由度线婚,而我也從中感受到了前所未有的喜悅與樂趣。
編程是為了留下痕跡
最終我還是走上了管理崗位盆均,這里面有很多個人無法左右的因素(包括大環(huán)境塞弊、家庭、經濟等等)。但我仍然更樂意被大家稱為程序員或者“老”程序員游沿。就像在簡書的自我介紹中饰抒,我總是把全棧工程師放在那些“頭銜”的第一位,我也還在利用業(yè)余時間做自己喜歡的開源或個人項目诀黍。當我再一次問自己“為什么要編程”時袋坑,獲得了與以往不一樣的感悟:或許我們編程是為了能夠留下一些痕跡吧。
公司里最近都在為一個老系統(tǒng)的升級問題發(fā)愁眯勾,這個系統(tǒng)已經運行了將近 20 年時間了枣宫,為了升級系統(tǒng),大家不得不深入到這個系統(tǒng)的框架中咒精,去讀底層代碼镶柱。我們讀到了一位已經退休的美國同事Bill所實現(xiàn)的數(shù)據庫連接池代碼。在那個時候JAVA剛開始流行模叙,還沒有像 Spring 這樣的框架歇拆,或是如 Hibernate 或 MyBatis 這樣標準的持久層實現(xiàn),這個系統(tǒng)中所有的數(shù)據庫連接池及核心持久層代碼都是由我的這位美國同事寫的范咨,這些代碼讓整個系統(tǒng)穩(wěn)定運行了將近20年故觅,大家都不禁為他高超的技術水平發(fā)出由衷的贊嘆。
我還認識一位從事證券交易軟件研發(fā)的公司 CTO渠啊,看年紀應該已經接近 50 了输吏,但他仍然在親自寫著那些證券交易的核心代碼。當我問他到了這個年齡和職位替蛉,為什么還要堅持寫代碼時贯溅,他告訴我,當他看到自己所寫的代碼每天在支撐著千億級的證券交易時躲查,他感到非常興奮和自豪它浅,并不斷地希望能夠通過自己的努力將它做得更好。
我的這個美國同事不會聽到大家為他十幾年前所代碼發(fā)出的zan嘆镣煮,股民們也不會知道這位 CTO 所寫的代碼正在支撐著他們的日常交易姐霍。那些優(yōu)秀的代碼是他們留下的痕跡,我們不能確定這些痕跡能夠保留多久典唇,或許幾年镊折,或許更短,但它們都曾經在我們的日常生活中產生了重要的價值介衔,而新的未來也將構建在這些痕跡的基礎之上恨胚,我想這可能才是編程的意義所在吧。
我似乎理解了編程的意義夜牡,但我明白未來的某一天与纽,我一定還會問自己同樣的問題——為什么要編程侣签,希望到那個時候自己還能是那個熱愛編程,有著一顆匠心的“技匠”吧……