i_pranavmehta's blog

By i_pranavmehta, history, 4 months ago, In English

Hi Community,

A few college coding clubs had requested the api access for the ACD Ladders ( as they wanted to integrate it in their websites); however I felt it might help more souls hence made the endpoints publicly accessible (a few days ago). Just wanted to share incase someone might be interested in using the ladder problems here!

You can read more about the underlying algo here

The endpoints are as follows: (v2 is the version which Acodedaily.com by default uses)

for v1 https://acodedaily.com/api/v1/ladder?startRating=XXX&endRating=XXX

for v2 https://acodedaily.com/api/v2/ladder?startRating=XXX&endRating=XXX

[NOTE: replace XXX by the ratings you require] Happy coding!

Full text and comments »

  • Vote: I like it
  • +8
  • Vote: I do not like it

By i_pranavmehta, history, 4 months ago, In English

Hi coders! Excited to announce the upgrades to the ACD Ladders, now the website hosts;

[Please view on PC and not a phone]

  1. ACD Ladders -> this is still the default landing page and can be accessed here

  2. Advanced problem filters -> this hosts some geeky advancede filters for the latest problems from codeforces and can be accessed here

  3. ACD Ladders+ adv filters -> this combines 1 & 2 and can be accessed here

you can join the discord server for your DSA/CP journey! Would like to thank himanshu3889 for his amazing contribution for these new upgrades! I hope these upgrades add some more value to your CP journey! :)

If you have any doubts regarding the algorithm being used to populate the ladder then please check this out: here

If you have been using ACD Ladders for a while do let us know how effective has it been, or if there's anything which can be improved in the ladders :)

Full text and comments »

  • Vote: I like it
  • +23
  • Vote: I do not like it

By i_pranavmehta, history, 4 months ago, In English

This year I started teaching a few friends which has scaled to a community of thousands of coders. We developed various resources this year like the ACD Ladders, Hard75 bot, ACD bot, and most importantly the ACD discord server (which now has more than 7k members-making it the biggest active Indian CP server!), the best part is all these resources are absolutely free! Thousands of coders use these resources on daily basis and have seen significant growth in their CP profiles, hundreds of students even got help in placements by these resources! The journey has been thrilling to say the least, I had never thought that we’d scale so much so quick and thanks a lot for all the support!

