Python programs, usually short, of considerable difficulty, to perfect particular skills. (by norvig)

Pytudes Alternatives

Similar projects and alternatives to pytudes

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better pytudes alternative or higher similarity.

pytudes reviews and mentions

Posts with mentions or reviews of pytudes. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-06.
  • SQL for Data Scientists in 100 Queries
    5 projects | | 6 Feb 2024
  • Ask HN: Where do I find good code to read?
    22 projects | | 24 Aug 2023
    Peter Norvig's Pytudes was recently posted here. I think that's some of the best code I've read, although they're only small problems and not a bigger project. Still very much worth a read, he goes through the whole problem solving through code process.

    22 projects | | 24 Aug 2023
  • Pytudes
    3 projects | | 23 Aug 2023
    I have the same impression. Reading the code, he uses global variables [1], obscure variable (k, bw, fw, x) and module names ("" instead of ""), doesn’t respect conventions about naming in general (uppercase arguments [2], which even the GitHub syntax highlighter is confused about). This feels like code you write for yourself to play with Python and don’t plan to read later.

    Some parts of the code feel like what I would expect from a junior dev who started learning the language a couple weeks ago.



    3 projects | | 23 Aug 2023
    Kinda hard to answer as that depends on your definition of new. But most likely yes,
    3 projects | | 23 Aug 2023
  • Using Prolog in Windows NT Network Configuration (1996)
    5 projects | | 21 Jul 2023
    Prolog is excellent for bikeshedding, in fact that might be its strongest axis. It starts with everything you get in a normal language such as naming things, indentation, functional purity vs side effects, where to break code into different files and builds on that with having your names try to make sense in declarative, relational, logical and imperative contexts, having your predicates (functions) usable in all modes - and then performant in all modes - having your code be deterministic, and then deterministic in all modes. Being 50 years old there are five decades of learning "idiomatic Prolog" ideas to choose from, and five decades of footguns pointing at your two feet; it has tabling, label(l)ing, SLD and SLG resolution to choose from. Built in constraint solvers are excellent at tempting you into thinking your problem will be well solved by the constraint solvers (it won't be, you idiot, why did you think that was a constraint problem?), two different kinds of arithmetic - one which works but is bad and one which mostly works on integers but clashes with the Prolog solver - and enough metaprogramming that you can build castles in the sky which are very hard to debug instead of real castles. But wait, there's more! Declarative context grammars let you add the fun of left-recursive parsing problems to all your tasks, while attributed variables allow the Prolog engine to break your code behind the scenes in new and interesting ways, plenty of special syntax not to be sneezed at (-->; [_|[]] {}\[]>>() \X^+() =.. #<==> atchoo (bless you)), a delightful deep-rooted schism between text as linked lists of character codes or text as linked lists of character atoms, and always the ISO-Standard-Sword of Damocles hanging over your head as you look at the vast array of slightly-incompatible implementations with no widely accepted CPython-like-dominant-default.

    Somewhere hiding in there is a language with enough flexibility and metaprogramming to let your meat brain stretch as far as you want, enough cyborg attachments to augment you beyond plain human, enough spells and rituals to conjour tentacled seamonsters with excellent logic ability from the cold Atlantic deeps to intimidate your problem into submission.

    Which you, dear programmer, can learn to wield up to the advanced level of a toddler in a machine shop in a mere couple of handfuls of long years! Expertise may take a few lifetimes longer - in the meantime have you noticed your code isn't pure, doesn't work in all modes, isn't performant in several modes, isn't using the preferred idiom style, is non-deterministic, can't be used to generate as well as test, falls into a left-recursive endless search after the first result, isn't compatible with other Prolog Systems, and your predicates are poorly named and you use the builtin database which is temptingly convenient but absolutely verboten? Plenty for you to be getting on with, back to the drawing boar...bikeshed with you.

    And, cut! No, don't cut; OK, green cuts but not red cuts and I hope you aren't colourblind. Next up, coroutines, freeze, PEngines, and the second 90%.

    Visit and marvel as a master deftly disecting problems, in the same way you marvel at Peter Norvig's Pytudes , and sob as the wonders turn to clay in your ordinary hands. Luckily it has a squeaky little brute force searcher, dutifully headbutting every wall as it explores all the corners of your problem on its eventual way to an answer, which you can always rely on. And with that it's almost like any other high level mostly-interpreted dynamic programming / scripting language.

  • Git and Jupyter Notebooks Guide
    5 projects | | 7 Jul 2023
    I think it depends a lot on what your git repository is.

    If it's specifically source code for anything that's intended to run, then avoiding including the outputs is a smart move. But then, if that's the case, there's a good chance you'd just be committing a .py file.

    I like notebooks because they include output alongisde input. For example, Peter Norvig's Pytudes are all brilliant, quick notebooks that solve a particular puzzle[0]. The code itself might not be that interesting to run (unless you really want to confirm his strategy for wordle checks out) but reading through the notebooks makes for a great experience of simultaneously understanding his thought process, and seeing the solution.

    I do a bunch of generative art stuff and have recently been experimenting with using notebooks as quick sketches[1]. I really like the workflow and end up with something like a journal that isn't necessarily intended to be ran repeatedly, but read over, where I can see the visual output created, as well as the method for it.

    [0] Norvig's extremely cool pytudes, wordle example:

  • Ask HN: What are some of the most elegant codebases in your favorite language?
    37 projects | | 17 Jun 2023
  • The Law of Large Numbers, or Why It Is a Bad Idea to Go to the Casino
    5 projects | | 14 May 2023
    I love how lightweight and interactive this is.

    Related: Norvig's runnable intro probability notebooks at

  • A note from our sponsor - SaaSHub | 12 Apr 2024
    SaaSHub helps you find the best software and product alternatives Learn more →


Basic pytudes repo stats
2 days ago
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives