Question: what is the most difficult aspect of programming?
Answer: Naming things. Explaining what I do (or don't do. ...  Estimating time to complete tasks. ...  Dealing with other people. ...  Working with someone else's code. ...  Implementing functionality you disagree with. ...  Writing documentation. ...  Writing tests. ...