Reddit’s r/DailyProgrammer subreddit is a brilliant community-organized group of programmers from around the world that do what many of us enjoy as a hobby & job: program! What’s nice is they do a range of programming challenge difficulties, from the “simple enough to have some fun with writing a crazy solution” to the complete brain-stumping challenges you sometimes hear in interviews.
I was made a moderator a few months back to help out with the community and help with new challenge submissions. I really enjoyed competitive programming events (as incredibly stressful as they were), so I was happy to learn about such a community and try and put up some of my own challenges. What I’ve learned in a few short months really reinforces what I’ve learned from professional programming experience being crystal clear in documentation (i.e. challenge description) is of the upmost importance when it comes to programming. I’ve read tons of amazing solutions to corner-cases and special bugs that I couldn’t think of, having a blast learning new tricks as well to use for work!
To help out r/DailyProgrammer, I’ve written a web-crawler that does a bit of trickery to automate post submissions on my behalf. Usually we post three times a week, but consistency is hard when an actual human has to do it. Instead, this Python script takes unused submissions from a Google Docs spreadsheet (which is posted to through a spreadsheet form, keeping input very consistent), makes sure what it took fits the challenge difficulty expect for that day, and then posts it through my Reddit account. Nothing amazingly fancy, but it’s nice when tools and libraries “just work”.
Check out the source code here!
I’ve also added a fun peer-reviewed flair system. The basic idea is that comments get controlled through up/down-votes (as usual), but each active member gets a flair piece that has a gold medal and silver medal, with respective numbers on each circle. This shows how active and beneficial the given user has been to our community. Sure, people aren’t getting anything outside of digital flair, but it really does go a long way boosting up new programmer’s confidence saying “Hey, awesome solution! Really cool to see someone write it in that few lines of code!”, and then giving them a digital +1 gold medal.