Appropos of nothing, I’d like to make a very brief post of a list of terms, with links to where you can read more about them. These terms describe concepts that, when understood, I believe can help make you sharper in the way you approach things as a programmer. I don’t mean that learning them will immediately boost your productivity or solve any specific problem that you have, but I do feel that they may give you new ideas for designs or methods for reasoning about your code. So give them a read or at least a glance to brush up or learn something new.
(This list is by no means an attempt to be comprehensive, and please feel free to suggest others in the comments)
- Leaky Abstractions
- RESTful Architecture
- Lambda Expressions
- Aspect Oriented Programming (AOP)
- Duck Typing
- Command Query Responsibility Segregation (CQRS)
- Early and Late Binding
- Cache Coherence
Hopefully there’s at least one relatively new concept in here that you can let percolate in your brain for a while. And who knows, perhaps it will help you consider an alternate solution to some problem you face in the future.