我最近参加了一门机器学习课程,并且在我同时从课程中实现各种ML算法(例如PCA,Backprop等)的同时学习python编码。我意识到,到我那时,我的代码通常最终看起来像意大利面条完成了。当我试图理解我要编写的算法时,我常常不确定我需要的代码的总体结构,并且我陷入了设计代码的最佳方法中,例如我应该使用类,函数还是字典来做某件事?在我的代码开始时,混合了一些次优的设计决策,以及一些我从互联网上借来的,但并非总是完全理解的决策,最终得到了意大利面条式的代码。
因此,我想问社区,您是如何开始为复杂算法编写新代码的?如果这很模糊,让我们假设一个复杂的算法需要花费一周的时间来编写,每天要花5到7个小时。你放下粗略的草图吗?如果是,详细多少?您如何为代码制定设计决策?
对于我可以用来提高编码技能的资料来源是否有任何建议?我现在正在尝试的一件事是回去改进已经编写的代码,以此作为尝试编写比第一次更好的代码的练习。但是我想知道是否已经有任何指南可供我参考?也许像python样式指南之类的东西,但是对于代码本身的设计,而不仅仅是样式?
附言我已尽力使这个问题及其描述尽可能清晰,但如果它仍然含糊不清,我很乐意通过反馈加以改进。
P.P.S.我想我会根据经验到达那里,但是对于这个问题的答案,我特别在寻找一些建议或资源,这些经验或建议可以帮助我除经验之外达到目标。