Author: Anita Furtado

Wherever you are at in your programming career, it is always important to maintain your skills outside of university classes. One of the key underlying components of programming is problem solving, so the best way to continue to challenge your mind is through using code to solve real-life problems! Below are a few examples of how you can do this.

Practice questions from University

University staff are constantly working hard to provide practice questions during the semester. However, you can also use these questions to brush up on your skills outside of the semester, and ensure that any gaps in knowledge are filled without the time pressure of a busy schedule.

Solving Other Coding Problems

There are so many free platforms that allow programmers from all experience levels to practice their skills and build upon their knowledge. All of the below sites allow you to submit your code to be marked against set test cases, and they also save your progress through creating an account.

CodingBat

CodingBat is especially great for the students who are currently learning the fundamentals of programming (in Java or Python), as questions are sorted by topics like Arrays, Recursion and Strings. You will probably encounter this site at some point during class, but if you haven’t, it is very straightforward to use.

HackerRank

HackerRank is similar to CodingBat in that it has questions sorted by different topics. However, this site is a lot more developed as it supports more languages and also includes competitions, certifications and job marketing.

Kattis

Kattis tends to be a bit more advanced, however you can sort by the difficulty of problems and go from there!

Note: Kattis usually requires the use of some type of input reader, in Java it is called Scanner (very straight-forward to learn and there are lots of YouTube tutorials that will guide you through it).

LeetCode

Leetcode is very similar to Kattis, and is commonly used when preparing for coding interviews/job applications. A really beneficial feature that it includes is the ability to discuss and post solutions to the questions. However, be mindful that you have a genuine attempt (or a few) at the question before you consult the discussion boards, as even if you can’t get the answer, you will learn a lot from just attempting the question.

There are so many other sites like these, so if you find that they don’t suit you, you will certainly be able to find a site that does!

Work on your own projects

A great way to develop your skills in any programming field is to start working on a project. This can be anything from an algorithm to solve a broader problem to a simple game on Processing! This will significantly improve your understanding of different concepts, and it is also a great creative outlet!

Competitive Programming

If you would like to challenge yourself, Macquarie Uni has a Competitive Programming group who meet up every week to do practice problems and participate in competitions (like ACM-ICPC). If you are interested, first join the MACS Discord (Macquarie University Computing Society) and then navigate to the #competitive-programming channel. From there you can ask a few questions and see how everything runs!