|
本文是從 I Hate Puzzles: Am I Still A Programmer? 這篇文章翻譯而來。
大概是一兩個(gè)月前,朋友送了我和老婆一份禮物:一個(gè)有1000個(gè)小拼塊的拼圖版,拼的是艾歇爾名作:
昨天我們決定試一試身手。
仔細(xì)看了看這個(gè)圖片,60-70%的色塊都是灰的。這些拼塊都非常的小,只有少數(shù)幾塊能辨認(rèn)出上面畫的是什么東西:艾歇爾的眼睛和背景上窗戶的某些部分。等把這幾塊拼完后,我們就傻眼了。
為什么人們會(huì)喜歡這種東西?如果你實(shí)在沒有任何事情可做,那就不說了——但我們還有很多有意義的事情要做。
我們決定放棄。我們?cè)俅未_認(rèn)了已知的一個(gè)事實(shí):我們討厭做智力游戲。
這天晚些時(shí)候我在Reddit或是Hacker News或是其它的一個(gè)什么地方發(fā)現(xiàn)了這個(gè)”漫畫“。畫的是關(guān)于編程的樂趣。簡(jiǎn)而言之:寫公式化的代碼——無聊;嘗試新的算法——有趣。
尋找新的算法是程序員版的智力游戲。當(dāng)有問題時(shí),能找出解決這個(gè)問題的最優(yōu)算法是一件非常有趣的事情——不是嗎?當(dāng)我的博士學(xué)習(xí)快要結(jié)束時(shí),我四處看了看可以去哪里工作,我發(fā)現(xiàn)很多有趣的公司都想要:解決算法問題能力很強(qiáng)的聰明的小伙和女孩。至少,他們招聘過程體現(xiàn)出來這些。
Facebook:
你喜歡智力題嗎?我們也是。
Google:
四個(gè)人需要在晚上通過一個(gè)損壞的橋。不幸的是,他們只有一個(gè)手電筒,而過這個(gè)橋不拿手電筒是很危險(xiǎn)的。這座橋每次只能承受兩個(gè)人同時(shí)經(jīng)過。每個(gè)人通過橋時(shí)所需的時(shí)間也不一樣。四個(gè)人分別用去:1分鐘,2分鐘,7分鐘,10分鐘。四個(gè)人都通過這個(gè)橋最短需要多少時(shí)間?
幾周前,舊金山的一個(gè)名聲很響的新銳公司聯(lián)系到我——問我是否有興趣加入他們的團(tuán)隊(duì)。是嗎!太好了!你能否在半個(gè)小時(shí)內(nèi)把這個(gè)算法難題解決掉?我失敗了。是否要我結(jié)果出來了。故事結(jié)束。
我討厭智力題。
不喜歡智力題我就不是一個(gè)好程序員了嗎?如果我不喜歡或很討厭這種類型的智力題我就不是程序員了嗎?有很多跡象表明我可不是一個(gè)真正的書呆子——比如,我不喜歡科幻小說。也許只是我不是這些公司要找的那種類型的程序員。這很公平。
我編程已經(jīng)有18年了。非常少的機(jī)會(huì)我需要解決復(fù)雜的算法問題。我喜歡編程并不是喜歡解決難題——我是喜歡設(shè)計(jì)。如何的方式能設(shè)計(jì)出一個(gè)大家都能理解的應(yīng)用程序?什么樣的工具能讓開發(fā)者們獲得更高的生產(chǎn)效率?
我第一個(gè)大工作量的編程項(xiàng)目——大概十年前——是YaBB。我需要一個(gè)論壇軟件,但你根本找不到一個(gè)好的免費(fèi)的可用。在YaBB里有很復(fù)雜的算法嗎?幾乎沒有。然而,它對(duì)人們卻是非常的有用,而且當(dāng)時(shí)也是非常的成功。
后來我開發(fā)了persistence.js 和 mobl。兩種產(chǎn)品都可以使開發(fā)人員獲得更多的工作效率。同樣,這里的挑戰(zhàn)根本不是來自算法。挑戰(zhàn)性來自API(persistence.js接口)和編程語(yǔ)言(以mobl為例)。兩者都很簡(jiǎn)單,強(qiáng)大,靈活,有用。這些都不是簡(jiǎn)單的活兒,但都跟算法沒有什么關(guān)系。它們是設(shè)計(jì)。
也許我更應(yīng)該把自己當(dāng)作一個(gè)軟件設(shè)計(jì)師,而不是一個(gè)程序員。
編程對(duì)你意味這什么?是一種本質(zhì)的算法?還是根本不是?我不喜歡智力題是腦袋有問題嗎?
it知識(shí)庫(kù):我討厭智力題:我還是個(gè)程序員嗎?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。