程序員的自我修養(yǎng)

轉載一篇文章 :程序員的自我修養(yǎng)

寫在前面

在學校時候,經(jīng)??吹竭@樣的一句話:‘昨夜西風凋碧樹,獨上高樓,望盡天涯路’,此第一境也;‘衣帶漸寬終不悔,為伊消得人憔悴,’此第二境也;‘眾里尋他千百度,驀然回首,那人卻在燈火闌珊處’,此第三境也。王國維說的,道理大家都懂。
有一天,看到了另外一個段子:“程序員的職業(yè)生涯,有四個境界:

  • 第一境界:
    《C程序設計語言》
    《Java編程思想》
    《C++Primer》
  • 第二境界:
    《教你怎么不生氣》
    《心經(jīng)》
    《老子》
    《沉默的憤怒》
  • 第三境界:
    《頸椎病康復指南》
    《腰椎間盤突出日常護理》
    《心臟病的預防與防治》
    《強迫癥的自我恢復》
    《精神病癥狀學》
  • 第四階段:
    《活著》

看看你現(xiàn)在處在哪個境界?
借用上面這個段子,想說的一件事是:程序員成長,是從學習專業(yè)知識,到通過解決問題積累經(jīng)驗,慢慢走向規(guī)范自己職業(yè)態(tài)度,培養(yǎng)職業(yè)習慣的過程。


image.png

感覺自己總是很忙,想想又沒有做什么

那么,第一步我們是在積累我們的知識和經(jīng)驗。
在我剛開始工作的時候,一直都是充滿了冒險精神的。剛學會一門語言時候的興奮,嘗試用自己會的東西去做一些有趣的嘗試,進而發(fā)現(xiàn)新的點。這個時候,有趣是多過職責的。
現(xiàn)在,很多時候都很忙,已經(jīng)失去了當時的那種新鮮的感覺,改不完的問題加上源源不斷的需求,每天很充實??墒腔仡^一想,卻發(fā)現(xiàn)自己也想不清楚今天到底做了什么,這個時候,這種充實就變的像陽光下的泡沫一樣了.
從根本上講,我們更習慣看得到的東西,所以當我們做了很多事,卻看不到它真的帶來了什么,導致我們?nèi)鄙僖环N目標達成感。


image.png

首先,我們需要為設立清晰的目標,哪怕一天,長到數(shù)年。
在目標設定中,SMART原則被普遍運用。

  • S(Specific):目標必須是具體的,要對標特定的工作指標,不能籠統(tǒng);
  • M(Measurable):目標必須是可衡量的,衡量的指標是數(shù)量化或者行為化的,驗證這些指標的數(shù)據(jù)或者信息是可以獲取的;
  • A(Attainable):目標必須是可實現(xiàn)的,在付出努力的情況下可以實現(xiàn);
  • R(Relevant):與其他目標有一定的相關性
  • T(Time-bound):目標必須有明確的截止期限 結合這個原則,為我們每天的努力設置一個可以達成的終點。

與此同時,我們每天需要花費幾分鐘來記下做了什么。有三個作用:一是方便回顧整理;二是看到自己完成的東西會有一種成就感,激勵你前行。三是方便寫周報。
說到記錄,推薦一個筆記本工具–OneNote。雖然這款筆記本工具配合Surface使用才能完全發(fā)揮它的作用;對于程序員來說,它能帶給我們的是任何時候以任何方式來記錄產(chǎn)生的想法。最后,好的程序員都應該有一個自己的代碼庫。里面可能是你最常用的工具類,也可能是使用某個框架的樣例。最重要的時時去更新,所謂騏驥一躍,不能十步;駑馬十駕,功在不舍。

BUG是自己的,即使是別人寫的

經(jīng)常有這樣一個場景:開發(fā)小A優(yōu)化了一個功能,上線后出了一個線上BUG,經(jīng)過排查是一個遺留問題。事后分析會,小A強調(diào)這是遺留的BUG,不屬于自己的責任。


image.png

事實上,小A沒有意識到,他離成為一個專家又遠了一步;當問題出現(xiàn)時,我們最需要做的兩件事:一是最快速的解決問題;二是總結分析問題出現(xiàn)的原因,為以后預防提供改進措施。
從團隊來講,不分彼此的保證上線的質量是培養(yǎng)我們團隊精神的一個好的方式。大家一起齊心去解決問題,互相理解和支持,互相形成正向力量,對大家的成長都作用巨大。而互相推諉,無疑會深深的傷害我們的團隊。
從個人成長來講,積極主動的去發(fā)現(xiàn)問題,解決問題,才能讓自己獲得快速的成長。這也是我們將理論上的專業(yè)知識轉變?yōu)閷氋F經(jīng)驗的重要方式。見得多了,才能會的多,才能少犯錯。
說到底,這是一個態(tài)度的問題。一直有個說法:“愛笑的人運氣都不會太差”,其實我更相信:“積極主動的人運氣都比較好”。因為第一個說法其實也是看顏值的,有時候太愛笑會被人當成二傻子。但是積極主動并不會,而且很多時候這種態(tài)度會帶動身邊的人也變得積極起來。

我們的工作是解決問題,而不是制造問題

以前的公司特別強調(diào)一個原則:“不要成為問題的制造者,而是終結者”。這一點深深的影響著我的工作方式。
首先,我們不應該成為問題的源頭,這是我們的職業(yè)準則; 遇到問題,很多人有一種鴕鳥心態(tài):


image.png

