Stories about Software


10 Terms You Should Know

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)

  1. Leaky Abstractions
  2. RESTful Architecture
  3. Lambda Expressions
  4. Aspect Oriented Programming (AOP)
  5. Duck Typing
  6. Command Query Responsibility Segregation (CQRS)
  7. NoSQL
  8. Early and Late Binding
  9. Immutability
  10. 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.