Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Mary Rose Cook

    maryrosecook.com · Personal blog · on HN since 2008

    Mary Rose Cook, a programmer and educator, writes about Git internals, functional programming, a small Lisp interpreter and teaching.

    Visit blogRSSHN submissions
    ProgrammingOpen Source & Linux
    What HN says

    HN commenters repeatedly recommend her Git from the inside out essay as the piece that helped them understand Git.

    Stats for nerds
    43HN people shared it
    44linked in comments
    1.6Kstory points
    Jul 2022last shared
    2008people per year2022

    Top posts on HN

    1. 1
      A practical introduction to functional programming (2013)
      10 people · 564 points · first shared 2015 · 151 comments on HN
    2. 2
      Git in six hundred words
      5 people · 286 points · first shared 2015 · 108 comments on HN
    3. 3
      Dijkstra’s algorithm and the Fibonacci heap
      2 people · 246 points · first shared 2014 · 95 comments on HN
    4. 4
      Little Lisp interpreter
      3 people · 163 points · first shared 2017 · 21 comments on HN
    5. 5
      How I implemented 2D collision detection in Pistol Slut
      1 person · 90 points · first shared 2011 · 35 comments on HN
    6. 6
      Git from the inside out
      13 people · 60 points · first shared 2015 · 2 comments on HN
    7. 7
      Andro.js
      1 person · 49 points · first shared 2012 · 13 comments on HN
    8. 8
      My Node.js app, or, a simple explanation of asynchronicity and non-blocking IO
      1 person · 47 points · first shared 2010 · 13 comments on HN
    9. 9
      Git in six hundred words
      3 people · 7 points · first shared 2015 · 1 comments on HN
    10. 10
      Become an AI-Augmented Engineer
      2 people · 6 points · first shared 2025 · 1 comments on HN

    What HN people wrote when they linked it

    • logicalleeApr 2017

      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. …

    • kangFeb 2016

      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.

    • leobakerhytchDec 2020

      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

    • agumonkeyJul 2015

      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

    • vs4vijayJan 2017

      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/

    • jonjackyJul 2015

      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.

    Related

    John D. Cookjohndcook.com648 people

    Organizing complexity is the most important skill in software development

    John D. Cook
    Personal · last shared 2026
    Jon Sterlingjozefg.bitbucket.org19 people

    Leaving Go

    Jon Sterling
    Personal · last shared 2016
    Fogusblog.fogus.me197 people

    Technical Papers Every Programmer Should Read (At Least Twice)

    Fogus
    Personal · last shared 2026
    James Coglanblog.jcoglan.com93 people

    The Myers diff algorithm: part 1

    James Coglan
    Personal · last shared 2026
    Lambda Diodelambda-diode.com18 people

    Interfacing Fortran with OCaml

    Lambda Diode
    Personal · last shared 2026
    John Wiegleynewartisans.com49 people

    Monads in pictures

    John Wiegley
    Personal · last shared 2026
    Arne Babenhauserheidedraketo.de59 people

    Wisp: Whitespace to Lisp

    Arne Babenhauserheide
    Personal · last shared 2026
    Jenksterblog.jenkster.com28 people

    Which Programming Languages Are Functional?

    Jenkster
    Personal · last shared 2026