cacher does, but cache as in “cache-toi !” (go hide!) and “je me cache” (I’m hiding) are pronounced “cash”.
Besides, “correct” pronunciation in a different language is pretty meaningless. The word may have come from French but we’re speaking English, not French.
Also, it might not be a loan word so much as a legacy-of-foreigners-taking-over word (c.f. the Normand invasion of Britain), which doesn’t tend to help the language’s users care about respecting the “original” pronunciation. I’m not certain when exactly cachet entered English.
Math underlies programming in a similar fashion to how physics underlies automobile driving. You don’t ever need to know about newton’s laws of motion to pass your driver’s license and never get a ticket until you die. At the same time, I will readily claim that any driver that doesn’t improve after learning about newton’s laws of motion had already internalized those laws through experience.
Math will help your intuition with how to tackle problems in programming. From finding a solution to anticipating how different constraints (notably time and memory) will affect which solutions are available to you, experience working on math problems - especially across different domains in math - will grease the wheels of your programmer mind.
Math on its own will probably not be enough (many great mathematicians are quite unskilled at programming). Just as driving a car is about much more than just the physics involved, there is a lot more to programming than just the math.