One article or paperTrain probabilistic reasoning
Think of alternatives
Decompose the problem
Combine multiple judgments
One video or podcastIf you have ever struggled to get started with Rails engines and app components because it feels like an insurmountable challenge, this long workshop will help you with the first steps and dig into the hard details.
One bookWhat happens if a programmer writes a book on how to improve your thinking? Andy Hunt is the co-author of The Pragmatic Programmer and Programming Ruby, and this book is about how to refactor your brain for lifelong learning.
One toolPeople at Shopify are releasing a ton of open source to help you deal with big applications. I have mixed feelings about this approach, but it’s great to see the community pushing the boundaries of what’s possible with Ruby!
One line of code
attr_reader name: String
attr_reader messages: Array[Message]
# `|` means union types, `User` or `Bot`.
attr_reader users: Array[User | Bot]
def initialize: (String) -> void
# Example of method overloading.
def post: (String, from: User | Bot) -> Message
| (File, from: User | Bot) -> Message
“errare humanum est, sed perseverare diabolicum: ‘to err is human, but to persist (in the mistake) is diabolical.”Lucius Annaeus Seneca