You know what I don't do as a developer?
Memorize a big codebase.
I used to try, but then found I couldn't do it.
As a result, I have to make it scannable, discoverable, readable.
This has an unexpected benefit.

As it turns out, human memory is not a shared resource. There is an advantage to the person who knows how it all works, provided nothing changes (much).

But nobody else owns your memory, and it leaves with you.
I later found out that my "inability" to memorize a big code base is the reason people appreciated my code and found it useful and maintainable.

I didn't really do it for them at first, but as a survival tactic in a world where a lot of people had better memories than me.
Later as people move from company to company and team to team, memorizing the whole codebase became a rarity. There are still some people who have been in the same codebase for 8+ years, but it's hella uncommon.
And most of them have had to tolerate code being reformatted, refactored, reworked, "cleaned" etc.

They lamented that they *used* to know where function X was -- it was line N of file F. Now they have to hunt for it b/c it's changing so fast.
Memorization used to make them great at their work, and still knowing how it all works is a big advantage. But now the rate of change is high, and that's a good thing.

Sometimes old advantages evaporate as context changes.
The question then becomes whether the changes that discomfit us actually serve our community better than the context that was advantageous to us personally.

That is where it gets hard to embrace change.
But let's not reject good change.
And while memorization isn't the advantage it used to be, I still admire the people who can and have done it.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Agile Otter Tim

Agile Otter Tim Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @tottinge

8 Dec
The most brilliant programmers alive working competitively in an ego-rich environment can’t get as much done as ordinary programmers working cooperatively as a self disciplined and self-organizing team. You need a process where team empowerment and collaboration thrive.
I'm very sorry that this quote didn't show up with quotations and a link. It should have. I'm not sure where it came from now.

This saddens me. I hope it's not lost.
Read 4 tweets
29 Sep
One of the standard issues with going to swarming or mob programming is always "How will we spot the bad programmers then? How will we catch the people who are loafing? How will we spot underskilled people if they don't do individual work?"
I went as far as to add it to my slide deck when I am teaching whole-team structures. It is going to come up anyway, and people are usually glad it's already in the topics list.
Of course, the first thing I say is "I don't know. I've not seen it yet. Swarms seem to keep everyone involved and interested pretty much all the time." This is true. It's hard for people to believe.
Read 11 tweets
4 Sep
We are once again offering the Technical Excellence Workshop as an open-enrollment experience this October.

It's an 8-week experience where we spend a few hours a week together, and we explore technical skills, perspectives, safety, behavioral skills, & leadership.
There is access to expert eLearning and there are exercises to perform during the week (some canned exercises, some live exploration) that will change how you look at your work and your organization.
Students from prior iterations have said that they had better interactions with their teams in the first week. Some claim that it made them better programmers. They have been able to initiate continuous improvement in their organizations.

Others learned to explain and teach.
Read 5 tweets
3 Sep
You know, we all considered "data class" to be a code smell (if not an antipattern) for a long time.
Generally, I still see it as being a flaw, but the world has changed a bit.
XML docs are essentially data classes.
JSON docs too.
Read 8 tweets
18 Aug
There are different motivations for role success.

But I have to wonder if sometimes it's a kind of revenge fantasy rather than a positive drive.
"I hate being told what to do, so I am going to be the one who does the telling" is a kind of revenge fantasy, maybe.
Certainly "they said I would never amount to anything, so I'll show them!" is a revenge fantasy.
Read 7 tweets
17 Aug
So,
x.append(y)
vs
x = x + [y]
vs
x += [y]
vs
x = list(itertools.chain(x,[y])
vs
<something even worse here>
worse:
x[len(x)]=y

It's fun to find horrible and wrong ways to do perfectly fine things. As long as it's twitter and not production code!
x = *[*x],y

I don't know if you can make it much worse in python.
I may have hit a local maximum.
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!