成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

成為專業(yè)程序員的 6 個技巧

開發(fā) 后端
要成為一個優(yōu)秀的程序員,你必須對自己的代碼負責,真正關心代碼——養(yǎng)成積極向上的心態(tài)。偉大的代碼是由大師精心雕琢的,而不是由那些馬虎的程序員胡亂寫出來的。

1.在你責怪別人之前,先檢查自己的代碼

先想一想自己的假設和其他人的假設。來自不同供應商的工具可能內置不同的假設,即便是相同的供應商對于不同的工具,其假設也可能不同。

當其他人正在報告一個你不能重復的問題的時候,去看看他們在做什么。他們可能會做一些你從來沒有想到過的事情,或者他們的做事順序與你的截然不同。

我個人的原則是,如果我有一個不能確定的錯誤,那么我會先考慮是不是編譯器的問題,然后再去檢查堆棧是否損壞。特別是當添加跟蹤代碼會使得問題移動 的話就更要這么做了。多線程問題是bug的另一個來源,有時候令人焦躁得簡直想拔光頭發(fā),或者直接想摔電腦。當系統(tǒng)是多線程的時候,***傾向于簡單的代 碼。我們不能依賴調試和單元測試來發(fā)現(xiàn)任何一致性的bug,所以設計的簡單性是最重要的。

所以,在你不分青紅皂白地去責怪編譯器之前,先想一想福爾摩斯的這條建議,“一旦你排除了種種不可能,剩下的不管有多么難以置信,一定就是真相”。

2.不斷學習

我們生活在一個有趣的時代。隨著軟件開發(fā)逐漸遍布全球各地,你會發(fā)現(xiàn)有很多人都可以干你的工作。所以你需要不斷學習以保持競爭力。否則,你就會落伍,停滯不前,直到有一天,這份工作不再需要你,或外包給一些更廉價的勞動力。

那么我們能做些什么?有些雇主很慷慨,會提供培訓以拓寬你的技能。也有的人會說我沒時間或者沒這個資金去接受任何培訓。所以,關鍵是要擺正心態(tài),學習是對自己的負責。

這里有一些學習的方法。而且許多資源都可以在互聯(lián)網(wǎng)上免費獲取:

  • 閱讀書籍、雜志、博客、Twitter feeds和網(wǎng)站。如果你想更深入地了解對象,可以考慮添加到郵件列表或新聞組。點擊這里通過郵件訂閱《快樂碼農》雜志

  • 如果你真的很想學習某一種技術,那么就親自動手寫代碼。

  • 盡量與導師一起工作。雖然你從任何人身上都可以學到一些東西,但是從那些比你更聰明或更有經(jīng)驗的人身上,你能學到的更多。如果你實在找不到這樣的良師益友,那么請繼續(xù)往下看。

  • 使用虛擬導師。在網(wǎng)絡上找你真正喜歡的作者和開發(fā)人員,閱讀他們寫的內容。訂閱他們的博客。

  • 了解你使用的框架和庫。知道事物的工作原理,有助于你更好地應用它們。如果你使用的是開源資源,那么你真的很幸運。使用調試器單步執(zhí)行代碼,以查看內部究竟是怎么回事。你也可以去看看那些確實比你聰明的人是如何編寫和審查代碼的。

  • 當你犯了錯誤,修復bug,或者遇到問題的時候,試著去真正理解發(fā)生了什么事情。很有可能其他人已經(jīng)遇到過同樣的問題,并且發(fā)布在了網(wǎng)上。谷歌搜索真的很有用。

  • 學習東西還有一個好方法就是所謂的“教學相長”。當別人在傾聽你的言語,并問你問題的同時,你也會學到東西。可以建立用戶組或本地會議。

  • 為自己感興趣語言和技術加入或啟動一個研究小組(模式社區(qū)),也可以創(chuàng)建本地的用戶組。

  • 參加會議。如果去不了的話,也可以在網(wǎng)上看,許多會議會將其談話免費發(fā)布到網(wǎng)上。

  • 收聽播客。

  • 曾經(jīng)對代碼庫運行過靜態(tài)分析工具,又或者查看下你的IDE警告?了解它們報告了什么,以及其原因。

當然如果你有《黑客帝國》中Neo那樣的超能力,自然這一切對你而言不過是小菜一碟。但很可惜,我們都是普通人,我們需要時間和精力,以及不斷的努 力才能促使自己不斷的學習。不過,你不必成天學習。只要你能有意識地花點時間去學習就可以了,哪怕每天一小時,有總比沒有好。人活著不是為了工作,你還應 該有自己的生活。

3.不要害怕破壞東西

每個具備行業(yè)經(jīng)驗的程序員肯 定參與過代碼庫岌岌可危的項目。系統(tǒng)很糟糕,并且改變這邊總是會破壞另一邊不相關的功能。每次添加模塊,程序員只能想著盡可能少地改變代碼,每次發(fā)布都膽 戰(zhàn)心驚。這座軟件的摩天大樓隨時有坍塌的可能。之所以改動代碼會如此傷腦筋是因為系統(tǒng)太糟糕了。但是即使你知道系統(tǒng)出了問題,卻又因為投鼠忌器,而不得不 聽之任之。任何一個外科醫(yī)生都懂得,傷口要想愈合就必須得切除腐肉。雖然手術會帶來痛苦,但絕對比任傷口發(fā)炎潰爛要好。

不要害怕你的代碼。沒有人會在乎當你搗鼓代碼的時候有沒有暫時破壞了什么東西。只要你做的改變不會讓項目重新回到開始狀態(tài),就不會令人崩潰。投入時 間重構,能讓你受益于項目整個生命周期。這樣做還有一個額外的好處是,由于你有過這種處理病危系統(tǒng)的經(jīng)驗,所以你對它應該如何工作非常內行。要善于應用這 些知識,千萬不要反感這些寶貴的財富。重新定義內部接口,重構模塊,重構復制粘貼代碼,并通過減少依賴來簡化設計。你可以通過消除特殊情況顯著降低代碼的 復雜性,因為特殊情況往往是因為錯誤的耦合特點導致的。慢慢地從舊結構過渡到新結構,測試一路同行。如果你想要一下子完成一個大的重構,那么往往會因為各 種頻出的問題而考慮中途放棄。

4.專業(yè)程序員

專業(yè)程序員的一個最重要的特點是有責任心。專業(yè)程序員會為他們的職業(yè)生涯、預算、日程安排承諾、錯誤、技能技巧負責。一個專業(yè)的程序員不會將責任推卸給別人。

如果你是專業(yè)的,那么你就需要為自己的職業(yè)生涯負責。你有責任去閱讀和學習。你有責任去時刻關注***的產業(yè)和技術。但是許多程序員覺得這應該是他們 雇主的工作。NO,大錯特錯。想一想醫(yī)生?想一想律師?他們都是靠自己來培養(yǎng)和訓練自己的。他們的下班時間多用在了閱讀雜志報刊上。他們時刻關注著***的 資訊動態(tài)。所以,我們也應該如此。你和你雇主之間的關系,已經(jīng)在雇用合同上作了詳細的說明,簡而言之就是:你的雇主承諾支付你薪酬,而你承諾做好工作。

專業(yè)程序員會為他們編寫的代碼負責。除非他們知道這些代碼是有效的,否則就不會發(fā)布代碼。現(xiàn)在,好好思考這個問題:如果是你,你會不會在不透徹了解 代碼的情況下就直接發(fā)布代碼?專業(yè)程序員不希望QA找到任何bug,因為這些代碼都是經(jīng)過他測試之后才發(fā)布的。當然,QA依然會發(fā)現(xiàn)一些問題,因為沒有一 個人是***的。但作為專業(yè)程序員,我們的態(tài)度應該是讓QA找不到任何缺陷。

專業(yè)程序員也是好的團隊成員。他們負責地對待整個團隊的輸出,而不是只顧自己的工作。他們樂于助人,善于向彼此學習,在需要的時候甚至會鼎力相助,為了項目前仆后繼。

5.充分利用代碼分析工具

測試的價值是編程早期階段就灌輸給軟件開發(fā)者的一個理念。近年來,單元測試,測試驅動開發(fā)和敏捷方法的興起,證實了我們開始注重于在開發(fā)周期的各個階段進行測試。但是,測試只是你可以用來提高代碼質量的許多工具之一。

回過頭去看,當C語言還是一個新事物的時候,CPU時間和任何類型的存儲都是非常寶貴的。***個C語言編譯器注意到了這一點,所以選擇了通過去掉一 些語義分析,來減少代碼之間的傳遞次數(shù)。這意味著,在編譯時,編譯器檢查到的可能只是可被檢測到的bug中的一小部分。為了彌補這個缺陷,Stephen Johnson寫了一個名為lint的工具——它將從你的代碼中刪除一些沒有價值的東西——從而實現(xiàn)一些已被它的兄弟C語言編譯器撤掉的靜態(tài)分析功能。然 而,靜態(tài)分析工具卻因為可以給出大范圍的誤報警告和一些沒有必要遵循的靜態(tài)文體慣例的警告而倍受贊譽。

