程序員的 10 個壞習慣!你佔了幾個?

認識到並改正,壞習慣就不是壞習慣。

編者按:每位開發人員在自己的職業生涯、學習經歷中,都會“開發”出一些壞習慣。在這篇文章中,作者向讀者展示他自己有或是老也改不了的壞習慣。

他希望如果你剛開始這份事業,能夠避免這些壞習慣;如果你已經有了這些毛病,那希望你能夠意識到它們,並可以開始改變。

1. 休息不夠

我敢肯定你們很多人或者說幾乎所有人都對這個壞習慣感到十分罪惡。我也是,對沒有休息或休息不夠依然有罪惡感。曾有一段時間,我凌晨六點入睡,中午一點左右起來喫午飯,一直工作到第二天凌晨六七點。這簡直太常見了,幾乎每天都是如此。在工作任務緊急的時候,我做過許多可笑的事情。我想我們每個人面對DDL的時候都有過這樣的情況,我要說的不是這種,而是你的日常習慣。

我建議你每天儘量多休息。我不能說那種具體而微的計劃,因爲每個人都不一樣,但在一般意義上,你應該每小時都應該起身伸展四肢,活動一下,喝杯咖啡,喫點東西。很多時候,如果你思路停滯,那你需要休息一下,大腦得到休息有助於更容易地解決問題。所以找到適合你的休息方式。即使你認爲自己不需要休息,但也試一下,你會發現自己的效率提高了不少。

2. 拒絕尋求幫助

這一條在學習和工作場景中都很常見。我們很多人都不尋求幫助。原因很多,但我認爲最主要的原因無非是自尊以及害怕讓人認爲自己啥也不會。我們很多人都有冒名頂替綜合徵,覺得自己不完全勝任自己的工作。我在公司裏、在和客戶打交道時、甚至在上課和輔導中都有這種感覺。我們認爲尋求幫助會強化這種感覺。但事實上,它浪費了大量時間,阻礙了你的成長。

  • 其他真正的開發人員們都是視頻或書籍一般的資源,甚至要比這些好太多。他們可以直接回答你的問題,幫助你真正的理解它。
  • 只有混蛋纔會因爲你問問題而批評你,這時候我會盡力避開這些人。
  • 如果你想要自己找到答案,不想尋求幫助,那也沒問題,給自己一個時間限制。當你的前輩就在你旁邊,他可能知道或至少可以幫到你的時候,千萬不要浪費幾天時間來尋找答案。

3. 停止學習

我不管你是否是從業20餘年的高級開發人員,你應該一直把自己當成一個學生。這比大多數職業的要求更高,因爲這一行總在變化。沒有一個開發人員可以知道所有事情的全部內容,他們這一分鐘這樣做,下一分鐘就有變化發生,他們就必須學習更多。如果你驕傲自滿,停止閱讀、學習,你必然會落後。即便你有一份不需要學習任何新東西的工作,一旦你失去了那份工作(這並非不可能發生),你會遠遠落後。所以即使有這樣的工作,我也建議你邊工作邊學習。

不管你喜歡那種語言、框架、庫,你都要及時更新你的知識。如果你的職位需要的只是舊知識,這也是可理解的,因爲很多領導傾向於認爲如果公司還沒沒落,那就沒必要修復。所以你仍然會發現有些團隊用着過時的、不受支持的技術,只因爲該技術還能運行。如果你邊工作邊學習這方面的新東西,那你就可以向團隊展示更快、更高效、更簡單的新技術是可能的。你或許能夠說服他們更新技術、改善公司。

4. 混亂的代碼

這一條更多地是一種技術習慣,但也可能意味着很多事情。你應當以一種直觀、高效、安全的方式寫代碼。這在自學的時候簡直太難了,因爲在相關的課程中,你學到的不是寫某些代碼的最佳方法,而是導師認爲這麼寫最容易理解一些核心概念。所以,你必須進行一些額外的研究,找出清理你代碼的最佳方法。

  • 我絕對建議你使用“避免重複代碼原則”(DRY principle,don’t repeat yourself)。如果你遇到常見的代碼塊,那就創建某種“類”(class)或“函數”(function)來合併這部分功能,而不是僅僅重複它。這讓代碼更加簡潔,節省了大量代碼行,並且便於他人使用。
  • 你也要注意性能,比如壓縮圖片、縮小JavaScript和CSS。你可以使用task runner(如gulp)或其他工具自動完成壓縮,面對小型任務,你甚至可以使用minifier.org等手動完成。
  • 另外,不要進行不必要的API接口調用,要使你的全棧應用程序以儘可能少的請求完成你需要的全部功能。以及測試……我在這上面犯了很多錯,沒有做足夠的測試。就我所知,單元測試有助於搭建更健全的應用程序,避免潛在問題,節約時間和開銷。但我就是很討厭它,這可能是我最壞的習慣之一,也是我成爲更好的開發人員需要解決的大問題。有時候我們回了節約時間減少測試,但在現實中,這樣做會降低應用程序的性能、效率和可讀性,而且與一開始就採用正確的方法相比,它可能在將來引起更大的麻煩。所以請記住這一點。

