编程不仅是写代码!?
作者 | keypressingmonkey
譯者 | 孫薇,責(zé)編 | 夕顏
出品 | CSDN(ID:CSDNnews)
1. 非天才生存指南
承認(rèn)這一點(diǎn)很難,我的正式簡(jiǎn)歷上也不會(huì)有:我是一名普通的程序員。我了解(大多)代碼,但.Net核心并非我的夢(mèng)想。因?yàn)镽uby代碼寫得不夠,無(wú)論Ruby、Gem還是寶石都和我無(wú)緣。我還沒(méi)能建立自己的框架,在編程語(yǔ)言中切換時(shí),我只找成本最低的。
?
這不意味著我不喜歡代碼。事實(shí)上,我非常熱愛(ài)它,要不了幾分鐘我就想換工作。我情緒激昂地痛恨敏捷方法論,因?yàn)榭傆腥擞X(jué)得這是什么全新的概念,需要我們額外再針對(duì)訓(xùn)練。對(duì)于技術(shù)世界里我這個(gè)小角落出的錯(cuò),我能抱怨好幾個(gè)小時(shí)——更別說(shuō)整個(gè)世界了。
?
但是,晚上上床的時(shí)候,我很高興有這樣一份熱愛(ài)的工作,能讓我保持足夠理智卻又瘋狂地度過(guò)整天時(shí)間,而不用非得把熱蠟滴在手上才能感覺(jué)到什么。這是相對(duì)美好的生活,本文我想給大家展示一下我是如何以及為什么學(xué)會(huì)享受它,并上手自己的工作的。
2. 從不討厭你的工作開(kāi)始
?
想要喜歡甚至愛(ài)上你的工作,可不是一轉(zhuǎn)念的事情,但不討厭它還是可以做到的。我進(jìn)入編程行業(yè)純屬偶然——我很擅長(zhǎng)計(jì)算機(jī),因此,盡管對(duì)于編程知之甚少,我還是發(fā)了些應(yīng)用,然后不知怎么的就獲得了學(xué)徒身份。跟我一起當(dāng)學(xué)徒的還有許多人,他們是自己選擇這份工作并努力修煉技能以期吸引雇主的。單編程來(lái)說(shuō),他們的技巧就遠(yuǎn)勝于我,且以后還將領(lǐng)先我數(shù)光年。
?
程序員的生活還有其他方面。之后我們會(huì)討論到,不過(guò)現(xiàn)在我要總結(jié)一下工作中那些可愛(ài)、古怪和有趣的小細(xì)節(jié)。
?
即便在我的學(xué)徒生涯期間,我對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限也相當(dāng)奢華。而且,由于經(jīng)常獨(dú)自探索,我開(kāi)始研究統(tǒng)計(jì)數(shù)據(jù)。我們的客戶里,有多少擁有這個(gè)、那個(gè)或者還是這個(gè)?大眾客戶會(huì)寫多少封郵件?通常聯(lián)系我們的原因是什么?
?
最后,我有點(diǎn)像數(shù)據(jù)庫(kù)偵探了,可以隨時(shí)在有人需要數(shù)據(jù)時(shí)快速進(jìn)行研究,或者執(zhí)行批量更新以節(jié)省客服支持人員大量的時(shí)間。這從來(lái)都不屬于我的正式工作職責(zé),但當(dāng)你利用閑余時(shí)間幫助他人時(shí),沒(méi)人會(huì)抱怨。
?
與我平常的工作不同,我不討厭這些事情。事實(shí)上,這些事很有趣,有時(shí)我還能在桌上發(fā)現(xiàn)表達(dá)謝意的巧克力棒。同時(shí)這也會(huì)讓其他碼農(nóng)喜歡你——即便我不喜歡巧克力,只會(huì)把巧克力送給有需要的同事。
3. 在你的工作上“更進(jìn)一步”
我一直遵循的普適規(guī)則就是,在某個(gè)領(lǐng)域成為專家,還不如在多個(gè)方面下功夫——編程方面更是如此。
?
想要做好工作,方法很多,或通過(guò)努力工作,或只是憑借經(jīng)驗(yàn),比別人更快地修復(fù)bug。假如你設(shè)法堅(jiān)持一會(huì)兒,就會(huì)看到看到地平線上的光,并開(kāi)始理解系統(tǒng)運(yùn)作的方式,從而發(fā)現(xiàn)那些讓別人滿頭大汗,感覺(jué)要出錯(cuò)的問(wèn)題,在你這里能找到小小的變通區(qū)域。
?
我的部分工作還包括諸如“生產(chǎn)數(shù)據(jù)庫(kù)測(cè)試”的粗暴行徑,關(guān)于這項(xiàng)工作,我針對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)進(jìn)行了一系列操作,包括繞過(guò)、欺騙、反轉(zhuǎn)和編輯,以修復(fù)那些我無(wú)法測(cè)試出的嚴(yán)重錯(cuò)誤,因?yàn)閿?shù)據(jù)庫(kù)每周只復(fù)制一次,還永遠(yuǎn)碰不上需要的時(shí)候。“祈禱并承諾”,我喜歡這么說(shuō)。可能發(fā)生的最壞情況是什么?
?
這可能會(huì)使工作中的純粹主義者陷入小型身份危機(jī),特別是考慮到?jīng)]有辦法對(duì)此進(jìn)行單元測(cè)試,而且,畢竟我是唯一在系統(tǒng)里操作的人,沒(méi)有人來(lái)批準(zhǔn)我的pull請(qǐng)求,因此我會(huì)直接進(jìn)入管理員分支。繞過(guò)這些愚蠢的規(guī)則花了我好些時(shí)間,才被允許登入管理員分支,我為此驕傲。絕望的時(shí)候需要絕望的措施。
?
上面這些意味著在編程世界中,關(guān)于“好”有許多方面。即便那僅僅意味著在事情突然以驚人的方式出現(xiàn)時(shí)你在那里,成為那種愿意承擔(dān)自己錯(cuò)誤并處理后續(xù)的人。
?
我深陷于“混亂善良”的角落,但正如我找到自己的利基縫隙一樣,在你的整個(gè)系統(tǒng)有序的情況下,任務(wù)都該死地井井有條,甚至連毫無(wú)編程技巧的人都能在需要時(shí)取代你的工作,所有工作都分配了合適的故事點(diǎn),你可以反向思考,尋找你的利基縫隙。設(shè)計(jì)專業(yè)的用戶故事(user story),在沒(méi)有法則的世界中對(duì)法則進(jìn)行優(yōu)雅的展示——所有這些都會(huì)讓你的領(lǐng)導(dǎo)在夢(mèng)中看到你的面孔。
4. 用你的技能做些有趣的事(并學(xué)習(xí)新技能)
編程是一項(xiàng)工作,在提出挑戰(zhàn)的同時(shí)也會(huì)賦予你能量。如今,我們幾乎可以用開(kāi)源工具和語(yǔ)言來(lái)構(gòu)建一切,教程涵蓋了幾乎所有你可能的愛(ài)好范疇。
?
因此,使用你的技巧并開(kāi)始吧,構(gòu)建一些類似隨機(jī)報(bào)價(jià)生成器之類的傻玩意兒,或者類似網(wǎng)站這樣為大家解決問(wèn)題的實(shí)用方案(還能讓你從訂閱費(fèi)用中獲取收益),或者任何只是些看似有趣的項(xiàng)目。我曾經(jīng)花費(fèi)了大量時(shí)間用PHP構(gòu)建了一個(gè)性愛(ài)故事生成器,因?yàn)槲蚁矚g自虐,在極其討厭PHP為時(shí)很久之后,我想要了解它。現(xiàn)在回想一下,這個(gè)項(xiàng)目可能還得就其自身寫篇辯白,可真是太詭異了。
?
這里的要點(diǎn)在于:大多情況下,你只需要花費(fèi)時(shí)間,而不必花費(fèi)金錢,并且有很多教程可以幫助你成長(zhǎng)。
5. 意識(shí)到編程不僅是寫代碼
我花了一陣子才意識(shí)到,同時(shí)人們也花了些時(shí)間才相信——我是有責(zé)任感的,但一點(diǎn)點(diǎn)地,我將整個(gè)工作變成了與最初完全不同的內(nèi)容。如今我寫代碼的時(shí)候相對(duì)較少,事實(shí)上我寫的那點(diǎn)東西也只夠讓自己記得我是個(gè)程序員。
?
相反,最終我成為了公司里一個(gè)相當(dāng)復(fù)雜而重要系統(tǒng)的唯一維護(hù)者。我組織自己的工作,與團(tuán)隊(duì)和普通同事溝通,參與會(huì)議并提供專業(yè)知識(shí)和意見(jiàn),并盡我所能來(lái)解決問(wèn)題。
?
盡管壓力很大,但我非常喜歡這種工作方式。沒(méi)有一天是相同的,而且,由于我處在所有煩人事務(wù)的接收端——從小bug引發(fā)的大問(wèn)題,到各種會(huì)議,我都不想錯(cuò)過(guò)——我總是很高興待在辦公室里讓自己保持忙碌。
?
我還喜歡和其他工作狂一起在辦公室里熬到深夜,那些令人放松卻又專注的奇妙時(shí)刻,各個(gè)部門的人聚在一個(gè)房間里,肩并肩地工作著,因?yàn)榫鸵絛eadline了。我喜歡參與這樣的并肩合作——被接納,受到歡迎。花費(fèi)兩個(gè)小時(shí)在一個(gè)連續(xù)SQL query中尋找一個(gè)丟失的空格很糟,但如果你旁邊的人也必須對(duì)抗自己的噩夢(mèng),這件事倒也沒(méi)那么難以忍受了。
6. 理解你公司的架構(gòu)和生態(tài)系統(tǒng)
?
前幾周,我們遇到了嚴(yán)重的系統(tǒng)宕機(jī)——不是我維護(hù)的系統(tǒng),但原本的維護(hù)者和他的臨時(shí)接替者,還有另一個(gè)可能了解情況的人要么生病,要么出國(guó)。
?
我對(duì)這個(gè)程序的工作原理有個(gè)大致了解,于是由我介入,再加上兩個(gè)跟我一樣幾乎一無(wú)所知的人。但最終,我們?cè)O(shè)法將錯(cuò)誤縮小到單個(gè)服務(wù)器故障,并與出售給我們系統(tǒng)的第三方公司協(xié)作,最終在周六清晨讓一切恢復(fù)正常了。
?
當(dāng)然,對(duì)于公司一半的人來(lái)說(shuō),那天是浪費(fèi)了。但原本是要浪費(fèi)的是兩到三天。這很容易帶來(lái)漲薪,因?yàn)闉榱瞬槊麇e(cuò)誤,我們對(duì)于系統(tǒng)的協(xié)作運(yùn)行機(jī)制有了大體概念,并深入瀏覽了日志文件。
?
老實(shí)說(shuō),這是最近記憶中最為瘋狂的時(shí)刻之一,同時(shí)也是最有趣的之一。我甚至還收到了部門領(lǐng)導(dǎo)的郵件,寫著“干得好”,而他也在偶遇時(shí)短暫認(rèn)識(shí)了我。幸運(yùn)的是,不會(huì)一直如此,之后我還可以回歸無(wú)名氏的角色,謝天謝地!
7. 溝通
?
在公司的有段時(shí)間里,我離被炒僅有幾步之遙,讀到這里的你很容易理解原因——同樣,也是因?yàn)槲易罱艿奖頁(yè)P(yáng)的那些工作。說(shuō)來(lái)話長(zhǎng),我總結(jié)一下,就是溝通使得我的工作被大家知曉,從而產(chǎn)生的區(qū)別。
?
處理所有無(wú)用的瑣事,比如在別人發(fā)現(xiàn)錯(cuò)誤并通知你時(shí)寫感謝信,在bug修復(fù)時(shí)回應(yīng),而且無(wú)論別人是否在乎,都要寫個(gè)簡(jiǎn)短的一分鐘說(shuō)明,第一時(shí)間解釋錯(cuò)誤發(fā)生的原因以及修復(fù)的方式。當(dāng)我這樣做的時(shí)候,我不僅發(fā)現(xiàn)大家(人數(shù)令人驚訝)喜歡我這樣做,還發(fā)現(xiàn)這個(gè)循環(huán)運(yùn)行起來(lái),最終結(jié)果又反饋到了我身上。應(yīng)答、回應(yīng)、預(yù)期、準(zhǔn)備,每天花一個(gè)小時(shí)單純跟人們聊天。
?
在這件事的過(guò)程中,我拾起了如今的座右銘:向傻瓜解釋一切,看著他們成為人類。
8. 結(jié)論
?
希望你們喜歡這篇文章,甚至?xí)X(jué)得有用。它確實(shí)保住了我的職位,還讓我能在樹(shù)林里買了間小屋,遠(yuǎn)離技術(shù)的喧囂。感謝閱讀!
原文鏈接:
https://medium.com/better-programming/how-to-thrive-as-an-average-programmer-1dd202540ac
Java工程師成神之路系列文章
在 GitHub 更新中,歡迎關(guān)注,歡迎star。
?
直面Java第313期:運(yùn)行時(shí)常量池在JDK各個(gè)版本中的實(shí)現(xiàn)?
深入并發(fā)第013期:拓展synchronized——鎖優(yōu)化
- MORE | 更多精彩文章 -
搞到一個(gè)IDEA插件,H哥30秒生成一個(gè)Spring Cloud Alibaba工程
程序員造輪子的正確姿勢(shì)
你看,公司狀告員工不加班,居然還告贏了
HashMap 的 7 種遍歷方式與性能分析!
如果你喜歡本文,
請(qǐng)長(zhǎng)按二維碼,關(guān)注?Hollis.
轉(zhuǎn)發(fā)至朋友圈,是對(duì)我最大的支持。
好文章,我在看??
總結(jié)
以上是生活随笔為你收集整理的编程不仅是写代码!?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2014广州赛区比赛总结
- 下一篇: 如何插入? | 非开车,纯技术交流