App下載

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

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

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

一、休息不夠

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

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

二、拒絕尋求幫助

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

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

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

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

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

四、混亂的代碼

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

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

五、工作和生活的不平衡

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

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

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

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

六、糟糕的辦公室政治

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

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

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

作為一位開(kāi)發(fā)人員,你會(huì)犯很多錯(cuò)誤,這不可避免也沒(méi)什么大不了的。但如果你總是犯同樣的錯(cuò)誤,不能從中吸取教訓(xùn),那就有問(wè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ì)自己太苛刻,誰(shuí)都會(huì)犯錯(cuò)。

八、太早放棄

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

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

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

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

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

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

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

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

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

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

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

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

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

0 人點(diǎn)贊