[TL;DR: here's a ~6 mins video covering all of this: here ]

However I resigned from Microsoft in September this year and joined a startup! The work is amazing to be honest! however the lack of bandwidth now doesn’t allow me to contribute much to teaching, I am not that active as much as I was earlier! I would like to change this, I would again like to start contributing and start my own course! Obviously I’ll have to cut a bit on other fronts- I’m dropping my plans of getting into fitness and also won’t be able to continue my own CP journey and hence am quitting CP! Yes it’s gonna be detrimental for my personal and professional growth however I don’t see another way of being in a position to contribute again to the community without quitting it.

Although I am myself am a bit against courses but lately interacting with a a lot of new coders made me realise that beginners do rely heavily on the courses as spoon feeding often is helpful at that level, and you can’t expect everyone to read blogs and search for resources online. The course I am planning would span for 4-5 months and would cover basics of DSA/CP to an extend that should be sufficient to reach expert on Codeforces and should be enough for cracking your dream orgs! I don’t consider DSA/CP to be too different and hence I don’t see a point in ranting about it rather it’s best to club both and see amazing results! I know competitive programming shall be taken as a sport and not as means of getting placed in your dream orgs but I am just trying to be pragmatic here, and making efforts in the direction most people would be helped! It would start most likely in Feb 2024, and this course would include me teaching via live sessions and doubt discussions, along with video and text resources.

Over the past few weeks I interacted with a lot of top Indian coders and tech professionals. 1 thing was clear that keeping these resources free would attract a lot of people however free resources are mostly taken for granted. hence it won’t do any good! This is something I’ve witnessed in the beginning of this year too! I am left with 2 choices here:

  1. Make it paid and I could donate all the money to some charity, so that people understand the value of the course they are purchasing and put in the required efforts. However, this would dent my plans of promoting free education.

  2. Have a big enough student base so that a few students taking it for granted isn’t too demotivating for my team and me! This is where I feel I should be betting! Obviously it’s not something I can do, and would need help from you guys. I am aiming for 10k on twitter, youtube and discord, If we reach this mark by the end of the year (we still have a week to do this) then I promise to start and conclude everything I just mentioned! I know some people (mostly those who don’t know me) would feel that I am trying to gain subscribers or followers here, so just to mention- none of these platforms earn me a single penny all of them are free (and even dont have monetisation enabled). Even though we have thousands of coders using ACD Ladders daily still it’s ad free to improve user experience. Yes, the twitter account might generate some money in future, but I’ll not be keeping a single penny out of it and would rather utilise all the money for the community in terms of giveaways and for developing more helpful stuff

It’s not easy to keep promoting free education specially when ed-techs are willing to pay you huge amount of money to teach on their platforms or even just to promote their platforms but I understand the financial condition of several students in college who are barely able to pay their college fees, I would never ever feel morally correct if I ever ask them to pay even a single rupee also money doesn’t really matter much beyond a point and the satisfaction you get for truly helping others is un-parallel! hence I’ve always rejected such offers and promoted free resources! I am trying to do the same now, but this time I need your help! I am not gonna spend a single penny on advertisements since the course is also gonna be 100% free! hence it must be word of mouth! If any of the Acode daily resources or if even I in person have helped you in the smallest possible way to reach where you are today then I would request you to show some support and spread this message! Let’s see if we are able to reach 10k by the end of the year, links are attached below. I hope that we reach the desired numbers by the end of the year and I am able to contribute a lot more the next year! This is my way of contributing to the community, make sure you do your part in this! Maybe this course might not be ideal for you but there could be others who could benefit from this, hence please spread the word!

Peace!

twitter youtube discord

Full text and comments »

  • Vote: I like it
  • +26
  • Vote: I do not like it

By i_pranavmehta, 7 months ago, In English

Hi Coders,

The ACD Ladders (version 1) was welcomed by the community and got a much better response than what I anticipated. As nothing is perfect and everything can be improved hence we made some changes to the algorithm responsible for recommending the problems for the ladders! Before explaining the algorithm in detail, I would like to thank Monogon for his suggestions (although it came up in a random conversation but this helped improving the algorithm). so let's dive into the algorithm responsible for populating the problems!

  1. Get all active users from codeforces (there were 61k users this time, this is almost a 50% increase in the data we used for v1)

  2. Check the past 16 months data for all these users, this encompasses the problems they solved and the rating increase they saw in contests during this time period.

  3. For each of those users divide the time into 4 buckets of 4 months each, these buckets are individually analysed. Each bucket for each user is required to possess the following to be considered as valid buckets (A,B,C are predetermined thresholds)
    • rating growth greater than A
    • problems solved greater than B
    • number of contests greater than C
  4. Each valid bucket is then used for checking which all problems user has "upsolved" (contests solves are filtered out in this version of the algorithm). The upsolves are now given score according to the level at which the user was when he solved this problem (This is specifically because solving a 1000 rated problem might not add much value to a Master, but solving 2100-2500 probably would). The more the correlation b/w the solved problems and the current rating (skewed slightly towards right), the more is the score assigned. The score is now added to the problem.

  5. Step 3 & 4 are executed for all the users!

There it is! I would like to thank manishjha91 and shubhamjr1729 for helping with the development and deployment! You can check out the website here. Feel free to join our discord community for the hard75 challenge, free teaching sessions and lot more! Please feel free to comment down your suggestions for further improvements! Happy coding!

Some more facts (you might wanna skip)

  1. The ladders was visited 2,00,000+ times by coders!

  2. It served 4000+ coders!

  3. It takes 2-3 days to update the ladders, need to graciously ping codeforces for all the data.

UPDATE 1: The older version of the ladders can be accessed at link

Full text and comments »

  • Vote: I like it
  • +48
  • Vote: I do not like it

By i_pranavmehta, 8 months ago, In English

Hi Coders! I hope everyone of you is doing great! A member of my Discord server BadalArya recently came up with an idea to conduct a 75 Hard challenge (similar to the fitness one) for coding. I am excited to announce that we have concluded the development of the bot and have integrated it to our discord server to help coders track their progress for this challenge. This is how the challenge looks:

  1. The bot provides 2 problems daily to each user (who ask for the challenge using the command ";hard75 letsgo"). These problems are based on the users cf rating (one problem is of the same rating and other is of +200 level NOTE: both these ratings are rounded to nearest 100).
  2. On completion the user has to instruct the bot to check the progress using the command ";hard75 completed", the bot then checks whether user has completed both the problems on codeforces and accordingly saves his progress and the streak.
  3. On completion of 75 days the bot would acknowledge the completion and would then plot your progress chart (This would be interesting to look at and to observe any clear relation b/w the progress (rating) and the consistency).
  4. Anyone who skips a day would have his current streak set back to 0, (although the longest streak would always be saved on the system and these statistics can be analysed by using ";hard75 streak").
  5. To propagate a healthy competition environment users can check the top competitors (the ones who have the highest streak) using the command ";hard75 leaderboard".

We do have plans to make the recommended problems even better by using the problems from acodedaily.com blog aka ACD Ladders. Any suggestions from anyone for improving the bot or making it more interesting is highly appreciated.

The server is free for all and would always be! You can join it using this link . Incase you want to host this bot on your own server then feel free to clone it from: github link.

I would really like to thank DenjellBoone for his contributions to the original TLE bot which serves as the base bot for our server and all his help in developing this bot too. Thanks vedantmishra69, manishjha91, glenjp123, BadalArya and everyone else who helped to test this bot and make it better!

Let's code!

UPDATE 1: ~300 people already started the challenge!, this was beyond expectations. Participants range from newbies to Legendary Grand Master! It would definitely be interesting to observe the kind of push this challenge would give to people from varied expertise level!

UPDATE 2 (Week 1 concludes): The contestant rating varies from 3064 (LGM) to 0 (unrated). 375+ people have participated in the contest so far and 83 have a unbroken streak for now!

UPDATE 3 (Week 2 concludes): 400+ coders registered! several people (including me) reported that they've seen an improvement in their logic building due to the daily efforts (but it's too soon to make any bold claims). There was one unfortunate incident- codeforces api was down for the night and to help people maintain their streak, I manually updated the db.

