Wickham's R for Data Science came out in December 2016, I'd like to pretend that counts as 2017: http://r4ds.had.co.nz/
It's a very complete introduction to the tidyverse which makes working in R much more pleasurable.
The second edition of Python for Data Science came out in October 2017 - that one focuses on Pandas, numpy and Jupyter notebooks, reasonably good introduction to those libraries.
The second edition of Sebastian Raschka's Python Machine Learning came out 2017 too - that one focuses more on scikit-learn and tensorflow, have only heard good things but haven't read much in it.
This looks like a nice book but I'm wondering if the overhead of learning Idris on top of Coq (which I'm familiar with) would have any benefits - would you say it's different enough from Software Foundations?
I haven't gone through SF yet, but I believe TDDwI and SF have very different goals. TDDwI is about hands-on development with a particular language, whereas SF uses Coq to investigate and formally verify broad theoretical topics, right?
TDDwI is also my pick for the year. It's really well done.
You're right that SF is more theoretical. I guess I was curious if the benefit of the book comes from being newly exposed to a dependently-typed language in general or the actual topics of the book, if that makes sense. It sounds like it's well-written though - I'll have to add it to my list. Thanks!
TDDwI is much more focused on more common programming problems than SF and using it like a general purpose language. Don't get me wrong, I love SF, but it might complement it, and be worth coming back to SF after TDDwI.
If you'll forgive the self-promotion, 'Working with Coders: A Guide to Software Development for the Perplexed Non-Techie' came out over the summer and is designed for project/product managers and others who have to deal with programming on a daily basis but don't actually code: https://www.amazon.com/Working-Coders-Development-Perplexed-...
Game Engine Black Book: Wolfenstein 3D is one of the better ones I've read this year. It's a fun nostalgia trip, if you played it, and it covers some interesting stuff about historical low-level game programming and quirks of early PC gaming.
I bought that about two weeks ago. It really is a good read. I wasn't around for the game itself, so it's nice that the book introduces the target hardware.
Personally, I prefer paperback books, but I'm willing to try out something digital.
Do any digital options allow me to take notes?
I currently own a Lenovo X1 Yoga which folds completely into tablet mode and has a very nice stylus.
Does any Windows software allow me to read one of those digital formats and take notes?
The ipad is really nice for annotating PDFs(and the 12 inch pro should be amazing for this, although I don't own one). I think Internet explorer allows you to annotate PDFs, but don't have a Windows machine handy right now.
MS OneNote allows you to annotate PDFs, and Adobe Acrobat reader has some annotation capabilities (and their paid version annotates well).
I usually annotate PDFs on my mac, which is not great for reading :)
You can almost always get a 50% discount on Manning books, if you're signed up to their newsletter, by the way. I usually spring for the paper version, since they generally do a good job with them. Also, you can always buy the paper copy, register it, and get the ebook versions for free. It's a really nice model they use, I wish more publishers adopted it.
Today this one, and all of their MEAPs are 50% off with the code: dotd120817lt
I found Clean Architecture to be a big disappointment. I specifically waited for its release to read all of his architecture-related advice in one volume, and then found that most of the meat was in figures and diagrams which I couldn't follow because of my visual impairment. I realise that's not entirely Uncle Bob's problem, but all the way through the book I was telling myself that it would be worth it once I reached the case study in chapter 33. At which point he zoomed through a use case and architecture diagram and called it a day.
Good books have figures. The best books have figures and textual explanations to go with them.
Yes to both, but unfortunately the cost in time, money and related skills is prohibitively high:
- The diagrams would need to be re-traced and any printed labels replaced with braille ones.
- As braille characters can often take up more space, the labels might need to be shortened, meaning that a separate diagram key would need to be prepared.
- These are technical diagrams, so if you redraw them at the same scale they appear in the book they might not necessarily be understandable in a tactile form.
In terms of money, if you can get away with using A4 paper, the particular type you would need costs £0.38 per sheet. If you need to use A3, it's £0.77 per sheet. Many commercial transcription services, when you take into account the labour costs of adapting the diagram, will charge £70 plus per image, and £3-5 for additional copies if you need them. There are free transcription services provided by charities, but the staff are not experts in preparing technical diagram material and the turnover time can be six months or more.
TL;DR - it's not worth it. Producing one tactile figure would cost twice the cost of the book. I don't know how many figures there are in total.
My highlight was Yegor Bugayenko's "Elegant Objects". Volume 2 was released this year (however I found the first Volume (2016) much better).
Yegor describes what went wrong with object-oriented programming. Whether you are stuck with Java or broaden your horizon, I can really recommend this book series, as it shows nicely how to deal with object-oriented code in the right way.
What was eyeopening for me was that code, written after some of the rules he proposes, becomes indistinguishable from functional programs. One example of a tree of objects resembles a LISP program. This all made me realize how flawed some of the arguments are that to me seem to divide the functional/types and OO camps.
Lately I've read blogpost about DAO posted on HN written by author. I also have read handful of his blogposts like rant on MVC not beeing OOP. Author simplified SOLID in a way that it looks like he is not correct in post about SOLID. Like he tries to bash Bob Martin and Martin Fowler to look cool. Strikes me as not really practical. Maybe even that he only tries to look like he knows what he is writing about.
As a side-comment, don't limit yourself to recently released programming books! I used to do that when reading about web stuff, since most older texts were outdated. But there's many topics for which older books are far better sources of information! The 80s and 90s had tons of improvements and innovations which are still highly relevant. Don't fall into the trap of thinking that something is better just because it's new.
As for 2017 CS books, I'd second Designing Data‑Intensive Applications.
If we count updates, the latest revision of The Swift Programming Language is solid. My forays into Swift have been enjoyable.
This last one is kinda cheating since it's continuously updated, but I'd highly suggest browsing through the HTML Living Standard [0] and reading any parts that grab your attention.
EDIT: Looking through whatwg's news, I found out there's a developer edition [1] of the spec which strips the stuff that's only relevant to browser developers.
Yup, Martin did a fantastic job with his book. Before you would have to go through hundreds of blog post and articles to piece all that distributed systems knowledge together. It's kind incredible how much he managed to cover in a clear and understandable language without going into the math or proofs. His talks are great too, thank you Martin if you're reading this!
+1 for Designing Data-Intensive Applications. I worked my way into the hadoop ecosystem a few years ago and read dozens of books before I started seeing the big picture of databases, data processing and distributed systems. This book gives the same grounding in a single read, it’s an instant classic.
You actually have a lot of really interesting stuff on your site. The Client-Server Game Architecture and Pathfinding Demystified articles also both look like really good reads. Thanks for sharing.
A really interesting dive into looking at common apps and industry problems from alternate perspectives, as well as how bias affects technical and design decisions in software. Not super technical per se, but it's pretty short and raises great and timely questions.
I loved that book too. What I especially liked is it wasn't just theory and rhetoric. There were specific examples of things that went wrong, backed with statistics on why it went wrong, and actionable ideas for how to fix things.
I found "Writing an Interpreter in Go" to be a much better read. It was actually completely portable to C++ and Rust, and that made it useful to pretty much anyone.
75 comments
[ 3.4 ms ] story [ 158 ms ] threadWickham's R for Data Science came out in December 2016, I'd like to pretend that counts as 2017: http://r4ds.had.co.nz/ It's a very complete introduction to the tidyverse which makes working in R much more pleasurable.
The second edition of Python for Data Science came out in October 2017 - that one focuses on Pandas, numpy and Jupyter notebooks, reasonably good introduction to those libraries.
The second edition of Sebastian Raschka's Python Machine Learning came out 2017 too - that one focuses more on scikit-learn and tensorflow, have only heard good things but haven't read much in it.
https://news.ycombinator.com/item?id=14790251
https://news.ycombinator.com/item?id=14797364
search: https://hn.algolia.com/?query=blog.keras.io
TDDwI is also my pick for the year. It's really well done.
https://www.amazon.co.uk/Effective-Java-Joshua-Bloch/dp/0134...
I have recommended this to everyone.
https://www.amazon.com/dp/B0768B3PWV/
For example someone else mentioned this book. https://www.manning.com/books/deep-learning-with-python
It's available as two options...
combo $49.99: pBook + eBook + liveBook
eBook $39.99: pdf + ePub + kindle + liveBook
Personally, I prefer paperback books, but I'm willing to try out something digital. Do any digital options allow me to take notes? I currently own a Lenovo X1 Yoga which folds completely into tablet mode and has a very nice stylus. Does any Windows software allow me to read one of those digital formats and take notes?
Thanks, ~Eric
MS OneNote allows you to annotate PDFs, and Adobe Acrobat reader has some annotation capabilities (and their paid version annotates well).
I usually annotate PDFs on my mac, which is not great for reading :)
Today this one, and all of their MEAPs are 50% off with the code: dotd120817lt
https://www.amazon.com/gp/product/1785883054/ref=ox_sc_act_t...
Good books have figures. The best books have figures and textual explanations to go with them.
- The diagrams would need to be re-traced and any printed labels replaced with braille ones.
- As braille characters can often take up more space, the labels might need to be shortened, meaning that a separate diagram key would need to be prepared.
- These are technical diagrams, so if you redraw them at the same scale they appear in the book they might not necessarily be understandable in a tactile form.
In terms of money, if you can get away with using A4 paper, the particular type you would need costs £0.38 per sheet. If you need to use A3, it's £0.77 per sheet. Many commercial transcription services, when you take into account the labour costs of adapting the diagram, will charge £70 plus per image, and £3-5 for additional copies if you need them. There are free transcription services provided by charities, but the staff are not experts in preparing technical diagram material and the turnover time can be six months or more.
TL;DR - it's not worth it. Producing one tactile figure would cost twice the cost of the book. I don't know how many figures there are in total.
Yegor describes what went wrong with object-oriented programming. Whether you are stuck with Java or broaden your horizon, I can really recommend this book series, as it shows nicely how to deal with object-oriented code in the right way.
What was eyeopening for me was that code, written after some of the rules he proposes, becomes indistinguishable from functional programs. One example of a tree of objects resembles a LISP program. This all made me realize how flawed some of the arguments are that to me seem to divide the functional/types and OO camps.
https://www.amazon.com/Elegant-Objects-1-Yegor-Bugayenko/dp/...
https://www.amazon.com/Elegant-Objects-2-Yegor-Bugayenko/dp/...
The books are short and relatively expensive, but Yegor claims to refund 20 euros for everyone who is willing to write a blogpost.
Computer Age Statistical Inference: Algorithms, Evidence and Data Science
https://web.stanford.edu/~hastie/CASI/
As for 2017 CS books, I'd second Designing Data‑Intensive Applications.
If we count updates, the latest revision of The Swift Programming Language is solid. My forays into Swift have been enjoyable.
This last one is kinda cheating since it's continuously updated, but I'd highly suggest browsing through the HTML Living Standard [0] and reading any parts that grab your attention.
EDIT: Looking through whatwg's news, I found out there's a developer edition [1] of the spec which strips the stuff that's only relevant to browser developers.
[0] https://html.spec.whatwg.org/multipage/
[1] https://html.spec.whatwg.org/dev/
[1] Live demos with more interaction coming very soon!
https://amzn.com/B06XNKV5TS ($24.99 Kindle)
This book has picked up quite a bit of buzz as an intro to machine learning. https://news.ycombinator.com/item?id=15772174
>cloverich: The quality of the book (thus far) is so high that I immediately started Googling about the author to try and learn more
>chillee: He used to be the PM of youtube video classification too.
Also Deep Learning: A Practitioner's Approach by Patterson and Gibson.
A really interesting dive into looking at common apps and industry problems from alternate perspectives, as well as how bias affects technical and design decisions in software. Not super technical per se, but it's pretty short and raises great and timely questions.
https://www.amazon.com/Technically-Wrong-Sexist-Algorithms-T...
(Also: I'm following along with "crafting interpreters" and not writing my interpreter in java, have had no troubles)