把頭埋進沙子里,來逃避自己面臨的問題和需要承受的痛苦,問題解決不了,就拖拖拖,往后拖,就當沒看見,興許到時神跡出現(xiàn)問題不見了呢。這都是自欺欺人。雖然鴕鳥策略會讓程序員暫時避免了痛苦,但卻不得不去承受另外兩種更深邃的痛苦:看不到希望的交付期和沒有盡頭的維護。
這樣并不會讓你真的收獲什么,也不會讓你下一次碰到同樣問題的時候給出解決方案。比起逃避,積極的面對,或許問題沒有你想的那么難。
學會處理問題的思路,在我看來比了解問題本身更重要。
首先,需要深入的去分析,去了解問題的現(xiàn)狀和影響,結合知識去發(fā)現(xiàn)原因;
其次,如果沒有很容易的找到原因,那么我們可能需要一些工具的幫助,平時多積累一些工具的使用方法,有可能一個命令能讓你少苦惱半天;
然后,如果問題到這里還解決不掉,可能就已經(jīng)超出了我們的能力范圍了,這個時候繼續(xù)自己一個人去想只會讓問題越拖越久,及時的求助,也許會讓我們的進展突飛猛進,當然,前提是尋找正確的人求助,你去問一個前端開發(fā)為什么內(nèi)存為什么溢出很顯然不會得到答案;
最后,我們做了這些還是解決不掉問題的時候,快速的拋出問題,向上反饋是最好的方案,畢竟你的老大拿的比你多,工作比你久,解決問題的經(jīng)驗也比你豐富的多,更重要的是可以及時止損。
再說一點對付那些百思不得其解的問題:先忘掉它,打個盹。


image.png

你不解決問題,你就會成為問題。作為程序員,這是我們一定要牢記的。面對問題的泥沼,不可能躍過,我們的選擇,只能是穿越。

捅死產(chǎn)品經(jīng)理?不如像產(chǎn)品經(jīng)理一樣思考?

程序員和產(chǎn)品經(jīng)理相愛相殺由來已久,矛盾點其實只有一句話:“這個需求要改了”。
做專業(yè)技術出身的人,往往會養(yǎng)成一種思維習慣,看問題的角度也會形成慣性,我們把這種思維習慣叫做工程師思維。而產(chǎn)品思維是產(chǎn)品經(jīng)理應該具備的思維模式。


image.png

工程師思維關注技術至上,技術水平代表他的實力,只要有可能,他傾向于在產(chǎn)品中使用先進、流行的技術,因為掌握先進主流的技術可以提高他的身價。
產(chǎn)品思維關注的是,這技術能給用戶帶來什么價值?有什么商業(yè)價值? 這二者并沒有對錯之分。
所以,當我們一次次抱怨產(chǎn)品該需求時候,我們更應該想的是:我有沒有理解產(chǎn)品經(jīng)理這么修改的意義,這樣的改動給我們帶來的是什么?這要求我們更經(jīng)常的去用產(chǎn)品思維思考問題,而不是局限于代碼層面。
當然,產(chǎn)品的改動并不都是有意義的,如果我們能夠從產(chǎn)品的角度去發(fā)現(xiàn)這種不合理,那我們的反駁會更有力度,最終被說服的人也許就是產(chǎn)品,而不是自己。
在這樣思考的同時,也會讓我們更深入的理解我們的業(yè)務,進而從業(yè)務角度來反向推動我們對技術的理解,這種得益是雙向的。

做事更細心?還不如給自己一些規(guī)范

相信大家都有這樣的時候,一個比較復雜的功能,自己辛辛苦苦的碼代碼,百般小心的測試,最后卻因為一個很小的疏忽功虧一簣。
是我們不夠認真嗎?還是我們不夠仔細?當你這樣問自己的時候,其實你還是沒有明白問題出在哪里。
可能我們首先想到的是態(tài)度問題,因為態(tài)度上不夠重視,所以才不夠小心,導致了問題的發(fā)生。
事實上,我們的腦力畢竟是有限的,面對復雜的場景百密也終有一疏,而作為程序員,這一疏卻是我們不能接受的。
與其一再的逼自己更小心一點,不如讓自己更嚴格的執(zhí)行我們的規(guī)范。
這里是一些我們經(jīng)常提到的規(guī)范:


image.png

用看的見的規(guī)范來約束自己的行為,是一種更容易達成的方式,也是一種更有力的保證。

寫在最后

要想質變與提升,必須有目的地停下碼代碼!
只寫代碼,不走心,那是萬萬不行的。不走心的程序員很多,干多少年了水平還和初干時差不多,十年如一日。走心就不一樣,走心一日如十年。
我們要周期性的回顧以前,看看以前的代碼,看看哪些可以改善,有多少種改善思路……這樣就能看出以前的自己與現(xiàn)在的自己這兩者之間的差距。如果你覺得自己以前的代碼優(yōu)化空間很大,那恭喜你,你絕對提升了不少。
回顧以前,別忘了看看現(xiàn)在。我們還要經(jīng)常做一下自檢,這樣就會對自己的能力邊界有所了解,知道自己知道什么,也知道自己不知道什么,更重要的是,你會發(fā)現(xiàn)自己能把什么東西學好用好,還能發(fā)現(xiàn)自己為什么可以把這些東西學好,那樣你就可以找到自己擅長的方向,做得更好。
回顧以前,看清了現(xiàn)在,還要想想將來。在技術上,我要在哪些方向繼續(xù)前行深入挖掘?這點非常重要。我們佇立現(xiàn)在,回首過去,仰望未來,這是上山的姿勢。
有人說到了山頂就只剩下山的路了……這到是實話,不過,顧城有首詩《避免》可以看看:

你說
你不愛種花
因為害怕看見花一片片的凋落
所以
為了避免一切的結束
你拒絕了所有的開始

不忘初心,方得始終!

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容