Now what i mean by this is NOT mastering a particular language or the foundations i am talking about the logic behind it. - Does it come with experience ??? - Solving multiple problem statements each day ??? - Solid foundation with Algorithms ??? - Know at least Algebra and Linear Algebra - Understanding of Data Structures ??? My other question is how does your mindset and thinking whenever you see: - Inputs - Outputs So i am basically asking how to be a master programmer in the long run ???