HackerNews Readings
40,000 HackerNews book recommendations identified using NLP and deep learning

Scroll down for comments...

Programming in Scala

Martin Odersky, Lex Spoon, et al.

4.7 on Amazon

42 HN comments

The Art of Doing Science and Engineering: Learning to Learn

Richard W. Hamming and Bret Victor

4.7 on Amazon

40 HN comments

The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World

Pedro Domingos

4.4 on Amazon

40 HN comments

Operating Systems: Three Easy Pieces

Remzi H Arpaci-Dusseau and Andrea C Arpaci-Dusseau

4.7 on Amazon

40 HN comments

Start with Why: How Great Leaders Inspire Everyone to Take Action

Simon Sinek

4.6 on Amazon

36 HN comments

Java Concurrency in Practice

Brian Goetz , Tim Peierls, et al.

4.7 on Amazon

34 HN comments

Countdown to Zero Day: Stuxnet and the Launch of the World's First Digital Weapon

Kim Zetter, Joe Ochman, et al.

4.7 on Amazon

34 HN comments

Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

Michael Lopp

4.4 on Amazon

33 HN comments

The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution

Walter Isaacson, Dennis Boutsikaris, et al.

4.6 on Amazon

31 HN comments

Elements of Programming Interviews: The Insiders' Guide

Adnan Aziz , Tsung-Hsien Lee , et al.

4.6 on Amazon

31 HN comments

Accelerated C++: Practical Programming by Example

Andrew Koenig , Mike Hendrickson, et al.

4.2 on Amazon

31 HN comments

The Ascent of Money: A Financial History of the World: 10th Anniversary Edition

Niall Ferguson

4.5 on Amazon

30 HN comments

Programming Rust: Fast, Safe Systems Development

Jim Blandy, Jason Orendorff, et al.

? on Amazon

28 HN comments

Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython

Wes McKinney

4.6 on Amazon

28 HN comments

Think Python: How to Think Like a Computer Scientist

Allen B. Downey

4.6 on Amazon

27 HN comments

Prev Page 3/16 Next
Sorted by relevance

mahyarmonAug 20, 2014

Think Python is how I learned to program about 10 years ago, it was a good book.

cshenoyonOct 21, 2010

learnpythonthehardway.com is good. I'd also recommend Think Python at http://www.greenteapress.com/thinkpython/thinkpython.html

ThoroughlyRonSep 13, 2012

Congratulations on getting your MVP out! I never tried Think Python, but I did learn a lot from Learn Python the Hard Way -- it's a pretty good book.

Where did you get the background picture?

MostAwesomeDudeonAug 4, 2011

Hi! As a member of the Python community, could you please pick a better textbook than Dive into Python? Think Python is a far better book, off the top of my head, but nearly anything's better than DiP for people not acquainted with the language. (http://greenteapress.com/thinkpython/)

asicsponAug 14, 2019

Apart from ATBS [1] I'd highly recommend Think Python [2] and its derived interactive version [3]

[1] https://automatetheboringstuff.com/

[2] https://greenteapress.com/wp/think-python-2e/

[3] https://runestone.academy/runestone/static/thinkcspy/index.h...

babulonJune 26, 2008

There are some good books on other languages too such as Python, Java, J2ME, C++, C# etc., including many that are yet to be published e.g. Think Python due for print by Cambridge University Press in 2009.

westurneronOct 11, 2017

Computational Thinking:

https://en.wikipedia.org/wiki/Computational_thinking

> 1. Problem formulation (abstraction);

> 2. Solution expression (automation);

> 3. Solution execution and evaluation (analyses).

This is a good skills matrix to start with:

http://sijinjoseph.com/programmer-competency-matrix/

https://competency-checklist.appspot.com

"Think Python: How to Think Like a Computer Scientist"

http://www.greenteapress.com/thinkpython/html/index.html

K12CS Framework is good for all ages:

https://k12cs.org

westurneronJuly 7, 2013

The Green Tea Press books are great; and free.

Think Python: How To Think Like a Computer Scientist http://www.greenteapress.com/thinkpython/thinkpython.html

Think Complexity: Exploring Complexity Science with Python : http://www.greenteapress.com/compmod/

Think Stats: Probability and Statistics for Programmers : http://www.greenteapress.com/thinkstats/index.html

arsalanbonJuly 8, 2014

Think Python, by the Green Tea Press.

"How to think like a computer scientist"

jrs99onFeb 10, 2014

I would actually consider only Ruby and Python.

