色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

成為優秀程序員的7個方法

工程師人生 ? 來源:網絡整理 ? 作者:工程師吳畏 ? 2018-11-21 11:18 ? 次閱讀

程序員總是有很多的決定,不是嗎?如果你的新年待辦事項還是空白的話,那么可以考慮使用下面這些程序員的想法。即使是最聰明的人,也還有成長空間。以下內容摘錄自 Kevlin Henney 的《程序員應該知道的97件事》。

1.在怪罪其他東西之前先檢查自己的代碼

質疑一下你自己和他人的預設情況。來自不同供應商的工具,可能內置有不同的預設,也有可能相同的供應商提供不同的工具。

當有人想你報告一個你無法重復的問題之時,去看看他們做了些什么。他們可能會做一些你沒有想到的事情,或者是按照不同的順序來做那件事。

我的原則是,如果我遇到一個我無法避免的bug時,我會首先考慮是編譯器的錯誤,然后我就會去檢查堆棧是否被破壞了。這可以通過跟蹤代碼來實現,可以有效地移除問題。多線程問題是另一個絞盡腦汁也不容易找到的錯誤來源,通常還伴隨著機器的錯誤。當一個系統使用多線程的時候,所有的簡單的代碼的錯誤都會成倍地增長。不能依靠調試和單元測試去發現這樣的兼容性問題,所以簡單的設計是最重要的。

總之,在你怪罪你的編譯器之前,請記住福爾摩斯的忠告:“當你把所有的不可能都排除了,那么剩下的東西,無論他有多么的不可能,都必定是真相。”Dirk Gently也說了類似的話。

——Allan Kelly

2.持續學習

我們生活在一個有趣的時代。隨著全球化的發展,你要知道有大量的人都能勝任你的工作。你需要不斷地學習,以維持競爭力。否則,你會成為一個落伍的人,永遠做著相同的工作,直到你不再被需要,或者這個工作被廉價外包給其他人的那一天。

因此,你打算做些什么呢?有些大方的老板會提供訓練來拓寬你的技能。而其他的公司并不會給你空閑的時間和金錢去做任何的訓練。所以為了工作的穩定,你需要為自己的教育負責。

這里是一些讓你持續學習的方法清單。其中許多都能夠隨便在網上找到:

閱讀書籍、雜志、博客、Twitter和其他網站。如果你想對一個目標進行更深入的研究,考慮添加一個郵件列表或新聞組

如果你真想專注于某一種技術,那就動起手來——寫一些代碼

成為行業的頂尖人物可能會妨礙你的學習,你得盡量與導師合作。雖然你可以從任何人那里學到東西,但是從那些比你更聰明或更有經驗的人那里你能夠學得更多。如果你不能找到一個導師,那就繼續去找

使用虛擬的導師。在網上找一些作者或者開發人員,他們寫的東西你都會喜歡并且都會看的。訂閱他們的博客

了解你所使用的框架和庫。知道了他們是如何工作的,你使用起來就更得心應手。如果他們是開源的,你就很幸運了。使用調試器來單步執行,去觀察他們內部是如何運作的。你將會看到那些真正聰明的人所編寫和審閱的代碼

當你做錯了或者是在修復bug,或者是碰到一個問題的時候,嘗試去深入了解到底發生了什么。有可能其他人也遇到了同樣的問題,并且把2他發布在了網上。Google這時候就非常有用了

學習一樣東西的一個好方法就是去傳授和談論它。當人們想要聽你講解并且想問你問題的時候,你就會更加積極地去學習。在工作中使用lunch-‘ n’-learn方法,可以是一個用戶組或者是一個本地的協會

加入或者創辦一個研究小組(社區的模式)或本地用戶組,可以研究你們感興趣的語言,技術或者是法律

多去參加會議。如果你不能去,很多的會議都會把內容免費發布到網上的

想要長期通勤?聽一下博客吧

你是否曾經在一個代碼庫上運行一個靜態分析工具或者在你的IDE里看到一些警告?弄明白他們報告的是什么,為什么要報告

遵循高效程序員的建議,每年學習一門新的語言。至少學習一門新的技術或者是一個新的工具。弄一個分支出來添加上你的想法,以便你能夠在你目前的知識庫里使用

并不是你應該學的每一樣東西都必須跟技術有關。學習你工作領域的一些東西,能夠讓你更加了解需求,并且能夠給幫助你解決一些商業問題。學習如何提高工作效率,學習怎樣更高效低工作是一個不錯的選擇

