Mary Rose Cook, a programmer and educator, writes about Git internals, functional programming, a small Lisp interpreter and teaching.
HN commenters repeatedly recommend her Git from the inside out essay as the piece that helped them understand Git.
Here is an explanation, it's the top when when I googled "easy explanation of functional programming."
https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming
Please read it. Do you know functional programming now? Do you get it? Do you get the point of it? Did you "grok" the whole reason that the functional paradigm exists?
In my opinion that article fails to meet the test. In its very first paragraph it calls out some negative approaches that assume too much or are too hard; in the second paragraph it does the same thing.
>The assertion that no one is able to explain functional programming is rather extreme and doesn't pass the sniff test.
It's certainly easy to falsify my claim. You can do so with a single link.
So if anyone is able to explain functional program in a way that makes it clear and easy, and really lets people grok its purpose and approach, where is that explanation? Where are the benefits that people reap by reading it?
The fact is, the resources I have reviewed fail that metric. The people who teach it aren't actually able to explain it easily and well. You suggest that "perhaps [I] mean to say that it is very difficult to explain" -- maybe so, but that is still a reason why it is not true that if someone understands something, then they can also explain it. Here we have a clear example where this is not the case. There are also many more examples in the arts and sciences. Not everything can be explained. …
Yesterday I was reading this blogpost (http://maryrosecook.com/blog/post/scarface-prince-of-the-city-and-pieter-de-hooch) so as soon as I clicked this link I thought no way can a computer learn to do what I read yesterday on its own!
I had read headlines about computer-generated images but had never seen them, yet I managed 9/10, anticipating that an artist's technique is not just relation between color etc. but a philosophy.
Edit: Also, it is not a turing test in true sense, since it's one sided. It would be turing test if I tell them what to draw & then it's tough to distinguish between what an artist & computer paints.
You might like to try Write yourself a Git [0] (discussed here previously [1]). YMMV, but I find the best way to learn something deeply is to get hands on. Less of a chance of convincing yourself you understand something that you really don’t.
For less of a time commitment, Git from the inside out [2] is a really nice explanation of the internals, from initializing a repo and the files that creates in the .git directory, all the way to pulling from and pushing to remotes.
[0]: https://wyag.thb.lt/
[1]: https://news.ycombinator.com/item?id=19386141
[2]: https://maryrosecook.com/blog/post/git-from-the-inside-out
Just in case, a few years back I've seen an article on functional programming in python. Mostly arithmetic but the patterns were very pretty (think Euclid algorithm generalized). I never managed to find it again. If that rings a bell to someone, I'll be forever virtually indebted.
- http://www.ibm.com/developerworks/library/l-prog/
- http://kachayev.github.io/talks/uapycon2012/#/
- http://anandology.com/python-practice-book/functional-programming.html
- http://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming
- http://rosettacode.org/wiki/Numerical_integration#Python
Go for Clojure if you want to explore Functional Programming, Clojure is 21st Century Lisp.
Some good resources:
1. https://github.com/hemanth/functional-programming-jargon
2. https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming
3. http://www.secretgeek.net/lisp_truth
4. http://www.buildyourownlisp.com/
5. OS Written is Lisp: https://github.com/froggey/Mezzano
6. For Clojure: https://changelog.com/posts/rich-hickeys-greatest-hits
7. http://yogthos.github.io/ClojureDistilled.html
8. SICP https://mitpress.mit.edu/sicp/
9. Lisp http://www.gigamonkeys.com/book/
Mary Rose Cook: http://maryrosecook.com/blog/archive
Julia Evans: http://jvns.ca/blog/archives/ also http://jvns.ca/projects/
Most of their articles are about technical topics beyond the beginner level, but each has some articles about learning and teaching in their archives.
Tara Mahoney: https://medium.com/the-chronicles-learning-web-development-at/the-chronicles-learning-web-development-at-bitmaker-labs-e8e91656c546
By a web designer self-taught in HTML/CSS, learning Ruby/Rails at a coding bootcamp.