This thread overly focuses on algorithms, which are not necessary for the majority of coding. What is necessary is the ability to handle abstractions, purity and regularization of thought. Mathematics, Philosophy and Writing are just or more applicable as a skill than being able to please an Online Judge.