That's a super important clarification. I'm sure a lot of us loved algorithm optimizations and solving fun problems, but for the majority of us programming devolves down to "Modify a CRUD website template for the next 20-35 years".
I have a hunch that the clear syntax and relative simplicity of web programming is what drives a certain kind of developer to long for complexity and turn something simple into this: `user.public? && (current_user.try(:test) ? user.test? : !user.test?)`
Moreover, when it becomes tedious, it's almost always a result of poor tools, bad decisions or developers doing manually what should have been automated.
I'm also pretty sure if there were no intellectual challenge involved I wouldn't see so many unnormalized databases.