Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Even though I feel the other answers on this thread already well-cover the bases, in terms of replying to a pretty "nebulous," even "naive," question : I'm going to add another opinion (slightly too long to just be a comment).</p> <p><em>I respectfully disagree</em> with a few posts suggesting an analogy of learning a programming language to learning a spoken, or written, language. SO is not the place to discuss linguistic theory, and its relation to evolution, and cognitive structure, and the work of Chomsky, and Pinker, et. al., which suggest not only language learning's "innateness," but also how variation in "endowment" (genetic, and, yes, even "temperament"), and its dynamic interaction with environment, and "developmental windows of opportunity" at which learning can take place at phenomenally accelerated rates, contributes differentially to morphemic versus phonemic competency, etc.</p> <p>But, please allow me just to register the <em>hypothesis</em> that there are many ways in which the analogy of learning a programming language to learning a spoken and written language is more of a "catch-all" that masks complexity, rather than a useful tool.</p> <p>On the other hand, I suspect (hypothesis) that a person who has achieved mastery of more than one spoken/written language has, indeed, developed certain cognitive structures and skills that <em>may</em> be "useful" in learning a programming language. </p> <p>To my mind the above two paragraphs are not inherently contradictory statements.</p> <p>imho programming in general is also not analgous with learning mathematics or geometry which build structures up from axioms, or fundamental assumptions, into complex systems that sometimes can be "formally" proven, or validated. Of course there are some "rare birds" who start off from Knuth, or Gamma, et. al. and "Design Patterns," and "work their way down" to the "real world" :)</p> <p>My "vote" goes with starting with a good book, and, <em>as Mark Byers suggested</em>, combining that with practice, testing yourself, taking on problems like those on the Euler project Mark mentioned, and, yes, certainly, also as Mark suggests, studying other people's code.</p> <p>The question, in the beginning, though, is, imho : <em>how to know which code is good to study</em>.</p> <p>For me the answer to that is : study the code examples provided by really good books like those by Jesse Liberty, for example : <a href="http://oreilly.com/catalog/9780596527433/" rel="nofollow noreferrer">"Programming C#"</a> latest (3rd.) edition from O'Reilly. Note : my understanding is the 4th. edition is due in March 2010.</p> <p>imho Jesse has an unusual gift as a teacher of programming languages, an ability to "pace" the introduction of material in a skilfull way, to select and present the right examples in the right sequence, and remarkable gifts of clarity in his technical writing. </p> <p>CodeProject articles are a great resource for code examples to study. Look for articles in areas that interest you that have a very high rating by other users, and are specific to C#.</p> <p>The lesser-known book by Liberty <a href="http://oreilly.com/catalog/9780596007997/" rel="nofollow noreferrer">"C# 2005 : A Developers's Notebook"</a> is a fantastic resource (also, imho, one of the most fascinating books in terms of graphic design and book structure, ever done in any technical arena). It's a series of "exercises" that I would compare to the idea of "etudes" in music : each exercise demonstrates a topic, challenges you to understand a good example of that topic, and each topic is really something that will be useful in your "real-world" programming.</p> <p>imho, once you have your "feet on the ground" with a hundred hours or so of study and practice of .NET : fly, don't walk, to the "guru-level" with <a href="http://www.manning.com/skeet/" rel="nofollow noreferrer">Jon Skeet's "C# in Depth"</a> published by Manning. He also, imho, is a superb technical writer who shares with Liberty the gift of selective presentation of material, and has his own special, unique, gift for "stepping out of the book to speak to you directly," addressing the kinds of concerns you are probably thinking about as you encounter more difficult material. I should note that I feel I am a long way from mastery of the content of this book, which just whets my appetite for understanding it. There's an element of wit and humor in Skeet's writing that also, in my experience, is extremely rare in technical books.</p> <p>Please note : disclaimer : while I have worked as a paid consultant for Addison-Wesley on the technical editing of two major .NET books, I have never worked for O'Reilly or Manning, or received "comp" copies of their books (dammit :).</p> <p>I must, respectfully, disagree with the recommendation of "C# in a Nutshell" by Albahari and Albahari (also O'Reilly; I believe 4th. edition is out now : I have only seen 3rd. edition) above : I think it would be a very inappropriate tool for a newcomer to .NET. On the other hand, when you get to studying Linq : you'll find, imho, that <a href="http://www.linqpad.net/" rel="nofollow noreferrer">Albahari's website</a> and free version of LinqPad is just the coolest thing ever done for helping you "get into" and explore Linq.</p> <p>Good luck !</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload