HowToBeAProgrammer README

The project's README from github.com/braydie/HowToBeAProgrammer. As one markdown file: README.md.

How to be a Programmer: Community Version

Robert L. Read with Community

Copyright 2002, 2003, 2016 Robert L. Read

Licensed under Creative Commons Attribution-ShareAlike 4.0 International License.

Available on gitbook to read

Available to buy as a hardcover book (cost covers production & shipping only) - Edition 1, published 04/01/16

Contributing

NOTE: What follows is the essay mostly as it was written in 2002. However, the community has provided some improvements, and all of the translations. Please submit a pull request or create an issue to make major or minor changes, respectively.

Introduction

To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one's coworkers and customers. Writing computer programs is important and takes great intelligence and skill. But it is really child's play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom he or she is partially responsible. In this essay I attempt to summarize as concisely as possible those things that I wish someone had explained to me when I was twenty-one.

This is very subjective and, therefore, this essay is doomed to be personal and somewhat opinionated. I confine myself to problems that a programmer is very likely to have to face in her work. Many of these problems and their solutions are so general to the human condition that I will probably seem preachy. I hope in spite of this that this essay will be useful.

Computer programming is taught in courses. The excellent books: The Pragmatic Programmer [Prag99], Code Complete [CodeC93], Rapid Development [RDev96], and Extreme Programming Explained [XP99] all teach computer programming and the larger issues of being a good programmer. The essays of Paul Graham [PGSite] and Eric Raymond [Hacker] should certainly be read before or along with this article. This essay differs from those excellent works by emphasizing social problems and comprehensively summarizing the entire set of necessary skills as I see them.

In this essay the term boss is used to refer to whomever gives you projects to do. I use the words business, company, and tribe, synonymously except that business connotes moneymaking, company connotes the modern workplace and tribe is generally the people you share loyalty with.

Welcome to the tribe.

Contents

Also available in Chinese, Japanese,Spanish, and Russian

  1. Beginner
  2. Intermediate
  3. Advanced
  4. Glossary
  5. Appendix A - Bibliography/Websiteography
  6. Appendix B - History (As of January 2016)
  7. Appendix C - Contributions (As of January 2016)

Creative Commons License
How To Be A Programmer: Community Version by Robert L. Read with Community is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

HowToBeAProgrammer (braydie/HowToBeAProgrammer)

Searching Database…

这是什么?这是 Robert L. Read 写的一篇免费、由社区维护的长文,讲如何成为一名优秀的程序员——涵盖写代码相关的个人能力、团队协作和判断力,而作者认为写代码本身反而是容易的那部分。
这是一本我读的书,还是要运行的软件?它是一本用来读的书,不是软件:可以在 GitBook 上在线阅读,也有精装纸质版出售,售价只覆盖印刷和运费成本。
这篇文章写于 2002 年,是不是过时了?正文基本保持 2002 年写成时的原样,不过社区此后贡献了不少改进和翻译,这个社区版于 2016 年发布。
我是新手还是资深工程师,有影响吗?每个水平都有对应章节:新手从调试和估算讲起,中级和高级部分则涉及晋升、带新人,以及如何挑选该做什么工作。
我可以分享或复用这篇文章吗?它采用 Creative Commons Attribution-ShareAlike 4.0 许可,只要注明出处并以相同方式共享,你就可以分享和改编。
Robert L. Read 为什么写这篇文章?他想浓缩那些自己希望 21 岁时就有人讲给他听的道理:和与同事、客户打交道,并让一个软件系统对双方都取得成功相比,写程序简直是小菜一碟。
它给的是实用习惯,还是空泛的大道理?两者都有,而且有些地方非常实操:新手部分讲的都是具体习惯,比如通过划分问题空间来调试、写日志、使用版本控制、单元测试,以及卡住时先休息一下。
这篇文章现在还在改进吗?是的——这是社区版本(1.1.0):重大改动通过 pull request 提交,小改动通过 issue 提出,精装第 1 版于 2016 年出版。
Creator
braydie
Size
0.9 MB
Stars
16.3K
Updated
CommitSep 28
Age
10y
Commits · 90 Days