我是一個混蛋程式設計師
我最近收到了這封來自Artsicle公司創始人的郵件,我大一時整個夏天都在這家創業公司裡實習。
來自:Scott Carleton
主題:剛剛重構了你一年前寫的 find_art.js 指令碼
從某些方面上看,我心裡想:你是個相當混蛋的程式設計師。
但從另一方面上講,真扯蛋,這個指令碼在過去的20個月裡完美的執行,根本不需要我去碰它。:)
本文的作者: Dan Shipper
Scott說的一點沒錯:我是個混蛋程式設計師。我不認真的註釋我的程式碼。有時,我會違反DRY程式設計原則。我不喜歡使用奇妙的三重操作符表示式,也不太在意空格的使用。我的資料結構有時會弄的醜陋不堪。
但從另一方面,我(大言不慚)是一個相當優秀的程式設計師。例如,Artsicle公司是一個Rails開發公司,之前在這個公司工作時,我對Rails和真正的MVC框架只有非常少的經驗。但幾周後,我差不多掌握了他們的程式碼庫,並開發出了很少有錯誤的功能模組。
我自己也開發軟體程式。很多的程式。在過去的2年裡,開發併發布了20多款應用,用各種各樣的語言和框架,從Python到Rails到Node到Backone等。
Ruby on Rails框架的創始公司42 Floors甚至還公開的邀請我加入他們的團隊。你可以認為是他們看走眼了,但這些至少證明了我開發軟體的能力。我們的雙手,看起來,是亦正亦邪的造物主。
那我是一個爛程式設計師,還是一個好程式設計師呢?
我想,很顯然,我們有一個定義上的麻煩:什麼才是好的程式設計師?
可以這樣說,我優先考慮的,在我開始程式設計的10年前就已經養成習慣了:如何能以最快的速度實現它?
對此,我有一個非常明確的原因:當你給自己開發一個東西(而且你正年輕)時,很有可能,沒有哪個專案會很長久的佔用你的精力。所以,對於我,我更願意花最少的時間開發出漂亮的程式,這樣,留出更多的時間用於測試我的這些小軟體。我總是從一個非常實用的角度來開發程式。
對我來說,程式設計中的美麗就是這樣一個事實:他能讓我構建我想要的軟體,而其中唯一的成本就是我的時間。
我總是先在腦子裡開發我的軟體,絕不會隨便開發一個東西鬧著玩。
但是,當我進入大學後,一些有趣的事情發生了。雖然我是主修哲學的,計算機課程我也上。從理論的視角——而不是以實用的角度——來看如何進行軟體程式設計,這著實讓我大開眼界。不僅我開發軟體的方式受到了影響,我的學習興趣也發生了變化。
真正理論上的計算機學(處理複雜理論的那些東西)實際上非常像哲學。有趣的事情是,很多我學到的純理論上的知識,讓我在真正開發軟體時變得更成熟。
事實證明,通過掌握了一些計算機學原理上的基本原則後,你每天的日常開發都能從中受益。如果你懂得一些演算法和資料結構,你就有了更好的儲備來應付開發更復雜的Web應用時遇到的挑戰。
所以,所謂好程式設計師,是指那些對計算機學知識在理論上有了基本掌握的人,不是嗎?
錯。
並不是因為你從著名學府裡獲得了計算機學位,你就能成為下一個Jason Cohen 或 Patrick McKenzie。你還要做大量的家庭作業才能成為一名優秀的程式設計師。
就像生活中的很多其它事情一樣,這什麼才是好程式設計師的答案,就介於那些想讓程式最快的開發出來的人和那些讓程式漂亮的開發出來的人之間。
答案就是:好的程式設計師知道什麼時候應該快速開發而不拘小節,什麼時候應該周全考慮而且程式碼整潔。你要學會問:這樣東西真的是必要的嗎?有些時候,你需要抽出額外時間設計,使你要開發的東西都是必要的。隨著經驗的增加,我越來越認識到其中的真諦。
如今我開發的東西比五年前開發的有更多的人使用。這要求我在思想上做一些調整。以前單純的追求速度,現在還要更多的關注程式碼的優雅(否則,我的合夥人會殺了我)。
所以,當你下次開發一個專案時,花時間想想什麼是最重要的:速度還是優雅?學會回答這個問題,你就成功了一半。
相關文章
- 【譯】我是一個平庸的程式設計師程式設計師
- 我為我是個程式設計師而驕傲程式設計師
- 你好,我是程式設計師程式設計師
- 我是一名程式設計師而且我很蠢程式設計師
- 我是一個不會運維的後端程式設計師運維後端程式設計師
- 我們是程式設計師(譯文)程式設計師
- 我不是一個成功的人,但是我想做一個優秀的程式設計師程式設計師
- 我招了個“水貨”程式設計師程式設計師
- 我是6年的程式設計師了程式設計師
- 我打算寫一個《程式設計師的成長課》程式設計師
- 作為程式設計師,我是怎麼通過一個方法記住7000個單詞的!程式設計師
- “我男友是程式設計師,修BUG比我重要,服了!”程式設計師
- 面試了一個 39 歲程式設計師,我有點慌……面試程式設計師
- 如果孔子是個程式設計師,一定是P14程式設計師
- 程式設計師是一個需要天賦的職業嗎?程式設計師
- 2018 這一年似乎我不再是了程式設計師了程式設計師
- 不會填坑的程式設計師不是一個好程式設計師!程式設計師
- 我是程式設計師,我用這種方式銘記歷史程式設計師
- 我的程式設計師之路程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 第一個想取代程式設計師的AI程式設計師,失敗了?程式設計師AI
- 我來告訴你,一個草根程式設計師如何進入BAT程式設計師BAT
- 我們公司給新人的README,值得每個程式設計師一讀程式設計師
- 面試了一個 39 歲程式設計師後,我被罵了……面試程式設計師
- 看看一個老程式設計師是如何手寫Spring MVC的!程式設計師SpringMVC
- 你可能是個假程式設計師,不信測一下程式設計師
- 一個程式設計師 && 作者 && 設計師的 2018 年終總結程式設計師
- 我真的要做一輩子的程式設計師嗎?程式設計師
- 一個程式設計師的編年史程式設計師
- 如何從一個程式設計師走向成功?程式設計師
- 一個理想主義的程式設計師程式設計師
- 一個程式設計師眼中的 UCAN 2019程式設計師
- 一個BAT老程式設計師的忠告!BAT程式設計師
- 一個程式設計師的2021總結程式設計師
- 一個程式設計師的負罪感程式設計師
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- 我是為何下定決心入行程式設計師的行程程式設計師
- 這是一個月薪 12000 的北京程式設計師的真實生活程式設計師
- 在HR眼中,一個合格的前端程式設計師是怎樣的?前端程式設計師