Javascript in my opinion will take longer to get up and running because the language syntax and frameworks are not as straightforward to grasp for a complete beginner.

Ruby and Python have awesome books for beginners and intermediate. I recommend Think Python by Allen Downey and Learn to Program by Chris Pine for beginners. Both are interesting, relatively small, and give you a taste of the language, and both are free.

Both Ruby and Python have frameworks (Rails and Django) that are used by many, many people making it easy to ask around if you have any questions.

davidf18onDec 31, 2014

When I was 17 at my junior/senior high school, I taught about 20 entering 7th grade class programming and it worked out very well.

Downey's Think Python might be a good place to start (free download, but I'd recommend getting the hard copy)
http://www.greenteapress.com/thinkpython/

For reviews: http://www.amazon.com/Think-Python-Allen-B-Downey/dp/1449330...

You might consider this book or related ones listed on Amazon:
http://www.amazon.com/Python-Kids-Playful-Introduction-Progr...

There is this Intro iOS/Swift programming book that claims to teach non-programmers.....
http://www.amazon.com/Introducing-iOS-8-Steve-Derico/dp/1491...

This book also seems very interesting and doesn't seem to require much/any programming experience:

Analyzing Baseball Data with R
http://www.amazon.com/Analyzing-Baseball-Data-Chapman-Hall/d...

I do think it is very important that somebody be readily available to teach/help with some of the concepts....

tsurantinoonSep 15, 2012

Learn both. A lot of people say Ruby & Python are very similar, I disagree. They are similar in that, they look at similar problems (domains - although Python is applied in much greater variety by its community, ie. sciences, web, gui, server admin, whereas Ruby's popularity is primarily in the web). However, they are different in that their design and philosophical ideas stem from two very distinct ways of approaching the building of software.

It is commonly expressed that in Python there should only be one way, and only one way to do something (Pythonic). In Ruby, you can express yourself in a number of ways. Not in ways that are subjective to your taste, but subjective to the needs of your solution.

The way Ruby approaches blocks (and closures) is unique. There is no substitute and Python, and it forces you to code in a manner that is unique to the language. It exposes you to different design patterns and a new way of thinking.

---

To keep it short, learn what language best suits your needs. If you are doing this for fun and are just starting out, I recommend Python. Ruby does way too many things implicitly that it'd be hard to keep track for a beginner (but you can be pragmatic and learn as you go).

For resources, here are my recommendations per language:

Python:
- Udacity's courses are fantastic. They are engaging & challenging. They will teach you the language features as well as resources. They also handle domains from debugging, to simple console software, to web applications. http://www.udacity.com/ is your reference.
- Learn Python the Hardway is usually a good way to breeze through the syntax.
- Think Python - a fantastic book.
- Dive Into Python 3 - also a great short intro.

Ruby:
- PickAxe. Google this. Must read book. Absolutely amazing reference. I don't think you need anything else if you read this.
- Rubymonk, if you want to do fun exercises. Also a good intro to the syntax.

fohlinonJune 13, 2014

I would instead suggest the subsequent "Think Python - How to Think Like a Computer Scientist" by Downey: http://www.greenteapress.com/thinkpython/thinkpython.html

naishonJan 26, 2009

You could try Think Python: How to Think Like a Computer Scientist by Allen B. Downey.

http://www.greenteapress.com/thinkpython/thinkpython.html

It is due to be published by Cambridge University Press under the title Python for Software Design. The link above is for the same content, available for free.

eritainonFeb 7, 2017

I'm with you on the books. I tried to learn Perl 5 from online resources, couldn't. Once I had books in hand, no problem.

The good news for Perl 6 is that books are incoming. O'Reilly has taken on both Learning Perl 6 (by the formidable teacher brian d foy) for a summer 2017 release, and Think Perl 6 (a translation of Think Python by Laurent Rosenfeld and Allen B. Downey; unedited draft available now). Moritz Lenz is developing his manuscript of Perl 6 by Example publicly on his blog (perlgeek.de), and Ken Youens-Clark has released an e-book on doing metagenomics in Perl 6, which includes a substantial Perl 6 tutorial.

As to CPAN, with Inline::Perl5 the entire Perl 5 CPAN is available to Perl 6 -- and if you call now, we'll throw in Inline::Python for no additional cost!

ChicagoBoy11onDec 11, 2016

I've studied digital media design for learning, and I have to admit and I think that the thing that most people overlook is constructing proper scaffolding so they can bootstrap themselves as they learn.

The fact is that there is such a wealth of resources out there that beginners often-times quickly get derailed. The most important thing to start is actually to try to find a way to dull out the noise and actually learn solid principles. Someone trying to get into web development today can quickly spend a week trying to set up Babel and PostCSS and get tremendously discouraged before they realize they are actually going about it the wrong way.

My suggestion to people who are new to coding is to actually go into a domain where that ISNT going to happen. If you have the motivation/time, don't try to learn to program by learning web dev. Instead, pick something like "Think Python" or some other resource that you can use as the CANONICAL resource for truth, and that will give you a linear path to progress to. Your advice about doing it yourself and pushing and the 80/20 rule is all gold, but I think it will be met with limited success if a person doesn't have a clearly established guiding path like that from the getgo.

And once that friend gets comfortable enough with programming principles and wants to then explore specific application domains, I would again make the same recommendation as before. Find that ONE canonical resource that can move you to the next step, and proceed with it as your bible until you have enough under your belt that you can then go out and explore concepts -- which you now can hang onto the solid foundation you built. For web, for instance, Steve Huffman's course at Udacity is pretty excellent at giving you the barebones of how a web application works. Do that. Forget styling, forget responsiveness, forget everything... but use that as your one-stop-shop to understand how a website works. Ok, now do your own. Ok, now explore that a little. Confident enough? Great, find another canonical source for SPAs. ng-book is great if you want to do angular (and I'm sure their react book is just as solid). Done all the examples in the book and feel confident? Ok great, now go read blogs about these things. Lather, rinse, repeat.

