I think the main problem is not about code sharing, but the quality and readiness of the shared code. In fact I can ditch my CSB code (with hours, days of ‘useless’? effort on it), use this bot with a 3hour GA implementation and get better results. And with that kind of bot, the code sharing idea can backfire. If I got top 30 legend on 5 minutes, why I bother on improve it? Just submit and move on to another puzzle. I’d do that, maybe they’ll refactor it, but on a distant future.
Probably there are hundreds of CSB bots on Github, 99% of them useless, and nobody cares about that. There are also a lot of good code snippets (I think 99% of CSB bots on top 50 uses Magus snippets and collision idea, and he even got physics code from another CG player), and it’s ok. So the point is not code sharing, but readiness to use it.
Github and code sharing is unstoppable, and CG should work on around that. As CG is creating a Learning Section, I think the best idea is to try that people don’t simply share code on github, but add it as a CG Learning Course. You can have your full code shared, but splitted on the tutorial. This way it isn’t a simple C&P, at least you must join the pieces to have it working, and in the process you’ll learn about the code and how it works.
Sometimes multi puzzles are overwhelming (especially with incomplete statements, and weird bugs that you must debug), so having good guidelines is a plus to get more people into the game.
In chat the most recurring question on newcomers is “where do I learn to code?”, This is maybe a wasted opportunity for the CG platform. I learned C++ and GA outside CG platform. Yes, each multi has a small description with links to some algorithms and such, but very basic. Improving the learning area inside CG can be a plus.
But this is IMO, I’m not a pure coder, I work on management where they asked me for results, not new code. So if I found a good OpenSource app that covers the requeriments I use it. Auth servers, Document Managers, Private Clouds, Business Process Managers… a lot of good code that I use and refactor/add modules to get what I need. First check existing solutions, test them and if they are good, keep them and start refactoring. If not, then start from scratch.