Programming with generics is a distinct type of programming that implies writing and designing your algorithms in terms of types that will later be fully realized and specified. In Swift, many algorithms in the standard library are implemented with generics, which promotes code reuse but may also impede readability, as it may render the programs harder to reason about.