Programming, like any skill, comes with practice. I know many of us feel prepared with classwork, but I want to stress the importance of preparation outside of class. Practicing programming on your own to challenge yourself is the only way to improve beyond the average. This is why I want to announce my new programming problem articles—a biweekly series, showing a programming problem, and how to solve it. My solutions aim to be the fastest and simplest but not the most efficient because I’m not that talented, and the simplest answer can lead to more impressive solutions. It is easy to understand a brute force or basic solution, and then you get an idea of how to solve the whole problem. I am using C#, although any programming language will do. Today I will not be giving a problem but rather introducing other places to receive practice problems.
I have decided to rank each question based on grade levels. This way, you can compare your level with where you could be (not should, will, or could are better language). Therefore questions will be ranked freshman, sophomore, junior, and senior based on the classes scheduled for each grade level. For example, a binary search would be labeled freshmen as it’s taught in intro to cs. While balancing a binary tree would be junior or senior level.
Resources with pros and Cons
I want to use this first article to introduce and evaluate other practice problem environments and find the easiest questions. Finding what their range of difficulty will help you decide if this site is best for you. Once you have one you like, you can improve with or without my future articles.
- ++ Accurately ranked questions
- +Very popular great competitions
- +Well thought out difficulty range.
- – Terrible site UI
- – No onsite editor
I want to start by saying I love code forces. The ranking for questions on Codeforcesis the best system I have ever seen. It’s based on numbers from 800 to 3500. As you can guess, this gives so much wiggle room it’s amazing yet simple. You can easily gauge your understanding and growth. Codeforces is my 100 % beginner to advanced recommended practice problem site. I also believe the equivalent questions are still ranked based on difficulty as you scroll down, which is awesome. They have challenges and competitive matches, as well. On-site editors are nice, but honestly, real competitive programming suggests a native install of your program. The site looks like a hackathon project done by freshmen in 2005- harder to navigate than the middle of the ocean.
Go to the problem set.
Select the lightning icon for difficulty.
Filter to lowest
Challenge yourself to do 40 of the 800 questions this month. That really helped me.
- ++The number one for professional interviews.
- + Challenging questions that you will 100% see in class or interviews
- + great modern editor
- + Feels rewarding
- -some times questions are badly explained
- – Lack of difficulty range
- -lacks examples of input and output and proper test cases
- – OverHipped
- -Paid option
Leetcode is the uncrowned king of favorite problem environments. It is more loved and talked about than anything else I have heard of. It is well made, designed, and clearly a professional operation. This means paying for this service isn’t required but expected to an annoying point. Honestly, Leetcode wants my money more than any service I currently use besides maybe Spotify. I like LeetCode, but it is not worth paying for just to get solutions and some more questions. The editor is the best, but that doesn’t matter because they hide random test cases to inflate their already inflated difficulty, which is really the only reason companies like Leetcode. However, it does feel nice to get one right. That only happens if the question was well written enough to understand or the outputs well explained, rare. The easy questions are not really freshman level, so newbies be warned. I recommend “two sum of arrays.” It’s simple and might help you understand LeetCode. The simplest way to find easy questions is to filter for them.
Then filter for acceptance if other people could solve it, maybe you can too.
I have no experience with HackerRankbut I have heard great things. I took a look for this article but beyond that, take this one with a grain of salt.
- ++ so much more than practice problems
- + language-specific
- + Popular for professional interviews
- + really good professional problems
- + good difficulty range
- +Modern UI
- – Editor organized poorly
- – wordy explanations
HackerRank is something I have heard a lot about but never took the time. They seem to try to do it all and succeed at this task. They have tests, problems, certifications, jobs, tutorials. This is the One-Stop-Shop to beat the rest. There are nowhere near as many paywalls as leet code. I wish I knew about this sooner. One small issue, the editor is under the question’s explanation; this means if you are confused, you have to scroll up and down over and over. The layout of Leetcode is horizontal, so you can see both if you want. The explanations are a bit wordy. The editor does have all the bells and whistles, including uploading your code and custom test cases. Beginners advanced and all kinds of skills, not just problem-solving.
Easy questions on HackerRankare labeled next to there acceptance rate.
- ++The best for Official Competitive programming
- + Great range of difficulty
- + Easy to find the question and how to solve it
- – No question ranking
- – Terrible site UI
- – No onsite editor
If you are looking for a realistic idea of what is expected for official competitive programming, this is the PLACE. These questions range from 2+2 to dynamic programming and greedy algorithms; my issue is they are not labeled well. Some are easy; some are hard; there’s no way to filter toward a simple experience to warm up or improve. The site looks like my mom made it. It’s very academic, but not professional-looking, also hard to navigate. The site will grade your code, but you must write your code on your own, just like a real competition. The question names are a google away from help or a solution. There is an awesome book that can help you and labels some easy questions. The best way to find easy questions is to google other people’s opinions on which ones are easy.
There are about 1000 others, but these all have submission grading and a great community. They are established with their own niches, and all of them are worth a look.