[問題] 學了七年但我不會寫程式

看板C_and_CPP作者 (DEMA)時間13年前 (2010/08/09 14:09), 編輯推噓16(16071)
留言87則, 25人參與, 最新討論串1/3 (看更多)
各位好,我是資工系畢業的學生,有個狀況困擾我很久,我想該來向各位求助 我從高中開始學電腦,一直到現在大學已經畢業了,但我認為我不會寫程式 求學的時候,如果考筆試,我可以看出程式碼是在做什麼所以可以通過考試 如果是上機考,藉由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

08/09 14:13, , 1F
整篇看了兩次~感覺好神奇~我是一個才大一學一年的學生
08/09 14:13, 1F

08/09 14:13, , 2F
我覺得我可以寫一些很小的程式,但板上的程式我看懂的不多
08/09 14:13, 2F

08/09 14:14, , 3F
一個問題出來,我總是想題目要的是什麼,怎麼達到
08/09 14:14, 3F

08/09 14:15, , 4F
你寫過最大的程式是什麼阿@@ 我也沒寫過ACM 資結的程式...
08/09 14:15, 4F
寫過最大應該是專題的嵌入式系統,不過當時有指導教授,基本上都是他說做法我實行

08/09 14:15, , 5F
我會什麼,可以怎麼解決,看法跟版大感覺很兩極@@
08/09 14:15, 5F

08/09 14:16, , 6F
反正有遇到問題 再想辦法解決 你是毫無頭緒嗎
08/09 14:16, 6F
我是毫無頭緒,問我STL的東西我知道,問我哪時候用的到那些我卻不知道了

08/09 14:17, , 7F
學校裡總寫過些比較大形的程式作業吧?? 寫過怎樣的東西
08/09 14:17, 7F

08/09 14:17, , 8F
呢?? 看起來您是滿手工具而且都了解其用途, 就是不曉得
08/09 14:17, 8F

08/09 14:18, , 9F
除了看還要實際寫啦 從簡單短短的開始
08/09 14:18, 9F

08/09 14:18, , 10F
遇到問題時不知道如何組合手邊現有的工具與發明還沒有的
08/09 14:18, 10F

08/09 14:19, , 11F
工具. 每個人的學習曲線與習性不同, 適合自己的方式可能
08/09 14:19, 11F

08/09 14:19, , 12F
還是要自己摸索/發明出來. 小弟以前會在學習過程中, 把
08/09 14:19, 12F

08/09 14:20, , 13F
範例程式東修西改的玩看有什麼變化, 以既有的範例玩玩可
08/09 14:20, 13F

08/09 14:20, , 14F
以加/改些什麼, 多變出一點自己想要的功能出來. 進一步
08/09 14:20, 14F

08/09 14:21, , 15F
的就是有意義沒意義的題目多練習看看, 有時候工具練到反
08/09 14:21, 15F

08/09 14:21, , 16F
設性的看到什麼就想到用什麼, 個人覺得也算是種進步:)
08/09 14:21, 16F
我就像你說得這樣,腦子裡學到的好像一團亂,不曉得怎麼應用 其實我也滿常修改範例,看看會產生什麼變化,但我會修改卻不會創造 其實單一用途的小功能還是寫得出來,但卻無法組合成大型程式 往往都需要有人告訴我組合方式,我才能寫得出來

08/09 14:32, , 17F
太神奇了,你有碰STL竟然組合不出你想要的功能,除非你是
08/09 14:32, 17F

08/09 14:34, , 18F
指軟體等級要用幾個function搞定,不過更神的是你竟然啃完
08/09 14:34, 18F

08/09 14:34, , 19F
The C++ Programming Language..........................
08/09 14:34, 19F
這就是我困擾的地方,我知道STL有什麼東西,但我不會用,我知道他的單一功能為何 但我不知道當我遇到什麼問題需要用到他,應該說遇到問題時我並不會想到他 常常都是自己寫了很爛的function之後才想到這種東西STL裡面就有了 The C++ Programming Language是我最後看的一本,在那之前我已經看了10本以上的C++ 很多東西都反覆閱讀了好幾遍,所以很多地方其實都學過

08/09 14:35, , 20F
有沒有人覺得他只是謙虛PO文而已.....@@
08/09 14:35, 20F

08/09 14:36, , 21F
說不定唷XD 不過, 有些學習的結果造成會懂不會用的也不
08/09 14:36, 21F

08/09 14:37, , 22F
少見, 基礎學科如數學英文, 生活技能如開車等也不少見,
08/09 14:37, 22F

