編程編得很壓抑怎麼辦?
高三女,在國外,學校裡面有計算機課,現在在上。11年級的時候上過CS,當時順風順水,基本上沒出什麼bug,程序編得很順,再加上學的也不難,所以成績最後不錯,我也喜歡上CS了,打算大學學CS或者se。這學期學12年級的CS,因為是新學校,學生少,這學期沒開CS,所以我就走的自學,問題就出現了。今天晚上忙活了一晚上搞一個小的program,最後發現怎麼都不對,研究半天終於把bug de了,但是不明白原理,而且心情特別不好,沒有之前debug成功之後的快感。我知道有bug很正常,但是就想問問各位程序猿是怎麼讓自己在出了bug的時候不抑鬱的。
【最後加一個彩蛋】
我最後把程序寫出來了,也弄懂了,正打算把寫好的程序交給老師,最後看一眼問題的時候發現,這個作業對應的課不是一個複習課,而是一個新課。
所以
我要從頭開始寫一個全新的程序
【微笑臉】
debug的時候最忌諱隨緣debug法
你首先要知道你寫的代碼的期望的行為是什麼,然後監控代碼的實際行為是不是和你期望的一致,加粗字的部分需要debug工具的各種功能,包括花式斷點,花式查看變數,花式跳進跳出什麼的,然後檢查行為不一致的地方,進行修改
如果你是隨緣debug的,那首先表明你不清楚自己寫的代碼在幹什麼,其次表明你不清楚你自己想幹什麼,這是絕對忌諱的。
有人對花式debug感興趣嗎,我有空寫篇文章講講如何?
每次都能把問題解決,久而久之你就會有一種自己弄出來的問題自己肯定有辦法解決的信念
我也不是職業程序員啊,就說說我怎麼排除抑鬱的吧。首先肯定是要把bug排除掉的,我這個人很懶,直接就google了。我的經驗是別硬抗,硬抗沒用,趕緊搜索。當然有些問題也搜索不到,那就只能硬扛了,經常有到三四點才解決問題再睡覺的經驗,所以我的想法是——別在臨睡前編程。。。
1. 深入思考自己是不是真的喜歡編程,還是「葉公好龍」?
2. 換一門適合自己的語言,並愛上它;
3. 注意生理周期及煩躁時的調節,可減少代碼編寫強度,聽聽音樂舒緩心情。
是妹子?
出了 bug 請聯繫我或者 @vczh (逃
不要慌,據統計 99.9999999% 的程序最後都沒寫出來
剛寫了一周C++就發現一個編譯器BUG,我是要高興呢還是要抑鬱呢?
要知道編程的一部分樂趣就是對別人寫的代碼debug,然後一邊吐槽苦逼一邊心裡笑話別人傻。一步步排查,縮減bug可能出現的範圍,實時監控某些變數的值,看看是否符合預期。這一點可以用調試器輔助,也可以選擇必要的時候列印輸出某些變數的值,以及一些標記(或者MessageBox.Show)來幫助確定程序執行的路徑——你自己的腦子裡要儘可能地追蹤和把握程序的行為,切記不要大海撈針遍歷所有代碼…
女孩子呀,找輪子哥@vczh開個光就不壓抑了
我是男孩子,不知道找萌萌姐開光會不會被我輪拉黑呢
逃:)
做為一個女程序員,竟然連最簡單的debug方法「直接去問一個傻乎乎的男程序員」都沒學會
看來你的悟性不行啊!
debug時候要把原理搞明白,保證瞬間心情就變得特別好。多去stackoverflow之類的查查。
這就是日常啊,單元測試對學校階段有點兒早,但是水品已經超過學校階段應該考慮了。
別怕,煎熬過後就是爽。
debug確實很鬱悶
但是,如果你找到了bug,那感覺是非常爽的。
我曾經寫操作系統的時候遇到一個bug,如果這個bug找不到那麼沒辦法繼續寫了。
那我必須找到啊,不然這個系統就廢了。
我每天早起跑去實驗室找bug,晚上十一點把電腦搬回宿舍繼續找bug,大概一兩點睡覺,持續了大概一周,這一周我簡直要死了,只有在吃三餐的時候和人說過話,基本上全是在找bug。
終於找到bug了,我心情非常爽!
別提有多美了,就像找到了女朋友般的感覺。
再後來阿,又出現了一個bug..........
煎熬-&>爽-&>煎熬-&>爽-&>煎熬-&>爽-&>煎熬-&>爽...因為學校教的都是循序漸進的,會遇到什麼坑,怎麼解決,都會提前告訴你。因為是根據課程進度出,所以相對來說難度不大。
看不懂自己找的書,表明有些坑沒有填。但這本書默認你掌握了。
解決辦法:
- 要是有一點頭緒,或是感覺知道問題出現的大概位置,就stackoverflow加谷歌,一點一點來,不要隨緣debug,一塊問題解決了再繼續。
- 要是花了很長時間一點頭緒也沒有,就問問老師或是發帖問下。
- 要是聽解釋了還不明白,那就降低難度,看些簡單的書,把前面的坑添了。(感覺很多時候是數學不夠用。理不清思路。)
古人云:
內事不決問stackoverflow,外事不決問github
腦洞大開查知網,放棄治療水知乎
//轉自網路,侵刪
明白一個 bug 的來龍去脈才會獲取解放。明白不?
明白了就去好好學習,哪裡不懂學哪裡。一開始不要弄太難又不理解的東西。
實在不行就去問 Google。Google 不告訴你你就去問答社區(如 StackOverflow)、IRC 頻道、Reddit 之類的地方問,問「為什麼」,不是問「怎麼做」。
感覺題主問的問題比較綜合,有幾個層面:
1. 怎麼debug
2. 怎麼在debug的過程中保持一個好心情
3. 怎麼才能在debug之後能弄明白問題的原因
下面的回答也就不區分這麼仔細了,綜合答一下吧(註:下面的1.2.3點和上面的1.2.3點沒有直接的對應關係):
1. 找幾個趣味相投的「好基友」
這一點我覺得在玩limbo這遊戲的時候最有體會了,有些坑你看一兩個小時過不去,可能周圍的小夥伴一眼就看出來了,有些坑小夥伴卡了半天,你一眼就看出來了。debug的道理跟玩解謎遊戲一樣。沒辦法,每個人的思維都有死角,如果有同伴跟你一(hu)起(xiang)討(chao)論(feng),事情就變得有趣得多啦。
2. 適時地把代碼放一邊,重新整理思路
理想狀態寫代碼應該是一氣呵成的,如果寫代碼的過程中停頓太多,或者debug用了太長時間,那很可能是思路本身不夠清晰的原因。 這個時候最好把代碼扔一遍,重新整理思緒。 可以拿出紙筆寫寫畫畫,或者倒杯茶慢慢喝,再或者出去溜達一圈,可能效果都會比盯著屏幕上的代碼發獃要好,,,(就算bug解決不了,至少保護了眼睛和心情,這叫留得青山在不怕沒柴燒。。)
3. 細化步驟,讓程序的每一個部分可以獨立地運行和測試
這個大家應該都懂,但做的時候,可能會因為各種原因沒做到位。這裡還是說下吧,老程序員忽略我就好。。(題主畢竟是新入坑的學生)
其實調試代碼就是一個 「運行,查看效果,(若效果不符合預期)定位問題,調整代碼」 的循環,其中定位問題是花費時間最長的步驟,如果程序被分解成很多小部分,每個部分都可以獨立地運行和被測試,那這個debug循環就能小很多,最後也不太會有「雖然問題解決了,但不知道為什麼」的情況(即使有困惑,基本上也分解地很細了,最後問題也從「為什麼我的程序不對」變成「為什麼這一行這樣寫和那樣寫結果不一樣」這樣的問題了,而這種問題就很容易通過請教別人來解答了)。
抱歉,因為不是很了解題主的情況,所以回答偏雞湯了,不知合不合口味蟹妖。才高三就編程666了,真羨慕
編程難免會有bug,這也是很正常的事,有些時候即便你工作多年,也有些莫名其妙的bug出現搞得你心神不安。
本著事出必有因的原則,想踏實睡個覺的話,一定要搞清楚問題出現的原因…一般我會趴在桌子上讓代碼邏輯在腦子裡debug一遍,基本上如果是邏輯漏洞都會找到了。另一方面的原因可能是你對基礎理解不深刻或者一些錯誤調用導致的,這類原因導致的bug解決後對你的提升也是很明顯的,隨著那些疑難問題的解決你在慢慢的成長為這個領域的專家,何樂不為?
最後,能在十分鐘內定位到的bug都不是好bug。興趣是最好的老師,其次是恥辱…
Bug是編程樂趣的重要來源啊。
要是寫完代碼一遍跑通,就爽那一下。要是有bug然後改bug能爽一下午。
要是遇見兩個bug就打退堂鼓,那跟學游泳喝一口水就上岸有什麼區別...
所以說你就用心體會改bug的樂趣(逃推薦閱讀:
※滑鼠為什麼會響?
※怎麼看待電腦卡就摔滑鼠鍵盤的行為?
※程序猿需要怎樣的一台工作電腦?
※如何評價亞馬遜新員工跳樓事件?
※有哪些笑話只有具備了一定的計算機知識才能聽懂?