From my experience I would NOT call PhDs coding skills as poor. It is just that the coding style is so different. And tend to go toward extremes. From ad-hoc approaches to the extremes of elaborations that attempt to solve every possible future problem. Sometimes without common sense, laziness and foresight of just a regular engineer.
There are reasons for that. It's just that the research grade code IS different. And labs tend to have their own cultures and approaches. Sometimes to the extreme of writing in their own languages. But in some cases it can be very advantageous.
> From ad-hoc approaches to the extremes of elaborations that attempt to solve every possible future problem.
If you're writing code that needs to be maintained (i.e. not just run a few times to generate results for a paper, but read and written by several different people over time) this is pretty bad and leads to much more technical debt than would otherwise be accumulated.
This is the type of thing you learn to avoid by working in industry a few years and is why experienced ICs are paid more than new grads.
There are reasons for that. It's just that the research grade code IS different. And labs tend to have their own cultures and approaches. Sometimes to the extreme of writing in their own languages. But in some cases it can be very advantageous.