如何做一名程式員(一)

來源:互聯網
上載者:User

如何做一名程式員

——一份簡易但全面的個人總結

獻給hire.com的全體程式員

作者:Robert L. Read

翻譯:libtyger@gmail.com

 

原文連結:http://samizdat.mines.edu/howto/

作者的書:How To Be A Programmer

 

1. 簡介

2. 入門

3. 進階

4. 高手

 

第一章 簡介

       成為一個好的程式員是困難、但同時也是有價值的。在實現一個軟體項目中眾人的願景時,最頭疼的就是要面對同事和客戶。編程是一件重要而且需要大量智力和技能的工作,但和為做一款令客戶以及各種對該軟體負有部分責任的同事都滿意軟體而需要的其他技能相比,編程本身就是小兒科了。本文中我儘可能簡潔的總結了一些自己希望在21歲時就有人講給我聽的有關上述其他技能的東西。

所以,這些內容註定會比較主觀,甚至有一點點武斷。我把討論的範圍限定在程式員工作中最有可能碰到的方面。其中很多問題以及解決方案都非常普通、福士化,所以我有時看起來會有些嘮叨。儘管如此,我還是希望這篇文章能有所用處。

編程在課堂上就會教。很多優秀的書籍:The Pragmatic Programmer[Prag99],Code Complete[CodeC93],Rapid Development[RDev96],Extreme Programming Explained[XP99]都教我們怎麼編程以及其他一些成為好程式員的話題。在看本文前或者閱讀的同時,你應該讀一下Paul Graham[PGSite]以及Eric Raymond[Hacker]的文章。與這些優秀的作品不同,本文更強調人們之間的關係問題並綜合總結了我認為的必須技能。

文中的術語“老闆”(boss)指代任何交給你任務的人。我等價的使用生意(business)、公司(company)、和部落(tribe)等詞彙,除了以下一些區別:生意隱含著獲得收益的行為、公司則指代現代的工作場合、而部落則是和你有著共同價值觀的那群人。

 

注意:

如果你希望列印出來供私人使用,不列印後面的附錄也許會節省一些紙張。

 

 

第二章 入門

1 個人技能

 

1.1 學會偵錯工具

 

調試能力(debugging)是成為程式員的基石。雖然動詞調試(debug)的第一條意思是清除錯誤,但更意味這要能夠檢查並跟隨程式的執行。不能進行有效調試的程式員是就像盲人一樣。

 

那些認為設計、分析、或者複雜的理論、或者任何模糊的難以表述清楚的內容更加基礎的理想主義者並非項目中承擔工作的程式員。後者並不處於理想化的環境中。即使你是完美的,你仍然要接觸由大公司或者像GNU這樣的組織、抑或自己的同事寫的代碼。包括相應的文檔,這些代碼中的大部分並不完美。如果不能夠跟隨程式查看代碼的執行過程,一點小問題都會讓你摸不著頭腦。通常這種能力只能通過不斷的實驗和調試實踐獲得。

 

調試是關於程式如何運行而非程式本身的。如果你的軟體是從其他公司買來的,你通常獲得不了來源程式。但仍然會有代碼運行和軟體文檔不一致(比較普遍和壯觀的是你機器的崩潰),或者文檔中並沒有提到的情況出現。更加可能是,你創造了一個錯誤,檢查代碼後毫無頭緒。毫無疑問,這意味著你做的假設並不完全正確,或者有一些你沒有預期到的情況出現了。有時通過閱讀源碼你可以找到問題所在,但當這麼做沒有成效時,你就得調試了。

--------------

不太確定的內容用紅色標出了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.