現(xiàn)在的語言、編譯器和靜態(tài)分析工具的設計和以前已經(jīng)大不相同。由于內存和CPU時間變得相對比較便宜,因此負擔得起編譯器檢查更多的錯誤。幾乎每一 種語言都擁有至少一個工具,用來檢查風格指南的違規(guī)行為、常見問題以及一些狡猾的有時候可能很難捕捉到的錯誤,如潛在取消引用空指針。更高級的工具,如C 的Splint,以及Python的pylint,是可配置的,這意味著你可以通過命令行開關或在IDE中,使用配置文件來讓工具選擇放過其中的哪些錯誤 和警告。Splint甚至還能讓你在注釋中注解你的代碼,以便于更好地提示你的程序是如何工作的。

6.關心代碼

優(yōu)秀程序員能寫出好代碼,這是毋庸置疑的。壞程序員……則不能(他們能寫出好代碼,就不是壞程序員了,哈哈)。他們總是在生產其他人不得不消滅的怪獸。你的目標是寫出好代碼,對不?那么你應該成為好程序員。

好的代碼并不是憑空而來的,也不能靠運氣然后恰巧讓你瞎貓碰到死老鼠。為了獲得良好的代碼,你必須努力的改進。過程是艱難的。但是如果你確實關心代碼的話,那么你一定能收獲好代碼。

僅靠技術并不能成就好的編程。我碰到過一些非常聰明的程序員,他們能夠產出令人印象深刻的算法,能夠熟記語言標準,但卻寫出了最可怕的代碼。這種代 碼,閱讀起來很痛苦,使用起來很痛苦,修改起來更是令人痛不欲生。我也碰到過一些非常謙遜的程序員,因為堅持簡單的代碼,所以寫出來的程序更優(yōu)雅,更易于 表達他的意思,和他們工作非常愉快。

基于我多年的軟件生產經(jīng)驗,我得出的結論是,差強人意的程序員和偉大的程序員之間的真正區(qū)別是:態(tài)度。好的編程在于專業(yè)的方法,以及一種竭盡全力希望寫出***軟件的期望。

要成為一個優(yōu)秀的程序員,你必須對自己的代碼負責,真正關心代碼——養(yǎng)成積極向上的心態(tài)。偉大的代碼是由大師精心雕琢的,而不是由那些馬虎的程序員胡亂寫出來的。

譯文鏈接:http://www.codeceo.com/article/6-ways-professional-programmer.html
英文原文:6 Ways to Become a Professional Programmer

 

責任編輯:王雪燕 來源: 碼農網(wǎng)
相關推薦

2009-03-20 10:19:12

程序員編程職場

2015-01-14 10:17:28

高級程序員

2018-01-23 09:37:59

程序員面試薪資

2014-12-22 09:59:05

程序員

2015-05-13 14:06:03

程序員糟糕的程序員

2014-03-31 11:01:39

2013-07-11 17:18:17

程序員習慣

2021-07-05 15:10:11

編程語言技巧

2015-08-12 14:39:47

程序員問題

2015-05-26 09:17:34

程序員泛泛涉獵

2015-06-25 09:32:55

JavaScript程序員

2009-07-02 09:42:34

JSP程序員

2015-05-13 10:42:21

程序員代碼

2010-12-27 09:24:45

JSP程序員

2015-06-25 19:23:03

JavaScript程序員

2015-06-25 09:53:13

JavaScript程序員

2015-03-18 10:20:32

程序員程面試取勝編程面試技巧

2016-01-18 11:03:58

程序員搜索技巧

2023-02-06 16:46:59

JavaScript程序員技巧

2023-11-06 07:19:11

程序員GitHub社交媒體
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区在线日韩在线深爱 | 一级黄色片日本 | 成人欧美一区二区三区白人 | 国产成人免费在线观看 | 欧美激情在线观看一区二区三区 | 精品久久久久久久久久久下田 | 国产日韩精品一区 | 中文字幕第九页 | 日韩一区二区三区在线看 | 精品视频一区二区三区 | 免费国产视频在线观看 | 别c我啊嗯国产av一毛片 | 亚洲一区二区三区观看 | 欧美视频 亚洲视频 | av天天看 | 亚洲h视频 | 日韩视频精品在线 | 国产1区2区3区 | 中文字幕高清免费日韩视频在线 | 欧美久久久久久久久 | 午夜精品一区 | 91久久久久久久久 | 日韩成人精品一区二区三区 | 亚洲美女视频 | 日韩免费福利视频 | 性一交一乱一透一a级 | 欧美午夜精品 | 精品无码久久久久久国产 | 91亚洲精| 日韩中文字幕区 | 色橹橹欧美在线观看视频高清 | 91国产视频在线 | 免费不卡视频 | 狠狠做深爱婷婷综合一区 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 国产精品99久久久久久www | 国产精品久久久久无码av | 国产精品免费在线 | 在线一区二区三区 | 在线āv视频 | 成人免费大片黄在线播放 |