看板Soft_Job
剛好對演算法最近有點感觸。
好好的練過演算法我覺得有一個效果:
改變你使用你的大腦的方式。
注意這只是 "差異",還談不上有什麼 "優劣",
這是你要去考慮去做選擇的。
或者要想辦法避免這個差異帶來的缺點。
以下先說一個實例再對以上這段做解釋。
======================= 實例開始 =======================
最近 (約 3 月 25 ~ 27) 遇到的狀況:
如
#1JBbR2dM 這篇中的圖
http://ppt.cc/CQO8 下半部
Anti pattern 的部份,
3/25 我們 team 的 tech leader 來找我討論,
我們討論了兩個小時,他提了四五種 case 覺得那功能很好用,
我則是一再的強調問題不在那個功能好不好用,
反而正因為那功能很好用,更會降低我們去
"改善其它部份在沒有那個功能的前提下
以更符合 pattern 的方式達到相同效果" 的動力。
然後之前 SO 上提的方法他似乎也沒覺得比較好。
講了兩個小時沒有交集。
3/26 半夜,我邊放屎邊看漫畫時突然想到,
一組目前已有的功能可以很好的以更符合 pattern 的方式,
以很 general 很通用的做法達到接近的效果。
Let me show you the code, gist...痾,沒有要 pk。
3/27 早上花了一個多小時寫好 sample,
再把 gist link 傳給 tech leader,
接下來討論不到半小時就有一個共識:
我:
the problem is that we stopped to think about how to
improve our product as soon as we have a "usable" mechanism.
(特別強調,本廢英文不好)
他:
definitely
然後下午我就看到他跟老闆討論這個 sample,
又是講了快一個鐘頭。
======================= 說明開始 =======================
對以上實例,我的猜想是這樣的:
當你真的好好地、一步一步地將許多經典演算法推過幾輪,
踏實地將它們每一個都徹底實做過,
並嚐試微調測試你能想到的部份,
並且不限於書本,包括網路上或論文上的東西也這麼做。
這個過程會強化、特化你大腦的某些區塊,建構某些特別的迴路。
然後在幾年之後,
一個東西經過你的眼睛,存放進大腦時的存放方式就不一樣了,
然後你思考時,思考的迴路也不一樣了,
你思考的角度、思考的方式、同樣的思考所造成的結果也會有所不同。
於是某些東西,你覺得很直觀,
另有一些則是稍加思索就能得出一些成果。
這好像是不錯?
但是相對的,
你的理解也就更不同於別人的理解,
你的語言也就更不同於別人的語言,
你會更難真正的理解別人的想法,
也更難把你的想法確實地傳達給別人。
綜合看起來這有好有壞,
是好或壞就看你想做什麼工作,以及想在什麼環境工作而定。
例如 SA、PM 等要對人溝通的工作,
這可能就不是好事。
以上一點最近的感受
: 程式寫了有段時間了 覺得很迷惑
: 學校教的資料結構 演算法 etc
: 都是理論常常有種練習完之後 要用在哪裡的困惑?
: 或許是我現在程式寫太小的關係
: 請教業界前輩指點一下
--
※ 批踢踢實業坊(ptt.cc), 來自: 36.226.199.185※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1396439128.A.EFB.html
推 dream1124:推 04/03 00:58