(Part 27) Best computer programming books according to redditors

Jump to the top 20

We found 8,316 Reddit comments discussing the best computer programming books. We ranked the 1,691 resulting products by number of redditors who mentioned them. Here are the products ranked 521-540. You can also go back to the previous section.

Next page

Subcategories:

Web development programming books
Software development books
API & operating environments books
Algorithms and data structures books
Graphic & multimedia programming books
Programming for beginners books
Software design & engeneering books
Microsoft programming books
Game programming books
Functional software programming books
Apple programming books
Parallel computer programming books

Top Reddit comments about Computer Programming:

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/radium-v · 243 pointsr/IAmA

I'm going to be brutally honest here, and I'm probably going to get down-voted, but I'm not impressed with the underlying code for the project. I don't even know where to begin.

You're obviously passionate about Javascript, but runtime engines and best practices have changed dramatically in the last few years. Some things that stick out could easily be chocked up to coding style or preference, but when those preferences aren't well-adjusted to current-day standards, it leads to a perpetuation of those bad practices and hinders the growth and evolution of web development overall.

I'm posting this here, instead of on Github, because these aren't quite bug reports. I'd be more than happy to contribute though.

  1. Syntax and readability are more important than shortcuts.

    Cutting corners in the interest of character count is useless. It's better to be able to read the code than to have to interpret it line-by-line.

    For hinting, I recommend JSHint. It'll be nicer than JSLint, but it'll still likely hurt your feelings.

    Here are some JSHint errors/warnings that popped up:

    > The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.

    > Expected an identifier and instead saw 'arguments' (a reserved word).

    > Expected a 'break' statement before 'case'.

    A lot of syntax errors can be solved by linting or hinting, and following a style guide. Here's Google's Javascript Style Guide. You'll find that most projects on Github follow the same code conventions, and for very good reason. When you make your code consistent and readable, other developers will be more likely to like you and contribute to your projects.

  2. Read Douglas Crockford's Javascript: The Good Parts and Nicholas Zakas' Maintainable Javascript.

  3. Use an AMD-style, modular system like Require.js or Yahoo Module Pattern because Global variables are evil. The basic idea behind a modular system is that every piece of functionality is broken down to its basic form, and no less. It helps to keep things organized. Even if you choose not to use a framework, following a trusted organizational pattern is a good idea. Consistency is key.

  4. Check out Backbone.js or Underscore for data manipulation.

    I really like the project, but the code is unwieldy and confusing.
u/haskellgr8 · 27 pointsr/haskell

Great talk.

I'm wondering. Simon Marlow's book Parallel and Concurrent Programming in Haskell is from 2013 - before Haxl was released.

Those of you who have read this book, would you still recommend reading it today?

u/Cantum2 · 13 pointsr/learnjavascript

When I was starting to learn JS which was not that long ago at all and I am still learning I started with this video series:
https://www.youtube.com/playlist?list=PLz5rnvLVJX5VdVNddvRTj68X6miAWQ5pz

.then this one
https://www.youtube.com/playlist?list=PLz1XPAFf8IxbIU78QL158l_KlN9CvH5fg&disable_polymer=true

.then this one
https://www.youtube.com/playlist?list=PL4cUxeGkcC9jAhrjtZ9U93UMIhnCc44MH

.then I read:
https://www.amazon.com/gp/product/0596517742/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1

.then I read: https://www.amazon.com/gp/product/1430264489/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1
and
https://www.amazon.com/gp/product/1118871650/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1

.then I read:
https://www.amazon.com/gp/product/1491904240/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1
and
https://www.amazon.com/gp/product/1491904240/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1

.then
When I felt like I had a good enough grasp on vanillajs I started a giant project in Angularjs. Where I advanced my skills with git big time. Other resources I used are:
Atom: https://www.youtube.com/playlist?list=PLYzJdSdNWNqwNWlxz7bvu-lOYR0CFWQ4I

Rest api with MEN (lol): https://www.youtube.com/playlist?list=PL4cUxeGkcC9jBcybHMTIia56aV21o2cZ8

Docs are great for js: https://developer.mozilla.org/en-US/docs/Web/JavaScript

These were good for angularjs just incase you were interested:
https://www.youtube.com/watch?v=FlUCU13dJyo&list=PL4cUxeGkcC9gsJS5QgFT2IvWIX78dV3_v

