App下載

10 個(gè)壞習(xí)慣 程序員應(yīng)該避免

猿友 2020-09-19 12:02:33 瀏覽數(shù) (2739)
反饋

每個(gè)程序員在工作生涯、學(xué)習(xí)經(jīng)歷中,都會(huì)難免會(huì)養(yǎng)成一些壞習(xí)慣。在本文中,小編向讀者展示一些有了而且很難改的壞習(xí)慣。希望如果你剛接觸程序員這個(gè)職業(yè),能夠盡量避免這些壞習(xí)慣;如果你已經(jīng)有了這些壞習(xí)慣,那希望你能夠意識(shí)到它們,并可以開始改變

一、休息不夠

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

我建議你每天盡量多休息。我不能說那種具體而微的計(jì)劃,因?yàn)槊總€(gè)人都不一樣,但在一般意義上,你應(yīng)該每小時(shí)都應(yīng)該起身伸展四肢,活動(dòng)一下,喝杯咖啡,吃點(diǎn)東西。很多時(shí)候,如果你思路停滯,那你需要休息一下,大腦得到休息有助于更容易地解決問題。所以找到適合你的休息方式。即使你認(rèn)為自己不需要休息,但也試一下,你會(huì)發(fā)現(xiàn)自己的效率提高了不少。

二、拒絕尋求幫助

這一條在學(xué)習(xí)和工作場景中都很常見。我們很多人都不尋求幫助。原因很多,但我認(rèn)為最主要的原因無非是自尊以及害怕讓人認(rèn)為自己啥也不會(huì)。我們很多人都有冒名頂替綜合征,覺得自己不完全勝任自己的工作。我在公司里、在和客戶打交道時(shí)、甚至在上課和輔導(dǎo)中都有這種感覺。我們認(rèn)為尋求幫助會(huì)強(qiáng)化這種感覺。但事實(shí)上,它浪費(fèi)了大量時(shí)間,阻礙了你的成長。

  • 其他真正的開發(fā)人員們都是視頻或書籍一般的資源,甚至要比這些好太多。他們可以直接回答你的問題,幫助你真正的理解它。
  • 只有混蛋才會(huì)因?yàn)槟銌枂栴}而批評(píng)你,這時(shí)候我會(huì)盡力避開這些人。
  • 如果你想要自己找到答案,不想尋求幫助,那也沒問題,給自己一個(gè)時(shí)間限制。當(dāng)你的前輩就在你旁邊,他可能知道或至少可以幫到你的時(shí)候,千萬不要浪費(fèi)幾天時(shí)間來尋找答案。

三、停止學(xué)習(xí)

我不管你是否是從業(yè)20余年的高級(jí)開發(fā)人員,你應(yīng)該一直把自己當(dāng)成一個(gè)學(xué)生。這比大多數(shù)職業(yè)的要求更高,因?yàn)檫@一行總在變化。沒有一個(gè)開發(fā)人員可以知道所有事情的全部內(nèi)容,他們這一分鐘這樣做,下一分鐘就有變化發(fā)生,他們就必須學(xué)習(xí)更多。如果你驕傲自滿,停止閱讀、學(xué)習(xí),你必然會(huì)落后。即便你有一份不需要學(xué)習(xí)任何新東西的工作,一旦你失去了那份工作(這并非不可能發(fā)生),你會(huì)遠(yuǎn)遠(yuǎn)落后。所以即使有這樣的工作,我也建議你邊工作邊學(xué)習(xí)。

不管你喜歡那種語言、框架、庫,你都要及時(shí)更新你的知識(shí)。如果你的職位需要的只是舊知識(shí),這也是可理解的,因?yàn)楹芏囝I(lǐng)導(dǎo)傾向于認(rèn)為如果公司還沒沒落,那就沒必要修復(fù)。所以你仍然會(huì)發(fā)現(xiàn)有些團(tuán)隊(duì)用著過時(shí)的、不受支持的技術(shù),只因?yàn)樵摷夹g(shù)還能運(yùn)行。如果你邊工作邊學(xué)習(xí)這方面的新東西,那你就可以向團(tuán)隊(duì)展示更快、更高效、更簡單的新技術(shù)是可能的。你或許能夠說服他們更新技術(shù)、改善公司。

四、混亂的代碼

