不一樣的程序猿

寫在前面

在人們的印象裏,程序猿似乎乾的都是些“脫離生活”的工作。他們通常都是清一色“戴眼鏡,雞窩頭/光頭,格子衫,電腦包 ”的配置,天天對着屏幕敲敲打打。
當然,作爲從外觀上的狹義概括,這個“定義”姑且還算有一定代表性。但是,程序猿常年累月從代碼浸潤的結果,遠不止熟悉一行行枯燥的指令那麼簡單。程序猿不同於常人的地方,在於他們看問題的方式以及解決問題的方法

程序猿的天賦加成

  • 哎同學,你學計算機的吧,我電腦壞了,幫我修修電腦可成
  • 哎同學,你學計算機的吧,幫我把這網站黑了成不成
  • 哎同學,你學計算機的吧,幫我盜個QQ號可成
  • … …

就像獸醫遇上精神病人設計師遇上無腦甲方, 相信這類無厘頭的請求一定有不少同學遇到過,每每撞上總免不了一場莫名的尷尬。
的確,作爲程序猿,我們並不是包喫電腦的多面手(全能大佬請自動忽略)但是在軟件使用方面,程序猿總會有那麼一星半點的“無師自通”的天賦。通曉代碼運行原理的他們,至少在能大致推斷:

  • 哪些工作 可以通過軟件減輕工作量
  • 哪些工作 必須自己老老實實幹
  • 哪些想法 有可能會被實現
  • 哪些想法 就是天馬行空的扯淡。

甲方:給咱產品加一個“根據手機殼顏色改變應用主題顏色”的功能吧。一天夠不?

打個比方:在對word高級操作同等不熟悉的情況下,拿到一份挺長的word文檔,要求刪除文檔裏的數字

  • 正常人可能拿到就開始吭哧吭哧手動覈對
  • 程序猿第一反應可能是“正則表達式” ,可能是“通配符”,到處點一點、找一找,再“面向一下瀏覽器”,可能就掌握批量替換的方法了。

當然,這裏有人會問,爲什麼普通人不會“面向瀏覽器”呢?讓我們再打一個比方:
一個沒用過任何書寫工具的孩子,看到一隻鋼筆,可能只會認爲這是一隻挺沉的鐵桿子。但如果他之前有用鉛筆寫字的經歷,可能就會猜測這玩意也能寫字,並開始自己的嘗試。
是的。軟件的使用亦是如此。很多專業軟件都有密密麻麻的一大把功能,寫成說明書都是厚厚的一大本。這些功能往往都是爲簡化操作提升產品質量設計的。通曉代碼的程序猿,會在方向意識上悄無聲息的佔據先機。

讓我們更加深入生活

如果說剛剛的例子還是太侷限於電腦方面了,那麼以下的情形可能更會在日常生活中出現。

(1)十卷硬幣,有一卷少了一個,如何儘快找出來?

  • 普通人:還愣着幹啥,趕緊全拆開了一個個數啊
  • 工程師:從車上拿出個電子秤(?)一個個稱
  • 程序猿:把工程師的電子秤借來(?)用二分法

(2)一批箱子,每個都有相應順序,並且沉的要死(不易挪動),如何給他們排序,讓他們既能方便的新增刪除,又能快速的查找

  • 無腦筋肉男: 按順序排成一排,新增就往裏塞,刪除就整個挪(線性表思想的體現)
  • 普通人:每個箱子都貼上紙條,寫上數字,新增、刪除只要操作一個就行了(指針思想的體現)
  • 程序猿:讓我們在查找速度上再優化一下,blablabla…(平衡二叉樹思想的體現)

(3)錯誤示範 (論程序猿爲什麼沒有女朋友

女朋友:

如果西瓜不錯(if)
	買兩個西瓜;
如果蘋果打折(else if)
	再買兩個蘋果;

程序猿買回了兩個蘋果
女朋友:西瓜呢?
程序猿:啥子西瓜?蘋果今天打折呀… …

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章