Learning programming languages

Friday night, I went out and bought two books, C# for Experienced Programmers and C++ Programmer’s Notebook. The latter is to increase my understanding of more advanced topics in C++, such as pointers, linked lists, templates, etc. The former is simply to learn C#, particularly in connection with ASP.NET, but also as a standalone language. I did cringe, however, at paying $54.00 (US) for a book, even if it is is Deitel and Deitel book. But as I eagerly opened my C# book this morning, I came to an interesting realization.

I have never really learned a language from a book.

Turbo Pascal, Visual Basic, and C++ I have learned in school from lectures with self-taken notes, usually prefering the Internet to books for reference guides (although I do own a book for each of those languages). ASP/ADO/VB Script and what little JavaScript I know, I learned on the Internet and through experimentation on my own sites. I tried to learn Java from a tomb of a book, but lost interest when I couldn’t think of little projects to test my learning. You know, those evil “let’s learn nested for loops by creating triangles of asterisks” assignments from school don’t really work so well when you already know C++ and are primarily interested in the differences between the languages, not learning from scratch.

But I want to try to learn C# from a book, without the ASP.NET aspect at first. So where shall I get my projects from? Haha. College websites. Many, many college Comp Sci teachers put their student’s labs on a course website so that the students can work at their own pace. And what better way to find exercises that will test my design and programming abilities? If I get to take up Java again before I go to college next year, I will probably use the same resources.