這一條更多地是一種技術(shù)習(xí)慣,但也可能意味著很多事情。你應(yīng)當(dāng)以一種直觀、高效、安全的方式寫代碼。這在自學(xué)的時(shí)候簡直太難了,因?yàn)樵谙嚓P(guān)的課程中,你學(xué)到的不是寫某些代碼的最佳方法,而是導(dǎo)師認(rèn)為這么寫最容易理解一些核心概念。所以,你必須進(jìn)行一些額外的研究,找出清理你代碼的最佳方法。

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

五、工作和生活的不平衡

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

我在這個(gè)領(lǐng)域有很多經(jīng)驗(yàn)。我和妻子有兩個(gè)孩子,其中一個(gè)患有自閉癥,但我沒法像我想的那樣花大量的時(shí)間陪他們。我面臨著雙重困境,因?yàn)槲壹纫幚砭幋a問題,又要處理內(nèi)容創(chuàng)作者的問題,要不斷地提出新想法,有質(zhì)量地記錄下來等等。

如果你是自由職業(yè)者,為自己工作,所有的生計(jì)都取決于完成工作,你只有把所有的事情做完才能拿到報(bào)酬。有報(bào)酬,也就必然得承受持續(xù)不斷的擔(dān)憂:自己是否能跟上進(jìn)度、自己能否完成任務(wù)。壓力真的很大,讓我們不得不把其他事情從我們生活中擠走。并不是說在公司工作的人就不會(huì)經(jīng)歷這些,而是說當(dāng)你需要考慮所有的事情的時(shí)候,壓力等級(jí)完全不同。所以我很同情那些有自己生意的人。

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

六、糟糕的辦公室政治

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

  • 很多時(shí)候你們會(huì)在想法和解決方案上發(fā)生沖突,試著表現(xiàn)得老練和對(duì)對(duì)方的尊重,但同時(shí),也不要太容易就被說服,尤其是當(dāng)你對(duì)自己的提案非常有信心的時(shí)候。
  • 不要大喊大叫,不要罵人,千萬別做這些事情,這什么用也沒有。
  • 如果他們開始這樣對(duì)待你,你就離開,做一個(gè)更強(qiáng)大的人。
  • 如果你不幸遇到了一個(gè)十足混蛋的團(tuán)隊(duì)成員,他完全不聽理由,你除了想辦法避開他之外,別無他法。
  • 在某些情況下,你可能不得不和你們的領(lǐng)導(dǎo)交談,不過我還是建議你先和那個(gè)人談?wù)劇?/li>

七、不能從錯(cuò)誤中吸取教訓(xùn)

作為一位開發(fā)人員,你會(huì)犯很多錯(cuò)誤,這不可避免也沒什么大不了的。但如果你總是犯同樣的錯(cuò)誤,不能從中吸取教訓(xùn),那就有問題了。

當(dāng)你犯錯(cuò)后,我建議你遵從這樣一個(gè)流程:

  • 找出錯(cuò)誤的根本原因是什么;
  • 找到可以防止錯(cuò)誤再次出現(xiàn)的流程;
  • 弄清楚如果早先發(fā)現(xiàn)了錯(cuò)誤,能否避免后果。

當(dāng)你犯下大錯(cuò),請(qǐng)你仔細(xì)思考一下這三件事,很有可能就不會(huì)再犯這個(gè)錯(cuò)誤了,或者你至少下次會(huì)盡早發(fā)現(xiàn)錯(cuò)誤,避免情況惡化。同時(shí),不要因?yàn)榉稿e(cuò)而對(duì)自己太苛刻,誰都會(huì)犯錯(cuò)。

八、太早放棄

挫折是編程的重要環(huán)節(jié)。我制作了一些關(guān)于挫折及其應(yīng)對(duì)的視頻。我也見過很多人因?yàn)榫趩识谔囟ǖ捻?xiàng)目和編程上過早言棄。一些項(xiàng)目確實(shí)特別難,似乎一旦你修復(fù)了一些bug,它就會(huì)導(dǎo)致另一個(gè)bug,bug復(fù)bug無窮盡也。你可能開始覺得自己處理不了,自己本可以去做別的,做這個(gè)就是浪費(fèi)時(shí)間浪費(fèi)生命浪費(fèi)金錢……你開始產(chǎn)生很多消極的想法。如果你很快就放棄某個(gè)項(xiàng)目,或是很快辭職,那么擬投入到這個(gè)項(xiàng)目或工作中的一切都將化為泡影。

