I’ve been mulling the Community Puzzle section a bit recently, and I’m wondering if either the community or CG staff have any ideas about the eventual desired state of this area?
At first, I voted to approve any puzzle that was reasonably well formed, as long as it provided some kind of challenge. I’m starting to wonder if I should be more selective, and what my criteria should be? Here are some random thoughts:
As more puzzles are submitted, they inevitably become more “samey”. How many forms of brute-force logic puzzle or ASCII art creator do we need? While CoC thrives on quantity, I’m not sure that the Community Puzzles section benefits in the same way.
Maybe I need to lower my standards for difficulty. I may be a bit snobbish about what I consider to be a challenge. A quick analysis of the numbers indicates that the vast majority of CG users don’t make it far beyond the Onboarding puzzle. Either they are inexperienced or not interested. Not sure which is most prevalent.
As the number of community puzzles grows, the lack of organization will get more troublesome. Number of times that a puzzle is solved is somewhat of an indicator of what to expect, but it’s not obvious, and not always a true indicator either.
As one of the moderators of this area, I don’t have much of a feel for the goals and desired state of the Community Puzzles. I also haven’t discussed with the other moderators to see what their thoughts are on the matter.
So a few questions:
Who is the expected audience for Community Puzzles? Should it be a place to direct new learners to find more beginner puzzles than are available elsewhere on the site? Should it be a place to find more puzzles to challenge the expert who has already solved everything else? A bit of both?
What do we expect this space to look like 2 or 3 years out? Will it be a haphazard list of hundreds of random puzzles, or will it eventually be categorized better? Should we continue to accept puzzles similar in solution to already existing puzzles, or will we reach a saturation point where only the rare, unique submission will be added to the list?
I have other thoughts and questions, but I’ll leave off for now and let someone else chime in.
Why not tags like the official puzzles?
I think you have a good analysis of the current situation. We’ve decided to add the community puzzles with few features in order to release it as soon as possible. However, there’s clearly a lack of organization. We wish to improve this section in the future.
Who is the expected audience for Community Puzzles?
It’s mainly intended for people who did at least 4-5 puzzles but not only… The objective of the community section is to bring new content every week. Not only very hard puzzles, there should be puzzles for everyone.
What do we expect this space to look like 2 or 3 years out?
2-3 years is too far :). We want to categorize the section into topics but nothing is decided yet. I think you can keep accepting well written puzzles and perhaps be more selective when there’s already a similar puzzle.
We do not have a lot of ressources to put right now on this (we’re currently working on the multi games and we’ll then improve the codinpoints/achievements). What do you think we could easily do that would improve the situation? Tags? Filters on done/not done?
Tags: a bit, especially now there starts to be a fair amount of puzzles available.
Filters on done/not done: YES!!! this was my major pain point until I caught up;.
The other thing I missed was the crude difficulty selector: sorting by number of people who solved it.
Hi there, this is an extremely interesting post and thank you @player_one to have created it.
My personal opinion (it does not reflect the CodinGame opinion as this subject has not yet been discussed due to other priorities) is that Community Puzzles can become a great way to learn new concepts.
Considering that, I would loved a tag system that allows everyone to tag puzzles by concepts like Pathfinding, Basic Programming, String manipulation ans so on.
It would allow a better organization and point you directly to what you want to learn or practice.
A better classification system to rate the difficulty of the puzzle based, primarily on the owner declaration and then on the ratio start/solve could also drive the user to choose a puzzle depending on its level on a specific concept : beginner puzzles of Pathfinding or advanced puzzles of matrix computation for example.
About the CodinGame vision, this subject is not clearly defined right now due to other priorities, but it will definitively become a hot topic in a short term. So, this post is quite interesting and your feedback will help us to make the good decision
The tags would be very helpful indeed and don’t require a lot of work. One mindful moderator can do that rather easily considering the small number of new puzzles every week.
Sorting and filtering would be nice too, with a few options : by tags, done/undone, newest/oldest, by number of completion etc…
The idea was given some time ago to be able to rate the difficulty of a puzzle once you’ve completed it, I think that would be great, especially if we can sort/filter it afterwards.
I believe combining a reward system (see Maxime’s and my posts in the thread: Community Puzzles - Do we get points?), a tag system (for categories), as well as a voting/rating system would be ideal.
Many video games that implement user-created content allow users who have tackled or completed a level to provide a quality rating (e.g. 1 - 5 stars) as well as a difficulty rating (as Djoums suggested). Additionally, the moderators could occasionally scan through some of the newer, unrated puzzles and provide suggestions similar to the current “Puzzle of the Week”.
And, of course, the tags, which would allow people to have an idea of what type of puzzle they are getting into, or at least be able to choose a puzzle based on the skill they are working to improve.
Perhaps given the user the ability to add a limited amount of tags to a puzzle upon completion would help? Then have the user give a five star rating to this stuff. Possibly with the option to add their own comments about the puzzle?
The tags given would then show up in the users’ profile, and links to the puzzles they’ve solved (perhaps like some kind of social media feed?). Just like a tag cloud hidden in a tab off screen (click the tag, show “puzzle solved tag cloud”)… with their ratings they give to the puzzles allowing other puzzles to be suggested.
Actually no to the five star rating–nobody ever actually uses that. It is always 1 stars, 5 stars or 3 stars. Instead go with a “No!”, “Meh” and “YES YES!” for the three ratings.
Then based upon a solved to rating ratio have people search through… and also allow searches for puzzles with the most No! ratings and most Meh! ratings… as well, people do enjoy bad movies and bad video games (and bad fan fictions).
Mind you, this will create a Though Bubble system for sorting–which has its own issues to be dealt with.
oh… by “limited number of tags” I’m referring to something similar to what the website Gamerdna uses to let people tag their game collection.
This might sound bad but in my opinion only really difficult puzzle should make it.
Maybe i’m wrong but I believe that most people who spend time on community puzzles are usually done with the main puzzle section and therefore are looking for something relatively tough to gnaw their teeth on.
I also think that rewarding a puzzle maker with CG point through some function of the amount of people trying it and integrating a ratio of the amount of people who successfully completed it over a time period would be a good idea. Such kind of “coefficient” would be a good indicator of the overall puzzle quality.
Idea being that an interesting puzzle should get more people attempting it.
And a difficult puzzle should get less completion over a period of time at least.
I believe that this would actually motivate people into making really nice challenging puzzles.
Note that I’m not saying that actual puzzles are not good, It’s just a general opinion on the matter.
The point made by @FredericBautista is accurate. Usually people who want to learn ‘basics’ have plenty to do with the official puzzles, and a certainty that they are well formed and well tested (and nice looking;]).
The really nice thing will be “promoting” some unofficial puzzles into semi-official/accepted. Puzzle of the week is great, but it still lacks visualization, CP’s and achievements, in addition to the title.
Another case is - if it will be possible to allow users writing optimization problems - which can be far more interesting than standard singleplayer puzzles. I imagine, that creation of such optimization puzzle requires, instead of hardcoded text answers, writing a verification program (or one program for each test?).
The creator should write verificator (which can has a dialogue with user’s program), which should say yes/no if user’s solution is valid/invalid and additionally return some numerical value for the optimization part.
Eh… the issue with “what counts as a harder puzzle” is… different things are considered harder for different people.
Depending on what your usual background in computer programming actually stands to be as… something will be ridiculous easy that completely messes with other people… and other things will be harder that other people find easy.
This is more what the community puzzles adds to the field–is material for programmers to work on their problem areas… or feel good about their better areas.
Hard from a general view standpoint.
In the same way as the official puzzle section is ranked.
It’s pretty hard to rate a problem on a per person basis.
And there are many “easy” puzzles that I have far more difficulty with than the “hard” puzzles in the official puzzle section.
Having the opportunity to practice and improve the skills those “easy puzzles” deal with would be wonderful for me trying to rebuild my programming capacities.
Oh right, I probably should add that I had a burn out issue in 2012… which should be easier to bring up, now that we have that Vet Programmer suggesting “crunch time isn’t a completely wrong and terrible idea”. My burn out kind of had me unable to look at a computer monitor for ten minutes without my head hurting insanely bad.
Most of the hard puzzles are shit I was just pushing out prior to 2012 (uh… I’d show you, but my backing up practices were generally terrible. They still are fucking terrible… all the code I’ve lost. All the media I’ve lost… #LaSigh ). The stuff on the easy puzzles were stuff I didn’t touch.
Hell, most people think “string manipulation” is the first thing people get to doing in programming. For me it was more Kernel Calls, Process Weighting Manipulation, System Balancing, Network protocols–and various other things on those lines. I will note, that it has become obvious why “programmers weak with string manipulation” is a prime cause of security holes after doing stuff here… as well… that weak area is rather common. Mostly due to network protocols having to treat magic data the same as plain text data… for uh… reasons.
Could you elaborate on the last paragraph? I know that “weakness with string manipulation” might lead to buffer overruns (lack of bounds checks) and DoS attacks (poor handling of large data sets). What’s the deal with network protocols? We aren’t talking about encription here? AFAIK It’s far beyond the scope of string manipulation.
Uh… you kind of got it… and most people in that area of programming are really weak in String manipulation areas… which has those types of exploits more common than they should be.
Essentially, this website has me seeing that my education is lacking… and well, gives a clue as to a whole bunch of other people lacking in a similar way.