Language Fluency
There are two main problem domains you tackle when sitting down to write code: The real world dilemma being solved with software How to explain the solution to the computer The first problem takes most of the brain power. Eliciting requirements for the software from complex shifting sands. Coming up with the right design and architecture for robust and reliable systems. How to reverse a linked list. Before anything can be written in code, the author must be able to wrap their heads around the solution, at least to some degree....