星期一, 9月 25, 2006

雜記

不會吧,NB的三個USB槽都用完了!
USB滑鼠一個;需要用RS232看除錯訊息,所以USB對RS232轉接器再佔掉一個;跑的軟體需要USB鎖,第三個也用掉了。

結果這套軟體跑起來需要用USB連上硬體,於是USB槽就不夠用啦。USB hub放在家裡沒帶出來,啊.....只好犧牲滑鼠,改用觸控板。

===
「寫程式就是抄啊!」廖在BBS上看到這樣的言論,當時忙著踩地雷,後來想想就把一些想法整理出來。

其實也沒有不對啦,天底下可以寫的程式那麼多,不抄一抄怎麼寫得完呢?不過我第一個想到的念頭,卻是艾西莫夫基地第一部裡,端點星首任市長說的一段情節。

裡面提到帝國的總理大臣道爾文(這名字譯得有意思)大人來到偏遠的端點星,公餘和馬洛談到他對歷史很有興趣,但是作法卻是窮搜各家文獻作整理比較,對親臨現象調查嗤之以鼻。哈丁事後藉此延伸,評論帝國沒落的狀況。

這反映了抄程式的心態之一:這麼多人在寫這些程式,我大概不會做得比別人好,既然所以何必自己做呢。

這裡面牽涉到一個問題,寫程式究竟是開創性的工作,還是常規性的作業。答案當然是兩者兼有,甚至在同一個狀況下同一隻程式,也因程式員的心態而完全不同。如果是開創性的事情,大概是找不到東西抄的,你就乖乖自己寫吧。

那麼若是常規性的作業,就一定得要抄嗎?這就和上課寫作業一樣,自己絞盡腦汁寫出來的不一定會比抄來的要好,但是所獲得的絕對是不同的。如果想要練習,當然是自己寫一遍會比較好。只想交差了事那就抄吧。

如果一隻程式寫過許多遍,真的就沒有自己寫的價值嗎?我覺得還是有的,當你的經驗和能力逐漸成長,同一隻程式寫出來的東西就是不一樣。有的人把自己的重要程式寫過再重寫,一版比一版更好更成熟。程式可以抄,這種進化要去哪裡抄呢?

如果由商業來看,非核心的部份儘管抄,但是核心的東西最好是自己寫,否則就沒有什麼差別和價值了。如果自己寫的比不上別人,技術上也沒什麼好做的。這時候公司的價值絕對不在你身上,臉皮薄就回家吃自己,不在意就賴在公司做個米蟲吧。這樣子到處抄抄程式倒是很正常的。BBS上舉得例子是YUV轉RGB,即使是這種爛掉的東西,在電腦史上的某些階段,還是有些公司靠著效率最佳化的這種程式在市場上佔有一席之地。

另一種抄程式的心態是覺得要寫的東西很無聊,不必花精神工夫去寫,這其實和前者差不了多少,自卑和自大其實只是一線之隔。

這樣寫好像把抄程式寫到一無是處,這當然不是事實,會抄才會進步,很多東西都是在抄的過程中學到的,只不過直接把寫程式想成抄程式,實在是太一廂情願了。
=== end ===

12 則留言:

jlchang 提到...

我也都跟學生說,如果自己寫不出什麼好的造句,那就背參考書上的,省得考試時寫一堆爛句子,又讓我很難改。結果,他們都只修改非核心的部份:姐姐→媽媽。

tu 提到...

非常同意 MPH 對「抄寫程式」的想法與論點呢。

每個人多少也都會抄襲一部份前人的程式吧。就像是寫文章,多少也會有前人的影子(句法或成語)。

麻煩在於,什麼狀況下,才適合抄襲?學習當然不適合抄襲。jlchang 的例子也很有意思,學生寫不出好造句,就只能修改「經典造句」中可以直接代換的部分。可是,我觀察寶寶,好像也是從這樣的練習中來學習對話啊。

系統的核心程式似乎也不應該抄襲。但如果是為了迅速搶佔市場呢?是不是可以先抄襲,然後再慢慢加入獨有的特質呢?

匿名 提到...

我的新工作客戶常常會要sample code,所以我對抄襲沒有太大的意見,只怕客戶不會抄:"這段sample code的功能是什麼啊?"

lcat 提到...

如果把寫程式當成服務業就好啦!

以速度最快、成本最低的方式,幫被服務對象解決問題。

^ ^
= O =

被掛掉的阿尼 提到...

重點是在寫什麼程式吧, 抄sample跟reuse物件其實義意上差不多, 能讓電腦有自己想要的結果出來才是重點. 就好像我們不去重寫windows一樣...

mph 提到...

我們這些有經驗的人自然知道什麼是重點,何時抄何時不抄。只是沒什麼歷練就認為抄是一切,等到沒東西抄時就慘了。

匿名 提到...

「等到沒東西抄時就慘了」?不會吧。

我看到的,多數是兩手一攤:找不到相關的參考程式,你叫我怎麼辦呢?

mph 提到...

這種人實在沒什麼辦法,尤其是越來越多的狀況下,希望他遇上LYR給他死當。

chensm 提到...

我遇到的是只給參考程式還不夠, 還必須要能完整執行, 且不能是 Pseudo Code. 通常到最後還會因為工作進度壓力, 我乾脆就把 Code 全寫完, 再把 Source Code 給他們, 他們只要改改字串或調參數就好了. 那是很離譜, 應該開刀的人, 只可惜他有兩張免死金牌, 我只好安慰自己, 就當是在寫教科書, 必須要有完整範例才可以.

被掛掉的阿尼 提到...

有一次寫了一對小網路程式給學生看, 學生說不能跑啊, 原來我是在自己的電腦寫的, 所以socket的參數是"127.0.0.1",然後他怪我為什麼沒有設計一個地方("指ui...")去改"設定".....@#$%^

mph 提到...

現在細想起來,這也可以算是選現在這個工作的原因,在想這裡人的水準至少比較齊。

不過事實是再怎麼好的公司都有不好的人。

如果不用為對方負責,就讓他自己掛了吧。

htliao 提到...

這可不是廣告信,哈哈

我有一個朋友的朋友,是導演,想找人用c++寫一個剪接軟體
有沒有人有興趣的?


有興趣可以約了面談細節.