Learn more about challenges here!
The Basic Challenges
If you find this level of challenge easy, that's actually not unusual in interview situations, but interviewers often ask you to not only thoroughly explain your process but to up your game in an extension to the initial challenge, so you should definitely try to build on your basic implementations and turn them into solutions for the intermediate and hard challenges!
Basic challenges are good practice for programming languages you have just started learning, so if you are a Python expert but have only just started Java, try the hard challenge in Python and the basic challenge in Java. There is no limit on the number of submissions in different programming languages you can make!
For a fun challenge try to directly convert your code from one language to another (e.g. Python code into Java), it will give you a good idea of the fundamental differences between two programming languages of your choice.
Sometimes there can be a big leap in difficulty between the basic challenge and the intermediate challenge. Remember that the challenges lead on from each other, so if you are stuck on the intermediate challenge go back and perfect the basic version and then attempt the intermediate version again.
If you get stuck try looking at other peoples submissions to give you an idea of how it's done, and then create your own version (don't forget to tag (@) the people who helped you reach your solution, they will appreciate knowing that they've helped!).
The Hard Challenges
If you are struggling with these, that is the point! Most people should be able to do the intermediate challenges if they push themselves, but the hard challenges are just impossible if you do not have the right knowledge. This doesn't mean you should just give up though! If you don't understand a concept, just Google it, look around on sites such as Stack Overflow and learn what you need to do. In a job or university degree, you will not be given everything you need to do, make yourself a mission to find it yourself, it will be a rewarding experience.
Most of the hard challenges include Big O notation. You can learn more about Big O and time complexity here and here. There's also an old (and thus unsupported) Codecademy course on Big O if you prefer.
How To Participate
Submissions in C++, C, or other languages not taught on Codecademy are welcomed, but these may not be eligible to "win" as a featured submission (see below)
Please include a link to your code running on repl.it, the quantity of submissions means that code just copy and pasted in or given through another site can and will not be looked at. The easiest way for @moderators to see your submission is by using repl.it, so if you want a chance to win make sure you use it!
If, however, you want to post your code directly, please make sure that it is correctly formatted!
The best submission or submissions will be featured here on the forums and via various social media channels (like our Twitter)
Solutions submitted before 6:00 pm in New York City on the Sunday immediately following the code challenge are eligible for consideration as a featured "best entry."
To be considered as a "best submission," you must explain your thought processes in making your answer: how and why you designed your function the way you did. This way, we'll be more certain that you came up with your own solution, but crucially this is part of the reason why this type of question is asked in job interviews.
Remember, the point of code challenges like these is to test and stretch yourself with an unusual problem, so don't be dissuaded if you find it difficult or don't know where to start! Start with Googling, but see if you can find out how to think about the problem and what tools you need to solve it, but don't just go looking for the solution itself. This way, it'll be a better learning exercise for you - developers can't always find and copy "the right answer" online, which is why questions like these are used in developer job interviews! Interviewers want to be able to see how you think through problems and not just whether or not you can solve them.
If you are interested in "winning" the code challenge, please don't use any unusual repos or anything that will make it difficult for us or your fellow users to assess your answer quickly.
- Do you have a code challenge to share with other users? Issue it! Make a new topic with
[Challenge] in the title to open a challenge, maybe we'll even feature it in our next newsletter!