[問題] 學了七年但我不會寫程式- 看板C_and_CPP

文章推薦指數: 80 %
投票人數:10人

... 補習,但我看了課程,好像是在講解C++的語言而非程式設計的邏輯我該如何訓練這個邏輯 ... 發信站: 批踢踢實業坊(ptt.cc) ◇ From: 218.171.60.135. 批踢踢實業坊 › 看板C_and_CPP 關於我們 聯絡資訊 返回看板 作者PTTDEMA(DEMA)看板C_and_CPP標題[問題]學了七年但我不會寫程式時間MonAug914:09:192010 各位好,我是資工系畢業的學生,有個狀況困擾我很久,我想該來向各位求助 我從高中開始學電腦,一直到現在大學已經畢業了,但我認為我不會寫程式 求學的時候,如果考筆試,我可以看出程式碼是在做什麼所以可以通過考試 如果是上機考,藉由GOOGLE查一查需要的功能大概的實作方式,也可以做出程式 但如果要我由無到有自己寫出程式,我沒辦法,腦袋一片空白 一開始我以為是我不夠熟,所以不斷看書加上練習實作 幾年過去,版上出現過的書 從入門的C++教學手冊到經典的TheC++ProgrammingLanguage我全都看完了 C++有那些東西,有哪些用法,STL有那些東西有哪些用途 物件導向有那些東西,有哪些用法,這些我都算熟悉,但我卻不會應用 以前老師上課時,問我們A、B、C三個函式是做什麼用的,我可以很輕易地回答出來 但要我用A、B、C三個函式兜出一個他所要的功能,我做不到 我甚至無法了解那些函式跟他要的功能有什麼關係 但如果是老師先做出功能之後,問我為什麼要用這些函式,我又可以回答得出來 我感覺就像是把書看熟考過SCJP但卻寫不出一行JAVA的那種考生 又像是經由左三圈右三圈的口訣考過駕照,但卻無法實際上路的駕駛 我把資料結構的東西拿出來複習,排序的步驟都很熟悉,用紙筆也都算得出來 但要轉成虛擬碼時我卻腦袋一片空白 很多人建議我去補習,但我看了課程,好像是在講解C++的語言而非程式設計的邏輯 我該如何訓練這個邏輯呢,多做題目或是ACM也是我目前嘗試的方法之一 但練了幾個月,卻還是沒有覺得我進步了 甚至於我自己解過的題目再看一次我都不見得還解的出來 我非常的痛苦與迷惘,不知道我該如何做會比較好呢?? -- ※發信站:批踢踢實業坊(ptt.cc) ◆From:218.171.60.135 →stupid2:整篇看了兩次~感覺好神奇~我是一個才大一學一年的學生08/0914:13 →stupid2:我覺得我可以寫一些很小的程式,但板上的程式我看懂的不多08/0914:13 →stupid2:一個問題出來,我總是想題目要的是什麼,怎麼達到08/0914:14 推QQ29:你寫過最大的程式是什麼阿@@我也沒寫過ACM資結的程式...08/0914:15 寫過最大應該是專題的嵌入式系統,不過當時有指導教授,基本上都是他說做法我實行 →stupid2:我會什麼,可以怎麼解決,看法跟版大感覺很兩極@@08/0914:15 →QQ29:反正有遇到問題再想辦法解決你是毫無頭緒嗎08/0914:16 我是毫無頭緒,問我STL的東西我知道,問我哪時候用的到那些我卻不知道了 推VictorTom:學校裡總寫過些比較大形的程式作業吧??寫過怎樣的東西08/0914:17 →VictorTom:呢??看起來您是滿手工具而且都了解其用途,就是不曉得08/0914:17 →netsphere:除了看還要實際寫啦從簡單短短的開始08/0914:18 →VictorTom:遇到問題時不知道如何組合手邊現有的工具與發明還沒有的08/0914:18 →VictorTom:工具.每個人的學習曲線與習性不同,適合自己的方式可能08/0914:19 →VictorTom:還是要自己摸索/發明出來.小弟以前會在學習過程中,把08/0914:19 →VictorTom:範例程式東修西改的玩看有什麼變化,以既有的範例玩玩可08/0914:20 →VictorTom:以加/改些什麼,多變出一點自己想要的功能出來.進一步08/0914:20 →VictorTom:的就是有意義沒意義的題目多練習看看,有時候工具練到反08/0914:21 →VictorTom:設性的看到什麼就想到用什麼,個人覺得也算是種進步:)08/0914:21 我就像你說得這樣,腦子裡學到的好像一團亂,不曉得怎麼應用 其實我也滿常修改範例,看看會產生什麼變化,但我會修改卻不會創造 其實單一用途的小功能還是寫得出來,但卻無法組合成大型程式 往往都需要有人告訴我組合方式,我才能寫得出來 →ILike58:太神奇了,你有碰STL竟然組合不出你想要的功能,除非你是08/0914:32 →ILike58:指軟體等級要用幾個function搞定,不過更神的是你竟然啃完08/0914:34 →ILike58:TheC++ProgrammingLanguage..........................08/0914:34 這就是我困擾的地方,我知道STL有什麼東西,但我不會用,我知道他的單一功能為何 但我不知道當我遇到什麼問題需要用到他,應該說遇到問題時我並不會想到他 常常都是自己寫了很爛的function之後才想到這種東西STL裡面就有了 TheC++ProgrammingLanguage是我最後看的一本,在那之前我已經看了10本以上的C++ 很多東西都反覆閱讀了好幾遍,所以很多地方其實都學過 推tyc5116:有沒有人覺得他只是謙虛PO文而已[email protected]@08/0914:35 推VictorTom:說不定唷XD不過,有些學習的結果造成會懂不會用的也不08/0914:36 →VictorTom:少見,基礎學科如數學英文,生活技能如開車等也不少見,08/0914:37 →VictorTom:工具總是要常常去使用,才會熟悉什麼時候適合拿哪些組合08/0914:38 →VictorTom:起來用吧....XD08/0914:38 推horngsh:用看的方式學programming永遠不會進步,typeandlearning.08/0914:46 每一本的題目我都有試著做,但做完好像並沒有學起來,只是當下了解而已 →stool100:你需要題目08/0914:47 →ILike58:不過人本來就有學習模仿的能力,C++Primer用心看完,起碼08/0914:49 →ILike58:都會感染他的一些想法作法吧............................08/0914:50 →x000032001:你用背的嗎..................08/0914:54 推softwind:其實雨人就是像你這樣要看你和他人接觸的情形08/0914:58 推silveriii:要看是哪種規模的程式寫不出來吧...可能只是不會拆解08/0914:59 →silveriii:問題而已08/0914:59 →softwind:如果你沒有自閉的現象那就感謝老天給你超強記憶力吧..08/0914:59 我記憶其實很差,會的東西都是反覆看了好幾本書都有提到才會記得,學校也有反覆教 →xatier:while(1){coding();debug();thinking();}08/0915:13 →x000032001:題目寫多應該能培養一點感覺才對..寫難一點的08/0915:17 →x000032001:多想怎麼寫比較好速度(程式跟coding皆然)比較快簡潔08/0915:18 推F23ko:你需要的是「組合工具」的能力.....08/0915:22 推loveme00835:就是因為你覺得它是重複的東西,你才會學不起來,每08/0915:23 →loveme00835:本書都有他切入的角度,還有著重的地方,心想「我讀過08/0915:23 →loveme00835:過了」那麼哪怕是些微的新東西,你也會很容易帶過08/0915:24 其實我很想學好,所以每次看一本新的書我都當自己是新手,不會跳過任何章節 每看完一本書也越了解C++的用法與特性,就算是前一本就做過的題目,在下一本出現 我還是會從頭做一次,但一要我自己創造程式我就寫不出來,就算拋開語言 在不管語言的情況下要我把一個流程轉成虛擬碼,常常還是轉不出來 ※編輯:PTTDEMA來自:218.171.60.135(08/0915:31) →loveme00835:先從口語表達開始,不過要先了解問題本身08/0915:33 →loveme00835:其實你需要揣摩的是作者的思考方式,用法倒是其次08/0915:35 →x000032001:找個老師引導式思考XD08/0915:37 推bill42362:要不要試著練習畫流程圖之類[email protected]@"08/0915:39 推Yshuan:寫題目嗎?http://ace.delos.com/usacogate推薦USACO08/0915:55 →Yshuan:主要是演算法的範疇..第一章都很直觀可以嘗試看看08/0915:56 →Yshuan:題目完成之後會有analsys比較別人的想法跟自己的想法差異08/0915:57 推abc1231qa:你就像打造了一個很大的地基上面卻沒有蓋建築物08/0916:00 →abc1231qa:哪天你找到融會貫通的方法一定會變超級強08/0916:01 →abc1231qa:變成一座非常堅固高聳宏偉的"程式設計"之塔08/0916:01 →abc1231qa:所以加油吧(這樣有沒有很熱血XD)08/0916:02 推newstar2007:你有沒有試過當你練習完一個程式回想他的功能08/0917:13 →newstar2007:然後不看書地把他寫出來08/0917:13 →newstar2007:不要用背的從小程式開始08/0917:13 →tinlans:你只需要一個能把你逼到極限狀態又孤立無緣的逆境。

