Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> You dont read books on software development methodologies when "learning to program".

In the article she already states that anyone can learn to program -- by programming. The title of the article is "The best books on Computer Science and Programming", not "The best books to learn to Program".

    Interviewer: And then, after this introductory book
    on programming, if a reader finds they really are
    interested and want to learn programming, this would
    be a good point to choose a language. Is that right?
    
    Ana Bell: Yes, the first book tells you
    about the hardware. Then if you want to learn how to
    program, you’ll need to learn a programming language. 
    To do this, you don’t have to use a book, there are
    many tutorials online.
Honestly I think you missed the fact that the books are about going further.

Petzold's Code teaches you to look at what your instructions are doing on the machine. It teaches you a little about architecture -- and probably all most people will need to know about computer architecture, and let's face it -- the rest can be gleaned from the thousands of blog posts people have done about X unix feature, or measuring performance of Y, or otherwise from reading the code.

Code Complete and Clean Code teach you how to deal with other people's code, and how to structure your own code in clean ways. This is not something that most people will pick up on their own at the time when they actually need it, it seems to be something mostly learned from trial and error. Important skills for contributing to an open source projects, etc.

Types and Programming Languages teaches you more about how languages and Correctness work on a lower, general level. And Algorithms is about looking at the specific structures of the code you write, and learning to optimize them and design new ones efficiently.

As she says:

    It’s not a book for beginners, but it’s a good book
    if you’re interested in the theory behind programming
    languages. In the first book you’ve learned about the
    hardware, and in the next books you’ve learned about
    good code, and then algorithms. Now you can learn about
    programming languages themselves: how to write one,
    and how they do what they’re supposed to do.
Honestly the only one I'd really swap out is Algorithms. I'd replace it with The Algorithm Design Manual by Skiena.


"Ana Bell, lecturer in the Electrical Engineering and Computer Science Department at the Massachusetts Institute of Technology, chooses the best books to learn computer science and programming."


Headlines, including subheads, often suck. Yes, when you read the content, her actual discussion isn't exactly what the subhead suggests. That is a good reason for criticizing the subhead you quote. It's not a good reason for criticizing her recommendations, though.


Does Code Complete and it's sibling not teach the aspects of programming involved in maintenance and cleanliness? Is that not a major aspect of programming? Just because none of the books teach you at-a-basic-level "This is a function" doesn't mean that they have nothing whatsoever to do with programming. Most of the difficulty with programming is structuring code correctly such that it is within the human grasp of complexity, while ensuring that it also does the job, and is maintainable.


Is computer science not a part of programming? What exactly is your rebuttal here?


I think its the other way around. Wouldn’t programming get classified as engineering, hence the name Computer Science and Engineering?


Maybe? I think the intent was similar to applied mathematics compared to mathematics.

In that computer science is ultimately behind computer programming, but most people don't care about the theory and only use applied theories in day to day work.

But I'm stretching a bit as I can't read minds over the internet yet.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: