John Carmack on Functional Programming in C++ (2018)
> A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in.I think this probably the most important concept for programmers to keep at the front of their minds when working day to day. So many of the problems I see come from developers (myself included) adding new business logic to a process, or fixing a bug and not thinking through the side effects of the change