08/09 14:38, , 23F
工具總是要常常去使用, 才會熟悉什麼時候適合拿哪些組合
08/09 14:38, 23F

08/09 14:38, , 24F
起來用吧....XD
08/09 14:38, 24F

08/09 14:46, , 25F
用看的方式學programming永遠不會進步,type and learning.
08/09 14:46, 25F
每一本的題目我都有試著做,但做完好像並沒有學起來,只是當下了解而已

08/09 14:47, , 26F
你需要題目
08/09 14:47, 26F

08/09 14:49, , 27F
不過人本來就有學習模仿的能力,C++ Primer用心看完,起碼
08/09 14:49, 27F

08/09 14:50, , 28F
都會感染他的一些想法作法吧............................
08/09 14:50, 28F

08/09 14:54, , 29F
你用背的嗎..................
08/09 14:54, 29F

08/09 14:58, , 30F
其實 雨人 就是像你這樣 要看你和他人接觸的情形
08/09 14:58, 30F

08/09 14:59, , 31F
要看是哪種規模的程式寫不出來吧 ... 可能只是不會拆解
08/09 14:59, 31F

08/09 14:59, , 32F
問題而已
08/09 14:59, 32F

08/09 14:59, , 33F
如果你沒有自閉的現象 那就感謝老天給你超強記憶力吧..
08/09 14:59, 33F
我記憶其實很差,會的東西都是反覆看了好幾本書都有提到才會記得,學校也有反覆教

08/09 15:13, , 34F
while (1) { coding(); debug(); thinking(); }
08/09 15:13, 34F

08/09 15:17, , 35F
題目寫多應該能培養一點感覺才對..寫難一點的
08/09 15:17, 35F

08/09 15:18, , 36F
多想怎麼寫比較好 速度(程式跟coding皆然)比較快 簡潔
08/09 15:18, 36F

08/09 15:22, , 37F
你需要的是「組合工具」的能力 .....
08/09 15:22, 37F

08/09 15:23, , 38F
就是因為你覺得它是重複的東西,你才會學不起來,每
08/09 15:23, 38F

08/09 15:23, , 39F
本書都有他切入的角度,還有著重的地方,心想「我讀過
08/09 15:23, 39F

08/09 15:24, , 40F
過了」那麼哪怕是些微的新東西,你也會很容易帶過
08/09 15:24, 40F
其實我很想學好,所以每次看一本新的書我都當自己是新手,不會跳過任何章節 每看完一本書也越了解C++的用法與特性,就算是前一本就做過的題目,在下一本出現 我還是會從頭做一次,但一要我自己創造程式我就寫不出來,就算拋開語言 在不管語言的情況下要我把一個流程轉成虛擬碼,常常還是轉不出來 ※ 編輯: PTTDEMA 來自: 218.171.60.135 (08/09 15:31)

08/09 15:33, , 41F
先從口語表達開始, 不過要先了解問題本身
08/09 15:33, 41F

08/09 15:35, , 42F
其實你需要揣摩的是作者的思考方式, 用法倒是其次
08/09 15:35, 42F

08/09 15:37, , 43F
找個老師引導式思考XD
08/09 15:37, 43F

08/09 15:39, , 44F
要不要試著練習畫流程圖之類...@@"
08/09 15:39, 44F

08/09 15:55, , 45F
寫題目嗎? http://ace.delos.com/usacogate 推薦USACO
08/09 15:55, 45F

08/09 15:56, , 46F
主要是演算法的範疇.. 第一章都很直觀 可以嘗試看看
08/09 15:56, 46F

08/09 15:57, , 47F
題目完成之後 會有analsys比較 別人的想法跟自己的想法差異
08/09 15:57, 47F

08/09 16:00, , 48F
你就像打造了一個很大的地基 上面卻沒有蓋建築物
08/09 16:00, 48F

08/09 16:01, , 49F
哪天你找到融會貫通的方法 一定會變超級強
08/09 16:01, 49F

08/09 16:01, , 50F
變成一座 非常堅固高聳宏偉的"程式設計"之塔
08/09 16:01, 50F

08/09 16:02, , 51F
所以加油吧(這樣有沒有很熱血XD)
08/09 16:02, 51F

08/09 17:13, , 52F
你有沒有試過 當你練習完一個程式 回想他的功能
08/09 17:13, 52F

08/09 17:13, , 53F
然後不看書地把他寫出來
08/09 17:13, 53F

08/09 17:13, , 54F
不要用背的 從小程式開始
08/09 17:13, 54F

