Welcome! Here you can learn the rules, get answers to your questions by reading the FAQ, and find out more about the community that’s growing around the challenge.
The CS Society is hosting this challenge to motivate you to make a habit out of programming while concurrently lending your hand in building a library of handy solutions that could help others in need.
This is open to complete beginners, and a list of resources have been compiled to get you rolling: 21 Days of Code Resources
To track your progress, fork this repo: 21 Days of Code
- Rules
- Why you should do this?
- How will this work?
- Guidlines
- Publicly commit to the challenge
- Next Steps
- Contact us
- Code for at least an hour every day for the next 21 days.
- However, you will not be disqualified if you miss a day or two, but try your best remain consistent and not miss the challenge two days in a row or more.
These problems are cunningly crafted to help you flex those brain muscles to conquer the most important skill of all: googling, or more philosophically, self-learning.
Also, this challenge will help you overcome the monkey of procrastination by developing a healthy habit of coding. Through religiously sticking to your commitment of learning in tidbits daily, you will learn/get better at coding in next to no time.
tl;dr: Choose questions, code, submit the problem with a working solution, check out the leaderboard, don’t stress yourself out, enjoy the process and find yourself learning.
Every day, 4 questions plus 1 featured question will be posted on the repository. You can choose to solve all the questions, or only the questions that interest you, as long as you code for at least one hour every day. Submit Pull Requests with the code that you have solved. Only working solutions will be merged. You can code in any language you want (maybe even check out esoteric languages like brainfumk, or Folders they’re cool!).
There will be a leaderboard which will keep track of the number of commits that have been accepted.
Time yourself coding. Take breaks in between. Try out Pomodoro (or Animedoro, if that’s your thing!). Do whatever your heart says as long as it is not against the sacred law of an hour of coding every day (without burning yourself out, stay hydrated). Remember, consistency is key.
Please name your file as ProblemName_YourGitHubID.extension Example : If I am submitting a solution to the Happy Numbers problem, my submission file should be named HappyNumbers_vaibhavsh7.py (File extension depends on the language of your choice)
We have changed the structure of the repository to make things easier for participants. Instead of submitting your solution in the folder of the platform of the question concerned, we now have folders pertaining to the day of the problem.
Example : Today's solutions Happy Number and Total Expenses should be submitted in the Day 2 folder and the README.md inside that folder shall be changed only.
To make things simpler, we have added a template to the README.md file.
| # | Title | Solution | Difficulty | GitHub ID |
|---| ----- | -------- | ---------- | --------- |
| Enter the Quesion Number here | [Enter the Question Name here](Enter the link to the question here) | [Name of the language used to solve the question](link to the solution) | Easy | [Your GitHub username](link to your GitHub ID) |
Enter the required text in the spaces provided above, please do not remove the [] or () or | symbols, only change the text within them. Example, remove "Enter the Question here" to enter the question name, in case of Happy Number, it's 202, so the README.md file should now look like :
| # | Title | Solution | Difficulty | GitHub ID |
|---| ----- | -------- | ---------- | --------- |
| 202 | [Enter the Question Name here](Enter the link to the question here) | [Name of the language used to solve the question](link to the solution) | Easy | [Your GitHub username](link to your GitHub ID) |
Next, edit the "Enter the Question Name here" like this :
| # | Title | Solution | Difficulty | GitHub ID |
|---| ----- | -------- | ---------- | --------- |
| 202 | [Happy Number](Enter the link to the question here) | [Name of the language used to solve the question](link to the solution) | Easy | [Your GitHub username](link to your GitHub ID) |
Now, replace "Enter the link to the question here" :
| # | Title | Solution | Difficulty | GitHub ID |
|---| ----- | -------- | ---------- | --------- |
| 202 | [Happy Number](https://leetcode.com/problems/happy-number/) | [Name of the language used to solve the question](link to the solution) | Easy | [Your GitHub username](link to your GitHub ID) |
Repeat these steps for all of the columns.
- Click on the “fork” button to fork the GitHub repository (https://github.com/cs-ashoka/21-days-of-code), as illustrated in the picture below:
- After you have finished solving the coding question, upload the file by traversing to the relevant directory and clicking on “Upload file”, as illustrated in the picture below:
- Upload the file with the relevant commit message and click on “Commit changes”, as illustrated below:
- After having uploaded the relevant files, click on “Open pull request” as illustrated below:
- Use the following template for your pull request:
- Finally, click on “Create pull request” to submit your request:
If you made the decision to commit to the challenge, Click here to tweet it to the world, making yourself accountable and taking your resolve to the next level!
Tweet to commit to the challenge!
If you’ve decided to join, here are the steps you need to go through:
- Tweet to commit to the challenge!
- Read the original article: Join the #21DaysOfCode
- Plan: Formulate what you want to work on during the challenge. It might be - learning a framework, or starting a journey of learning to code, or improving your skill level with a particular technology or a programming language. Don’t spend too much time planning, but having a plan like this will help you on your path.
- From today on, for the next 21 days, tweet your progress every day using the #21DaysOfCode hashtag.
Feel free to get in touch with Rithik, Vaibhav, Archisman, Jigyanhsu, Karnav for help. Keep in mind that we are only here to guide you with a beacon, and not take you hand-in-hand to the destination.
If emails feel too old-school or just isn’t your favorite place, you could drop a text on Instagram to Rithik, Archisman, Vaibhav, Jigyanshu or Karnav (but do note that we are all cs nerds without social lives so we don't really check insta often :p).
Please do not contact the CS society for help with particular problems! Get in touch with these points of contact instead!
Once again, dig through this goldmine: resources Vaibhav has unearthed (Note: You can only access these from your Ashoka ID).