返回學校

如果你有《黑客帝國》里的尼奧那樣的能力就好了,能夠直接下載我們需要的東西到大腦里面去。但是我們并沒有,所以必須花費一定的時間去學習。你不必每時每刻都在學習。一點點時間足以,比如一周一次,有總比沒有好。我們總得有一些工作之外的生活。

科技發展如此迅速,我們不要被甩在后面了。

——Clint Shank

3.不要害怕破壞某些東西

每一個具有行業經驗的人無疑曾在一個充滿不穩定性的項目中工作過。這個系統是很難重構的,通常改變一個地方就會觸及到另一個不相關的地方。每當要添加一個模塊的時候,程序員的目標都是盡量少改動,在每一個版本中都是小心翼翼的。這就和把建造摩天大樓當做搭積木一樣,容易造成災難。修改對的時候是非常傷腦筋的,因為系統已經生病了。它需要一個醫生,否則狀況就會越來越差。雖然你已經知道了你系統發生了什么錯誤,但是你還是害怕“打破雞蛋去煮你的煎蛋卷”。一個熟練的醫生知道,為了做手術就必須開刀,而且她也知道開刀只是暫時的,而且很快就會愈合。對于最初的疼痛來說,做手術是非常有價值的,患者通常都會獲得比做手術前更好的狀態。

不要去擔心你的代碼。當你在做事的時候如果暫時被打斷,誰會去擔心呢?對改變的恐懼會讓你的項目將進入這樣的狀態。花一些時間去重構項目會讓你節約很多的時間。還有一個額外的好處就是一個團隊面對這個損壞的系統的處理經驗會讓你們明白該怎樣才能讓它正常工作。要學會運用這些知識,而不是抵觸他們。每個人都不應該把時間花在自己所討厭的東西上。重新定義內部接口,重組模塊,重構、復制、粘貼代碼,并通過減少依賴來簡化設計。你可以通過消除極端情況來減少代碼的復雜度,他們通常會產生不當的耦合性。慢慢地將舊架構過渡到新的架構,邊改邊測試。試圖在一個可能產生很多問題的大項目上進行一次大的重構,這些問題可能慧然你在中途就放棄之前所作的所有的努力。

作為一個醫生,是不應該害怕切除患病的部位,以留出愈合的空間。態度是會傳染的,并且會激勵其他人去對那些一直拖延著的項目進行修改。去列出一個團隊都感覺良好的項目的清單。雖然這些任務可能不會產生明顯的效果,但你得去說服管理層,他們就會減少開支,加速對新版本的開發。永遠不要停止關心代碼的總體“健康度”。

——Mike Lewis

4.做專業的程序員

一個專業的程序員最重要的特征就是個人責任感。專業的程序員會對自己的生涯、自己的估計、自己的日程安排、自己的錯誤以及自己的作品負責。一個專業的程序員是不會把這些責任推給其他人的。

如果你是一個專業人員,那么你就會對自己的工作負責。你有責任閱讀和學習。你有責任追趕業界及技術的潮流。而很多程序員都認為這是他們上司的工作。對不起,這是大錯特錯的。你認為醫生也會那樣做嗎?你認為律師也是那樣的嗎?不是的,他們會利用自己的時間和金錢去學習。他們花費大量的下班時間去閱讀期刊和做出計劃。他們會時刻更新自己,我們也必須這樣做。你和雇主之間的關系只是為了履行合同。總之:你的雇主承諾給你工資,你就得承諾去把這份工作做好。

專業的程序員會對他們編寫的代碼負責。如果他們不清楚代碼是否會正常的工作,就絕不會輕易放出代碼。試想一下,如果打算放出一個不確定的代碼,你還有可能是一個專業的程序員嗎?專業的程序員都不希望QA來發現他們的錯誤,因為他們如果不經嚴格測試是不會放出代碼的。當然,QA也許會找到一些問題,因為沒有什么是完美的嘛。但是作為專業人士,重要的是我們的態度,我們決不能讓QA找到什么問題。

專業人士都是團隊合作。他們會對整個團隊的未來負責,這并不是他們個人的工作。他們互相幫助,彼此教導,互相學習,甚至包括別人需要的任何時候。當一個隊友倒下,其他人都會去關心,因為他們知道他們都有互相需要的時候。

