程序员如何让自己的工作更上一个台阶
軟件開發可能是一份吃力不討好的工作,你要有創意,并能解決問題。有時候你覺得自己的代碼寫得很優雅,卻無法向不懂代碼的人炫耀。經常看見好萊塢電影里面,導演把我們描繪成精英×××,坐在一個神秘的終端前面,很快就能破解政府部門的密碼,并在60秒內將整個數據庫復制到U盤里。不過,我覺得我連自己的筆記本電腦都破解不了,更不用說去破解別人的了,而且有時候我把一個Word文檔拷貝到U盤里都要花上不止一分鐘。
然而,在現實世界里,程序員并不像好萊塢導演們描述得那么厲害。我們的老板和同事并不在乎我們的代碼有多優雅。他們不明白,我們每天都會被問一些愚蠢的問題,比如估計需要多長時間可以完成某項功能,而之前我們對這些功能可能一無所知。坦率地說,我們經常被要求做一些甚至連他們自己都不知道是什么事情的事情!我們的價值常常以能否在數小時內快速寫出代碼來衡量。我們經常要面對不合理的截止期限,工作和生活的平衡往往是不存在的。不小心出個bug就有可能讓之前所有獲得的“好評”功虧一簣。事實上,更努力地工作通常只會讓別人提高對你的期望,而當你稍稍沒有達到“標準”,你在別人眼里就成了一個“懶鬼”。
我們都很欽佩像喬布斯和扎克伯格這樣的人,并且認為如果我們更有才華、更有創造力、更有動力,也會在工作中取得更大的成功。我們會一直工作到凌晨,學習最新的框架和技術,花費整個周末來重構我們的核心庫,以便更快、更高效地完成工作。而在很多情況下,我們忽視了自己的需求,忽視了朋友和家人,甚至忘記了為什么要這么折騰。有多少次,我埋頭苦干,把代碼寫出來,只是為了讓老板和同事不再抱怨,而不是為了得到什么榮譽或獎勵。
“為什么你需要這么長時間開發這個新功能?為什么QA會在你的代碼中找到bug?你不測試自己的代碼嗎?”
當有人說我們的小孩長得很丑,或者當我們付出的努力和犧牲只換來消極的反饋和抱怨時,我們很容易就進入“防御”模式。有時候別人只是指出代碼中被忽略的一個小問題,或者要求加入一個小功能,都可能會引來我們指責性的回應。我們如何回應他人,如何回應同事和客戶的抱怨,將會對我們的價值產生巨大的影響,并最終影響我們的職業生涯。
成功的程序員是那些抱有正確態度的人,好的態度終將勝過高超的技能,并且足以讓你得到非技術人士的認可和賞識。
移情是關鍵
真正能夠影響我們職業生涯的是我們的態度。正如之前所說的,沒有人會關心你工作了多少個小時,或者你的代碼有多么優雅、多么富有想象力。努力寫好代碼是我們的本職工作,我們不會因為做了分內事而得到額外的獎勵。
別人在意的是你如何回應他們的需求。不管是針對同事、客戶還是最終用戶,這個前提都適用。如果你想成為別人眼里的優秀員工,首先要讓他們欣賞你。我見過一些我認為最差勁的程序員,但他們在公司的位置卻一路直上,超越了那些經驗豐富和才華橫溢的程序員,僅僅是因為他們深諳職場的游戲規則,知道如何與別人相處。通常,這些人最終會成為領導者和管理者,而其他程序員則繼續在“氣泡”里掙扎,不明白自己錯在哪里,不明白為什么沒有得到應得的嘉獎。
讓我們舉一些典型的例子,看看我們應該怎樣做才能讓人們對我們做出更積極的回應。
老板:我不明白為什么需要3天時間才能在頁面上添加一個按鈕?喬上周添加一個新按鈕只用了2秒鐘!
錯誤的回答:喬開發的是Windows應用程序,并且他是往按鈕欄添加按鈕,而那個按鈕欄本來就是為了方便添加按鈕而設計的!而我這個是一個Web應用程序,它需要支持所有設備,動態適應屏幕大小,還要支持各種瀏覽器及國際化!頁面上沒有可以放額外按鈕的空間,所以我不得不重新設計頁面,在不同的瀏覽器上進行測試,確保頁面布局不會在小設備上發生錯亂,然后創建新服務,添加新邏輯……
那么為什么說這樣的回答并不妥當?老板可能確實不知道“添加一個按鈕”背后究竟有多少“隱形”的工作,不知道需要做多少前端測試,不知道你是加班才把按鈕加好的,他們是在拿蘋果和橘子做比較。但他們沒有義務知道這些,不是嗎?有時候,你的解釋聽起來都是借口,特別是當老板開始質疑你的時候。
我的建議是“讀懂老板的言外之意”,并從老板的角度看待事情。你的老板可能從來沒有寫過代碼,因為可能沒有必要,而且他真正想問的并不是為什么你花了那么長時間添加按鈕。你的老板關心的截止期限,如何讓客戶滿意,增加銷售額。關心你的老板關心的事情,用你的同理心體會老板的感受,并解決他們的需求和目標。
更好的回答:我可以理解你為什么這么沮喪,也知道添加這個新功能對你來說至關重要。這對我來說也很重要,我希望盡我所能把工作做到最好,讓我們的產品變得更完美,這樣我們的客戶就會很高興。添加這個按鈕涉及到很多后端操作,如果你愿意,我很樂意詳細解釋給你聽?;ㄙM一些額外的時間來確保按鈕在所有設備上都能正常工作,并進行徹底測試,這些是很有必要的。以后我會更頻繁地向你匯報進度,讓你更好地了解我在做什么以及進展情況。
換句話說,就是不要找借口,你甚至不需要解釋什么,你需要做的是讓他們知道你的感受,讓他們知道你也理解他們的痛點,并且也在關注他們所關注的事情。
QA:我測試了你添加的新按鈕,這是我第二次發現這個bug了。你有沒有看過我寫的bug描述?你在提交代碼之前有沒有測試過?
不好的回答:是的,我看了你寫的bug描述,并且按照你列出的步驟操作了,但就是無法重現問題,我還把過程錄下來給你了,你看了嗎?如果你想解決這個問題,就要想個辦法把它重現出來。
這樣回答的問題在于,帶有憤怒的情緒對事態的發展一點幫助都沒有。話里行間透著一股挫敗感,而且還給對方增加工作量,而這些本來是因為你的過錯和你的不作為所導致的。這個時候,要繼續發揮“移情”的能力。
更好的回答:感謝你的耐心,在客戶發現bug之前把它們攔了下來。因為我無法在我的系統中重現這個問題,是否可以明天早上開個會?我帶著筆記本電腦來找你,然后看你是怎么操作的。這樣可以確保我們都了解問題所在,或許我還可以當場把問題給解決了,這樣你就知道它已經過測試并準備好發布了。
在工作中得到認可的幾個技巧
永遠不要道歉,除非你真的需要彌補過失。相反,進行積極的回應。例如,把“我很抱歉花了這么長時間”改為“感謝你的耐心等待”。
向頂尖人物學習。找出工作中的“搖滾明星”,那些被人喜歡和信賴的人。他們做事的方式總能獲得他人的積極回應。與他們交朋友,模仿他們的行為方式。
比別人來得早走得晚。雖然不一定非要這么做,但人們確實會注意到你的來來去去。不過,如果其他人在上午7點就來了,而你在11點左右才到,人們會認為你是個懶鬼。如果大多數人工作到下午6點,而你4點左右就走了,他們也會認為你太懶散。
頻繁溝通。如果你每天都參加Scrum,那么很好,但如果你不參加Scrum,那么一定要向你的老板、領導和同事們說明你正在做什么,以及遇到什么困難。沒有必要太過冗長,只要做個快速更新就可以了,讓每個人都知道你正在做某件事,而且很上心。
在不工作時,不要談論工作。如果你和同事出去聚餐,在與工作無關的地方用餐,就沒必要再談論工作。你可以詢問他們家人的情況,問問他們最近的假期過得如何,或者聊聊他們感興趣的事情。
總得來說,當技術能力已經達到了一定階段,影響你后續發展的是軟實力。你可能會發現,積極的態度比優雅的編碼能夠讓你走得更遠。
轉載于:https://blog.51cto.com/13883564/2155213
總結
以上是生活随笔為你收集整理的程序员如何让自己的工作更上一个台阶的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: python 错误、调试和测试
- 下一篇: vmware14安装macos10.12
