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