Cherished Books

Programming

  • C. Hattingh, Using Asyncio in Python: Understanding Python’s Asynchronous Programming Features. O’Reilly Media, Incorporated, 2020.

    Very useful book for understanding how async works in practice as opposed to multithreading or multiprocessing. It’s directed at Python programmers, but it’s useful even if you don’t intend to use Python.

  • B. Milewski and I. Tabachnik, Category Theory for Programmers. Lightning Source UK, 2019.

    This book touches upon abstract algebra and type theory in a way that is approachable for people with no applied mathematics background. A must-read for anyone interested in functional programming.

  • N. Indurkhya and F. J. Damerau, Handbook of Natural Language Processing. CRC Press, 2010. doi:10.1201/9781420085938

    A very comprehensive resource about NLP, which proved to be especially useful while I was writing my master’s degree thesis.

  • R. Skinner, Effective Haskell: Solving Real-World Problems with Strongly Typed Functional Programming. O’Reilly Media, 2023.

    If you are learning Haskell and looking for The Book, look no further.

  • R. Nystrom, Crafting Interpreters. Genever Benning, 2021.

    The best introduction to writing compilers and designing programming languages out there!

Japanese

  • J. Rubin, Making Sense of Japanese: What the Textbooks Don’t Tell You. Kodansha International, 2002.

    This is possibly the first place I came across that mentioned the existence of the so-called “null subject”. The topics presented in this book are mainly useful for beginners struggling to grasp the difference between は and が.

  • S. Makino and M. Tsutsui Dictionary of Japanese Grammar. Japan Times. (3 tomes)

    Arguably the most comprehensive compendium of Japanese grammar, this resource is the go-to for any questions you may have about Japanese grammar.