我并不是說你啥項(xiàng)目都不能放棄,只是我看過太多次人們?cè)诩磳⒊晒Φ那耙狗艞壛?。所以在放棄之前,確保你試盡了所有可能:已經(jīng)上下求索、尋求幫助、用遍方法、換個(gè)技術(shù)、休息很長一段時(shí)間讓自己的思緒恢復(fù)正常、如果可能的話已經(jīng)擱置了一段時(shí)間……你在放棄之前做了所有能做的事情,如果還是失敗,那么也許是時(shí)候放棄它、繼續(xù)前進(jìn)了。成功可能就在眼前,如果你這時(shí)候放棄,真的太恥辱了。

九、做一個(gè)無所不知的人

我之前提到過,我認(rèn)為一些開發(fā)人員十分傲慢的原因是,他們認(rèn)為自己無所不知。他們從不聽其他人的意見,他們?yōu)樯兑犇??他們知道所有的答案。如果你周圍全是這樣的人,那真是糟透了,這對(duì)你也沒好處,因?yàn)槟阋矔?huì)認(rèn)為自己無所不知,就會(huì)不積極學(xué)習(xí)、不改善自己。我敢打賭,總有一天你會(huì)被自己犯下的錯(cuò)誤叫醒,這源于你不聽取任何人的意見,也不自己進(jìn)行調(diào)研。

這些人大多數(shù)都是Stack Overflow網(wǎng)站(一個(gè)IT技術(shù)問答網(wǎng)站)的魔鬼,他們?nèi)⌒π麻_發(fā)人員的問題,嘲笑他人的回答,一有機(jī)會(huì)就點(diǎn)擊“反對(duì)”。我討厭死這些人了。我認(rèn)為他們中的許多人在學(xué)校里就總是被人找茬,他們利用自己的知識(shí)欺負(fù)其他可能有問題或是沒有所得的開發(fā)人員,看上去像是忘掉了被欺負(fù)的感受,只想要復(fù)仇。我這個(gè)理論可能有問題,只是一家之言。

無論他們出于什么原因這么做,我認(rèn)為如果他們思想開放、歡迎不同的想法、尊重他人,那他們就會(huì)比總是想要“正確”的人快樂多了。他們可能是團(tuán)隊(duì)中最聰明的人,也是最糟糕的人,因?yàn)闆]人愿意和他們合作,無法進(jìn)行良好的溝通。對(duì)于一個(gè)想要成功的團(tuán)隊(duì)來說,溝通和團(tuán)結(jié)是必需的,而無所不知的人會(huì)破壞這些。所以,如果你是這樣的人,試著別那么自負(fù),開放一點(diǎn),尊重一點(diǎn),你會(huì)走得更遠(yuǎn)。

十、不接受建設(shè)性批評(píng)

最后一條和上一條有點(diǎn)聯(lián)系,不能接受建設(shè)性批評(píng)。無所不知的魔鬼和真心想要幫助你的人之間還是有很大區(qū)別的。有時(shí)你很難看清這個(gè)區(qū)別,因?yàn)閯e人指出你的錯(cuò)誤或者不完善的地方,你可能感覺不是那么好,感覺自己受到他人的攻擊。

但很多情況下不是這樣的,這只是某個(gè)人想教給你一個(gè)更好的方法,或是分享自己的意見。作為內(nèi)容生產(chǎn)者,我花了很久才學(xué)會(huì)分辨挑事者和好心人。一開始,有人談?wù)撐胰绾巫瞿呈碌臅r(shí)候,我都很有戒心。但我意識(shí)到,他們中的許多人只是在試圖提供合理的幫助。如果他們并非不尊重,或者只是對(duì)一些無關(guān)緊要的事情挑三揀四,那我就需要把它當(dāng)做對(duì)我和對(duì)我的知識(shí)有益的東西。

建設(shè)性的批評(píng)是學(xué)習(xí)的絕佳資源,因?yàn)榻ㄔO(shè)性的批評(píng)很有針對(duì)性,是你現(xiàn)有的問題,是他人給你的具體解決方案,這是無價(jià)的。事實(shí)上,代碼審查簡直太棒了,你可以得到其他人的建議,改進(jìn)你的代碼甚至是你自己。

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

無論是新開發(fā)人員,還是經(jīng)驗(yàn)豐富的老手,我都希望這些建議能夠幫助到你們。

以上就是W3Cschool編程獅關(guān)于10 個(gè)壞習(xí)慣程序員應(yīng)該避免的相關(guān)介紹了,希望對(duì)大家有所幫助。

0 人點(diǎn)贊