- Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years.
- Learn at least a half dozen programming languages...
- Remember that there is a "computer" in "computer science"... (or know your computer well)
Q: I don't know about programming. What programming language I should start with?
Q: Which dynamic programming language should I choose?
- why's (poignant) guide to Ruby: very funny, enjoyable but complete and insightful
- Humble Little Ruby Book
- The Little Book of Ruby: Learn by examples
- Programming Ruby (free access for 1st edition): Use as a reference book
Q: What next?
A: C/C++ and Erlang.
- C++: To learn Object-Oriented Programming, Template Meta-Programming, Generic Data Structure and Algorithms in STL (Standard Template Libarary)
- Erlang: The world is concurrent. Now most of us use desktop or laptop with at least two cores. If 5 or 10 years, our machines will have 8, 16, 32, 64 or event 1028 cores. Sequential programming don't help to utilize their power. In this case, Erlang will help. You also learn about Functional Programming when using Erlang.
- The C Programming Language
- Thinking in C++, vol 1 & vol 2: Very good and free
- The C++ Programming Language
- Effective C++: 50 Specific Ways to Improve Your Programs and Design
- Programming Erlang: Software for a Concurrent World
- An Erlang course
- Concurrent Programming in Erlang (part 1 is free)
A: Because I don't use Java much in my programming career.
Q: What to read if I want to learn more about "science" in "computer science" that benefit programming directly?
A: I encourage you to read following excellent books:
- Concepts, Techniques, and Models of Computer Programming (can download draft version): will teach you all the concepts and paradigms of programming: stateless, statefull, concurrent, object-oriented ....
- Elements of Programming: Math foundation for programming
- Notes on Programming: same author and will be replaced by Elements of programming but easier and more enjoy to read. (more details here)