Exercism (exercism.io) has become my go-to resource for starting to learn and get hands-on practice with new programming languages.
Language tracks on Exercism play out similarly to the project-based learning format I became comfortable with at Holberton School. Tracks start with the basics of each language and gradually ramp up in intensity, aiming to cover the entire feature-set of the given language. For each task, Exercism provides me a function prototype and test suite, and I am tasked with solving the given algorithm.
Each track features a "core" curriculum. For every task in the core curriculum,
I am not approved to move onto the next one until a mentor has reviewed my code.
Thus far I've found mentors to be incredibly helpful and insightful - for instance,
a mentor in the Rust track helped me greatly make more efficient a pythagorean
triplet algorithm using some algebra and Rust's filter_map
.
I am currently working on the following language tracks: