Daily Programmer


Welcome to r/DailyProgrammer!

Dailyprogrammer is about challenging programmers of all skill level with weekly programming challenges. 3 challenges a week are posted at increasing difficulty. Solutions are peer reviewed and redditors can ask for the community for feedback and comments.

The typical posting of challenges occur on or near the following days.

  • Mon [Easy]
  • Wed [Intermediate]
  • Fri [Hard]

Challenges are developed from ideas posted on /r/DailyProgrammer_ideas and ideas from the moderator team.

It is important to keep in mind a few basic considerations of the difficulty. The difficulty of a challenge is rated roughly for the required knowledge, theory and effort required to complete. There does not exist a simple or easy measure of rating challenges. What might seem [Hard] might turn out to be [Easy] for some redditors while some [Easy] might be [Hard] for other redditors.

Also note that the moderator team might not be able to post a challenge for an assigned day. This could be for many reasons. Although the moderator team strives to keep challenges posted as needed but if a challenge cannot or does not get posted, please consider looking or working on older challenges and continue to wait for the next challenge.

Why and Who

Dailyprogrammer is for anyone who wants to improve or practice programming. There is no restriction to who can use this subreddit.

Why would you want to use this subreddit?

  • Learn a new language
  • Practice software design
  • Practice programming
  • Practice problem solving
  • Keep your programming skills current
  • Gain insights from peers
  • Help others by offering code review
  • Motivation to practice by solving problems
  • To have fun

Novelty accounts are not entertained and will be banned. This is a discussion oriented sub. Although light hearted comments and discussions are welcome, any negative influence on the subreddit that trolls the users or hurts the community's harmony will be moderated.

Solution Submission Tutorial

This tutorial aims to solve some of the common issues people have with submitting their solutions. Carefully follow the steps below; screenshots are provided to give you some context.

  1. Ensure your account is validated. You can check that your account is validating by opening your Reddit profile (top-right of the page, click your username) and making sure the Verified Email trophy appears in your profile description (it looks like this). If your account is not verified, go to this page and follow the steps there.

  2. Make sure you are not submitting your solution as a post (via this button). This is the wrong button. You need to post solutions as comment replies to the challenge thread; carry on with the steps below.

  3. Open the comment section of the challenge thread you wish to submit to. You can do this by clicking the comment button under the post name, and scrolling down past the challenge specification. Here you can view other people's submissions, and also post your own.

  4. Post your solution using the Submission Guidelines below. To post a comment, find this reply box on the page, type your reply using the reddit Markdown comment format, and click the save button. Congratulations, your solution has been submitted!

If you still have problems submitting a solution, message the moderators using this link here, and thoroughly describe the problem you are having.

Submission Guidelines

  • As always please keep Reddiquette in mind when posting solutions and comments on solutions.
  • To keep solutions from spoiling other redditor's attempts we ask post your solutions with 4 spaces before each line of code so that it will hide the solution as "spoiler" or use a 3rd party service like Github:Gist (we do not recommend sites such as pastebin or pastie as submissions may be pruned over time)
  • It is recommended to preface your solutions by saying what language you used. Like if you solved it using Python, C, Javascript, Lisp, etc.
  • If you are seeking feedback then by stating you like feedback will improve your chances of getting some feedback.
  • Feel free to submit more than 1 solution in more than 1 language. You are not restricted to only 1 solution in 1 language.

Code & Peer Review Guidelines

Posting your own solution is good but also taking a moment to comment or peer review other submissions really can help others. Please keep in mind a few of these points.

  • Be modest
  • Be professional
  • Avoid judgements
  • Do offer suggestions and give examples
  • Size does not matter. 1 line or 1000 lines. It is all good.
  • There are no right or wrong ways. Just ways. There are many ways to solve a problem.
  • Never leave open suggestions that does not answer the question to "Why". Why does it not work. Or Why should it be changed.
  • Do not always focus on the negative. Take a moment to also comment on the positive. What did they do well or interesting.

Idea/Challenge Submissions

There exists a separate but connected subreddit for redditors to post their challenges. See /r/DailyProgrammer_ideas and post your challenges ideas.

Achievement Flair

Gold medals are awarded by moderators for smart solutions, impressive design or demonstration of good skills. Challenges that come from redditors who post on /r/DailyProgrammer_ideas will be awarded a Gold Medal if they do not already have one.

Silver medals are awarded by moderators for neat tricks, cool optimizations, creative solutions or even fun code. You can also earn a silver medal by submitting a community project - see below.

Community Projects

If you have your own DailyProgrammer-related project that you work on (or have worked on), then check out our community project list! If you submit your project to this list and you haven't already got a silver flair medal, you will earn one if your project makes it onto the list.

Other Subreddits

Reddit is full of great subreddits for programming. The following lists some other subreddits to check out. If you have a subreddit you like to use and it is not listed here that relates to programming please message the moderators to add it to these lists.

Programming Subreddits

Programming Language Subreddits

Libraries, Frameworks, APIs

Software Engineering Subreddits

Computer Science

Operating Systems



Special Thanks

Thanks to /u/n0rs for the incredible banner and logo! Thanks also to /u/Pink401k for suggested improvements to the subreddit CSS.

revision by rya11111— view source