As one of the employers posted on a Reddit forum (<a href="https://www.reddit.com/r/InternetIsBeautiful/comments/53h2sl/learn_to_code_writing_a_game/d7t2e0x" rel="nofollow">https://www.reddit.com/r/InternetIsBeautiful/comments/53h2sl...</a>), CodinGame is not really a "learn coding" style site. If anything it's a "reinforce what I know" site. You aren't 'learning' the concepts, nor are you learning 'game programming', you are practicing what you already know via a game format.<p>I once had a student that was taking my Java 2 (OOP concepts) course and was using CodinGame for "fun".<p>If anything, I believe CodinGame's business model is more on the recruitment side, as their tournaments often offer interviews with the sponsors.
I've always advised against being introduced to programming through game development.<p>As much as game development is appealing and fun, the process is complicated and requires advanced knowledge of some fairly complicated algorithms even for fairly trivial games.<p>Also you can find yourself spending hours shuffling sprites and designing levels which is time spent not learning programming.<p>Also engines like Unity provide a false sense of security when infact you have no idea what's going on behind the scene and when something goes wrong you don't know where to begin and end up discouraged.<p>Start slow, build your foundation, learn your bits and bytes, data structures and sorting algorithms first then venture out.
Personally, I think the best way to learn to code for someone who has talent for it is project Euler (projecteuler.net). No dependencies, no IDEs, no graphics and no gimmicks. Very short, clear, discrete problems that can be solved using any language.<p>If you really need shooting, explosions and fancy graphics to keep you motivated then I don't think programming as a career is for you. Most programming jobs aren't going to give you much of that. And frankly, I think all the wizz-bang graphics just interferes with your learning and getting good at visualizing in your own head what the code is doing.
I play on Codingame on and off for some years now, and the fact is: it <i>is</i> a game. And this game is played by programming.<p>Thus, it is really good to try out a new language, because it is fun immediately.<p>Doing the contests is also really fun, since you are compelled to improve your program more and more. And if you're still new to programming, you experience very soon the problems coming with "poorly written code" (as poorly maintanable code).
I think this is possibly the best implementation of this type of thing I've ever seen ... and jeez look at the number of languages it supports.<p>And it doesn't take half a month to load/download. Neat. It seems fun even as a non-novice, just to learn other languages in a fun way.
This is by far the best-done "trick you into learning how to code" onboarding experience I've been exposed to. (I've tried many because I want to get some friends interested in coding)
Nice front-end.<p>If I could tell my past self in 1999 that seventeen years later I would be writing Perl purely for entertainment, I would have laughed, and laughed, and laughed.