專業的人士是不會容忍一大串bug列表的。一個巨大的bug清單是非常粗心的。一個在問題跟蹤數據庫里有成百上千問題的系統是粗心釀成的悲劇。事實上,在大多數的項目中,如果非常依賴問題跟蹤系統,那么他們肯定總是粗心大意的。只有非常大的系統才可能會又這么長的bug清單,這個時候需要的是自動化的管理。

專業人士不會把事情弄得一團糟,他們會對自己的工作引以為豪。他們保持代碼的整潔,結構的良好,而且便于閱讀。他們跟隨著默認的標準而且做出了很好的實踐。他們永遠不會趨之若鶩。假設你能夠在醫生給你做開放式心臟手術的時候靈魂出竅。這個醫生有一個最后期限(只是字面意義上的)。他必須在心肺循環功能損失過量血細胞之前完成。你覺得他該怎么做?你是想要他們像典型的軟件開發人員那樣匆忙而且混亂嗎?或者想要他們說“我待會兒再回來解決”?還是你要他們小心地遵循著紀律,抓緊時間,相信他自己的做法是目前可以采取的最好的方法。你是想要一片混亂還是專業精神呢?

專業人員得有責任感。他們會對自己的事業負責。他們會對代碼的正常運行負責。他們對自己工作的質量負責。即使最后期限迫在眉睫,他們也不會放棄自己的原則。事實上,當壓力越來越大的時候,專業人員甚至會對這些原則要求得更緊,因為他們認為這是對的。

——Robert C. Martin (Uncle Bob)

5.利用代碼分析工具

測試的價值是在他們編程之旅的早期階段就灌輸給開發者的。今年來,單元測試,測試驅動開發,以及敏捷方法的興起都被大量地用于開發周期的每一個過程。然而,測試只是眾多能夠提高代碼質量的工具之一。

回到早期階段,當C語言還是一個新興的技術的時候,CPU的時間和存儲的形式都是非常珍貴的。第一個C語言編譯器注意到了這一點,所以通過一些語義分析減少了便利代碼的次數。這意味著在編譯階段,只能檢測到一小部分的錯誤。為了彌補這個,Stephen Johnson編寫了一個叫做lint的工具,這個工具能夠取出你的代碼中的一些冗余,實現了在其相似的C編譯器中已經去除的靜態分析。然而,靜態分析工具,會增加大量的無用警告或者是一些關于文體問題的不必要的警告。

當前,語言、編譯器和靜態分析工具的情況是非常不同的。內存和CPU時間現在也變得非常的便宜,所以編譯器能夠承擔更多的錯誤檢測。幾乎每一種語言都至少擁有一個工具來檢查違規的格式和常見的問題,不過有時,那些隱含的錯誤并不會被檢測到,比如潛在的空指針引用。對于更復雜的工具,比如針對C的SPlint,針對Python的Pylint,都是可配置的,也就是說,你可以通過一個配置文件選擇這個工具在命令行或者是IDe里要發出什么錯誤和警告。SPlint甚至會讓你在注釋里注釋你的代碼,以給別人更多關于程序運行的提示。

如果一切都失敗了,你發現你自己正在尋找一些你的編譯器或IDE或lint工具沒有捕獲的簡單的bug或者是一些違規行為,你就得收起你所有的靜態分析工具。這并不像聽起來那么困難。大多數編程語言,尤其是那些聲稱是動態的語言,都會把他們的抽象語法樹和編譯工具作為其標準庫的一部分。去了解你正在使用的這個語言的開發團隊的標準庫的細節是非常有意義的,因為這樣你就能發現一些有價值的東西,這對于靜態分析和動態測試是非常有用的。比如:Python標準庫包含了一個反匯編程序,它會告訴你生成一些編譯程序和目標程序的字節代碼。這對編譯器作者python-dev團隊來說貌似是一個不起眼的工具,但是它實際上在日常工作中發揮著不同尋常的作用。這個庫能夠反匯編出來你最后一次堆棧跟蹤的信息,這會給你恰當的反饋,因為字節碼指令會把最后一次未捕獲的異常扔在那里。

所以,不要把測試放在質量保證工作的最后,利用好分析工具,不要害怕把自己的錯誤展示出來

——Sarah Mount

6.和你的朋友一起使用Ubuntu哲學