08/0918:30 推VictorTom:回一下目前edit的最後一段,小弟覺得入門到學習的書可以08/0919:58 →VictorTom:多看幾本沒錯,但不需要後面每本都重新以新手的態度去看08/0919:58 →VictorTom:而是語法熟析之後,開始朝比如說資料結構或演算法之類的08/0919:59 →VictorTom:方向去看.比如STL已經是人家寫好的很多工具,但資結演08/0920:00 →VictorTom:算法裡有些也就是教這些工具的實作,了解某些常用的東西08/0920:01 →VictorTom:或者常遇到的問題,自己練習思考/解決/實作這些東西,會08/0920:01 →VictorTom:比只是單純去看懂/知道有這些東西,來的更有感覺吧:)08/0920:01 →VictorTom:也因為自己真的接觸/了解/思考/解決過那樣的問題,你才08/0920:02 →VictorTom:會更有體會什麼時候來用什麼工具來拼你要的功能.08/0920:03 →VictorTom:比如,字元陣列,靜態陣列,動態陣列,鍊結串列,寫程式08/0920:04 →VictorTom:時遇過一些麻煩的問題,才更能體會,vector/VLA,string08/0920:04 →VictorTom:等等這些東西為什麼好用....XD08/0920:05 →yauhh:看起來,你只是沒記性而已.不要自找煩惱08/0920:05 →tinlans:解決問題的時候不要想著依賴別人,也不要用搜尋引擎。

