當(dāng)談到編程時(shí),很多人應(yīng)該都有聽(tīng)過(guò)10x程序員的說(shuō)法。 據(jù)說(shuō)一個(gè)10x程序員的效率大約是其他程序員的10倍。
這是一個(gè)有爭(zhēng)議的話題,無(wú)論你選擇相信10x程序員,還是認(rèn)為這十分可笑,下面的10個(gè)習(xí)慣可以在一定程度上助你成為一名勢(shì)不可擋的優(yōu)秀程序員。
1、積極使用搜索工具
作為開(kāi)發(fā)人員,你需要了解如何利用搜索解惑,查看其他人對(duì)你正在研究的主題所討論的話題和內(nèi)容,并將學(xué)到的知識(shí)應(yīng)用于手頭的項(xiàng)目。
當(dāng)面臨一個(gè)問(wèn)題,優(yōu)秀的程序員應(yīng)該知道如何花很少時(shí)間去查驗(yàn)和解決手頭的問(wèn)題。
2、保持初學(xué)者心態(tài)
技術(shù)發(fā)展如此之快,需要不斷地學(xué)習(xí)新技術(shù)。 因此,當(dāng)沒(méi)有經(jīng)驗(yàn)的時(shí)候,你需要適當(dāng)?shù)赜眯碌囊暯强创虑椤?yōu)秀的開(kāi)發(fā)人員享受作為新技術(shù)的初學(xué)者的過(guò)程,并掌握自我教育的節(jié)奏,以盡快自給自足。
每個(gè)專家在某個(gè)時(shí)間點(diǎn)都可能是一個(gè)初學(xué)者。 而且有這么多的技術(shù),即使在某個(gè)技術(shù)領(lǐng)域是專家,在另一個(gè)可能就是菜鳥(niǎo)。
3、將小事做好
當(dāng)編寫程序時(shí),它通常會(huì)讓你覺(jué)得需要做出十億個(gè)決定,即使你只是添加一個(gè)小功能。 你需要考慮諸如命名變量、調(diào)用函數(shù)、命名CSS屬性、使用hash與使用數(shù)組、命名事物等等。
為你干的事情做好命名是編程中一個(gè)重要的部分。 這不容易, 但很重要。有開(kāi)發(fā)人員還開(kāi)玩笑說(shuō),在計(jì)算機(jī)科學(xué)領(lǐng)域有兩個(gè)難題:緩存無(wú)效+命名。
新程序員通常不會(huì)對(duì)變量和函數(shù)命名足夠重視, 普通程序員會(huì)花更多的時(shí)間去思考它,而優(yōu)秀的程序員已經(jīng)通過(guò)之前遇到錯(cuò)誤和問(wèn)題學(xué)到了經(jīng)驗(yàn)。 他們找到了來(lái)幫助他們命名變量的模式,他們甚至不需要再去考慮它,因?yàn)橐恢毖赜孟嗤姆绞矫秃谩?/p>
4、收放自如
在構(gòu)建應(yīng)用程序的過(guò)程中,往往需要做出重大決策,這將影響你如何編寫大多數(shù)代碼。例如,在ruby中,你可能需要權(quán)衡MiniTest和RSpec之間的區(qū)別。 人們對(duì)于這些類型都有著強(qiáng)烈的自我意見(jiàn)和看法,因此容易引起爭(zhēng)執(zhí)。 但是優(yōu)秀的開(kāi)發(fā)人員想法不同,往往不太在意這些,他們重視編寫、測(cè)試的習(xí)慣,他們知道你使用的具體工具其實(shí)不那么重要。
優(yōu)秀的程序員往往不參與其他開(kāi)發(fā)者的相互爭(zhēng)執(zhí)和指責(zé)中,他們更收放自如。
5、使用正確的工具
在編程中,有許多不同的開(kāi)源庫(kù)、工具和框架可供使用。 優(yōu)秀的程序員不斷地評(píng)估他們正在使用的工具,并找出為工作選擇正確工具的方法。 由于他們習(xí)慣自給自足,他們?cè)敢獬惺軐W(xué)習(xí)新東西的痛苦,只要它們能幫其提升效率。
有很多的開(kāi)發(fā)人員喜歡去搜索和查看相關(guān)的文檔、博客文章來(lái)比較工具,并最終選擇一個(gè)單一的工具。但優(yōu)秀的開(kāi)發(fā)人員會(huì)將他們的研究縮小到2-3個(gè)選項(xiàng),并迅速將這些工具應(yīng)用到他們的項(xiàng)目,以了解它們是如何在他們的環(huán)境中工作的。
6、理解“code is cheap”
優(yōu)秀的程序員往往可以產(chǎn)生更多的產(chǎn)出,因?yàn)樗麄儾粫?huì)被沉沒(méi)成本誤導(dǎo)。這些東西很容易導(dǎo)致人們做出不合理的行為,特別是在編寫代碼的時(shí)候……
在編碼中,沉沒(méi)成本的誤導(dǎo)涉及到花費(fèi)在解決某個(gè)問(wèn)題上的時(shí)間。例如,考慮一個(gè)場(chǎng)景,其中某人開(kāi)始為項(xiàng)目編寫代碼,并預(yù)計(jì)需要大約一個(gè)星期。他們根據(jù)這個(gè)預(yù)期做出決定,在完成項(xiàng)目一整個(gè)星期后,他們意識(shí)到它實(shí)際上需要一個(gè)月。大多數(shù)開(kāi)發(fā)人員將繼續(xù)他們已經(jīng)開(kāi)始的路徑走下去,證明他們的決定,并展示已經(jīng)做了一個(gè)星期的進(jìn)展來(lái)進(jìn)行說(shuō)服自己。
但是優(yōu)秀的開(kāi)發(fā)者思考方向不同:
“有一種其它的方法,我認(rèn)為只需要半個(gè)月就能搞定。這意味著如果采取這種方法,它將可能比我保持現(xiàn)在的路徑一直走到底要快兩倍。”
7、使用正確的技術(shù)
一群人在屋里評(píng)估技術(shù),然后忽略掉一個(gè)在特定技術(shù)里的大拿這種情況并不罕見(jiàn)。
例如,我非常有聲望,我對(duì) Elixir 編程語(yǔ)言很是看好。但是這項(xiàng)技術(shù)很新,如果想要實(shí)際構(gòu)建復(fù)雜的功能,可能會(huì)相對(duì)其它更難找到相應(yīng)的開(kāi)源技術(shù),這將提升團(tuán)隊(duì)構(gòu)建的難度。
解決問(wèn)題需要最實(shí)際的決定,使用的技術(shù)應(yīng)該是基于它能夠很容易在2016年,在目前實(shí)現(xiàn)。在2017年、2018年、2020年,技術(shù)可能會(huì)有所不同,那時(shí)候再根據(jù)需要進(jìn)行調(diào)整。
8、不知道就說(shuō)“不知道”
拒絕承認(rèn)你不知道的東西是很容易導(dǎo)致浪費(fèi)你時(shí)間的事情。 作為一個(gè)優(yōu)秀的程序員,你要明白你的自我價(jià)值并不受那些你不懂的東西束縛。
初學(xué)者經(jīng)常難以發(fā)現(xiàn)最新技術(shù)的發(fā)展趨勢(shì),優(yōu)秀的開(kāi)發(fā)者會(huì)意識(shí)到,他們所知道的每一種技術(shù)(編程語(yǔ)言,框架,庫(kù)等)都可能不再是明天的可行選擇。 他們會(huì)提前考慮更高級(jí)別的編程方式和問(wèn)題解決方式。
9、始終分析錯(cuò)誤消息中提示的線索
傳統(tǒng)教育告訴我們,失敗是不可取的。當(dāng)學(xué)習(xí)代碼時(shí),錯(cuò)誤消息通常與失敗相關(guān)聯(lián)。學(xué)習(xí)如何排除故障和調(diào)試錯(cuò)誤消息是一個(gè)重要的技能。
還值得注意的是,開(kāi)發(fā)人員可能會(huì)再次遇到類似的錯(cuò)誤消息。你應(yīng)該專注于學(xué)習(xí)如何解決問(wèn)題,以及為什么你需要解決它們。這樣做將允許你以更快的速度修復(fù)類似的錯(cuò)誤。
10、不安于目前的成功
錯(cuò)誤往往是最好的學(xué)習(xí)機(jī)會(huì), 所以不要把錯(cuò)誤當(dāng)作失敗。 相反,將他們當(dāng)作可學(xué)習(xí)的機(jī)會(huì),并評(píng)估如何防止情況下一次發(fā)生。成長(zhǎng)的關(guān)鍵是理解如何使同樣的錯(cuò)誤只有一次。
編程,就像生活中的許多事情一樣。這就是為什么這么多的行為,能幫助你做好一名優(yōu)秀的程序員,也能幫你在日常生活中做一個(gè)優(yōu)秀的人。
責(zé)任編輯:wv
-
程序員
+關(guān)注
關(guān)注
4文章
950瀏覽量
29763
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論