Published 2017-08-07. Last modified 2022-05-05.
Time to read: 2 minutes.
Last week someone asked me how much I programmed, or even if I actively programmed anymore. I recognized that the 20-something-year-old who asked me the question did not believe that people over 40 are capable of being skilled in relevant technology or productive programmers … and I am more than 50% older than that! Like all types of bigotry, ageism is ugliest when it is delivered with self-righteousness.
GitHub Resume is another approach to documenting programming activity.
Following Paul Graham’s advice, I decided to fight back with data. As the first step I wrote
git-stats-scala, a program that combs through an entire tree of git projects and summarizes the user's activity for a given time period.
The resulting summary of commit statistics is intended to be placed near the top of one's resume.
The output of this program merely answers the question: “are you an active programmer?”
Git-stats-scala only reports textual additions and deletions, and includes the net change, which one hopes are indications of actual programming. Statistics are reported for each computer language found. The reader is free to impart any meaning they deem appropriate to this output. I make no claims regarding meaning.
Here is a summary of my git activity over the last 365 days:
┌───────────────────┬───────────────────┬───────────────────┬──────────────────┐ │Language │Lines added │Lines deleted │Net change │ ├───────────────────┼───────────────────┼───────────────────┼──────────────────┤ │Scala │+94,120 │-68,075 │+26,045 │ │SBT │+7,896 │-2,639 │+5,257 │ │Java │+23,955 │-20,597 │+3,358 │ │Markdown │+5,049 │-4,497 │+552 │ │Python │+371 │0 │+371 │ │HTML │+8,810 │-10,488 │-1,678 │ ├───────────────────┼───────────────────┼───────────────────┼──────────────────┤ │Total │+140,201 │-106,296 │+33,906 │ └───────────────────┴───────────────────┴───────────────────┴──────────────────┘
Every project I was involved with had more features and better quality at the end of the time period compared to the state of the project at the beginning of the time period. You cannot value software by weighing it.
I am curious to know how these numbers compare with those from other programmers.
The Cadenza Project
Here are stats over the same period for my contribution to the Cadenza core project. Cadenza is the web application that powers ScalaCourses.com. During this period I hived several F/OSS projects from the Cadenza code base, which is probably why it does not seem to be growing much even though I added many new features.
┌───────────────────┬───────────────────┬───────────────────┬──────────────────┐ │Language │Lines added │Lines deleted │Net change │ ├───────────────────┼───────────────────┼───────────────────┼──────────────────┤ │Scala │+42,687 │-38,237 │+4,450 │ │SBT │+233 │-120 │+113 │ │Java │+102 │-10 │+92 │ │Markdown │+519 │-2,617 │-2,098 │ │HTML │+1,134 │-5,345 │-4,211 │ ├───────────────────┼───────────────────┼───────────────────┼──────────────────┤ │Total │+44,675 │-46,329 │-1,654 │ └───────────────────┴───────────────────┴───────────────────┴──────────────────┘