編程的意義是什么,我又為什么要編程呢?這是一個(gè)不時(shí)會(huì)浮現(xiàn)在我腦海中的問題,它來得并不頻繁,但每次卻都伴隨著對自己職業(yè)生涯或人生目標(biāo)的質(zhì)疑而產(chǎn)生,令我感到些許困惑和不安。而在這十幾年的職業(yè)生涯中,我也似乎總能在每個(gè)階段為自己找到一個(gè)繼續(xù)熱愛編程的理由,直到它已無法解答再一次疑惑的產(chǎn)生。就這樣一次又一次的循環(huán)往復(fù),我似乎漸漸理解了編程的意義……
編程是一項(xiàng)技能
回想大學(xué)畢業(yè)剛成為一名程序員時(shí),自己對技術(shù)是如此狂熱,我不斷地購買各類技術(shù)書籍,幾乎所有的業(yè)余時(shí)間也都被用來鉆研技術(shù),提高自己的編程能力。我也因此很快成了同一批入職新人中,編碼效率和質(zhì)量最突出的一個(gè)。而在那段時(shí)間里所做的技術(shù)積累,也成了我日后工作的堅(jiān)實(shí)基礎(chǔ),編程作為一項(xiàng)技能已經(jīng)深深地嵌入到了我的身體里。
即使到了今天,我仍非常懷念那段心無旁騖,一心鉆研技術(shù)的日子。我為能在工作中寫出的每一行優(yōu)秀代碼而興奮,更為每一天能在技術(shù)上取得的點(diǎn)滴進(jìn)步而喜悅,一切都是那么單純,編程的意義對于那時(shí)的我來說就在于技術(shù)本身。
編程是去解決問題
“能力越大,責(zé)任也也大”,這句電影“蜘蛛俠”中的經(jīng)典臺(tái)詞同樣適用于程序員的職業(yè)生涯。隨著技術(shù)能力的提升以及工作中獲得的認(rèn)可,我的職位也由原來的初級程序員變?yōu)榱速Y深開發(fā)工程師,以及后來的架構(gòu)師。相應(yīng)的,除了編程之外,我工作中的很大一部分時(shí)間需要用來與用戶進(jìn)行溝通,并分析他們提出的需求。對于我來說這個(gè)角色轉(zhuǎn)換的過程,是艱難甚至有些痛苦的。 我不得不用自己最薄弱的溝通技能去和用戶打交道,更要命的是我所習(xí)慣使用的那些技術(shù)語言有時(shí)很難讓他們理解。
我很快意識(shí)到自己已不再是那個(gè)只需被動(dòng)接受任務(wù)安排,并將自己的編程工作完成好就萬事大吉的初級程序員。除了技術(shù)之外,我更需要能夠突破程序員思維,去發(fā)現(xiàn)用戶需求背后所隱含的真正問題。我比以前變得更加務(wù)實(shí),不再刻意追求技術(shù)的高深,而是盡可能從問題本身出發(fā),選擇最有效的技術(shù)手段去解決它。
此時(shí),編程的意義也發(fā)生了改變,它已不再局限于技術(shù)本身,而成了解決問題的理想工具。
編程是在表達(dá),也是在創(chuàng)作
就這樣又過了幾年,當(dāng)“為什么要編程?”這個(gè)問題再次擺在我的面前時(shí),自己也已過了而立之年。對于大多數(shù)中國程序員來說,這個(gè)年紀(jì)已經(jīng)算是高齡,甚至還有很多人會(huì)認(rèn)為 30 歲還在編程,一定是混得不夠好吧。當(dāng)然,對于這些質(zhì)疑我也總是一笑了之。其實(shí),在此之前我也有過很多轉(zhuǎn)型的機(jī)會(huì),比如去業(yè)務(wù)部門,或是轉(zhuǎn)作管理等等,但最終我還是選擇留在了技術(shù)崗位上,因?yàn)槲矣X得編程仍是我最喜歡的,或許也是我唯一擅長的吧。
而這個(gè)時(shí)期也成了我整個(gè)程序員生涯的黃金期,我寫了公司的核心框架以及一些重要業(yè)務(wù)系統(tǒng)的核心算法。我很享受這段時(shí)光,因?yàn)槲乙褞缀醺惺懿坏侥切┘夹g(shù)上的牽絆,我更像雕刻師使用手中的刻刀一般,自如地運(yùn)用編程來實(shí)現(xiàn)那些我認(rèn)為優(yōu)秀的東西。
編程對于我來說已不再是一項(xiàng)技能或是工具,我是在通過編程進(jìn)行著自我表達(dá)與創(chuàng)作,這種感受帶給了我極大的自由度,而我也從中感受到了前所未有的喜悅與樂趣。
編程是為了留下痕跡
最終我還是走上了管理崗位,這里面有很多個(gè)人無法左右的因素(包括大環(huán)境、家庭、經(jīng)濟(jì)等等)。但我仍然更樂意被大家稱為程序員或者“老”程序員。就像在簡書的自我介紹中,我總是把全棧工程師放在那些“頭銜”的第一位,我也還在利用業(yè)余時(shí)間做自己喜歡的開源或個(gè)人項(xiàng)目。當(dāng)我再一次問自己“為什么要編程”時(shí),獲得了與以往不一樣的感悟:或許我們編程是為了能夠留下一些痕跡吧。
公司里最近都在為一個(gè)老系統(tǒng)的升級問題發(fā)愁,這個(gè)系統(tǒng)已經(jīng)運(yùn)行了將近 20 年時(shí)間了,為了升級系統(tǒng),大家不得不深入到這個(gè)系統(tǒng)的框架中,去讀底層代碼。我們讀到了一位已經(jīng)退休的美國同事Bill所實(shí)現(xiàn)的數(shù)據(jù)庫連接池代碼。在那個(gè)時(shí)候JAVA剛開始流行,還沒有像 Spring 這樣的框架,或是如 Hibernate 或 MyBatis 這樣標(biāo)準(zhǔn)的持久層實(shí)現(xiàn),這個(gè)系統(tǒng)中所有的數(shù)據(jù)庫連接池及核心持久層代碼都是由我的這位美國同事寫的,這些代碼讓整個(gè)系統(tǒng)穩(wěn)定運(yùn)行了將近20年,大家都不禁為他高超的技術(shù)水平發(fā)出由衷的贊嘆。
我還認(rèn)識(shí)一位從事證券交易軟件研發(fā)的公司 CTO,看年紀(jì)應(yīng)該已經(jīng)接近 50 了,但他仍然在親自寫著那些證券交易的核心代碼。當(dāng)我問他到了這個(gè)年齡和職位,為什么還要堅(jiān)持寫代碼時(shí),他告訴我,當(dāng)他看到自己所寫的代碼每天在支撐著千億級的證券交易時(shí),他感到非常興奮和自豪,并不斷地希望能夠通過自己的努力將它做得更好。
我的這個(gè)美國同事不會(huì)聽到大家為他十幾年前所代碼發(fā)出的zan嘆,股民們也不會(huì)知道這位 CTO 所寫的代碼正在支撐著他們的日常交易。那些優(yōu)秀的代碼是他們留下的痕跡,我們不能確定這些痕跡能夠保留多久,或許幾年,或許更短,但它們都曾經(jīng)在我們的日常生活中產(chǎn)生了重要的價(jià)值,而新的未來也將構(gòu)建在這些痕跡的基礎(chǔ)之上,我想這可能才是編程的意義所在吧。
我似乎理解了編程的意義,但我明白未來的某一天,我一定還會(huì)問自己同樣的問題——為什么要編程,希望到那個(gè)時(shí)候自己還能是那個(gè)熱愛編程,有著一顆匠心的“技匠”吧……
-
工程師
+關(guān)注
關(guān)注
59文章
1590瀏覽量
69499 -
編程
+關(guān)注
關(guān)注
88文章
3689瀏覽量
95256
發(fā)布評論請先 登錄


硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

(仰天長嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師




硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技

當(dāng)硬件工程師穿越到霸總?。?以他性格肯定忍不到第二集? #硬件工程師 #電路設(shè)計(jì) #晶振 #揚(yáng)興科技
RTL8153B-VB-CG集成以太網(wǎng)控制器數(shù)據(jù)手冊

當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛好者 #硬件工程師 #晶振 #揚(yáng)興科技

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?


評論