看板 Soft_Job 關於我們 聯絡資訊
小弟進資策會前從沒有碰觸過程式語言, 目前在資策會學習差不多過了一個多月, 緊湊的課程中,授課老師偶爾會出作業給我們練習(目前學了JAVA SE & JavaScript) 小弟遇到的問題是: 老師出的作業我幾乎都寫不出來...如果只有一題兩題不會就算了 是幾乎每個作業都沒辦法自己從無到有自行完成...都必須參考同學的才寫得出來... 我不清楚到底是自己學習方式出問題? 只要老師有出作業,挫折感就會好深好重, 每次都問自己,為什麼同學都寫得出來我卻不行?好幾次想放棄可是又不甘心... 再跟各位前輩補充一下我的學習方法... 老師上課時大概80%都聽得懂,回家也都會認真複習(課本範例都有至少練習三次直到自己很熟) 可是只要有變化或是需要應用的題目我就完全無法下手(ex:盒內塔問題、跑馬燈抽獎程式 、洗牌程式....) 到底是我還缺少了什麼?學習方法有那裡可以改變? 還是真的是我腦筋太笨邏輯太差.... 感謝各位前輩耐心看完我的問題...真的很需要各位前輩的經驗參考... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.171.96 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1474463693.A.CDF.html
VisualStudio: 較簡單的邏輯通常你能在紙上寫出做法的順序過程 09/21 21:25
testPtt: 沒天分阿 我以前也是一樣 09/21 21:25
請問一下前輩怎麼解決這種問題呢?
VisualStudio: 要寫成程式就只是把做法過程改用語言去做 09/21 21:25
VisualStudio: 所以你至少要先能手寫或能理解講出解決那個問題的 09/21 21:26
VisualStudio: 步驟 你能講出作法步驟 要變成程式就不遠了 09/21 21:28
VisualStudio: 剩下的只是語言的功能有沒有支援你每一步的需求而已 09/21 21:28
目前是能做到把問題拆成一塊塊,可是沒辦法用程式語言的方法寫出來...
saiuytre: 中壢java班嗎? 09/21 21:32
沒錯!
james732: 推樓上,先用紙筆解決問題 09/21 21:33
gpctv: 其實那些演算法,網路都找的到,但不能全抄,就算全抄,答案也 09/21 21:39
gpctv: 不見得一樣! 09/21 21:39
gpctv: 像日期問題,每次要轉格式我都一定要查一下,日期轉字串,字串 09/21 21:39
gpctv: 轉日期,我都要查,但如果今天日期要轉一串長整數怎麼辦?!所 09/21 21:39
gpctv: 以還是要有自己的想法 09/21 21:39
gpctv: 對了,畫出流程圖也是很好的方法 09/21 21:39
bcew: 推樓上,缺乏解題技巧,像可以重複用二分法分兩步驟 09/21 21:40
bcew: 像河內塔是全部從A搬到C,就是n-1搬到B,n搬到C, 09/21 21:44
abccbaandy: 原PO問題是演算法吧...工作大部分只要會google就夠了 09/21 21:45
所以可以去嘗試看一些演算法的書嗎?
bcew: 再用同樣方式處理n-1,看到這樣就會想到遞迴函式 09/21 21:46
bcew: 也許你可以先不練解題,而是多看範例知道各種做法 09/21 21:48
前輩的意思是先多看範例,而不要在意解不解的出來老師的作業嗎? ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 21:56:00 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 21:56:22 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 21:57:31 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 21:58:34 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 21:59:55
testPtt: 我就是一直抄 一直菇狗 看的程式碼多 久了就習慣了 09/21 22:05
這似乎也是一種學習方法,不過test大後來能力有提升起來嗎? ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 22:11:12
vi000246: 正常啊 你同學也是google來的 別擔心 09/21 22:18
vi大 這樣到處咕狗以後出去工作沒問題嗎…? ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 22:22:26
Sunal: google也不是隨便餵關鍵字就有的 基本的還是要懂 09/21 22:55
abc0922001: 學習本來就有快有慢,多思考 09/21 22:55
pttworld: 感覺好像很急,養成需要時間。 09/21 22:57
Sunal: 也可以先看看 資料結構 09/21 22:57
目前真的是蠻急的...因為覺得自己好像跟其他同學有差距...
drajan: 把google廢掉 一半以上的工程師也廢掉了 09/21 23:21
drajan: 演算法不是用看的 要自己implement 玩玩leetcode吧 09/21 23:21
謝謝建議,我會去試試看leetcode網站 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 23:25:45 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 23:27:32
ppppman: 剛開始這情況很正常 更多的是基礎要打穩 我是上別班的 大 09/21 23:28
ppppman: 概最後兩個月做專題才覺得自己進步很多 因為後面比較懂 09/21 23:28
ppppman: 基礎熟練了 實作出來成長會快很多 你還是陣痛期 加油啦 09/21 23:28
ppppman: ~ 09/21 23:28
謝謝學長的建議QQ我會繼續努力撐下去的!!!
viper9709: 基礎不夠扎實 09/21 23:29
會在繼續認真focus在基礎java上!! ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 23:54:14 ※ 編輯: volume7101 (180.217.12.28), 09/21/2016 23:55:00
GoalBased: 多花時間慢慢想 09/21 23:58
femlro: 紅的明顯 勿妄自菲薄 同學也是google來的 09/22 00:03
femlro: 那些演算法問題很多都是很多年做出來的論文 09/22 00:03
femlro: 有些人是因為比你早學過或者本科早就摸過背起來了 09/22 00:03
femlro: 並不是因為比你厲害 你需要的先直接照抄不要問為什麼 09/22 00:04
femlro: 當你越學越多 然後往後複習 你對資料結構和演算法 09/22 00:04
femlro: 就會有越來越多靈感 或者多請教一些高手給你一些提示 09/22 00:04
femlro: 再來出社會上班比較多機會是架構問題 演算法都有現成 09/22 00:05
femlro: 你只要知道有哪些排序方式和哪些著名的演算法 09/22 00:05
femlro: google都能google得到 重點是要熟 不是要你發明 09/22 00:05
femlro: 不否認很多高手可以很直覺地寫出好用的演算法 09/22 00:06
femlro: 但我想以台灣基礎工程師還不太能做出這塊 09/22 00:06
femlro: 都要到資深或者有很強數學基礎的人才能設計演算法 09/22 00:06
謝謝前輩的分析,真的有種當頭棒喝的感覺,小弟會照這前輩建議的方式繼續學習的!!
laputaflutin: 老師出的大多都是經典題目,而經典之所以是經典, 09/22 00:06
laputaflutin: 就是需要你花時間思考練習,如果真的卡死無法,goo 09/22 00:07
laputaflutin: gle,看別人的解法,然 09/22 00:07
laputaflutin: 後自己重新從頭寫,大部分人都是這樣學的 09/22 00:07
femlro: 一開始要以語法和簡單的物件導向架構為學習目標 09/22 00:07
femlro: 以java來說算是這世界上生態系與資料最好找的語言了 09/22 00:07
goths5958: 覺得你的問題不是學演算法 是不習慣邏輯思考分析推演 09/22 00:19
goths5958: 找個看得懂的範例程式 試著去說明程式的來龍去脈 運作 09/22 00:24
goths5958: 流程 這行在做什麼 為何要這樣寫。確認自己夠清楚 能夠 09/22 00:26
goths5958: 將這些說明得讓不懂這隻程式邏輯的人也能聽懂 09/22 00:27
goths5958: 經過這些演練 對於程運作式的邏輯思考流程會比較有感覺 09/22 00:29
goths5958: 面對新問題時 可用紙筆及圖像輔助 一步一步釐清問題 09/22 00:31
goths5958: 如果你清楚範例 遇到A問題 因為是B狀況 所以用C解法 09/22 00:38
真的很謝謝前輩們的建議,我會好好消化這些建議,並努力學習下去!! ※ 編輯: volume7101 (180.217.12.28), 09/22/2016 00:38:46
goths5958: 新題目也是A問題 但是是b狀況 所以不能用C 試改用c 09/22 00:40
※ 編輯: volume7101 (180.217.12.28), 09/22/2016 00:40:38
goths5958: 類似這種推演 就比"遇到A就用C 然後不懂為何掛掉"還好 09/22 00:41
goths5958: 另外 學習"拆解問題"也是重點 整合包裝後的題目 其實 09/22 00:51
goths5958: 進一步看 可能就是幾個子問題子區塊 要學會攤開檢視 09/22 00:57
dnabossking: 好想分享一些心得,但好怕被噓爆 09/22 02:30
johnny94: 看你舉的例子,河內塔真的不簡單啊 09/22 03:03
blackcan: 估狗是正常的,有時不需要重新發明輪子 09/22 04:50
keyut2433: 推goths5958 09/22 05:47
kniver999: 我java班結訓到現在也還不會河內塔那些演算法的題目QQ 09/22 06:39
loveu8: 推樓上XD。不過學習程式一開始不是領悟力這麼高 09/22 06:51
loveu8: 像以前用C寫九九乘法表,花了一天去想,跟紙筆幫助才 09/22 06:52
loveu8: 順利寫出來。之後逐漸會思考怎樣拆解問題,切分出 09/22 06:53
loveu8: 自己可以處理,與尚無法處理的部份 09/22 06:53
loveu8: 從問題中,不管是用程式驗證你想的邏輯,還是寫下來思考 09/22 06:54
loveu8: 都有助於去釐清程式的運作,與理解問題可行的步驟與邏輯 09/22 06:55
loveu8: 嘗試驗證,嘗試再驗證,出現卡關,老是想不懂,可以尋找 09/22 06:57
loveu8: 同學給予幫助,或者Google參閱程式碼,從他們程式碼 09/22 06:57
loveu8: 理解程式的運作。建議可以學習Eclipse debug,可以更進一 09/22 06:58
loveu8: 步知道,程式運行的流程。會給予你一定的幫助 09/22 06:58
bab7171: 這是剛開始學程式撞牆期,一直學不要放棄 09/22 07:12
aaaming: 越撞牆越好玩 撞破就強化勒 09/22 08:48
weizhong: 將大問題切成小問題,例如跑馬燈抽獎,你可以先拆成如何 09/22 09:41
weizhong: 亂數抽獎與跑馬燈顯示兩個問題,再來先想亂數如何產生, 09/22 09:41
weizhong: 先用簡單方式顯示,然後跑馬燈怎麼做出來,理想的話你最 09/22 09:41
weizhong: 後可以把這兩個功能模組化,以後還可以拿出來用,不過大 09/22 09:41
weizhong: 前提是你語法要先弄熟,再來才是去實現這些東西 09/22 09:41
rupcj8: 不懂就多抄幾次 還是不懂就跳過 哪天你回頭一看突然就會 09/22 12:42
rupcj8: 我記得我當初學一些遞迴的演算法也是很無法接受 09/22 12:42
rupcj8: 但是某天突然就覺得很簡單 人腦真神奇 09/22 12:43
kenwufederer: 不是程式語言問題,是無法了解題目 09/22 12:49
descent: 河內塔本來就很難, 寫不出來多的是 09/22 12:52
descent: 你能可需要從簡單的題目開始, 老師的題目可能太難 09/22 12:52
descent: ex: 99乘法表之類的, 遞迴就先不要練了, 難度太高 09/22 12:53
qrtt1: 《高考灰姑娘》《考試之神》《龍櫻》先看個日劇,有些學習 09/22 13:04
qrtt1: 技巧。你得做點什麼,自己想不出來也沒關係,最終結果要有 09/22 13:04
qrtt1: 出來,符合需求就行了。 09/22 13:04
lovez04wj06: 理解問題,分析可能性,畫出流程圖,動手嘗試照流程 09/22 16:40
lovez04wj06: 製作。然後就是工程師最長做的事情,估狗+打掉重來。 09/22 16:40
lovez04wj06: 久了就沒問題了。 09/22 16:40
dragoncfe168: 看來資策會沒想像美好 還是得有一定基礎底子才靠譜! 09/22 18:19
jyunwei: 我什麼基礎進都沒有進去,現在也是在工作了 09/22 19:39
wesley234: 學純C練一點底氣吧!瓶頸才容易突破 09/22 23:07
rpdef9969: 推! 不是程式語言問題,是無法了解題目 09/23 00:30