whether you're an absolute beginner or an expert looking to polish up their skills, programming challenges are a fantastic tool in the grand scheme of learning. as some may know, i've got a respository dedicated to the 4th edition of the "pro/g/ramming challenges", a set of challenges made by the technology community on 4chan. it's helped me immensely in practicing my skills, learning new languages, etc. - and it's even helped in landing contracts / jobs! after going over several sorts of these challenge posts (4chan, hackerrank, hackerone, etc.) i've decided to make my own challenge list.
    do these challenges in whatever language you wish. for a greater challenge, do it in a language you're not familiar with! the challenges will range in difficulty. if you get stuck, refer to stackexchange, IRC communities, catterchan, etc. so long as you don't look up exactly how to solve the challenges. there will be no penalty if you plagiarize, except that you'll be cheating yourself. rather than saving everything to directories on your device, push your files to a public repository using whatever means you please (git, SFTP, RFC 1149, etc.) so long as you're constantly pushing changes / new files.