Full text and comments »

  • Vote: I like it
  • +85
  • Vote: I do not like it

By i_pranavmehta, 10 months ago, In English

Hi coders! I hope you are doing great, My discord server community recently came up with a new ladders which probably is the most updated list available. I'll try to explain how the algorithm behind the ladders works, and how to use it appropriately for maximum growth. I plan on updating it every couple of months so that outdated data is never a problem, specially nowadays when the problems are becoming more tricky with time!

  1. How to access the website? It's free for everyone and can be accessed at ACDLadders

  2. What exactly is ACD Ladders? It's a collection of problems which aren't random but have proven to be helpful to 45k+ codeforces users over the past 16 months (4 quarters).

  3. How were these problems picked? The data of the above mentioned 45K+ codeforces users is analyzed, the past 16 months activities (problems solved and rating increase) is taken into consideration, the data is then broken down into 4 buckets of 4 months each. Then for each bucket if the user has solved significant number of problems and has achieved a growth in rating equal to some preset threshold then the solved problems are taken into consideration. This algorithm is then applied to all the users, which gives us a list of problems along with the number of people it was solved by (AC submits). The problems are then ranked based on their frequency of ACs.

  4. How you should be practicing? Enter your handle in the search bar on the website, you would be provided with the suitable ladder based on your profile (only rating is the deciding factor here), start solving problems from here (the ladder is arranged in descending order of usefulness). if you get stuck on any problem then turn on the tags toggle button from the top so that you can see the topics which are related to it (this often serves as a good hint), if you still however aren't able to solve it then at the bottom of the website there's a link to my discord server which you can utilize to post doubts and get help (this is faster than you can imagine)!

