# Scrimba Screencasts for Algorithm Challenges

Good day everyone. I recorded & published my first Scrimba screencast the other day covering the Roman Numeral Intermediate Algorithm challenge. I work through the challenge step by step using my own solution which uses plain javascript conventions avoiding prototype methods and any functions which do the work for us.

I want to share the screencast with you hoping it will help with those currently struggling with the challenge, and those who may have already completed it yet are still unsure how they got the solution, or would like to improve their code and learn new tricks to do it. I also explain and show how we can use problem solving skills to approach such a unique challenge without the need for outside resources, except the roman numeral character reference.

I hope to record more screencasts covering these challenges as well as common struggles many new coders encounter. I would love to hear any criticism or advice you have on the screencast, if you have any questions you can ask them here or on the screencast itself.

Furthermore with Scrimba you can interact with the recording live and play with the code. I can also make changes to the screencast and those changes will appear at whatever point in the main recording I make them so that I can further explain anything that was unclear.

2 Likes

Iâ€™ve recorded a few more screencasts covering basic algorithm challenges. I welcome feedback on the material whether it has been helpful and what I could improve on.

My focus continues to be on showing how to approach a unique challenge with general problem solving skills and applying our knowledge of JavaScript conventions - avoiding a reliance on prototype methods - to solve the problems ourselves and get the most out of it.

Using prototype methods is plain JavaScript.

I understand what you mean. And libraries also are built with plain JavaScript, so thatâ€™s what the joke is about concerning Vanilla JS. What general phrase would more accurately describe what I meant to convey?

1 Like

Your Chunky Monkey solution was more imperative than declarative. Using for loops instead of higher order functions like map, filter, reduce, etcâ€¦ just means your solution is imperative. Using a for loop shows â€śhowâ€ť the iteration is performed vs a more functional approach with map, filter, or reduce where the â€śhowâ€ť is not important. The focus in a declarative style of programming is what the result is vs how it is generated. Prototype methods like map just work and make the code more readable (IMHO).

With respect to your solutions, you could say you did not use any external libraries you only used pre-ES6 syntax, though honestly your solutions should not shy away from ES6 syntax, because ES6 has been around for a while now.

1 Like

I see, I suppose avoiding prototypes doesnâ€™t necessitate my code be imperative. The Roman Numeral screencast wasnâ€™t so after all. Iâ€™ll update it to be proper, and in the future Iâ€™ll avoid emphasizing avoiding useful methods as youâ€™ve mentioned, though they would make great topics on their own.

I do still want to show what is possible without relying on existing prototypes. As you said, the loops show what is taking place, and for the purpose of learning methods mask that process.