Reusable code/efficient code is usually more complex and less readable. I find this is usually not a big issue, as I can always refactor change to the design I need later.
I agree that efficient code is usually more complex and for some god forsaken reason it tends to be the least commented.
If you think to yourself, "wow! I'm really proud of that, very clever" please for the love of God leave a comment.
I find myself writing chicken scratch on a piece of paper or in a scrap file when writing a function, many of those chicken scratch comments are exactly the sort of things future developers would love to see in comments.
So...big takeaway from me (15+ years developing) is learning when to comment your code!
If you think to yourself, "wow! I'm really proud of that, very clever" please for the love of God leave a comment.
I find myself writing chicken scratch on a piece of paper or in a scrap file when writing a function, many of those chicken scratch comments are exactly the sort of things future developers would love to see in comments.
So...big takeaway from me (15+ years developing) is learning when to comment your code!