2011年5月17日 星期二

Programming is...(寫程式就是……)

一篇有趣的寫程式文章,他指出了程式設計者如何去寫程式


Original blog: Programming is... | mrclay.com

Myth: Programmers get to write code all day.
謠言:程式設計者整天都在寫程式。

Truth: Most programmers spend a ton of time (in no particular order):
事實上:多數的程式設計者花了很多的時間(無特定順序):

Carefully composing e-mails to other programmers/mailing lists/non-technical folks
小心翼翼地撰寫給其它程式設計者、郵寄名單(團體信)、非科技相關人員

Sitting in on meetings, working on mockups and DB schemas, worrying about performance ; implications of proposed features
在會議時坐著,做一些排版和資料庫鍵值,為性能擔心,將提出的特點實做出來

Writing bug reports and searching through bug DBs
寫臭蟲的報告及並在臭蟲資料庫裡找臭蟲

Scrambling to figure out why systems with numerous opaque layers are failing, digging through multi-GB log files with command line tools
利用指令在數GB的系統日誌中,找出為何程式失敗

Explaining downtime to users/higher ups
解釋給使用者、高層為何程式故障了

Contributing solutions to strangers’ problems
提供使用者的奇怪問題答案

Reading documentation/books/programming blogs/release notes/ announcements
閱讀文件、書、程式設計部落格、發行說明、弱點聲明

Searching for existing code that does what you want, maybe without knowing what that’s called
找尋你所想要的程式碼,但不知道他叫什麼名稱

Evaluating if code you found solves your problem/would perform acceptably/fits in your environment/has a compatible license/has a lasting support community
評估找到的程式碼可以解決問題、可以被接受、可在你的環境中執行、有兼容的許可、有社群來支持

Installing, configuring, and testing a codebase then finding it won’t work for you Googling error messages
安裝、設定、及測試代碼庫,且在網路上找尋錯誤訊息之原因

Digging through public code repositories to see “how [some open source project] does it”
看公開的程式碼,以得知「這個(公開專案)是如何做到的」

Learning source control tools, bash, GNU utilities, and Linux file permissions (and/or the Windows equivalents)
學習程式源控制工具、批次檔、GNU的工具、和Linux的檔案權限(在Windows上也是一樣的)

Configuring IDEs, virtual machines, web servers, databases
設定IDE、虛擬機器、網路伺服器、資料庫

Figuring out how to shoehorn together codebases that weren’t designed to coexist
找出如何把兩個不能在一起執行的程式碼,再一起執行

Determining which tasks to prioritize from an endless supply
在源源不決的工作裡,決定工作的優先順序