---
created_at: '2016-03-23T20:59:59.000Z'
title: A guide on how to be a Programmer (2002)
url: https://github.com/braydie/HowToBeAProgrammer
author: gnocchi
points: 207
story_text: 
comment_text: 
num_comments: 44
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1458766799
_tags:
- story
- author_gnocchi
- story_11348182
objectID: '11348182'

---
# [](#how-to-be-a-programmer-community-version)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](http://creativecommons.org/licenses/by-sa/4.0/).

[Available on gitbook to read online or download for offline reading (as
PDF, ePub or
Mobi)](https://www.gitbook.com/book/braydie/how-to-be-a-programmer/details)

[Available to buy as a hardcover book (cost covers production & shipping
only)](http://www.blurb.com/b/6999069-how-to-be-a-programmer) - Edition
1, published 04/01/16

## [](#introduction)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)Contents

**Also available in
[Chinese](/braydie/HowToBeAProgrammer/blob/master/zh/README.md) and
[Japanese](/braydie/HowToBeAProgrammer/blob/master/jp/README.md)**

[![Creative Commons
License](https://camo.githubusercontent.com/e170e276291254896665fa8f612b99fe5b7dd005/68747470733a2f2f692e6372656174697665636f6d6d6f6e732e6f72672f6c2f62792d73612f342e302f38387833312e706e67)](http://creativecommons.org/licenses/by-sa/4.0/)  
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](http://creativecommons.org/licenses/by-sa/4.0/).
