1樓:TroubleShooter
不斷地看編譯器的英文報錯資訊。學著理解它為什麼這麼報錯。
我發現身邊很多搞計算機的小夥伴,因為英語不好的緣故,很少看這類資訊的。其實這是非常不好的習慣。
2樓:東東哥
1、幫學妹/學姐debug
2、幫漂亮的學妹/學姐debug
3、幫漂亮且單身的學妹/學姐debug
學妹/學姐才是提公升功力的核心奧義
4、不建議幫有男朋友的學妹/學姐debug
3樓:
有的程式設計師基本不考慮如何寫出沒bug的程式,出了bug就除錯,天長日久除錯bug的能力就很強。尤其是可以高效的除錯別人寫出的bug,感覺很厲害。另外一類程式設計師很討厭除錯bug,用了很多精力來保證不寫出有bug的程式,調bug也是偶爾為之,這類程式設計師除錯別人的程式特別痛苦,基本就想重構了。
4樓:木字李
首先要清楚什麼是Bug及它的分類。
Bug 就是編寫程式的執行及編輯時發生的一些問題。
Bug 的分類:
編譯時錯誤
執行錯誤
當然它Bug的分類根據程式語言的型別不同而變。
理解上面這幾點後,直接就是多練
5樓:島城
每乙個Function 都寫乙個最直白的對數器。
以乙個快速排序為例
自己寫乙個實現①
然後系統自帶的實現②
① vs ② 如果你實現的邏輯和結果是對的。那麼每一步對比輸出,一定是對的。
然後瘋狂壓測N次。如果你自己實現的有誤,一定會被DeBug出血了。
錯了就打斷點,然後打斷點,然後打斷點...
//實現三個快排,然後系統自帶的Arrays.sort//主要debug時,看main方法裡的思路。
public
class
PartitionAndQuickSortpublic
static
intpartition
(int
arr,
intL
,intR)
if(L==
R)intlessEqual=L
-1;int
index=L
;while
(index
++;} swap (arr,++ lessEqual,R );return lessEqual;} // arr[L...R] 玩荷蘭國旗問題的劃分,以arr[R]做劃分值 // arr[R] public staticint netherlandsFlag (int arr, intL ,intR) ;}if( L==R) ;}intless=L -1;// < 區右邊界 intmore=R ;// > 區左邊界 intindex=L ;while (index )elseif( arr[ index ] else }swap (arr ,more,R );return newint ;}public static void quickSort1 (int arr) process1 (arr,0 ,arr .length-1 );}public static void process1 (int arr, intL ,intR) // L..R partition arr[R] [ <=arr[R] arr[R] >arr[R] ] intM =partition (arr,L ,R);process1 (arr,L ,M-1 );process1 (arr,M +1,R );}public static void quickSort2 (int arr) process2 (arr,0 ,arr .length-1 );}public static void process2 (int arr, intL ,intR) intequalArea =netherlandsFlag (arr,L ,R);process2 (arr,L ,equalArea[0 ]-1); process2 (arr ,equalArea[1 ]+1, R);}public static void quickSort3 (int arr) process3 (arr,0 ,arr .length-1 );}public static void process3 (int arr, intL ,intR) swap (arr,L +(int) (Math .random()* (R-L +1)),R );int equalArea =netherlandsFlag (arr,L ,R);process3 (arr,L ,equalArea[0 ]-1); process3 (arr ,equalArea[1 ]+1, R);}// for test public staticint generateRandomArray (int maxSize ,int maxValue )return arr; }// for test public staticint copyArray (int arr)int res= newint [arr .length ];for (inti= 0;i< arr. length;i ++)return res; }// for test public static boolean isEqual (int arr1 ,int arr2)if (arr1 ==null &&arr2 ==null)if (arr1 .length !=arr2 .length )for (inti= 0;i< arr1 .length;i ++)} return true;} // for test public static void printArray (int arr) for( inti=0 ;i length;i ++)System .out .println ();} // for test public static void main (String args)} System .out .println (succeed ?"Nice!" :"Oops!");}} 6樓: 空談誤國,實幹興邦。 debug技術和程式設計技術一樣,是一門依靠實踐來提公升能力的技術。 所以,你需要的是多寫,多練,多debug。 寫得多了,自然bug遇到的多,然後debug多,然後能力就見長了。 題外話,我們需要提高的不是debug能力,而是少寫出bug的能力吧。 7樓: 那會還在上大學,用大學機房的電腦做除錯。除了和計算機相關的課程是免費上機之外,其他時間上機要自己付錢。大學裡有兩個機房,乙個在計算機系,電腦配置好,另乙個在本系,電腦配置很差。 差到什麼程度呢,沒有硬碟。你要上機得自己帶一張DOS啟動軟盤,然後跑軟體換另一張軟盤。軟盤有兩種規格: 一種3.5寸,另一種5.2寸。 3.5寸軟盤 為什麼硬碟是從C盤開始?那是因為A盤和B盤是被3.5寸軟盤和5.2寸軟盤占用了。當然,現在別說軟碟機了,連光碟機都少見了。 當時計算機系的機房一小時2元,本系的機房一小時1元。二十多年前的2元還是挺貴的,於是我就上一小時1元的,自己帶兩張軟盤,一張用來啟動DOS,還有一些常用小工具,另一張裝程式設計開發相關的軟體,比如編譯器,還有幾個小遊戲。 平時沒電腦用,就把程式寫在紙上,再到機房把程式錄入電腦。為保證盡可能的一次跑成功,我會預先對紙上的程式做腦內模擬執行。畢竟現場除錯非常耗時間,所有上機的錢,都是我從捉襟見肘的伙食費裡摳出來的。 我對寫在紙上的每一條語句都爛熟,對每一條語句執行的結果都了然於胸。久而久之,Debug能力就提高了。 無他,唯專心爾。 8樓:艾斯尼勒 重中之重:學會看錯誤提示。 之後就可以循序漸進乃至水到渠成。 當然,最高贊的幫別人debug可以快速積攢debug的經驗技巧,是快速提高debug能力的快捷途徑 9樓: 看起來都是說的自測的時候的bug呢?測試環境加列印不好嗎 那些說寫的bug多了,debug能力就強了,還真不一定 其實比較頭疼的bug是線上的業務掛了,多執行緒競爭,踩記憶體,死鎖,記憶體洩漏,說不定還會遇到機器記憶體壞了,cpu壞了也有可能。 10樓:阿黎Darkery 去實習去工作,去不同的專案,各式各樣的問題層出不窮,最重要的還是量的積累,會引起質變。 還有一點,每次當你遇到問題,無論什麼專案什麼語言,把那句error code敲到google上或者stachoverflow上,好好閱讀top分析和解決方案,受益匪淺。 在伯大念書,有門學科叫多學科系統以及軟體工程 MSSE 課上講了點python又自學了點python,第一學期結束的時候要求自主設計乙個智慧型家居,我想了想作為中中國人得推廣咱國內的牌子啊,就挑了小公尺的加濕器 同學們有選恆溫器,感光窗簾等等五花八門 現在已經用python編了一套程式,雖然感測器部... 冷寒蕭 我覺得題主應該要問怎麼提高自己的軟體開發能力。個人認為軟體開發能力和程式設計能力還是有點點區別的,乙個是巨集觀上的,乙個相對是微觀上的,軟體開發需要對整體的乙個規劃,模組的劃分等。 我暫時把程式設計分為兩大板塊,乙個是知識,乙個是技術。二者有比較大的區別。首先說知識,什麼是知識?就是你學校學... 張燁 我覺得閱歷經歷的多才能演出好的作品。乙個演員如果當做賺錢很有優越感那麼他的演技可想而知。就像小鮮肉。而為什麼許多老藝術家香港明星演技高,因為他們就在演生活,放下演員明星的架子。扎扎實實的去做去演戲! 霧靄 明星不一定就是演員,有的明星根本沒有演技。演員的演技怎麼提高的?一說演員就說科班的有實力...如何使用自己的程式設計能力提高生活質量?
軟體學院的學生該怎樣提高自己的程式設計能力?
明星是怎麼提高自己的演技的?