pytudes
project-based-learning
Our great sponsors
pytudes | project-based-learning | |
---|---|---|
99 | 194 | |
22,274 | 162,573 | |
- | 5.1% | |
7.7 | 0.0 | |
14 days ago | 5 days ago | |
Jupyter Notebook | ||
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pytudes
- SQL for Data Scientists in 100 Queries
-
Ask HN: Where do I find good code to read?
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.
-
Pytudes
I have the same impression. Reading the code, he uses global variables [1], obscure variable (k, bw, fw, x) and module names ("pal.py" instead of "palindromes.py"), 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.
[1]: https://github.com/norvig/pytudes/blob/952675ffc70f3632e70a7...
[2]: https://github.com/norvig/pytudes/blob/952675ffc70f3632e70a7...
Kinda hard to answer as that depends on your definition of new. But most likely yes, https://github.com/norvig/pytudes/commits/main
-
Using Prolog in Windows NT Network Configuration (1996)
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 https://www.metalevel.at/prolog and marvel as a master deftly disecting problems, in the same way you marvel at Peter Norvig's Pytudes https://github.com/norvig/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
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: https://github.com/norvig/pytudes/blob/main/ipynb/Wordle.ipy...
- Ask HN: What are some of the most elegant codebases in your favorite language?
-
The Law of Large Numbers, or Why It Is a Bad Idea to Go to the Casino
I love how lightweight and interactive this is.
Related: Norvig's runnable intro probability notebooks at https://github.com/norvig/pytudes#pytudes-index-of-jupyter-i...
project-based-learning
-
Git from the Bottom Up
There's a whole load of these listed here: https://github.com/practical-tutorials/project-based-learnin...
- 18 Must-Bookmark GitHub Repositories Every Developer Should Know
-
Top 10 GitHub Repositories Every Developer Should Bookmark in 2024
3) Project-Based Learning: Break free from the shackles of theoretical frameworks and dive headfirst into practical projects. This repository curates a diverse range of project ideas, from building basic web applications to creating intricate 3D games, all designed to solidify your understanding through hands-on experience. (https://github.com/practical-tutorials/project-based-learning)
-
Resources I wish I knew when I started my career
4. Project Based Learning
-
The Top 10 GitHub Repositories Making Waves 🌊📊
View on GitHub
-
Projects ideas
https://github.com/practical-tutorials/project-based-learning and https://github.com/Xtremilicious/projectlearn-project-based-learning
- What after learncpp.com? How to practise c++? Projects or quesion practise?
- How do I learn to build a project following any architecture?
- how do replace or set value on {item.Title} on dynamic html in map
- How to practice C++?
What are some alternatives?
build-your-own-x - Master programming by recreating your favorite technologies from scratch.
build-your-own-x - 🤓 Build your own (insert technology here) [Moved to: https://github.com/codecrafters-io/build-your-own-x]
project-based-tutorials-in-c - A curated list of project-based tutorials in C
Daily-Coding-DS-ALGO-Practice - A open source project🚀 for bringing all interview💥💥 and competative📘 programming💥💥 question under one repo📐📐
CPlusPlusThings - C++那些事
assignments
-Python-FF14-MB-Scraper - This is the FF14 Market Board scraper. Essentially this will create a csv of FF14 Market Board data for items in the game.
Crafting Interpreters - Repository for the book "Crafting Interpreters"
mal - mal - Make a Lisp
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
free-programming-books - :books: Freely available programming books
asgi-correlation-id - Request ID propagation for ASGI apps