Shibboleths. Add these up and if you exceed five we’d love to hear from you:
- You understand meta programming python. What the type() function really does, and how it can be used. And when it should not be used.
- You understand discriminated unions, and how to use the type system to enforce exhaustive checks and other useful patterns.
- You can describe good and bad use cases for single page applications.
- You can describe why nullable types and a type system that enforces it are advantageous over type systems like Java’s.
- You can and have extracted declarative implementations out of imperative code. You know when it’s worth it and when it’s not.
- You know what the right time is to add unit tests to your code.
- You can describe a list comprehension, and have strong opinions regarding when and when not to use them.
- You know the benefits of generators and the yield statement.
- John is in many bands. We want to keep track of them. And we also want to track when he joined them. You know exactly how to model this in a relational store.
- You understand higher order functions, and sometimes secretly wish Python had more of them.
- You can describe ways in which lambda in Python is limited. And the reasoning - however flawed or not - behind it.
- You know when to use composition over inheritance.
- You understand the article “What Color is Your Function?” and can discuss it with us.
- You think comments are a last resort for documenting an algorithm.
- You can describe a pure function. Bonus: you can explain referential transparency. Even I can’t.
- You hate repeating yourself. DRY not WET.
- You understand the illusion of complexity and why simplicity is always better.
- You know the different types of automated testing there are, and when to use each.
- You have strong opinions on handling nested resources in REST and can espouse all the benefits of your take.
- You have strong opinions on handling versioning in REST and can espouse all the benefits of your take.
- You know what a shibboleth is.