08/09 18:30, , 55F
你只需要一個能把你逼到極限狀態又孤立無緣的逆境。
08/09 18:30, 55F

08/09 19:58, , 56F
回一下目前edit的最後一段, 小弟覺得入門到學習的書可以
08/09 19:58, 56F

08/09 19:58, , 57F
多看幾本沒錯, 但不需要後面每本都重新以新手的態度去看
08/09 19:58, 57F

08/09 19:59, , 58F
而是語法熟析之後, 開始朝比如說資料結構或演算法之類的
08/09 19:59, 58F

08/09 20:00, , 59F
方向去看. 比如STL已經是人家寫好的很多工具, 但資結演
08/09 20:00, 59F

08/09 20:01, , 60F
算法裡有些也就是教這些工具的實作, 了解某些常用的東西
08/09 20:01, 60F

08/09 20:01, , 61F
或者常遇到的問題, 自己練習思考/解決/實作這些東西, 會
08/09 20:01, 61F

08/09 20:01, , 62F
比只是單純去看懂/知道有這些東西, 來的更有感覺吧:)
08/09 20:01, 62F

08/09 20:02, , 63F
也因為自己真的接觸/了解/思考/解決過那樣的問題, 你才
08/09 20:02, 63F

08/09 20:03, , 64F
會更有體會什麼時候來用什麼工具來拼你要的功能.
08/09 20:03, 64F

08/09 20:04, , 65F
比如, 字元陣列, 靜態陣列, 動態陣列, 鍊結串列, 寫程式
08/09 20:04, 65F

08/09 20:04, , 66F
時遇過一些麻煩的問題, 才更能體會, vector/VLA, string
08/09 20:04, 66F

08/09 20:05, , 67F
等等這些東西為什麼好用....XD
08/09 20:05, 67F

08/09 20:05, , 68F
看起來,你只是沒記性而已.不要自找煩惱
08/09 20:05, 68F

08/09 20:40, , 69F
解決問題的時候不要想著依賴別人,也不要用搜尋引擎。就單
08/09 20:40, 69F

08/09 20:40, , 70F
靠你手邊現有的書,再試試看。
08/09 20:40, 70F

08/09 20:41, , 71F
搜尋引擎會讓初學者容易依賴跟現有問題關聯性最高的答案。
08/09 20:41, 71F

08/09 20:42, , 72F
指導你的人也可能因為不擅長引導你,而造成同樣的依賴。
08/09 20:42, 72F

08/09 20:45, , 73F
我比較好奇,國中時代原 po 遇到數學難題,會怎麼解決?
08/09 20:45, 73F

08/09 20:46, , 74F
小弟我同樓上t大有同樣的好奇....@_@"
08/09 20:46, 74F

08/09 20:46, , 75F
馬上找人問?想辦法跟書商騙解答本?想說老師沒教方法所以
08/09 20:46, 75F

08/09 20:47, , 76F
大家都不會,直接放棄?還是花一整晚在解那一題?
08/09 20:47, 76F

08/09 20:52, , 77F
不要擔心,我學了十幾年,我現在也覺得我不會寫程式
08/09 20:52, 77F

08/09 20:55, , 78F
當然是直接爆肝跟他拚了! ˋˊ
08/09 20:55, 78F

08/09 21:07, , 79F
我從來就沒有覺得自己寫過程式...我一直在學寫程式- -
08/09 21:07, 79F

08/10 01:21, , 80F
書不是只拿來看的 主要是拿來查的
08/10 01:21, 80F

08/10 07:27, , 81F
給你一個建議 以後寫程式之前 在紙上先把虛擬碼寫出來
08/10 07:27, 81F

08/10 07:28, , 82F
語法都會 還是寫不出來 表示邏輯沒有架構
08/10 07:28, 82F

08/10 07:29, , 83F
因此先寫虛擬碼 在紙上面把邏輯順序弄清楚
08/10 07:29, 83F

08/10 08:28, , 84F
樓上,他說他寫虛擬碼的時候腦袋一片空白啊。
08/10 08:28, 84F

08/10 08:50, , 85F
剛開始工作的時候 我也不會寫C 自己買了本書來K
08/10 08:50, 85F

08/10 08:50, , 86F
還有跟著做書裡面的練習題 才漸漸有寫CODE的感覺
08/10 08:50, 86F

08/10 08:51, , 87F
你欠缺的只是多做題目多練習 多想多寫CODE 會有幫助
08/10 08:51, 87F
文章代碼(AID): #1CNvkIen (C_and_CPP)
文章代碼(AID): #1CNvkIen (C_and_CPP)