9 ms·
Ask HN: CS and programming books of 2017
Which CS/Programming related book(s) that were released in 2017 would you suggest?
My suggestion: Clean Architecture by Robert Martin
- thdn 9y agoMastering Linux Kernel Development https://www.amazon.com/gp/product/1785883054/ref=ox_sc_act_title_6?smid=ATVPDKIKX0DER&psc=1 https://www.amazon.com/gp/product/1785883054/ref=ox_sc_act_t...
- joshbaptiste 9y agoThanks for this.. will be a great read even tough i'm more of a systems user space type of person.
- fellellor 9y agoI'm interested in this. Can you list the prerequisites for working through this? I know a bit of C programming. What else do I need besides this?
- deleted 9y ago[deleted]
- daedalbug 9y agoRaces to suggest 'Hitchhikers Guide To Python' but then sadly realises it was from 2016
- a_bonobo 9y agoFrancois Cholet (author of Keras)'s Deep Learning with Python will be complete and fully published on the 20th of December: https://www.manning.com/books/deep-learning-with-python https://www.manning.com/books/deep-learning-with-python The chapters released so far are very good, the outlook chapters were extensively discussed on HN: https://blog.keras.io/the-limitations-of-deep-learning.html https://blog.keras.io/the-limitations-of-deep-learning.html and https://blog.keras.io/the-future-of-deep-learning.html https://blog.keras.io/the-future-of-deep-learning.html 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/ 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.
- alexott 9y agoCholet's book is already complete, and available as PDF & in print form - 20th of December is timeline for ePUB/MOBI
- j_s 9y agoHN discussions for the lazy: https://news.ycombinator.com/item?id=14790251 https://news.ycombinator.com/item?id=14790251 https://news.ycombinator.com/item?id=14797364 https://news.ycombinator.com/item?id=14797364 search: https://hn.algolia.com/?query=blog.keras.io https://hn.algolia.com/?query=blog.keras.io
- agumonkey 9y agoI wonder if there's been a new groundbreaking book in the recent years
- bjz_ 9y agoType-Driven Development with Idris: https://www.manning.com/books/type-driven-development-with-idris https://www.manning.com/books/type-driven-development-with-i...
- deleted 9y ago[deleted]
- alfonsodev 9y agohow are you using ( or plan to use) Idris? for Javascript, C ? can you put some practical examples?
- miranda_rights 9y agoThis 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?
- dropbet 9y agoI 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.
- miranda_rights 9y agoYou'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!
- bjz_ 9y agoTDDwI 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.
- boffinism 9y agoIf 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-Non-Techie/dp/148422700X/ref=asap_bc?ie=UTF8 https://www.amazon.com/Working-Coders-Development-Perplexed-...
- fenier 9y agoI actually bought this because of this comment, enjoying it so far!
- m0ck 9y agoEffective Java, 3rd edition is coming 28th of December! https://www.amazon.co.uk/Effective-Java-Joshua-Bloch/dp/0134685997/ref=sr_1_1?ie=UTF8&qid=1512745141&sr=8-1&keywords=effective+java https://www.amazon.co.uk/Effective-Java-Joshua-Bloch/dp/0134...
- mirceal 9y agoplot twist: the book is actually on Kotlin
- DeceiveEither 9y agoDesigning Data‑Intensive Applications: The Big Ideas Behind Reliable, Scalable and Maintainable systems - Martin Kelppmann https://dataintensive.net/ https://dataintensive.net/ I have recommended this to everyone.
- megaman22 9y agoGame 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. https://www.amazon.com/dp/B0768B3PWV/ https://www.amazon.com/dp/B0768B3PWV/
- bstamour 9y agoFundamental Proof Methods in Computer Science, by Konstantine Arkoudas and David Musser.
- haskellandchill 9y agoAmazing, can’t believe I missed this one!
- wavesandwind 9y agoDesigning Data‑Intensive Applications by Martin Kleppmann
- burnerOh2125 9y agoYes, I second this.
- julsonl 9y agoThis is the book I wish I had 5 years ago.
- ericfrederich 9y agoSomewhat on topic I'd like to ask what a good device is to read these books on? I'd like to grab a couple books to read over the holidays. For example someone else mentioned this book. https://www.manning.com/books/deep-learning-with-python 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
- starquake 9y agoI like my Kindle Paperwhite. I think it allows you to take notes too. It's soooo much better than an LCD screen with a backlight shining in your face.
- ericfrederich 9y agoIs it good for reading technical books which may have diagrams and source code excerpts?
- satysin 9y agoEdge in Windows 10 (1709) supports ePub files with the ability to add notes to pretty much any piece of text in the book.
- okaram 9y agoThe 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 :)
- pc86 9y agoPaper is fine.
- jscholes 9y agoI 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.
- darepublic 9y agoAre you able to read braille? Are these diagrams translateable on that fashion?
- jscholes 9y agoYes 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.
- tjr 9y agoLooking forward a bit, there's an update to The Reasoned Schemer due out in February: https://www.amazon.com/Reasoned-Schemer-MIT-Press/dp/0262535513/ https://www.amazon.com/Reasoned-Schemer-MIT-Press/dp/0262535...
- cessor 9y agoMy 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. https://www.amazon.com/Elegant-Objects-1-Yegor-Bugayenko/dp/1519166915/ https://www.amazon.com/Elegant-Objects-1-Yegor-Bugayenko/dp/... https://www.amazon.com/Elegant-Objects-2-Yegor-Bugayenko/dp/1534908307/ 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.
- frou_dh 9y agoRecently found him too. The 'webinars' I've seen from YouTube are interesting (https://www.youtube.com/playlist?list=PLaIsQH4uc08x0H7Cu_OO72DBTNADqFXNm https://www.youtube.com/playlist?list=PLaIsQH4uc08x0H7Cu_OO7...). Certainly seems like a productive individual.
- ozim 9y agoLately 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.
- andrzejsz 9y agoAny ebook on the way?
- rozhok 9y agoNope, the author described why he won't made e-books here: http://www.yegor256.com/2016/11/09/why-no-ebooks.html http://www.yegor256.com/2016/11/09/why-no-ebooks.html
- indescions_2017 9y agoEfron and Hastie's CASI is an instant classic. Deep history for any ML researcher or enthusiast. And remarkably accessible ;) Computer Age Statistical Inference: Algorithms, Evidence and Data Science https://web.stanford.edu/~hastie/CASI/ https://web.stanford.edu/~hastie/CASI/
- TheAceOfHearts 9y agoAs 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. [0] https://html.spec.whatwg.org/multipage/ https://html.spec.whatwg.org/multipage/ [1] https://html.spec.whatwg.org/dev/ https://html.spec.whatwg.org/dev/
- wavesandwind 9y agoYup, 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!
- Joeri 9y ago+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.
- ggambetta 9y agoShameless plug: I've recently released an open source, online, interactive[1], little-prerequisite, plain language, introductory Computer Graphics textbook here: http://gabrielgambetta.com/computer-graphics-from-scratch http://gabrielgambetta.com/computer-graphics-from-scratch [1] Live demos with more interaction coming very soon!
- deleted 9y ago[deleted]
- vcool07 9y agoQuery: Any good free books on C# and/or ASP.net ? I'm looking more from a perspective of an experienced C++ developer who's looking to learn C#.
- j_s 9y agoHands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems https://amzn.com/B06XNKV5TS 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 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.
- andyjohnson0 9y ago+1. I'm finding this book really useful for getting my head around machine learning and TensorFlow. Also Deep Learning: A Practitioner's Approach by Patterson and Gibson.
- microtherion 9y agoIn a more theoretical vein, "Deep Learning" by Goodfellow, Bengio, and Courville was published in late 2016.
- save_ferris 9y agoTechnically Wrong by Sara Wachter-Boettcher 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-Threats/dp/0393634639/ref=sr_1_1?s=books&ie=UTF8&qid=1512749679&sr=1-1&keywords=technically+wrong+by+sara+wachter-boettcher https://www.amazon.com/Technically-Wrong-Sexist-Algorithms-T...
- MilnerRoute 9y agoI 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.
- TN412 9y agoI liked Sams Teach Yourself C++ in One Hour A Day, it goes over C++14 and C++17 and it was really informative.
- deleted 9y ago[deleted]
- llimllib 9y agoI've been enjoying the in-progress "Crafting Interpreters" by Bob Nystrom: http://www.craftinginterpreters.com/contents.html http://www.craftinginterpreters.com/contents.html
- elf_m_sternberg 9y agoI 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.
- llimllib 9y agoPresumably: https://interpreterbook.com/ https://interpreterbook.com/ is what you mean? (Also: I'm following along with "crafting interpreters" and not writing my interpreter in java, have had no troubles)
- j_s 9y agoAny 2017 recommendations for the non-technical aspects of working as a programmer? I'll stretch the boundaries a bit mentioning an October 2016 book as an example of what I'm looking for: Programming Beyond Practices: Be More Than Just a Code Monkey https://amzn.com/B01LYRCGA8 https://amzn.com/B01LYRCGA8 ($14.99 Kindle) >"a sense of how a very experienced developer sees the world an[d] approaches decision making" Maybe the ZenFounder book helping founders maintain their mental health will make it out before the end of this year! https://zenfounder.com/entrepreneurs-guide-keeping-st-together https://zenfounder.com/entrepreneurs-guide-keeping-st-togeth... Edit: just got an email - nope, delayed til 2018!
- nazgob 9y ago+1 for Designing Data‑Intensive Applications.
- gfredtech 9y agoWriting an Interpreter in Go is a very elegant book for learning how to write an interpreter from scratch using Go. Worth every cent: https://www.amazon.com/dp/300055808X https://www.amazon.com/dp/300055808X [2] https://interpreterbook.com/ https://interpreterbook.com/
- MilnerRoute 9y agoI wanted to read Tim O'Reilly's "WTF", but haven't gotten to it yet.
- yawz 9y agoI'm currently reading it. It's been pretty good.
- patricklouys 9y agoAnother shameless plug: I also released my first programming book this year. Professional PHP: Building maintainable and secure applications http://patricklouys.com/professional-php/ http://patricklouys.com/professional-php/