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…

Что это такое?Бесплатное эссе Роберта Л. Рида, которое поддерживает сообщество, о том, как стать хорошим программистом — о личных навыках, работе в команде и умении принимать решения, которые окружают написание кода (сам автор называет код самой лёгкой частью).
Это книга, которую я читаю, или программа, которую я запускаю?Это книга для чтения, а не программа: она доступна на GitBook, где её можно читать онлайн, а также продаётся в твёрдом переплёте, причём цена лишь покрывает производство и доставку.
Эссе написано в 2002 году — оно не устарело?Текст в основном остался таким, каким был написан в 2002 году, хотя с тех пор сообщество внесло улучшения и переводы, и данное издание сообщества вышло в 2016 году.
Есть ли разница, я новичок или опытный инженер?Для каждого уровня есть свой раздел: новички начинают с отладки и оценки сроков, а разделы для среднего и продвинутого уровней рассказывают о карьерном росте, наставничестве и выборе задач.
Могу я делиться текстом или использовать его где-то ещё?Текст распространяется по лицензии Creative Commons Attribution-ShareAlike 4.0, так что вы можете делиться им и адаптировать его, если указываете авторство и распространяете производные работы на тех же условиях.
Почему Роберт Л. Рид его написал?Он хотел сжато изложить то, что сам хотел бы услышать от кого-то в двадцать один год: писать программы — детские игрушки по сравнению с тем, как ладить с коллегами и заказчиками и сделать так, чтобы программная система оказалась успешной и для тех, и для других.
Здесь есть практические привычки или только общие рассуждения?И то и другое, причём местами очень предметно: раздел для новичков разбирает конкретные привычки — отладку через деление пространства проблемы пополам, ведение журнала, использование системы контроля версий, юнит-тесты и паузы, когда зашёл в тупик.
Текст до сих пор улучшается?Да — это версия от сообщества (1.1.0): крупные изменения вносятся через pull request'ы, мелкие — через issues, а твёрдый переплёт Edition 1 вышел в 2016 году.
Creator
braydie
Size
0.9 MB
Stars
16.3K
Updated
CommitSep 28
Age
10y
Commits · 90 Days