5. 工作和生活的不平衡

工作和生活的平衡真的很重要,尤其是當我們成家以後。不管什麼類型的程序員都要花大量的時間在工作上,這有很多原因:事情總在發生變化;我們遇到的問題讓我們寸步難行;我們需要研究這些問題等等……這就導致了很多時候,我們不得不工作到很晚、很早就開始工作、週末也加班。這會讓你遠離生活中的一切,比如你愛的人們、你的個人愛好。你可能喜歡運動、遠足或是在外喫大餐,但假如你一直要加班,你就沒法做這些讓你快樂的事情。

我在這個領域有很多經驗。我和妻子有兩個孩子,其中一個患有自閉症,但我沒法像我想的那樣花大量的時間陪他們。我面臨着雙重困境,因爲我既要處理編碼問題,又要處理內容創作者的問題,要不斷地提出新想法,有質量地記錄下來等等。

如果你是自由職業者,爲自己工作,所有的生計都取決於完成工作,你只有把所有的事情做完才能拿到報酬。有報酬,也就必然得承受持續不斷的擔憂:自己是否能跟上進度、自己能否完成任務。壓力真的很大,讓我們不得不把其他事情從我們生活中擠走。並不是說在公司工作的人就不會經歷這些,而是說當你需要考慮所有的事情的時候,壓力等級完全不同。所以我很同情那些有自己生意的人。

但即便如此,你也不能讓它控制你的生活,你必須爲你的家人和朋友留出時間,或者更坦率地說,爲你自己留出時間。生活可遠比寫幾行代碼豐富多了。做你自己喜歡的事情,給你的生活帶來平衡。

6. 糟糕的辦公室政治

這一條是給那些在公司工作的人們的。你和其他人一起工作,但這反過來又會引起衝突、分歧、爭論等等。許多開發人員十分傲慢,總認爲自己是正確的,即使他們知道自己犯了錯,他們中的一些人也永遠不會承認。我不是說這是大多數開發人員,但我認爲我們至少會遇到一位這樣的人。我聽很多人說,他們的團隊非常棒,成員之間相處得非常融洽,這很好,但不是所有團隊都是這樣子。

  • 很多時候你們會在想法和解決方案上發生衝突,試着表現得老練和對對方的尊重,但同時,也不要太容易就被說服,尤其是當你對自己的提案非常有信心的時候。
  • 不要大喊大叫,不要罵人,千萬別做這些事情,這什麼用也沒有。
  • 如果他們開始這樣對待你,你就離開,做一個更強大的人。
  • 如果你不幸遇到了一個十足混蛋的團隊成員,他完全不聽理由,你除了想辦法避開他之外,別無他法。
  • 在某些情況下,你可能不得不和你們的領導交談,不過我還是建議你先和那個人談談。

7. 不能從錯誤中吸取教訓

作爲一位開發人員,你會犯很多錯誤,這不可避免也沒什麼大不了的。但如果你總是犯同樣的錯誤,不能從中吸取教訓,那就有問題了。

當你犯錯後,我建議你遵從這樣一個流程:

  • 找出錯誤的根本原因是什麼;
  • 找到可以防止錯誤再次出現的流程;
  • 弄清楚如果早先發現了錯誤,能否避免後果。

當你犯下大錯,請你仔細思考一下這三件事,很有可能就不會再犯這個錯誤了,或者你至少下次會盡早發現錯誤,避免情況惡化。同時,不要因爲犯錯而對自己太苛刻,誰都會犯錯。

8. 太早放棄

