1. 程式人生 > >休息不夠、程式碼混亂、傲慢……程式設計師需要避免的 10 個壞習慣

休息不夠、程式碼混亂、傲慢……程式設計師需要避免的 10 個壞習慣

在這裡插入圖片描述
1. 休息不夠

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

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

“我自己是一名從事了5年前端的老程式設計師,辭職目前在做講師,今年年初我花了一個月整理了一份最適合2019年學習的web前端乾貨,從最基礎的HTML+CSS+JS到移動端HTML5到各種框架都有整理,送給每一位前端小夥伴,web前端學習群957389100,這裡是小白聚集地,歡迎初學和進階中的小夥伴。"

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. 不接受建設性批評

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

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

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

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

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