所以很多時候,我們獨立地編寫代碼,這些代碼反映了我們個人對問題的理解,也反映了一個非常個性化的解決方案。我們可能會是團隊的一部分,但是我們仍然會是獨立的,因為這是一個團隊。我們很容易忘記這些獨立編寫的代碼會被其他人所執行、使用、擴展和依賴。這是在開發軟件中容易被忽略的社交的一面。創造軟件是一個混合了技術和社交的活動。我們只需要經常抬頭,這樣才會意識到我們并不是孤立地工作的,我們都有責任去提高個人成功的可能性,而不只是為了開發團隊。

你可以在孤立的環境下寫出高質量的代碼,但這樣會失去自我。從一個角度來看,那是一個以自我為中心的方法(不是自大,而是自我)。這也是一個禪宗的觀點,他就是針對你編寫代碼那一過程的。我總是試著進入這個環節,因為它會讓我離高質量更加接近,但那之后我就會陷入這個環節。我的團隊現在處于什么環節?我的環節和團隊的是一樣的嗎?

在祖魯語中,Ubuntu的哲學被概括為“Umuntu ngumuntu ngabantu”,可以大致翻譯為“A person is a person through (other) persons.”(人與人之間是互相聯系的。我會變得更好因為是你,通過你的行為讓我變得更好。在另一方面,當我做自己的事做得糟糕的時候你也會在你所做的事情上變糟。對于開發者來說,我們可以這樣理解“A developer is a developer throuth (other) developers.”(開發者與開發者之間是相互聯系的),也可以說“Code is code through (other) code.”(代碼與代碼之間是相互聯系的)

我寫的代碼的質量會影響到你寫的代碼的質量。如果我的代碼質量很差會怎樣呢?即使你寫了很整潔的代碼,但由于你會使用我的代碼,所以你的代碼也會降低到和我的代碼質量差不多的地步。你可以使用很多模式和技術去降低損失,但是損失已經造成了。我建議你去做一些必須做的事之外的一些事情,這是因為當我在做自己的事情的時候我并不會去考慮你。

我會認為我的代碼是非常整潔,但我還是認為如果我使用Ubuntu哲學我可以做得更好。Ubuntu哲學到底是什么?它看起來就像是一段良好的整潔的代碼。它并不是簡單的代碼,而是一件藝術品。它是跟創造藝術有關的行為。和你的朋友一起使用Ubuntu哲學將會幫助你的團隊守住你們的價值觀,增強你們的原則。如果有其他人在任何情況下接觸到你的代碼,都會變成一個更加優秀的開發者。

禪宗是有關個人的。對于一群人來說,Ubuntu也是一種禪宗。我們幾乎不會看到只為自己而寫的代碼。

——Aslam Khan

7.你必須關心你的代碼

不用福爾摩斯我們就會知道好的程序員才能寫出好的代碼。糟糕的程序員嘛…就不會。他們會產生我們必須清理的垃圾。你想寫出好的東西,是不是?那你其實就是想去做一個好的程序員。

優秀的代碼并不會無中生有。它并不像行星對齊那樣是靠運氣才產生的。為了獲得優秀的代碼,你就得努力去爭取。這有些辛苦。如果你真的關心優秀的代碼你就會寫出很好的代碼。

優秀的程序并不單單來自技術能力。我曾見過一些有很高能力的程序員,他們能夠寫出給人很深印象的算法,他們把編程語言的標準爛熟于心,但是他們卻寫出了最糟糕的代碼。這些代碼閱讀起來非常痛苦,用起來也痛苦,修改起來也痛苦。我也曾見過更多謙卑的程序員,他們堅持寫出更加簡單的代碼,他們寫出來非常優雅非常富有表現力的程序,和他們工作簡直就是享受。

根據我在軟件行業多年的經驗,我得出了這樣的結論,一般的程序員和偉大的程序員之間真正的區別是:態度。優秀的程序使用了專業的方法,并在現實世界的約束和軟件產業壓力之下盡量寫出最好的軟件。

代碼的鋪就都得有一個良好的計劃。要想成為一個優秀的程序員,你就必須做出很好的計劃,并且真正關心起代碼——培養積極的觀點,養成良好的態度。偉大的代碼是由工匠大師精心打造的,絕不是由滿湖的程序員或自稱編碼大師的程序員在不經意間就完成的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序員
    +關注

    關注

    4

    文章

    953

    瀏覽量

    29833
收藏 人收藏

    評論

    相關推薦

    阿里云升級通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開發者帶來更為強大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實現了全面升級。現在,它支持VS Code
    的頭像 發表于 01-09 11:16 ?277次閱讀

    TMS320C6000程序員指南

    電子發燒友網站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補充

    電子發燒友網站提供《TMS320C55x DSP CPU程序員參考補充.pdf》資料免費下載
    發表于 12-21 11:36 ?0次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補充

    UCD3138A64/UCD3138128程序員手冊

    電子發燒友網站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機械革命發布CODE AI程序員

    近日,英特爾新質生產力技術生態大會在成都舉行,機械革命作為重要參展商帶來了多款明星產品引爆全場!其中更是在AI PC軟件生態產品發布分論壇上,Intel、智譜、機械革命三方聯合發布了專為程序員設計的CODE AI程序員本,成為
    的頭像 發表于 11-30 10:34 ?492次閱讀

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰。程序員需深化技能、拓寬知識應對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發表于 11-08 10:17 ?210次閱讀

    第五屆長沙·中國1024程序員節開幕

    據官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節在湖南湘江新區開幕;本次中國1024程序員節以“智能應用新生態”為主題。設置有岳麓對話、技術英雄會、主題峰會及賽事、展覽等活動,一場
    的頭像 發表于 10-25 15:42 ?230次閱讀

    京東上萬程序員都AI用它!

    對大模型生成代碼進行智能修復,為程序員開啟代碼漏洞修復的“自動駕駛”模式,不但減少人工接入、提高工作效率,更為企業抵御內外部各種攻擊構建起一道堅固的安全屏障,確保業務的連續性和穩定性。 JoyCoder是京東云自主研發的一款輔助開發人員
    的頭像 發表于 07-17 16:29 ?292次閱讀
    京東上萬<b class='flag-5'>程序員</b>都AI用它!

    程序員節視頻創意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節視頻創意大賽,用串口屏贏取千元大獎

    程序員節視頻創意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節視頻創意盛宴,邀您共襄盛舉!

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河!!就目前的互聯網大環境來看,it行業已經是……
    的頭像 發表于 03-11 17:11 ?429次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    薪資高、青春飯,是不是程序員=青樓?

    花期太短。技術迭代快,年齡大容易失業。 就這幾年的互聯網環境而言,不管是前端、Java、Android開發等等行業。已經感受到程序員不是太卷就是工作難找,薪資過低。以前高工現在拿著中低程序員薪資
    發表于 03-06 21:32

    瑞薩Flash程序員V3 發布說明

    電子發燒友網站提供《瑞薩Flash程序員V3 發布說明.pdf》資料免費下載
    發表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業想必大家已經感受到了,Android、Java、前端等等程序員都經歷了大廠……
    的頭像 發表于 02-02 09:45 ?857次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝
    主站蜘蛛池模板: 国产精品人妻无码久久久2022 | 中文字幕日本久久2019 | 国拍自产精品福利区 | 青柠电影高清在线观看 | 老鸭窝毛片 | 精品成人在线视频 | 美国一级大黄一片免费的网站 | 奇米色偷偷 | chinese极品嫩模videos | 花蝴蝶在线高清视频观看免费播放 | 啊灬啊别停灬用力啊老师 | 色一情一乱一伦一区二区三区 | 精品国产午夜福利在线观看蜜月 | 亚洲AV怡红院影院怡春院 | 国产精品国产三级国产专区53 | 男女XX00上下抽搐动态图 | 国产成人一区二区三区在线观看 | 性色欲情网站IWWW | 国产精品人妻系列21P | 久久综合狠狠综合久久综合88 | 精品AV亚洲乱码一区二区 | 国产亚洲精品久久久999密臂 | 亚洲黄色录像片 | 亚洲精品青青草原avav久久qv | 中文字幕 日韩 无码 在线 | 5g在线视讯年龄确认海外禁止进入 | 久久国产高清字幕中文 | 琉璃美人煞在线观看 | 精品亚洲欧美中文字幕在线看 | 中文字幕一区二区三区在线播放 | 精品久久久久中文字幕日本 | 69亞洲亂人倫AV精品發布 | 国产午夜三级一区二区三 | 久久精品亚洲AV高清网站性色 | 亚洲国产第一 | 69精品人妻一区二区三区蜜桃 | 超碰久久国产vs | 日本特黄的免费大片视频 | 国产在线aaa片一区二区99 | 久久精品国产色蜜蜜麻豆国语版 | 亚洲AV久久久噜噜噜噜 |