挫折是編程的重要環節。我製作了一些關於挫折及其應對的視頻。我也見過很多人因爲沮喪而在特定的項目和編程上過早言棄。一些項目確實特別難,似乎一旦你修復了一些bug,它就會導致另一個bug,bug復bug無窮盡也。你可能開始覺得自己處理不了,自己本可以去做別的,做這個就是浪費時間浪費生命浪費金錢……你開始產生很多消極的想法。如果你很快就放棄某個項目,或是很快辭職,那麼擬投入到這個項目或工作中的一切都將化爲泡影。

我並不是說你啥項目都不能放棄,只是我看過太多次人們在即將成功的前夜放棄了。所以在放棄之前,確保你試盡了所有可能:已經上下求索、尋求幫助、用遍方法、換個技術、休息很長一段時間讓自己的思緒恢復正常、如果可能的話已經擱置了一段時間……你在放棄之前做了所有能做的事情,如果還是失敗,那麼也許是時候放棄它、繼續前進了。成功可能就在眼前,如果你這時候放棄,真的太恥辱了。

9. 做一個無所不知的人

我之前提到過,我認爲一些開發人員十分傲慢的原因是,他們認爲自己無所不知。他們從不聽其他人的意見,他們爲啥要聽呢?他們知道所有的答案。如果你周圍全是這樣的人,那真是糟透了,這對你也沒好處,因爲你也會認爲自己無所不知,就會不積極學習、不改善自己。我敢打賭,總有一天你會被自己犯下的錯誤叫醒,這源於你不聽取任何人的意見,也不自己進行調研。

這些人大多數都是Stack Overflow網站(一個IT技術問答網站)的魔鬼,他們取笑新開發人員的問題,嘲笑他人的回答,一有機會就點擊“反對”。我討厭死這些人了。我認爲他們中的許多人在學校裏就總是被人找茬,他們利用自己的知識欺負其他可能有問題或是沒有所得的開發人員,看上去像是忘掉了被欺負的感受,只想要復仇。我這個理論可能有問題,只是一家之言。

無論他們出於什麼原因這麼做,我認爲如果他們思想開放、歡迎不同的想法、尊重他人,那他們就會比總是想要“正確”的人快樂多了。他們可能是團隊中最聰明的人,也是最糟糕的人,因爲沒人願意和他們合作,無法進行良好的溝通。對於一個想要成功的團隊來說,溝通和團結是必需的,而無所不知的人會破壞這些。所以,如果你是這樣的人,試着別那麼自負,開放一點,尊重一點,你會走得更遠。

10. 不接受建設性批評

最後一條和上一條有點聯繫,不能接受建設性批評。無所不知的魔鬼和真心想要幫助你的人之間還是有很大區別的。有時你很難看清這個區別,因爲別人指出你的錯誤或者不完善的地方,你可能感覺不是那麼好,感覺自己受到他人的攻擊。

但很多情況下不是這樣的,這只是某個人想教給你一個更好地方法,或是分享自己的意見。作爲內容生產者,我花了很久才學會分辨挑事者和好心人。一開始,有人談論我如何做某事的時候,我都很有戒心。但我意識到,他們中的許多人只是在試圖提供合理的幫助。如果他們並非不尊重,或者只是對一些無關緊要的事情挑三揀四,那我就需要把它當做對我和對我的知識有益的東西。

建設性的批評是學習的絕佳資源,因爲建設性的批評很有針對性,是你現有的問題,是他人給你的具體解決方案,這是無價的。事實上,代碼審查簡直太棒了,你可以得到其他人的建議,改進你的代碼甚至是你自己。

所以不要把這類事情都看成人身攻擊,除非你真的受到了攻擊,或是故意的取笑和不尊重。聽進別人的批評或改進建議總是很難,但最終,這會讓你成爲一個更棒的開發者。

無論是新開發人員,還是經驗豐富的老手,我都希望這些建議能夠幫助到你們。

作者:Brad Traversy
原文:https://medium.com/@traversymedia/10-bad-habits-to-avoid-as-a-developer-64a1677c60fe
譯文:https://36kr.com/p/1723113324545
編譯組出品。編輯:郝鵬程 近期熱文推薦:

1.600+ 道 Java面試題及答案整理(2021最新版)

2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!

3.阿里 Mock 工具正式開源,幹掉市面上所有 Mock 工具!

4.Spring Cloud 2020.0.0 正式發佈,全新顛覆性版本!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章