3 ms·
My first advice for you is to read SICP and watch the lecture videos. SICP = Structure and Interpretation of Computer Programs http://mitpress.mit.e
by informatimago 14y ago
My first advice for you is to read SICP and watch the lecture videos.
SICP = Structure and Interpretation of Computer Programs
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lec...
http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_in_other_languages http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_...
http://eli.thegreenplace.net/category/programming/lisp/sicp/ http://eli.thegreenplace.net/category/programming/lisp/sicp/
http://www.neilvandyke.org/sicp-plt/ http://www.neilvandyke.org/sicp-plt/
http://www.youtube.com/watch?v=rdj6deraQ6k http://www.youtube.com/watch?v=rdj6deraQ6k
Each programming language comes with its own cultural bubble. While most programming languages are general enough to be applied outside of their bubble, you just find more material (books, tutorial, libraries, applications, etc) written inside the bubble of a given language.
The question you have, is that of the bubble. Some programming languages have a bigger bubble, which means that by learning a language, you will learn things beyond the language, in its cultural bubble.
Do not confuse the density of a bubble with its size either. Some languages are highly popular, with a lot of programmers, blog entries, books, and jobs, but are nonetheless constrained to a small cultural bubble: anybody can learn it in three month and get a job, and that's the purpose of it.
But you want a big bubble, with things to learn beyond.
So after reading SICP (which uses scheme for its example), you may want to go further with scheme or Common Lisp. http://www.schemers.org http://www.schemers.org http://cliki.net http://cliki.net There are a lot of material, old an new in the lisp bubble, and those languages give access to a lot of concepts.
Then you may explore connected bubbles, at least:
- prolog for logic programming,
- Haskell, for functional programming.
You will also have to learn about data structures and algorithms. There are several books about it, including Donald E. Knuth's "The Art of Computer Programming".
In any case, you will have to read a lot of books (online or paper), read a lot of programs, and learn a lot of API, some of them quite big.
Oh, and be sure to write a lot of programs too! It's by doing that you actually learn what you've read.
But APIs often don't present any new concepts. The best APIs are small, or require you to use only a small part for normal cases. Well documented APIs will have a conceptual section, that is the only thing you need to read prior starting programming with the API. The detailed API references you can read them only on the job, when you're writing the program using it. That said, it pays having learn at least one big API well, because it helps you structure your approach to new APIs. Since you've worked with Objective-C I assume it's on MacOSX (or iOS), and I would advise you to read all the Apple developer documentation from end to end. Once you've done that, you will be able to deal with other APIs easily.