如何做一名程序员(一)

来源:互联网 发布:电话号码抓取软件 编辑:程序博客网 时间:2024/06/05 04:10

如何做一名程序员

——一份简易但全面的个人总结

献给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这样的组织、抑或自己的同事写的代码。包括相应的文档,这些代码中的大部分并不完美。如果不能够跟随程序查看代码的执行过程,一点小问题都会让你摸不着头脑。通常这种能力只能通过不断的实验和调试实践获得。

 

调试是关于程序如何运行而非程序本身的。如果你的软件是从其他公司买来的,你通常获得不了源程序。但仍然会有代码运行和软件文档不一致(比较普遍和壮观的是你机器的崩溃),或者文档中并没有提到的情况出现。更加可能是,你创造了一个错误,检查代码后毫无头绪。毫无疑问,这意味着你做的假设并不完全正确,或者有一些你没有预期到的情况出现了。有时通过阅读源码你可以找到问题所在,但当这么做没有成效时,你就得调试了。

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

不太确定的内容用红色标出了。

原创粉丝点击