看板 Soft_Job 關於我們 聯絡資訊
※ 引述《pichubaby (Pichu)》之銘言: : 大家好,小弟是117的資結助教。 : 其實這個問題應該是問老闆,老闆決定就好, : 只是我對於這個有點實際的問題很想聽聽目前在業界的大大們的意見。 : 目前有一份作業是這樣的,老師課堂上有教賀夫曼編碼,因此要實作一隻程式 : 這隻程式能夠以賀夫曼編碼完成壓縮以及解壓縮。 : : 當我當年修課時,我原先以為這應該是很簡單的問題,然而當了助教之後才發現 : 事實上能夠完成這項作業的人遠低於我當年的預期。 : ((大概一兩成吧... btw 這讓我想起, 當年班上也只有我跟另外一兩個人能寫出來,而且我不是在上資結的課寫的, 我是更早之前就在網路上看到這個題目,就跑去玩跟寫出來。 其他人不見得是做不出來,只是他們通常是在更早的階段, 程式設計時,就沒建立起程式設計的思考方式,這邊自然就無法推敲。 當我跟他們聊過程的概念時,他們是可以理解的, 只是無法將他換為程式語言撰寫出來。 : 而且還發現這個通過率其實是常態。 : 也就是其實當年和我修課的同學,他們就算是寫不出這份作業,卻也還是畢業了。 : 也就是其實當年在寫這份作業的學長姐 ...... ...... : 其實我個人在學期初是希望這份作業在今年的通過率能夠超過八成, : 因此在今年的作業標準上,其實是比往年還要嚴格不少, : 例如編譯期發現警告就會被我退件,或者是發現memleak、未定義行為也會被我直接 : 退件。 : *這門課的作業被退件之後,假如在期限內可以無限次補交。 : 只是以目前而言,其實通過狀況沒有比去年高多少,甚至比去年更低!不過,今年 :  和去年並不是使用同一份測資,因此在去年可以通過的答案,到了今年不一定可以直接 :  通過。(我當年的交作業被我今年其中一個測試資料幹掉了XD) : 所以問題來了,基本上我會想這麼做的主要動機是為了同學好,因為我會希望我在 :  寫這份作業的時候在不影響分數的前提下,助教盡可能的點出會產生BUG的點,以及如 :  何修正,因為在大學時期能夠養成好的習慣對於未來就業是有幫助的。 :    然而在通過率如此低卻還能畢業的情況下,似乎就算寫出來的Code滿滿的警告, :  在業界上還是能用的? :    假如是這樣的話,是否這樣要求同學其實是有些過份? :     : ===================== : 話說假如只是用想的話,priority queue + binary tree輕鬆就解決掉了 :  但是同學有些會掛在賀夫曼編碼的buffer開不夠大, :  以致於當測資是單斜樹的時候會噴掉,或者是沒有考慮到singed和 :  unsigned char的問題。(看看最近有點紅的大富翁黑特文XD) 你讓我想到最近在教一個剛學 java 的人在學 Java Socket/ServerSocket, 我花了不少力氣跟他解釋什麼是程式、什麼是程式設計的思維。 我覺得這對他來講,遠比教他到底啥是 socket 啥是 serversocket , 他們 api 長怎樣要怎麼運用來得重要,api 怎麼運用是最後最不重要的一段。 但他們大多一開始都會認為那是最重要的一段。 程式設計其實是一種思考方式,就跟數學一樣,是需要被教育跟練習的。 拿走路當比方,其實有膝蓋抬起、帶動腳骨、往前舉高、膝蓋落下、腳著 地這幾個過程,可是我們平常在思考或在運動時會習慣性的忽略這些結構。 我們會覺得走路就走路,哪這麼複雜。 平常重視結果、不重視過程的思考方式,就會在寫程式時踢到很大的鐵板。 因為寫程式就是死板板的去瞭解你的硬體,在允許範圍內控制你的硬體, 一步一步的指定它該怎麼做,中間少了一環就會出錯, 它並不是個把什麼東西放一起就會正常運作的神奇魔法。 所以我們都必須要先瞭解程式設計有哪些階段, 至少先讓基本的邏輯操作跟基本資料型態操作自如, 能夠讓電腦隨心所欲的"說話"之後, 才能進入這種讓他說特別的 "繞口令" 還不會打結的階段。 XD 從我過去跟現在持續在教以及跟新人討論程式設計的感想, 我覺得他們缺少的主要還是程式設計的思維, 然後因為他們沒辦法用電腦說話,自然就失去後續的興趣。 對無法融入思維的人來講,那只是一條固定的生產線而已, 我從網路上找來的 sample 就是一條一條的生產線,死板板的工廠, 我只能想辦法從這些生產線產出老師、助教需要得結果。 對有程式思維的來看,看網路上的 sample 就像在看 wiki 一樣, 能看出它背後的思維、過程、緣起跟結果, 也就能理解該怎麼去用自己的話再說一次。 我覺得你的問題,應該先 review 一下班上有多少人能"讓電腦說話", 先讓能說話的人能通過測驗優先,再來才是讓其他人能更進入程式語言的世界。 不然你要求再高,頂多也只會收到, 一堆由少數幾個強者寫出來的許多看似不同的版本,問題根本沒改變。 因為問題很有可能出在更早的階段。 -- Life's a struggle but beautiful. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.16.35
pichubaby:十分同意 12/12 14:05
※ 編輯: TonyQ 來自: 61.230.16.35 (12/12 14:07) ※ 編輯: TonyQ 來自: 61.230.16.35 (12/12 14:09)
michael0728n:想知道什麼是程式設計的思維! 12/12 16:37
michael0728n:常常摸了很多程式卻不知道自己是不是在正確的路上... 12/12 16:37
Spanner:(y) 12/12 17:01
winken2004:推 12/12 19:43
oscarchichun:push 12/12 21:54
dubicat:想問關於程式設計的思維這東西有相關的書籍可以看嗎? 12/13 01:19
pichubaby:多看幾本? 我是路上遇到就拿來看這樣 12/13 01:29
chchwy:我自己是狂寫ACM 莫名其妙就練出程式思維了 12/13 13:34
TonyQ:我覺得寫 acm 這類的題目會很有幫助,不過不是唯一路線。 12/13 13:43
TonyQ:我當初也是因為好玩有寫了幾十題就是了 XD 12/13 13:44
mepowerlmay:什麼時候我才能跟前輩們一起工作 12/16 21:19
mepowerlmay:我們公司只有..結果 跟一堆奇怪的變數命名 12/16 21:20
amazing2014: 部分認同,我以前看書自學堆疊,能理解敘述和圖解 02/05 23:42
amazing2014: 但是不懂如何讓電腦說話, 02/05 23:43
amazing2014: 是經過自己一段時間思考才做出一個四則運算小算盤的 02/05 23:43