Main Question: Should someone gain good computer programming skills/experience through a software engineering job before entering a 5-year PhD program in Computer Science (Tentative specialization: Reinforcement Learning, Machine Learning, Deep Learning)?
IMPORTANT NOTE:-
The reason for asking about gaining programming skills & experience is:-
NOT from the perspective of resume/application strength (i.e., whether one would get accepted to a PhD program or not), but rather from the perspective of whether one would be more productive (hence faster) during computational research in AI (i.e., running computational experiments).
NOT related to being or not being able to complete the research and get the PhD degree.
As mentioned earlier, it's about whether having strong programming and software development skills would enable one to implement and test ideas more quickly. As some PhD students say that a lot of their time goes into implementing the ideas, during the initial months of their PhD.
Slow implementation of ideas → Slow progress.
Many (not everyone!) students interested in pursuing research and planning to get into AI research through a PhD program, have limited to no software development experience. Many of such students have only worked on research projects involving limited programming skills, often having no software development experience.
Clearly, such students would have limited ability to implement and test ideas, by running computational experiments.
So, would doing a software engineering job and gaining strong coding experience significantly help them during their (computational) experimental work in PhD?
Please consider that the potential candidate aspires:-
To disseminate research findings or knowledge (during PhD and beyond) not just by (traditionally) writing papers or blogs, but by deploying models on the web like Andrej Karpathy did through some of his famous projects like ConvnetJS, RecurrentJS, tsneJS, ReinforceJS, or by interactive visualizations like Distill, etc.
To be able to do so, I believe that one would need to be good at software engineering.Aspires to perform reproducible research and writing re-usable code, which can only be achieved by good software engineering practices, generally acquirable by working in software engineering sector.
To achieve such task, one would need to spend a significant amount of their time, during the initial PhD months, on getting good at programming and software development. Clearly, this amount of time and effort would have been better spent on doing research, and testing more and more new ideas.
So, that's what my question is focused on.
What advice/suggestions do you have on what should one do considering his/her current coding capabilities and above expectations from the PhD?