摘要:本周,編碼之道的最終章,做專業(yè)的程序員。言必行,諾必達(dá)程序員的職業(yè)素養(yǎng)中有個(gè)章節(jié)就是在講程序員如何說是,也就是怎么去做承諾。我覺得我們的文化有更優(yōu)雅的詞來形容它,就是言必行,諾必達(dá)程序員需要謹(jǐn)慎的做出承諾,而一旦做出承諾,就要努力做到。
我想選一個(gè)詞來形容我們要如何對(duì)待編程這件事,或是我們要成為一個(gè)什么樣的程序員。
當(dāng)然,可選的詞匯其實(shí)挺多的,比如技術(shù)能力強(qiáng),思維敏捷,對(duì)技術(shù)有熱情,學(xué)習(xí)能力強(qiáng)等,這些都算得上很好的詞匯。
但我認(rèn)為,如果需要用一個(gè)詞來做為我們的職業(yè)上想要達(dá)到的境界,我更喜歡專業(yè)這個(gè)詞。
它幾乎能包含一切其它詞語。
本周,編碼之道的最終章,做專業(yè)的程序員。本系列的其它文章為:
你還記得你為什么會(huì)選擇編程這個(gè)事?
也許你是因?yàn)檫@個(gè)行業(yè)的待遇還算不錯(cuò),也許是因?yàn)閷?duì)技術(shù)比較喜好,也許是對(duì)自己一行一行代碼能編寫出有價(jià)值的軟件這種成就感更著迷,不論目的如何,終有一個(gè)問題,是你需要詢問自己:
我要做一個(gè)怎么樣的程序員
這個(gè)問題我給自己的答案是:
待人以誠(chéng),處事以專
這是我給自己職業(yè)上的座右銘。它大致的意思是:
對(duì)待同事,客戶或領(lǐng)導(dǎo)等任何人,用最真誠(chéng)的態(tài)度與他們相處,無論我個(gè)人是否喜好他們。而對(duì)待工作上的事情,則力求做到專業(yè)性,用一種專業(yè)的態(tài)度對(duì)對(duì)待工作中的事情。
所以,這就是為什么我在編程的過程,我會(huì)寫單元測(cè)試,努力做到以TDD的方式去編碼,對(duì)待后端的開發(fā),我通常會(huì)自己使用JMeter做性能測(cè)試,因?yàn)槲蚁胫牢覍懙臇|西性能上是否足夠滿足需求,而我?guī)缀鹾敛宦湎碌恼J(rèn)真去編寫每一個(gè)文檔。而在需要我設(shè)計(jì)一個(gè)原型時(shí),我會(huì)購買墨刀的服務(wù)去做這個(gè)事,因?yàn)槲矣X得這是最基本的專業(yè)性的要求,雖然我并不是一個(gè)產(chǎn)品經(jīng)理也不需要做到這個(gè)程度。
我在做這些事的過程中,沒有任何人要求過我這樣,它們大多是自我要求的產(chǎn)物。因?yàn)槲蚁M约菏且粋€(gè)專業(yè)的程序員。
你做為一個(gè)程序員的自我要求呢,有沒有思考過這個(gè)問題?
那以我不多的經(jīng)歷來看,做為一個(gè)專業(yè)的程序員,要怎么才能做到?
我總結(jié)了一些原則,我試著解釋下它們,我希望這些原則能引發(fā)你的思考。
原則一:編程的最高使命是:維護(hù)軟件的業(yè)務(wù)價(jià)值與技術(shù)價(jià)值
我覺得這是最重要的原則,編程這個(gè)事的目的是什么,就是為了維護(hù)軟件的業(yè)務(wù)價(jià)值與技術(shù)價(jià)值。做為程序員,這個(gè)原則要時(shí)刻牢記在心,我們所有的努力都是為了這個(gè)目標(biāo)。
而關(guān)于業(yè)務(wù)價(jià)值與技術(shù)價(jià)值,我在編碼之道的前面的文章中已詳細(xì)闡述過我的思考了。
原則二:好才是快,效率至上
是的,我知道我們行業(yè)的一些情況并不能盡如人意,一些門外漢總是希望通過無止境的延長(zhǎng)工作時(shí)間來達(dá)到他們?cè)O(shè)定的一些目標(biāo)。他們的價(jià)值觀是:通過延長(zhǎng)每日工作時(shí)間來做到更快。
這也我們的行業(yè)存在大量的垃圾代碼的原因所在。
但我始終告訴自己的一個(gè)信念是:想要做的快,唯一的方式是把它做好。
在我的經(jīng)歷中,遇見很多次類似的經(jīng)歷,那種一開始通過過度加班來達(dá)到短期目標(biāo),而在后期卻發(fā)現(xiàn)需要付出越來越多的時(shí)間來保持可維護(hù)性的例子挺多的。
我確實(shí)深刻的理解到了一個(gè)事實(shí)就是:
沒有好,想要快就如同鏡中花,水中月
做正確的事
Google最開始的口號(hào)是"不做惡",后面在某一年開始,他們把它改成了"做正確的事"。
做正確的事當(dāng)然比不做惡的要求更高。
那對(duì)于我們編程來說,什么叫做正確的事?這是需要你去思考的。
在Robert C.Martin的《程序員的職業(yè)素養(yǎng)》這本書中,有兩個(gè)章節(jié)我覺得非常契合這個(gè)理念,其中一個(gè)是說不,另外一個(gè)是承諾。
也就是:
該說不的時(shí)候要說不,該做承諾的時(shí)候要承諾并做到
要事優(yōu)先
這其實(shí)是時(shí)間管理中的一個(gè)理念,我們的所有事,可以按照緊急程度與重要程序進(jìn)行切分,這樣就會(huì)有重要且緊急的事,重要但不緊急的事,不重要但非常緊急的事,不重要且不緊急的事四個(gè)象限。
你要學(xué)著對(duì)自己的任務(wù)進(jìn)行分類,并且你會(huì)隨時(shí)隨地面臨一個(gè)選擇:
究竟是緊急的事做先處理,還是重要的事優(yōu)先處理?
要事做先,這是標(biāo)準(zhǔn)答案。
但我遇到情況是:講要事優(yōu)先的人多,真正這樣做的人卻不多。
舉個(gè)例,知道要事優(yōu)先的人,無論在什么樣的處境下,都能盡最大努力做到編寫單元測(cè)試,因?yàn)檫@是極其重要的事。雖然可能有更緊急的進(jìn)度功能開發(fā)情況,但要事優(yōu)先,不是嗎?
保持對(duì)技術(shù)的熱情與學(xué)習(xí)
如我在編碼之道中反復(fù)說的一個(gè)點(diǎn)就是:術(shù)是不斷變換的,而道則穩(wěn)定得多。
我們不停的在用不同的術(shù)在編寫我們的代碼,年復(fù)一年,它們永遠(yuǎn)在變化,在更新。雖然我認(rèn)為學(xué)習(xí)道是更重要的,但學(xué)習(xí)道的根本方式就是通過不斷的去使用不同的術(shù)來達(dá)到的。
所以,不要把自己停在某一個(gè)點(diǎn)上,也就是自我限制自己只能使用某些語言或框架,如果有機(jī)會(huì),就去嘗試使用不同的。
這就需要一個(gè)前提,你需要保持對(duì)技術(shù)的熱情與學(xué)習(xí)。
而一個(gè)程序員,如果失去了對(duì)技術(shù)的熱情,編程這件事就注定不可能做好了。
言必行,諾必達(dá)
《程序員的職業(yè)素養(yǎng)》中有個(gè)章節(jié)就是在講程序員如何說是,也就是怎么去做承諾。
我覺得我們的文化有更優(yōu)雅的詞來形容它,就是言必行,諾必達(dá)
程序員需要謹(jǐn)慎的做出承諾,而一旦做出承諾,就要努力做到。
而技術(shù)人員與非技術(shù)人員之間總是有一道隔閡的一個(gè)重要原因也在于,非技術(shù)人員不理解技術(shù),而理解技術(shù)的我們很多時(shí)候做出來的承諾沒有完成。約定時(shí)間需要完成的功能沒有按時(shí)完成,期望的質(zhì)量無法達(dá)到。于是很多非技術(shù)人員在管理上就選擇延長(zhǎng)每日工作時(shí)間來預(yù)防以及解決這些。
所以,如果你期望別人不會(huì)以一種門外漢的姿態(tài)來干涉你,我認(rèn)為你得做到這一點(diǎn),就是你得很專業(yè),不僅如此,要讓那些不懂技術(shù)的也知道你很專業(yè),而且你能說到做到。
這樣,相信外行領(lǐng)導(dǎo)內(nèi)行的情況就會(huì)慢慢變少了。
當(dāng)然,技術(shù)上的東西有些困難或情況我們是壓根沒有辦法預(yù)料到的,這是正常的情況,你只需要及時(shí)更新情況,并據(jù)此做出新的承諾就好了。
這便是我在從事了十多年的編碼之后,在幾乎完整的參與了后端,移動(dòng)端,桌面端,前端各個(gè)方向的開發(fā)后,形成的一些對(duì)技術(shù)的感悟與理解。
所以,我把它們用文章的形式記錄下來。
我希望自己十年后,二十年后,能夠?qū)幋a有不同的感悟與理解,到那個(gè)時(shí)候,我會(huì)再次重寫編碼之道這個(gè)系列。
這也是微言碼道的來源與初衷。
所以微言碼道的口號(hào)是:
用我們微小的力量傳播編碼之道
它并不是居高臨下式的傳播與指教。而是在理解到了技術(shù)如同大海一樣深不可測(cè),廣不可視之后的自我努力與嘗試。并且希望能有更多程序員一起去不斷的探索編程這個(gè)事,把編程這件事做的更好。
所以,編碼之道這個(gè)系列,我與自己許下一個(gè)約定:
十年后再見
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/120962.html
摘要:對(duì)于專業(yè)的開發(fā)者來說,單元測(cè)試是一項(xiàng)必備的技能,多數(shù)的程序員卻不具備測(cè)試驅(qū)動(dòng)開發(fā)的能力。對(duì)于工程來說,開源項(xiàng)目基本都嚴(yán)格遵守執(zhí)行單元測(cè)試,而很多商業(yè)的工程則在單元測(cè)試方面有所缺失。一個(gè)擁有單元測(cè)試的項(xiàng)目會(huì)變得更加容易維護(hù)和更改。 作為一名合格的Java程序員,日常工作除了上班擼代碼就是加班擼代碼。擼碼其實(shí)不難,無非詢問Google,StackOverflow,解決方法和demo一籮...
摘要:與此類似,理所當(dāng)然的,我們程序員也會(huì)有自己的圣經(jīng)。這便是程序員的圣經(jīng)三個(gè)原則我認(rèn)為做為一個(gè)程序員,最神圣的就是三個(gè)原則,它幾乎能完整無誤的定義做為一個(gè)程序員應(yīng)該如何去編碼。 ...
摘要:面對(duì)這些較高的要求,前端在開發(fā)環(huán)節(jié)中的作用也變得越來越重要因而近幾年來前端工程師備受青睞一般水平的前端工程師平均年薪可達(dá)萬元資深前端工程師年薪高達(dá)萬元。這種用戶體驗(yàn)的細(xì)節(jié)問題是否處理妥當(dāng)是判斷一名前端工程師是否優(yōu)秀的因素。 本文是為了給那些想要了解前端開發(fā)是什么,或者剛剛打算開始學(xué)習(xí)前端的朋友們準(zhǔn)備,希望可以幫助準(zhǔn)備入行的你;showImg(https://segmentfault.c...
摘要:剛來深圳時(shí),除了一腔夢(mèng)想,我什么都沒有。在深圳混到第六年頭的時(shí)候,事情有了轉(zhuǎn)折。說得世俗一點(diǎn),手中沒錢,心下無膽,在深圳過的不盡如人意,又始終回不去家鄉(xiāng)沒有衣錦還鄉(xiāng),故鄉(xiāng)就是世界上最牽掛,卻始終不敢想的地方。 ...
閱讀 2082·2023-04-25 21:11
閱讀 2969·2021-09-30 09:47
閱讀 2283·2021-09-24 09:48
閱讀 4445·2021-08-23 09:43
閱讀 902·2019-08-30 15:54
閱讀 571·2019-08-28 18:01
閱讀 1408·2019-08-27 10:55
閱讀 595·2019-08-27 10:55