The O'Reilly Humble Bundle
I purchased the O'Reilly Humble Book Bundle two weeks back and I've just read my second book from the bundle. So far, I'm pretty happy with the purchase.
I paid for the full bundle and last weekend, I read Introducing Go and today, I read 97 Things every Java programmer should know and i'm pretty happy with both.
"Introducing Go" is a short book that introduces the Go language. The part of it that I found most interesting was the last chapters, one of which introduced Goroutines i.e. coroutines in Go. That leads nicely to looking at "Using Asyncio in Python".
I browsed through Think Julia and Using Asyncio in Python as well last weekend, the latter of which made my head hurt. I'll prolly take a closer look at "Using Asyncio in Python" next weekend.
"97 Things every Java programmer should know" seems to be part of the "97 Things XYZ should know" series of books by O'Reilly. There were a lot of "Things" from this specific book that are language-agnostic and aren't specific to Java. There were more "Things" that were Java-specific but I could see parallels in Python. Interestingly, there is one chapter that makes the case for Programmer Certifications and another which makes the case against. I, for one, am against certifications, mostly given the bubble in which I write/want to write software.
For now, I'm aiming to read one book each weekend but that will become impossible/meaningless once I get to the big beasts in the bundle like Programming TypeScript or Learning Java. I've been meaning to take a closer look at a language other than Python for a while now and i'm hoping the books will help towards that goal.
A stretch goal for me is to create something tangible in these languages so I'm thinking of porting a Python library over to the language. For now, I have the ibm2ieee Python package in mind (an open source package by Enthought, my employer). It's a small package which is well tested so it should be easy enough to port over. The important thing is to not just port the package to the new languages but also to publish the package (if the language has a package manager) and setup CI on GitHub for automated testing. That should be a holistic introduction to the language. I think. I might even experiment with various CI providers and GitLab/BitBucket in this process.