Best parallel computer programming books according to redditors
We found 18 Reddit comments discussing the best parallel computer programming books. We ranked the 11 resulting products by number of redditors who mentioned them. Here are the top 20.
4. Distributed Computing with Go: Practical concurrency and parallelism for Go applications
1 mention
8. Distributed Computing with Go: Practical concurrency and parallelism for Go applications
1 mention
Modern C++ (C++11 or later) books are not nearly as plentiful as those for Classic C++, but there are a few notables.
Bjarne's college text may be what you are looking for:
Programming: Principles and Practice Using C++ https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=pd_sim_14_2/144-7765085-0122037
It is aimed at engineers, which makes it less general, but might be good for you.
Of course his general intro is also updated to C++11.
The C++ Programming Language https://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=pd_sim_14_2/144-7765085-0122037
This is aimed at experienced systems programmers, so it may be a bit heavy for students, which makes the Primer (that you mentioned attractive).
C++ Primer https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=pd_bxgy_14_img_2/144-7765085-0122037
Be certain to get the 5th edition.
Of Scott's books only the latest is Modern.
Effective Modern C++ https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=pd_sim_14_2/144-7765085-0122037?_encoding=UTF8
This is less an introduction for students than for Journeymen (Journeypeople?) programmers.
For just plain good programming style consider Ivan's book.
Functional Programming in C++ https://www.amazon.com/gp/product/1617293814
Don't be put off by "Functional." This style of programming will make your students excellent programmers.
There are some modern books of high quality that are niche.
The ultimate guide to templates:
C++ Templates https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121/ref=pd_sim_14_1/144-7765085-0122037
The ultimate guide to concurrency:
C++ Concurrency in Action https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=pd_sim_14_1/144-7765085-0122037
Some library options:
Despite its name, this is mostly reference. A very good reference.
The C++ Standard Library: A Tutorial and Reference (2nd Edition) https://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=pd_sim_14_2/144-7765085-0122037
Arthur's book covers C++17, which makes it one of the most modern on this list:
Mastering the C++17 STL: Make full use of the standard library components in C++17 https://www.amazon.com/Mastering-17-STL-standard-components-ebook/dp/B076CQ1RFF/ref=sr_1_fkmrnull_1
To what extent are you teaching C++ and to what extent are you teaching programing?
Good luck and have fun!
You* can try this book - Distributed computing with Go.
After a brief intro into testing with Go and other such stuff, it explains how goroutines & channels work under the hood then shows how to use them. And rest of the book is about using these concepts with networking applications etc.
This kind of stings if you just bought this on Amazon.
OT: has anyone bought https://www.amazon.com/Rust-Programming-Example-concurrent-applications/dp/1788390636/
The TOC looks great but I have had bad experiences with Packt
I'm with /u/riksterinto. It's hard to recommend a path for you without knowing what your current knowledge is, or what your goals are.
If you haven't ever written code with threads, then it's a good idea to try it on a small project without a framework. The toolsets you identify are intended to solve problems of very different shapes and sizes, so I think your survey should start with understnading those architectural attributes, patterns, and differences.
These books might help:
> don't make games. Implement complex rendering tech.
Great advice, this mirrors my experience.
>I though I was pretty good so I switched to Vulkan, which absolutely kicked my ass. It took me about a year to get back comfortable with Vulkan, during which I learned a ton about the intricacies of modern GPUs.
Same, but with D3D12 for me. A low-level API for the graphics pipeline and Professional CUDA Programming for the compute side is a great combination.
Django and multi-threading is actually easy,
For django I recommend reading "Mastering Django"
Here is a link to read it for free https://djangobook.com/the-django-book/
and for multi threading read "Parallel Programming with Python"
https://www.amazon.com/Parallel-Programming-Python-Jan-Palach/dp/1783288396
^ not affiliated
If the official book doesn't have enough for you, try this book. It is on par with the C++ and Java ones IMO.
Senior Level Software Engineer Reading List
Read This First
Fundamentals
Development Theory
Philosophy of Programming
Mentality
Software Engineering Skill Sets
Design
History
Specialist Skills
DevOps Reading List
Depending on how skilled you are at Java:
Then for Android specifically:
Your best bet for learning yourself is to get a book. The biggest issue is their isn't really a generalized book. They are mostly specialized for exactly what you want to do. For example Michael Quinn's "Parallel Programming in C with MPI and OpenMP" is great if you want to wriate a parallel program in C with MPI and OpenMP. You would probably do pretty well getting Using OpenMP and going from there. It should have plenty of examples in C++ to get you started on th right track.
I'm not under any illusion that everyone on the internet lives in the U.S., but FYI Amazon could have the book to you by Friday Feb 15. Was that email maybe from the publisher?
If I didn't already have the first edition I'd jump on it. Will probably hold off for now...
http://www.amazon.com/Efficient-Android-Threading-Asynchronous-Applications/dp/1449364136/
I do not. I'll admit to doing little work with multiprocessing in Python. It really just isn't the language's strength. That said, this seems to be a good intro on the concepts. From there, you can pick up any book on parallelism and apply those concepts to the APIs provided in Python. Alternatively, this book seems to be directly address what you're after.
https://www.amazon.com/Data-Structures-Algorithms-efficient-applications/dp/1788835212