tags:

views:

211

answers:

6

Ok here is my situation. I've studied Java in my college for 2 semesters. But you know they teach you jack in there, just the basics. We skipped half of our textbook and even then our professors don't teach from section to section of each chapter. I don't blame them. It's hard as it is for new students to understand even the basic concepts of programming. Now this is a community college we are talking about and not Stanford, MIT or Berkeley.

So like I said I've done 2 semester of Java. I really like our textbook because it has some challenging projects to do at the end of each chapter. This textbook is pretty clear and i have no problem understanding it (although 2-D and 3-D Arrays have given me some trouble). I have tried reading a few C# books such as Pro C# 2008 and .NET 3.5 and C# 4.0 in a Nutshell. I found these books to be dry and overloaded with information that put me to sleep (No offense to the authors of those 2 wonderful, according to amazon ratings, books).

Would you suggest I finish my Java textbook, brush up my knowledge of Arrays, Polymorphism, and etc that are universal to most programming languages. And then switch to C#, plus the syntax is very similar so it should be easy to switch. Or should I just start learning C# right now from the very beginning? If it's the latter then could you recommend some free online resources that will keep me engaged and at the same time teach me everything I need to know about C#.

Someone has recommended me to learn .NET first, but I found it to be not the brightest idea. .NET is just a big monster full of libraries. How am I going to apply it if I don't even know the C# or VB!? Anyway back to my question: Master Java and switch to C# or just go with C#?

DISCLAIMER: I don't want to start .NET vs J2EE or C# vs Java flame war. I am going with C#. I've decided that I want to work in a Microsoft shop in the future. .NET is what I want to learn.

Thanks! Will be waiting for the answers.

+3  A: 

Both Java and C# concepts and syntax are very similar.

I would concentrate on the one you expect to use after completing your studies. Look at which is asked for more often in the area you are intending to work.

As a side note, C# 4.0 in a Nutshell is an excellent book both for learning and reference. Suggest you give it another go.

Mitch Wheat
Do you recommend using LinqPAD that is provided with the book or stick with Visual Studio 2010?
Silence of 2012
@Sahat if you plan on working in a Microsoft shop, start using Visual Studio 2010 Express for C#. It's a full-blown IDE, though it's missing some "professional" features such as allowing add-ins and other features. Most MS shops are going to be using Studio.
Ben McCormack
Most of the value we provide as coders is not in knowing syntax or data structures but knowing frameworks and libraries. If you want to use .NET go with the .NET.
CurtainDog
LinqPAD is a gangster ass tool to learn .NET. I highly recommend it. VS2010Ex is an IDE.
Alan
@CurtainDog That's what most developers say. It's so true...
Silence of 2012
+2  A: 

I think I found the answer to your question...in your question.

For now, go ahead and finish your Java book as a way of continuing to learn the fundamentals of OOP.

Next (or while finishing the Java book), shift your focus to C# and the .NET framework (in most business situations, you'll be hard-pressed to find one without the other).

If you want to focus more on language elements of C# rather than a specific framework (such as ASP.NET, Silverlight, Windows Forms, or WPF, to name a few things), you might consider a book on LINQ, such as LINQ in Action from Manning Press. Combine your knowledge of LINQ with trying to solve some problems at http://projecteuler.net and you should start picking up the language pretty quickly.

Personally, I read Illustrated C# 2008 by Daniel Solis. Granted, it's not a textbook filled with lots of fun and challenging examples, but it is a good exposition of the language.

Ben McCormack
+1 for LINQ in Action.
Silence of 2012
+6  A: 

I found myself in pretty much the same situation as yourself whilst studying Java at community college - I am smiling right now :). That was 10 years ago and D flat, as some wags were calling it, was starting to make some noises.

What I did, was do all of my assignments in both C# and Java, so that I could get to grips with both. I then begged to do my final year project in C#, which they eventually relented on. Getting practice in a couple of languages and doing a major project will stand you in good stead.

I have never looked back. Good luck! :)

chibacity
+1 love the idea of doing assingments in both C# and Java
Craig T
Very good advice on doing projects in C# and Java at the same time!
Silence of 2012
+1  A: 

Don't worry so much about any particular language, and "Teach yourself programming in 10 years": http://norvig.com/21-days.html

allenporter
Interesting but I don't have time to learn all programming languages out there. I want to start with C# as soon as possible and apply my skills in the financial business.
Silence of 2012
+1  A: 

Since it sounds to me like you don't really know a lot about programming, and this is largely your first major exposure to it, I think it's absolutely in your best interest to stick with something until you have learned enough of it that you are satisfied with your skill level. Jumping now may hurt you later, because you will be covering a lot of concepts you probably already know.. but hidden inside will be something you don't, and thus you will skim right over it.

Keeping yourself "engaged" is only something you can do, not the text. Certainly some texts are more interesting than others, but you have to be committed to reading the material whether or not you find it boring. That's how you learn.

Both Java and C# are syntactically similar at the basic level, but they both diverge from there in different directions and do similar things in different ways. Further, the languages are largely useless without the base class library, and those are often very different between languages.

What you didn't mention was how you are doing in school. Does your school require you to do more java work? If so, then you will have to stick with it. If not, and you are "done" with it, then perhaps starting over with C# from the beginning would not be a bad idea. Just think of C# as a new language you have to learn from the ground up, even if much of it seems familiar.

Mystere Man
A: 

I found the Wrox book series to be particularly good to learn from, along with the Head First book series. As for which one to continue I would say it depends on what you are tested on. If you have to do written exams and write out sample code. You don't particularly want to start banging out C# by accident.

Jonathan Stowell