Python icon indicating copy to clipboard operation
Python copied to clipboard

Esoteric directory

Open CaedenPH opened this issue 3 years ago • 3 comments

Feature description

A directory with repeated algorithms in the other directories, for example fibonacci, but in the most esoteric way. Perhaps this will be hard to review but it will be pretty awesome having some major algorithms in one line of esoteric glory

CaedenPH avatar Nov 02 '22 16:11 CaedenPH

@cclauss Its a long shot, but what's your opinion? It's not overly beginner-friendly but I think it would be pretty cool

CaedenPH avatar Nov 02 '22 17:11 CaedenPH

Let's see what @poyea and @dhruvmanila think but I really like brief solutions but I am not a fan of code-golf levels of illegible code. Our overall goal is to teach, not confuse. We want visitors to become more confident coders who can work well in teams. Cryptic solutions are not easy for teams to maintain. Understandable, maintainable, and performant code is what we want to make available for visitors to study and improve.

I used to be strictly against multiple implementations of an algorithm but now I lean more towards multiple implementations of popular algorithms (Fibonacci) that live in a single file so they can be studied, tested, and benchmarked side-by-side. All solutions should be tested against the exact same test suite and we should have benchmarks that encourage visitors to care about and work towards higher levels of performance.

I often see that certain visitors are drawn toward a certain approach (recursion, dynamic programming, backtracking, divide-and-conquer, or greedy methods) but the real learning comes from seeing these various methods used side-by-side to solve the same problem. Which methods are more understandable or succinct or performant?

cclauss avatar Nov 02 '22 19:11 cclauss

I'm personally not a big fan of it as they have zero implications in the real world. You don't really want to write code which only you can understand and I would argue that even you wouldn't be able to understand it in the future. I am not against it, but I would not spend time there when there are already existing things to improve.

The only use case I find is for entertainment and testing our own ability and maybe in competitive programming :)

dhruvmanila avatar Nov 03 '22 10:11 dhruvmanila