
Ask HN: Does anyone record themselves while programmming? - segmondy
It&#x27;s a good habit to keep worklogs when programming, some don&#x27;t and their commit log and perhaps code comment might be it.  But lately I have been thinking, what if I recorded every time I programmed, both myself and my screen session and spoke to the computer and captured my thought process.   Sort of like folks do when screencasting but just for personal reference.  I&#x27;m curious if anyone does so and if so, what are the pros and cons you have noticed?
======
macromaniac
Ive done it for 5ish years, the advantages are huge and absolute.

#1) no impossible to reproduce bugs

Any one off bugs you find a are instantly replayable, often times things that
you think are bugs were actually just misclicks. Since issues you open in eg
github are timestamped (and commits) you can go back to the video and see what
happened

#2) You can now quantify what's wasting your time in numbers

By randomly sampling hundreds of hours of video I can say 60% (60%!) of my
development time was spent on premature optimization. With this data I have
now effectively doubled my programming productivity. An added bonus is now you
know exactly how long everything took to complete in hours (837h for current
project)

#3) Helps you stay on task

At the end of the day i tell myself what i need to do tommorow in a very short
5 minute video and suddenly its really easy to jump in.

In short, I highly recommend it, and theres really very little reason not to
do it.

~~~
segmondy
Very nice! What tooling do you use? How do you link to git history? I just did
a dry run with OBS to record screen and webcam. But need to figure out how to
link to git history, transcribe and make searchable

~~~
macromaniac
Just obs, typically i just type in the obs curr recording time in the github
issue and then when i go back i can find the video that day and look for the
time, but most of the time i would just stop the recording, go back and
analyze what happened, and fix then and there. This has happened at a rate of
5 times a year so its not super common, but nothing worse than seeing a bug
once and never seeing it again till production. I have not done the type of
video analysis you are talking about so i cant speak to how helpful it would
be, it would be nice to link videos to commit history but i have not done this
and not aware of anyone making tooling for it. You can ballpark it if the last
commit was when you ended the video but ya thats prolly not what you looking
for.

~~~
rococode
How do you store the video? Do you archive to lower res? I imagine 5 years of
video recordings adds up pretty quickly.

------
avitzurel
I've never done it for myself. I did, however, do it for screencasting (Twitch
and YouTube).

There are a couple of things here:

1\. Talking to yourself is extremely useful. You'll be surprised by how
effective it is. 2\. A recording is not very useful because discovery is
awful. Even though all my content is on YouTube, There's no way I can find
that one time I fixed an interesting bug or implemented something complicated.
Without proper logging of what you did and indexing in the video, it will just
be like any other video you take with your GoPro, hours of nothing.

What I found to be really effective with my teams is this: 1\. Draw your
thoughts. 2\. Write up a mini-plan of how you want to "attack" this 3\. Talk
through it, even if it's only to yourself. 4\. Pseudo Code and Pseudo Flows of
data

~~~
segmondy
Interesting... Voice transcription software can close caption and you can
search by that. You can have keywords you can use for searching. TODO, BUG
FOUND, BUG FIXED, FEATURE X. Perhaps the tech is not yet solid for searching,
but I feel that the basic elements is there. I'm more interested in doing this
for solo project, but this can be interesting for teams too, what if you can
look through a git history and match it up with the video of when it was
developed and hear the author's line of thought? The tough part of it of
course will not be the tech but the behavior of getting folks to speak up and
dump their thinking verbally.

------
slap_shot
Funny enough I just recently started doing this. I started watching a lot of
developers on Twitch, and while I don't want to screencast my day to day work,
it was interesting to rewatch myself and see myself from a "third person"
perspective afterward.

It's surprisingly cringey to rewatch how I was solving a problem or just the
general inefficiencies of programming. But seeing it helps me more cognizant
of them going forward.

I'm surprised it took me 10 years to try this, because I play a lot of sports
and, for me, watching my form on video has been the biggest way to improve in
sports... kind of makes sense it would work with programming.

------
RangerScience
In a recent task, I started journalling (using Medium). The particular task
was a deep dive into how some open source tech worked (specifically, how
Electron loads Chrome extensions). At each step (more or less), I'd copy over
code snippets, and provide links to the source code and documentation.

I referred back to these notes all the time during the rest of the dive, and I
still refer back to them in the subsequent tasks.

It's mostly about not retracing steps; having a link to this or that SO
question; or about having a checklist ("here's all the places this symbol
appears"). It was also handy when resuming work, or when something was a dead-
end and I had to resume from a different point.

------
mikegreenberg
I was thinking what a Twitch for Programming might look like. And then I found
[https://asciinema.org/](https://asciinema.org/). While limited to the
terminal, this could be an interesting genre to explore. Repurpose the
underlying recorder and foster some sort of community around the practice...
if only to improve each other's skills. Anyone want to work on this, the idea
if yours. LMK if you want a hand. :)

~~~
segmondy
Ideas are free for all, you can work on it. Let me know your progress and I
can use and give feedback, I already have a never ending backlog. I'll
probably approach it simply by using a bunch of scripts glued in. The dry run
I used today was OBS on Linux to record both a window and the webcam. I
haven't explored on if I can trigger it via cli and automate. My email is in
my profile if you wish to reach me.

------
fraXis
This makes me think back to the times that Notch used to record/stream himself
when he would program. I used to love watching those because it helped me
become a better programmer.

[https://news.ycombinator.com/item?id=3811332](https://news.ycombinator.com/item?id=3811332)

