> It seems like the important stuff that differentiates the expert from someone with casual knowledge isn't documented.
It isn't documented because it can't. The difference between an expert and a novice is that an expert has been exposed to and working with a particular subject for so long that there are higher level abstractions that have become "chunked" or "codified" in their mind such that they look at the problem differently than novice people.
Example
`for(int i = 0; i <= list.length; i++) { ... }`
A novice will see this and after parsing the pieces can tell you that this takes a counter i and does an action until i is the length of the list.
A more experienced person will see this as a for loop iterating through a list.
An even more experienced person may intuitively map this to the need of the program to operate on a list data structure and begin to immediately start asking why we didn't use a more functional approach, what effect will this have on the program when my list has 0 items, is there a way I can simplfy this code? Etc
The expert knows this not because he has read it in a book or because he followed design docs, he knows because he has practiced 10,000 hours, which includes doing something evaluating what went well, what did not, what could be improved, looking for new knowledge and new ways to do things.
In contrast too the man who has practiced 1 hours 10,000 times that has mindlessly written this block of code and continues to repeat this abstraction because this is his go to and familiar tool.
It isn't documented because it can't. The difference between an expert and a novice is that an expert has been exposed to and working with a particular subject for so long that there are higher level abstractions that have become "chunked" or "codified" in their mind such that they look at the problem differently than novice people.
Example
`for(int i = 0; i <= list.length; i++) { ... }`
A novice will see this and after parsing the pieces can tell you that this takes a counter i and does an action until i is the length of the list.
A more experienced person will see this as a for loop iterating through a list.
An even more experienced person may intuitively map this to the need of the program to operate on a list data structure and begin to immediately start asking why we didn't use a more functional approach, what effect will this have on the program when my list has 0 items, is there a way I can simplfy this code? Etc
The expert knows this not because he has read it in a book or because he followed design docs, he knows because he has practiced 10,000 hours, which includes doing something evaluating what went well, what did not, what could be improved, looking for new knowledge and new ways to do things.
In contrast too the man who has practiced 1 hours 10,000 times that has mindlessly written this block of code and continues to repeat this abstraction because this is his go to and familiar tool.