On the other hand, if you can do this and your co-workers can't, you may be tempted to write complex and entangled code, because the implications of each line are perfectly obvious to you.
Or you end up with something like Git, which is easy to use if you have the exact same background/education/philosophy as the person who wrote it, but has terrible usability for pretty much everybody else.
I don't have the same background as the "person that wrote it," and I consistently find the git command-line tools easier to work with than other tools (SourceTree, magit-mode, vim-fugitive, etc [1]). I think that in this case, it's just the mental model of a DAG[2] of commits that people have trouble wrapping their minds around. The tools are just there to help you slice and dice the DAG.
[1] I haven't used TortoiseGit, but I do imagine that having file browser menu items for files that are maintained by git could be useful from time-to-time, but I would still be using the cli most of the time.
If you invest the time into acquiring a faster and larger mental cache, you are unlikely to handicap your hard-earned capability with complex code. In fact, the new visibility can increase simplification and reuse.
The same restraint doesn't apply to someone naturally gifted with an exceptional memory, since they never went through the acculturation phase :)
blakeyrat|10 years ago
pyre|10 years ago
[1] I haven't used TortoiseGit, but I do imagine that having file browser menu items for files that are maintained by git could be useful from time-to-time, but I would still be using the cli most of the time.
[2] Directed Acyclic Graph
rbanffy|10 years ago
flippinburgers|10 years ago
ArkyBeagle|10 years ago
You are generally also your own cow-orker.
walterbell|10 years ago
The same restraint doesn't apply to someone naturally gifted with an exceptional memory, since they never went through the acculturation phase :)