2011年7月26日 星期二

演算法與 domain knowledge II

前文

我並不是說,演算法或者演算法的訓練沒有實用價值。

雖然我會在這個部落格幹譙生物學家或生物資訊,但是我並不認為只要 CS 功力夠強就可以做好跨領域研究。IOI 的銅牌 vgod,跑去做 人機界面,但是這個領域似乎想法比編程功力重要多了(?)

我本身沒參加過 ACM-ICPC 或者 IOI,雖然我認為這些解題技巧的訓練是非常有用的,但是在職涯發展上到底有多大優勢,我覺得很難說。姑且不論蠻多人都認為這些競賽者為了贏得比賽,通常被訓練出不好的編程習慣;解題技巧本身的進步和退化是跟使用有關的頻率有關,當投入另一個領域之後,所需要耗費的精神勢必減弱原來的解題能力。

如果研究主題有越多 domain knowledge,基本上解題技巧的重要性就逐漸被淡化。在努力補上需要的知識的過程,某些東西就勢必要放手。最後會是選擇平衡點的問題。例如(20%生物,80%資訊), (40%生物,60%資訊), 或者 (30%生物,70%資訊)。

我的立論就是這麼簡單,只根據一個假設:心力守恆。

演算法的訓練所能帶來的優勢,我覺得跟選擇的題目更有關系。假設做理論性的題目,像是 phylogenetic tree 或者 rearrangement 的演算法,我想演算法訓練非常重要;但生物資訊發展已經數十年,做這類題目的學者也都不是軟柿子。我不認為在這方面佔得到便宜,畢竟者這種題目也就等於演算法研究了。

我想這也是『演算法與 domain knowledge 孰重』這類主題始終沒有定論的原因。不同的跨領域研究/產業 需要不同的技能組成與比例。或許在大型產業或公司中,會有專重演算法的單位,但是談到『優勢』,這也和投入的時間以及當時的人力組合有關。

沒有留言: