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.


Newest Most Voted
Inline Feedbacks
View all comments

[…] 10 Terms you should know, Erik Dietrich […]

Alex Tatiyants
11 years ago

Great list, I’d also add Anemic Domain Model (http://martinfowler.com/bliki/AnemicDomainModel.html).

Erik Dietrich
Erik Dietrich
11 years ago
Reply to  Alex Tatiyants

Definitely a good one to know. I think there’s a good cross section of devs that think forms over data is all that exists.

Jordan Whiteley
Jordan Whiteley
11 years ago

Heads up: Early and late binding links to the same place as immutability.

Erik Dietrich
Erik Dietrich
11 years ago

Thanks — fixed it. Copy and paste fail (how embarrassing).