Full disclosure — the code is opensource and you can find the repositories at my github handle -"i-pranav". However it was forked from C2Ladders (both the logic for the ladders and the website), thereafter significant changes were made in both backend and frontend to make it the best product out there!

I would like to hear your views and suggestions on this, always open to tweak algorithm, make changes to the website if it is helpful to the community.

UPDATE1 : the website has been updated, with the following.

  1. local storage for saving the handle (entering handle every time was annoying obviously)
  2. added a loader so as to make it explicit when the website is actually waiting for the data from the API.

UPDATE2: The ladders has been updated with new algorithm, check here

Next updates: 1. local storage for saving the handle [DONE] 2. Loader [DONE] 2. changes in ladder algorithm to make it even more apt. [DONE] 3. button to hide solved problems. 4. Light Theme.

Please let me know if you want any other changes.

Full text and comments »

  • Vote: I like it
  • +117
  • Vote: I do not like it

By i_pranavmehta, history, 15 months ago, In English

Hi there! let's talk of the misinformation — "A good coding profile gets you a good job"

I see many freshers believing it (I don't know if it's specific to India but most of the people I've seen are from India). People need to understand that this is plain and simple flawed logic. The argument that people cracking good jobs generally tend to have good cp profiles is still valid the reason is that those people were good at problem solving and hence also had a good cp profile (not the other way round); so stop drawing conclusions which satisfy your bias.

I see people selling cp accounts on telegrams. What good is it? you're just wasting your time, money and energy in these shitty stuff, I tried educating people on this but they seem to be strongly attached to the myth. I myself am working in Microsoft and a lot of my friends/classmates are in Google, Amazon, Nvidia etc. and they too could vouch for the fact that a good cp profile would never ever fetch you a job. However a good cp profile technically would mean that you have good coding skills (If you have not been a cheater ofcourse). So I request you to not fall into this trap.

With that we already know why people want to get good cp profiles. but what about the others who are actually selling cp profiles, or leaking solutions on youtube? They are just here for money! For instance I started my Youtube channel [for helping people with editorials post contests] and have seen other channels whose sole motive is to share solutions during live contests. Guess what? they have far more reach/views/subs than my channel although it takes 0 efforts to do such things. So the people who are actually selling such stuff are not foolish but it's you [the ones who are buying/watching such shit] being the real fools. Please get out of this mentality! Be a good coder and not a good cheater. There's a shortage of good coders, but abundance of good cheaters.

Thanks for hearing this rant! if you have any doubts you can ping me here or comment down.

Full text and comments »

  • Vote: I like it
  • +34
  • Vote: I do not like it

By i_pranavmehta, history, 16 months ago, In English

Hi guys! Not a CM,M or LGM here, I am just someone who loves problem solving (mostly did leetcode before, but CF is the real deal!). I am trying to stay consistent, learn and teach on the way. With this motivation I created a channel for posting video editorials (ofcourse after the contest is over; not a cheater), gathering doubts people might have and then trying to help in the best way possible.

I've been doing this for sometime now and it's definitely pretty joyful! I now plan on making videos on the basic topics -binary search, DP, heaps and other simple data structures, recursion, number theory,bit manipulation, sorting, greedy algo etc, and some advanced topics like tries, segment trees, DSU, binary lifting (and other topics as I learn them). This would improve my concepts in these subjects as well as would help the viewers to learn.

My plan is to be Master by this year end, let's see how long it takes!. if you have any suggestions for me please let me know. If you have already been supporting me on that channel then thanks a lot for your unconditional support. you can check out the channel here. I would try to always post the solutions to at least the first 4 (as of now — would increase as I grow) problems as soon as the contest gets over.

Happy coding!

Full text and comments »

  • Vote: I like it
  • +38
  • Vote: I do not like it