Honestly I cant link one of this guys videos because they all help sooooo much:
https://www.youtube.com/user/shiffman

u/samedhi · 10 pointsr/Clojure

I think that Living Clojure by Carin Meier may be what you want. Basically enough to make you dangerous and feed your appetite, allowing you to go deeper on anything that resonates with you. I especially like the chapter/section on "Practical Polymorphism" and "The power of Macros"; I think this is the most succinct but complete writing I have seen on this.

u/pipocaQuemada · 10 pointsr/programming

> Were you familiar with GHC and just knew scheduler was the problem?

You could say that Simon Marlow is familiar with ghc and the implementation of parallelism in ghc. You could even say that he's written the book on parallel and concurrent programming in Haskell.

u/sj2011 · 8 pointsr/programming

This book by Jesse Freeman was my launching point. I learned about the entity structure, game loop, and resource loading, through this book, which I'd recommend as a great starter.

To be honest I'm not sure it's a great thing to get started in - I have a few years of experience, but the forums are pretty dead, and an amazing help site called 'Point of Impact' has since gone down. There is another engine called Phaser that seems to be more up-to-date and maintained.

u/boblauer · 7 pointsr/javascript

Maintainable JavaScript is definitely worth reading. It's not about the technical aspects of JavaScript so much as it is about what tools and techniques to use to keep your js organized and well maintained over a group of devs.

u/DrummerHead · 6 pointsr/webdev
u/commentsrus · 4 pointsr/badeconomics

I work with econ/stat people who are great at running and interpreting models and thinking about causality issues, but don't know much about programming. They've specialized, I get it, but in the future teams would benefit from everyone knowing some basics. It'll also make stats people more productive and help prevent errors. Also also, econ, other sciences, and the policy world really should embrace open source, open science, open access, etc.

But anyway, here's how to do it.

Below are a bunch of random resources. If you're looking for free courses, Software Carpentry has a bunch on the topics listed below and more. The terminal and Bash, Python, R, Matlab, Git, SQL, GNU Make, continuous integration, and data visualization. Data Carpentry has lessons for some of these topics, geared more toward social scientists. Apparently they're developing a course for doing econ with Bash(?). If you're into macro or computational stuff and want to learn Python, can't do wrong with QuantEcon.

I'll echo what the other guy said. If you have a Mac, cool. If not, consider dual booting with linux. It has a reputation for being difficult to use, but Ubuntu, Mint, and ElementaryOS are all very simple and work just like what you're used to in Proprietary World. It's possible to do the following with Windows, but requires a more setup work.

Learn to use the terminal (this is the point of using Mac or Linux, they come with a terminal and unix tools). Here's a decent book on the basics. Learn to navigate around your filesystem, run programs from the terminal, and use a bit of Bash. You can probably skip the chapters on actually programming with Bash. Bash as a programming language is cool, but not super necessary, and kinda quirky. It wouldn't be a waste of time though, since you can do certain things in Bash very quickly and easily. And you'll be a master haxxer.

Check out Data Science at the Command Line for a decent overview of stats programming in a linux environment. Goes over basic Python and R, and other tools to make life simple. There's also The Plain Person's Guide to Plain Text Social Science, geared toward people who do science but may not do programming atm. Covers more useful tools.

Learn Python or R or both. If Python, here. If R, here. If you're into ML, here for Python and possibly here for R but the code may be dated. Still, that book is The intro book for ML.

Learn Git. You should be in the habit of tracking changes you make to your code and the data/results it produces, especially if your data is being shared with anyone. If you use R, here's a great intro to Git and RStudio's fantastic Git integration.

Learn SQL. This one's harder to pick up on your own, at home, since you need a database set up to query. Look at the software/data carpentry courses.

Learn Docker. It makes your analyses/projects more shareable and--gasp--more reproducible (though I've gotten shit in the past for this, so let's compromise and say it helps but doesn't GUARANTEE reproducibility). This one is more optional than the others.

Once you have the basics down, you can do what interests you and learn best practices. Perhaps you want to know about Efficient R Programming (and general best practices). Or best practices in Python and more comprehensive coverage. Or how to make reports and papers with RMarkdown (want to make a paper that looks like it's published in AER? there's a template for that in Rmd).

u/[deleted] · 3 pointsr/csharp

I just won a copy of this new book. I'll tell you how it is when it arrives, but it looks very good.

Book: http://www.amazon.com/C-Smorgasbord-Filip-Ekberg/dp/1468152106
I was on FreeNode today and received a coupon for it and another way to buy the book even cheaper.

coupon code: B6MJC8PS
And order from here: https://www.createspace.com/3759762

I guess ordering from the publisher is the cheapest.

Edit: more information

u/jrheard · 3 pointsr/programming

Glad to hear it! Like catfishdeity says, this is indeed Clojure - it's ClojureScript, actually, which is a dialect of Clojure that compiles to JavaScript. I've been playing with Clojure since 2011 and absolutely love it - it's got a strong focus on functional programming with immutable datastructures (two topics I care a lot about) while still being able to actually get things done (which is an issue I've had the several times I've tried to learn Haskell, for instance).

I really liked using this book to learn the language, but I'm sure that online resources like the one catfishdeity mentioned are great for first-timers as well.

u/rundfunk90 · 3 pointsr/processing

I haven't really used any tutorials to do Processing, however one book has helped me to get on my way: http://www.amazon.com/Getting-Started-Processing-Casey-Reas/dp/144937980X

Further, just try to decompose the image into simple to do instructions. First, learn how to draw a triangle. Second, find a way to draw a lot of these triangles packed together. Thirdly, make the triangles have a random color. Fourthly, generate the colors with different limits, like 'in this location of the image I only want these kind of colors or this color'. That's all there really is to these images, I guess. Good luck!

u/BulkyProcedure · 3 pointsr/learnpython

I just recently discovered pythonbooks.org and it looks like a pretty good resource for books on Python, and it has categories for beginner, intermediate, and more specific topics.

Here's pythonbooks.org page on networking.

Here's a link to High Performance Python (chapter on concurrency w/multiprocessing)

u/Robodude · 2 pointsr/javascript

I've taken a look at impactjs and it's pretty great except for 1 thing... it requires setting up a local apache web server just to get the level editor to work. You need to get the level editor working to do any meaningful development in impact.

If you insist on moving forward there is this node dev server so you don't need to mess with apache:
https://github.com/drhayes/impact-dev-server
and also a pretty good book that I used to learn:
https://smile.amazon.com/Building-HTML5-Games-ImpactJS-Introduction/dp/1449315178

In my personal opinion, impactjs was great when it was the only thing out there, but these days you have so many other options like http://phaser.io/ or https://unity3d.com/ that I would say it doesn't make sense to learn impactjs.

u/xrayfur · 2 pointsr/django

There's this book which figuratively speaking tears Django apart called Lightweight Django might help integrating a Mongo ORM to Django.

u/IronTek · 2 pointsr/programming

Re: C#, I've been wanting to take a look at C# Smorgasbord. I can't vouch for the content (I saw the author post the book on reddit before, so he's already good people), but the list of topics covered looks excellent.

u/ChristianGeek · 2 pointsr/csharp

Also worth considering is
Beginning SOLID Principles and Design Patterns for ASP.NET Developers:

https://www.amazon.com/dp/1484218477

u/BishopAndWarlord · 2 pointsr/javascript

I'm confused; it sounds like in agreement. I said after ES > 6 (ES greater than 6). As you indicated, the community has largely known the 6th version of the spec as ES6. The change to ES2015 only came at the very end of the spec's lifecycle. There's no rolling that back.

My gripe was with the title of this post and the comments in this thread referring to ES7 and ES8. ES2016 (ES7) was only finalized a couple months ago. Very few people outside the standards process are even thinking about ES2017 yet. Best to adopt the new naming scheme before we get much further.

While we're throwing out awesome resources referencing ES6, I'll chip in /u/getify's ES6 & Beyond (github).

EDIT: Fixed typos

u/orichalcum · 2 pointsr/Python

I've only used cython a couple times but my experience was fantastic.

In the first case I had a simulator that was spending most of its time calculating distances between points and the nearest lines. I knew my algorithm was good, but profiling showed that the bare arithmetic was enough to make my code unacceptably slow.

Just extracting this function to a .pyx file and setting up the build correctly got me a 5x speedup. Then I added typedefs for the ints and floats and got an additional 10x speedup.

After crowing about this to a colleague she wanted to use cython to speed up a slow loop in some data analysis code. Again we got 5x just for putting the slow part in a .pyx file. There was a little more effort here figuring out how to correctly declare numpy arrays, but after that she also saw a roughly 10x additional speedup.

In both cases there was some necessary upfront work of profiling the code and refactoring to isolate the computationally intensive part. But if this is straightforward, cython can be a very quick win.

I recommend the book High Performance Python

http://www.amazon.com/High-Performance-Python-Performant-Programming/dp/1449361595/ref=sr_1_1?ie=UTF8&qid=1425266485&sr=8-1&keywords=high+performance+python

which taught me a lot about profiling, cython, and other tools for speeding up Python code.

u/ewan93 · 2 pointsr/learnprogramming

I have not read it myself, but I've heard Regular Expressions Cookbook is quite a good book.

u/the_heat_waver · 2 pointsr/web_design

CSS-Tricks is a great website that has the most up to date stuff, but if you're totally new to CSS I recommend the book CSS: The Missing Manual. The book is pretty old at this point but is a good starting point to progress from.

u/thomas_stringer · 1 pointr/reactnative

I personally just ordered learning react native. Im excited to get my hands on it, it looks like a great resource.

u/maxado_zdl · 1 pointr/reactnative

> Learning React Native

This one: https://www.amazon.com/Learning-React-Native-Building-JavaScript/dp/1491929006

Do you think it is appropriate for mobile developers?

u/olsodo · 1 pointr/webdev

Depends on what level you want to use it. If you know any object-oriented language at all (C#, Java), those should look pretty familiar. But even if you don't, going through some articles and some practice will give you a good head start. There's a book series called "You Don't Know JS" which will definitely give you a solid understanding of most of the language and how it works.

Yep, get the latest Node version installed or just open up your Chrome console and you can start using ES6 features with no problem. There's some discussion about the import/export features being too complex or non-performant, but other than that, you don't really need Babel.

> And how would you know if you need to install it or not

In theory, you'd have many console errors.
Worst case scenario, your code will break :)

Cheers

u/vrdhi · 1 pointr/learnprogramming
u/FF56 · 1 pointr/Unity3D

Don't know about migration but this book is pretty great: http://www.amazon.com/5-0-Pocket-Reference-Instant-Programmers/dp/1449320171
Other than that just Google away!

u/TragicGyro · 1 pointr/computerscience

Python in a Nutshell: A Desktop Quick Reference https://www.amazon.com/dp/144939292X/ref=cm_sw_r_cp_api_R7rVAb4GP2ADN

I personally think these are great for both learning and referencing. It is more expensive than I thought it would be but I’m sure you can find a good deal somewhere. Honestly you are likely to find success with any highly rated Python book on Amazon. Try to look through a few pages of some different ones and see what you prefer. Also make sure you specify which version of Python you are using (2.x or 3.x). Best of luck!

u/8957a7e8 · 1 pointr/AskReddit

I just bought Getting Started With Processing for my son, and it looks like a great introduction to programming in general.

Processing uses a dialect of Java. You get immediate feedback in the programming environment and get to play around with graphics right away (which make it fun to learn). The book builds on little projects with chapters on variables, loops, arrays, classes, etc.

It reminds me of similar books I used to learn BASIC as a kid. It's not written with kids in mind, but rather for nonprogrammers. Still, it's very approachable.

Edit: Check out OpenProcessing for a collection of "sketches" (short processing programs) that people have posted. Source code is shown as well.

u/vplatt · 1 pointr/dotnet

Maybe this is what you're looking for:

Beginning SOLID Principles and Design Patterns for ASP.NET Developers 1st ed. 2016 Edition

It's current, .NET specific, and covers all the major design patterns as well as SOLID. I haven't worked through it yet myself, but I have access to it on Books 24x7, which I have through work, and I looked through the chapter on the Strategy pattern and it seems pretty good. Use Amazon's look inside feature to get a preview.

u/thisisned · 1 pointr/cogneuro

I just finished my Masters and this book helped me enormously with Matlab, which I used to program my dissertation project experiment.

It goes into some depth, but also takes you step-by-step through a few basic psychophysics experiment scripts, so sounds like it'd be right up your street.

u/ressis74 · 1 pointr/ProgrammerHumor

I don't believe that Objective-C offers any macro-like facilities (few languages do (the pre-processor does NOT count)).

If you want to read more about macros and why they make lisp amazing I really enjoyed the chapter on macros found in Clojure Programming by Emerick, Carper, and Grand. It specifically uses Clojure, but all Lisps have similar macro facilities.