就單08/0920:40 →tinlans:靠你手邊現有的書,再試試看。

08/0920:40 →tinlans:搜尋引擎會讓初學者容易依賴跟現有問題關聯性最高的答案。

08/0920:41 →tinlans:指導你的人也可能因為不擅長引導你,而造成同樣的依賴。

08/0920:42 →tinlans:我比較好奇,國中時代原po遇到數學難題,會怎麼解決?08/0920:45 推VictorTom:小弟我同樓上t大有同樣的好奇[email protected][email protected]"08/0920:46 →tinlans:馬上找人問?想辦法跟書商騙解答本?想說老師沒教方法所以08/0920:46 →tinlans:大家都不會,直接放棄?還是花一整晚在解那一題?08/0920:47 →yoco315:不要擔心,我學了十幾年,我現在也覺得我不會寫程式08/0920:52 →loveme00835:當然是直接爆肝跟他拚了!ˋˊ08/0920:55 →hilorrk:我從來就沒有覺得自己寫過程式...我一直在學寫程式--08/0921:07 →kikiqqp:書不是只拿來看的主要是拿來查的08/1001:21 推tabascobath:給你一個建議以後寫程式之前在紙上先把虛擬碼寫出來08/1007:27 →tabascobath:語法都會還是寫不出來表示邏輯沒有架構08/1007:28 →tabascobath:因此先寫虛擬碼在紙上面把邏輯順序弄清楚08/1007:29 →tinlans:樓上,他說他寫虛擬碼的時候腦袋一片空白啊。

08/1008:28 →gintan:剛開始工作的時候我也不會寫C自己買了本書來K08/1008:50 →gintan:還有跟著做書裡面的練習題才漸漸有寫CODE的感覺08/1008:50 →gintan:你欠缺的只是多做題目多練習多想多寫CODE會有幫助08/1008:51



請為這篇文章評分?