What about Learning Python the Hard Way?
I did not want to overload the list. I have read 'Learn Python The Hard Way' and thought it was good but not outstanding.
I have added it to the list now as the second book to read.
Would you recommend it for a newbie to programming who wants to pursue a career in CS?
The list is mostly based on my personal research of what to read. I am not a CS person. But if you are a complete newbie then you have to start somewhere and 'Learn Python The Hard Way' is a good choice, yes.
I would appreciate insight into what i should start with if i want to program seriously for the long haul.
That's up to your background in mathematics I would say. I guess if you know all the math over at Kahn Academy (probably excluding linear algebra), then you are well equipped to start programming and probably earn money with it at some point. And here I would recommend to start with Python.
It is also possible to start with web programming. Maybe try Murach's PHP and MySQL or JavaScript and DOM Scripting, but I am not sure.
From what I have heard it is not recommended to start with languages used in an engineering, science or industrial background like C/C++ or Java. But if you are really devoted that probably won't be problem either. I recommend C++ Programming in Easy Steps followed by Accelerated C++: Practical Programming by Example. After that there are quite a few very good advanced books.
For Java check out Introduction to Programming in Java: An Interdisciplinary Approach, which is probably going to be a tough but thorough introduction.
Updated Version @ LW Wiki: wiki.lesswrong.com/wiki/Programming_resources
Contents
How Computers Work
1. CODE The Hidden Language of Computer Hardware and Software
2. The Elements of Computing Systems: Building a Modern Computer from First Principles
3. The Write Great Code Series (A Solid Foundation in Software Engineering for Programmers)
Write Great Code Volume I: Understanding the Machine
Write Great Code Volume II: Thinking Low-Level, Writing High-Level
4. The Art of Assembly Language Programming
5. The Art of Computer Programming
An Overview of Computer Programming
1. Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
2. Programming Language Pragmatics
3. An Introduction to Functional Programming Through Lambda Calculus
4. How to Design Programs (An Introduction to Computing and Programming)
5. Structure and Interpretation of Computer Programs
Computer Science and Computation
1. The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine
2. New Turing Omnibus (New Turning Omnibus : 66 Excursions in Computer Science)
3. Udacity
4. Introduction to Artificial Intelligence
Supplementary Resources: Mathematics and Algorithms
1. Concrete Mathematics: A Foundation for Computer Science
2. Algorithms
3. Introduction to Algorithms
Practice
1. Project Euler
2. The Python Challenge
3. CodeChef Programming Competition
4. Write your own programs.
Python
pyscripter
An open-source Python Integrated Development Environment (IDE)
Khan Academy
Introduction to programming and computer science (using Python)
1. Invent Your Own Computer Games with Python
2. Learn Python The Hard Way
3. Python for Software Design: How to Think Like a Computer Scientist
4. Python Programming: An Introduction to Computer Science
5. Practical Programming: An Introduction to Computer Science Using Python
6. The Quick Python Book
Haskell
The Haskell Platform
The Haskell Platform is the easiest way to get started with programming Haskell. It comes with all you need to get up and running. Think of it as "Haskell: batteries included".
1. Haskell in 5 steps
2. Learn Haskell in 10 minutes
3. A brief introduction to Haskell
4. Programming in Haskell
5. Learn You a Haskell for Great Good!
6. Real World Haskell
7. The Haskell Road to Logic, Maths and Programming
Common Lisp
1. Land of Lisp: Learn to Program in Lisp, One Game at a Time!
2. Practical Common Lisp
3. ANSI Common LISP
4. Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
5. Let Over Lambda
6. Lisp as the Maxwell’s equations of software
R
RStudio
RStudio™ is a free and open source integrated development environment (IDE) for R. You can run it on your desktop (Windows, Mac, or Linux) or even over the web using RStudio Server.
1. R Videos
2. R Tutorials
3. R Tutorials from Universities Around the World
4. R-bloggers
5. The Art of R Programming: A Tour of Statistical Software Design
6. Introduction to Statistical Thinking (With R, Without Calculus)
7. Doing Bayesian Data Analysis: A Tutorial with R and BUGS