malandrewonMar 29, 2011

In addition to what others have said, I would add The Little Schemer to the list. It may not seem like the most practical book, but it will make you a better programmer.

Beyond that, I would reiterate the following suggestions put forth by others:
-- How to Design Programs (get version 2. Racket, the IDE for this book, is practically plug-and-play, so you won't waste time prepping your development environment)

-- Think Python by Allen Downey (i haven't read this one, but it comes very highly recommended. the excerpts I've read show that Allen communicates the concepts very clearly)

-- Eloquent Javascript (very good introduction, all examples can be done directly in the browser with the specially-made console. This eliminates the time and confusion you will experience trying to set up a development environment with other languages.)

On top of those I'd also add:
-- The C Programming Language by K&R (if you are interested in C)

-- Dive into HTML5 (if you are interested in web development. HTML is a markup language, but you are going to need it to be able to build web stuff. This book complements Eloquent Javascript nicely)

-- Land of Lisp

-- DOM Scripting (Pair this book with Eloquent Javascript. It's the best introduction to the DOM that I've seen and will bridge the gap between HTML and Javascript)

The best books on coding are those that place equal emphasis on good prose and good programming practice and that de-emphasize syntax.

Also, look for books where the examples are real-world examples. i.e. things that people have actually had to implement at one time or another. Avoid books with completely imaginary examples that use made up names like foo, bar, widget, etc.

blotter_paperonMay 7, 2019

MDMA is a lovely drug, but has it's own risks. I honestly don't think I would have gotten into programming if a friend hadn't suggested it while I was under the effects of MDMA (he had suggested it many times before without me taking the suggestion seriously, but I ordered a copy of Think Python the next day). I'm very thankful for the impact that drug has had on my life. The friend who prompted me to start programming had two months of severe anxiety after that bean drop. He had previously taken MDA about a week prior, which is something of an analog; my understanding is that they both dump your built-up serotonin, and if you dump too much serotonin at once you can have a rough time of life once the bliss wears off. Also, the literature seems to be mixed concerning the neurotoxicity of MDMA IIRC.

avinasshonMay 27, 2015

This repo maintains list of free programming books [0].

Many of the books at Green Tea Press[1] are available for free:

- Think Python: How To Think Like a Computer Scientist

- Think Bayes: Bayesian Statistics in Python

- Think Complexity: Exploring Complexity Science with Python

- Think Stats: Probability and Statistics for Programmers

- The Little Book of Semaphores

- Physical Modeling in MATLAB

- Learning Perl the Hard Way

few others. Do check the site.

Secondly, books by Al Sweigart[2] are also freely available. They include:

- Automate the Boring Stuff with Python[3]

- Hacking Secret Ciphers with Python

- Invent Your Own Computer Games with Python

- Making Games with Python & Pygame

[0] - https://github.com/vhf/free-programming-books

[1] - http://www.greenteapress.com/

[2] - https://inventwithpython.com/

[3] - https://automatetheboringstuff.com/

mkuhnonFeb 26, 2009

I can recommend "Think Python: How to think like a Computer Scientist". It's free but can also be purchased (at least soon). It really starts with the basics but if you already know those you can skip them. http://www.greenteapress.com/thinkpython/thinkpython.html

Also I can recommend Dive Into Python: http://www.diveintopython.org/

epequenoonDec 22, 2011

I would suggest Think Python: How to Think Like a Computer Scientist

http://greenteapress.com/thinkpython/thinkpython.html

vitovitoonNov 25, 2012

Hi, UX and interaction designer here, but once, a long time ago, I was a developer.

I learned to program typing in code from books and magazines, and, later, from reading and rewriting parts of open source projects that did things similar to things I wanted to do.

There's lots of ways to learn development like that today, online, including great open source books like Dive Into Python and Think Python and Learn Python the Hard Way.

There isn't so much of that for design. Not online, anyway.

I don't write about "how to design" because, like programming, it's something you have to learn by doing. There's no Learn UX the Hard Way, but maybe there should be.

One of the projects I tried once was running design workshops, so I could tease out repeatable design exercise and publish those: http://vi.to/workshop/premise.html I ran fifteen workshops, and ultimately discovered they were structured great for the attendees, but wrong for my goals.

There's a book, The Non-Designer's Design Book, which is pretty proscriptive, but does give you exercises you can try and repeat. There are other books, like Editing By Design, which tell you "why" certain things are important, but doesn't include exercises.

Critique is a related problem: most interactive designers today didn't go to school for it, so they're missing the common cultural and academic background that fine artists, architects and industrial designers have, where they've learned the history of the practice, learned fundamentals, and practiced constructive criticism for years.

I don't know if you're any good as a writer or a designer, but if you're looking to write about design and make an impact on non-designers, you could do worse than to take a design pattern or an element of design and make exercises around it. Give people ways to practice them, to study an implementation, to apply it something new, and to critique it, repeatably.

epequenoonOct 28, 2012

I always recommend:

Think Python: How to Think Like a Computer Scientist http://www.greenteapress.com/thinkpython/

It's a pretty good overview of basic concepts of Computer Science, it's focus is Object-Oriented but does cover functional programming as well.

I would also pair any of the suggestions offered here with http://pythontutor.com/ adding the visual component of program execution will help absorb the material much quicker and get you used to the nuances of python.

PostOnceonOct 10, 2012

I'm a big fan of the author's other books, Think Python and Think Complexity (haven't had the time for Think Stats), I found them more understandable than most other books that purport to teach people of the same skill level.

I'm hoping this will be as good, but all the negative comments here leave me skeptical. Perhaps this is the crowd that would enjoy K&R C more than Think Python. The former is more of a reference to me than an introductory tome. Perhaps everyone here is just better at math than I am.

idoescomputersonJuly 6, 2013

I am in the same position and have the same question. Have you tried following Learn Python the Hard Way or reading "Think Python: How to Think Like a Computer Scientist"? Those are to very good resources for learning Python. I would also recommend you try reading up on data structures and algorithms. What's your programming background? Do you know any other programming languages?

AdmiralAsshatonDec 8, 2014

Aspiring programmer here. So, I've completed the following from that page and on the web:
- Google's Python course (https://developers.google.com/edu/python/)
- Learn Python the Hard Way (http://learnpythonthehardway.org/book)
- ThinK Python: How to Think Like a Computer Scientist
(http://www.greenteapress.com/thinkpython/thinkpython.pdf)

Also working on the O'Reilly Python book.

Three books later, I still don't really feel like an "expert" with Python. I mean, I know the syntax well enough, I know basic programming idioms, I just need something of intermediate complexity to work on, somewhere between "Learn Python From Scratch!" and the Python Standard Library. Coming from a C background, I don't need to be told what most of these concepts are, I just need to know how Python does them.

I also made the mistake of trying to learn several languages (e.g. Java, Javascript, and Python) simultaneously, and by poor choice or poor availability of free materials, nearly all of them ended up being along the lines of these "Learn X Language with no programming background!" The end result being if I have to hear someone tell me again what an "if" statement and a "for loop" are, my head is going to explode.

To reiterate, where does one look for an Intermediate level Python book?

joelhausonJuly 3, 2011

Some additional info I turned up on the MIT site for this course:

If you don't like Scribd: http://mit.edu/6.01/mercurial/spring11/www/handouts/readings...

Think Python, How to Think Like a Computer Scientist: http://www.greenteapress.com/thinkpython/thinkpython.pdf

Whiteboard Demos [videos]: http://alawi.csail.mit.edu/~alawi/as3/

Built withby tracyhenry

.

Follow me on