explaingit

braydie/howtobeaprogrammer

Analysis updated 2026-06-24

16,217Audience · developerComplexity · 1/5Setup · easy

TLDR

Free community guide to the human side of being a programmer: debugging, estimation, teamwork, communication, and career growth across Beginner, Intermediate, Advanced levels.

Mindmap

mindmap
  root((HowToBeAProgrammer))
    Inputs
      Reader experience
      Real-world questions
    Outputs
      Career guidance
      Soft-skill advice
    Use Cases
      Onboard new programmers
      Improve team skills
      Plan a career path
    Tech Stack
      Markdown
      GitBook
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Use as a self-study guide for junior programmer soft skills

USE CASE 2

Run a book club for a new engineering team

USE CASE 3

Find frameworks for estimating tasks and giving feedback

USE CASE 4

Translate or contribute new chapters to the guide

What is it built with?

MarkdownGitBook

How does it compare?

braydie/howtobeaprogrammerfaviovazquez/ds-cheatsheetsleandromoreira/digital_video_introduction
Stars16,21716,21816,211
LanguageJupyter Notebook
Setup difficultyeasyeasymoderate
Complexity1/51/52/5
Audiencedeveloperdatadeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
License terms are not clearly stated in the README so reuse rights are unclear.

In plain English

This is a free, community-maintained guide to the craft of professional programming, originally written by Robert L. Read in 2002 and updated with community contributions. It is not a coding tutorial, it does not teach you how to write programs. Instead, it covers the harder, less-talked-about side of working as a programmer: how to deal with other people, manage your time, earn trust, and make good technical decisions. The guide is organized into three skill levels: Beginner, Intermediate, and Advanced. Each level covers two areas, personal skills and team skills. Personal skills include practical topics like how to debug problems, understand performance issues, manage memory, and learn new skills. Team skills cover things like estimating how long work will take, communicating the right amount, working with difficult people, and handling consultants or outside vendors. At the advanced level, it goes into judgment calls, like when to apply complex solutions, how to build a culture on a team, and how to manage your own career growth. The guide reads like a long essay, written from lived experience rather than academic theory. It is available to read online for free, and also exists as a printed book. Translations are available in Chinese, Japanese, Spanish, and Russian. This is for anyone who has learned to write code but is struggling with the professional realities, the meetings, the miscommunications, the deadlines, and the expectations that come with working on software in the real world. It is especially useful for beginners who want a map of what the job actually looks like beyond the code itself.

Copy-paste prompts

Prompt 1
Summarize the Beginner team skills section of HowToBeAProgrammer as a checklist
Prompt 2
Pull the debugging advice from this guide into a one-page cheatsheet
Prompt 3
Compare the Intermediate and Advanced personal skills chapters
Prompt 4
Generate a 4-week reading plan for a new junior developer based on this guide
Prompt 5
Extract the advice about working with difficult people into a meeting-prep doc

Frequently asked questions

What is howtobeaprogrammer?

Free community guide to the human side of being a programmer: debugging, estimation, teamwork, communication, and career growth across Beginner, Intermediate, Advanced levels.

What license does howtobeaprogrammer use?

License terms are not clearly stated in the README so reuse rights are unclear.

How hard is howtobeaprogrammer to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is howtobeaprogrammer for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub braydie on gitmyhub

Verify against the repo before relying on details.