现在学习C#还是先学完Java再学习C#?

5
好的,这是我的情况。我在大学里学了两个学期的Java。但你知道他们只教你基础知识,我们跳过了一半的教材,即使如此,我们的教授也不会按章节从头到尾地讲解。我不怪他们。对于新生来说,理解编程的基本概念已经很难了。我们说的是一所社区大学,而不是斯坦福、麻省理工或伯克利。
所以像我说的,我已经学了两个学期的Java了。我真的很喜欢我们的教科书,因为每章末都有一些具有挑战性的项目。这本教科书非常清晰,我没有理解上的问题(虽然二维和三维数组让我有些困扰)。我曾经试着读过一些C#的书,比如《Pro C# 2008 and .NET 3.5》和《C# 4.0 in a Nutshell》。我发现这些书很枯燥,并且信息量很大,让我感到昏昏欲睡(不冒犯这两本根据亚马逊评分“精彩”的书的作者)。
你会建议我先完成我的Java教科书,提高我对数组、多态等通用于大多数编程语言的知识的了解,然后再转向C#,因为语法非常相似,所以应该很容易转换。还是说我现在就要从头开始学习C#?如果是后者,你能推荐一些免费的在线资源吗?这些资源可以让我保持参与并同时教我所有关于C#的知识。
有人建议我先学习.NET,但我觉得这不是最好的主意。.NET只是一个充满库的大怪物。如果我连C#或VB都不懂,我怎么能应用它呢?总之回到我的问题上:先掌握Java再转向C#,还是直接学习C#?
免责声明:我不想开始.NET vs J2EE或C# vs Java的争论。我选择C#。我已经决定将来想在微软公司工作。.NET是我想学习的。
谢谢!期待答案。

等一下...你决定使用C#了?那么为什么一开始还要问这个问题呢?无论如何,如果你已经决定想要进入微软技术领域,那么最好直接跳过Java,直接学习C#。我认为你做出了正确的决定:| - allonym
@allonym 是的,你说得对,我想学的是C#。但是我也提到过我一直在阅读的C#书籍有多枯燥,就像受折磨一样,它不能让我理解其中的内容。另一方面,Java教材就像一股清风,我能理解每一个知识点。而且它结构非常好,就像任何教科书一样。《PRO C# 2008 and .NET 3.5》几乎花了100页的篇幅来讲述.NET和历史,然后才开始编写第一个C#应用程序... :S - Sahat Yalkabov
我不确定在网上资源方面什么适合你,但如果你还没有看过O'reilly的《Head First C#》,你可能想试试这本书。它的风格非常轻松有趣,所以你不应该感到无聊或被压垮。它可能不是关于C#最全面的文本,但它足够好作为入门。 - allonym
6个回答

7

在我上社区大学学习Java的时候,我发现自己和你面临着同样的处境 - 现在我在微笑:)。那是10年前,一些人开始称之为D flat,并且开始发出一些声音。

我所做的是使用C#和Java完成所有作业,以便我可以掌握两种语言。然后我请求将我的最后一年项目用C#完成,他们最终同意了。练习几种语言并完成一个重要项目将使您受益匪浅。

我从未回头看。祝你好运! :)


4
喜欢用C#和Java两种语言完成作业的想法,我点赞。 - Craig T
同时使用C#和Java进行项目开发的建议非常好! - Sahat Yalkabov
我在学习OpenGL时采用了同样的方法。我使用SFML在C++中练习了同一个应用程序,在Java中使用LWJGL,在C#中使用OpenTK。 - Sri Harsha Chilakapati

3

Java和C#的概念和语法非常相似。

我建议你集中精力学习你预计在完成学业后使用的语言。看看在你打算工作的领域中哪种语言更常被要求。

顺便说一下,《C# 4.0 in a Nutshell》是一本非常好的学习和参考书籍。建议你再试一次。


你推荐使用书中提供的 LinqPAD 还是坚持使用 Visual Studio 2010? - Sahat Yalkabov
2
@Sahat 如果你计划在微软公司工作,建议开始使用Visual Studio 2010 Express for C#。它是一个完整的IDE,虽然缺少一些“专业”功能,如允许插件和其他功能。大多数微软公司都会使用Studio。 - Ben McCormack
1
我们作为程序员提供的大部分价值并不在于了解语法或数据结构,而在于了解框架和库。如果你想使用.NET,请选择.NET。 - CurtainDog
LinqPAD是一个学习.NET的超级好用的工具,我强烈推荐。VS2010Ex是一个集成开发环境。 - Alan
@CurtainDog 这就是大多数开发者所说的。完全正确... - Sahat Yalkabov

2

我想我在你的问题中找到了答案……

目前而言,您可以继续阅读Java书籍,以此作为学习OOP基础知识的一种方式。

接下来(或在完成Java书籍的同时),将重点转向C# .NET框架(在大多数商业情况下,您很难找到一个没有另一个的情况)。

如果您想更专注于C#语言元素而不是特定框架(例如ASP.NET、Silverlight、Windows Forms或WPF等),则可以考虑阅读有关LINQ的书籍,如Manning出版社的LINQ in Action。 将LINQ的知识与尝试解决一些问题的http://projecteuler.net相结合,您应该会很快掌握这种语言。

就个人而言,我阅读了Daniel Solis的Illustrated C# 2008。 鉴于它不是一个充满许多有趣和具有挑战性的例子的教科书,但它确实是该语言的良好阐述。


1

有趣,但我没有时间学习所有的编程语言。我想尽快开始学习C#,并将我的技能应用于金融业务。 - Sahat Yalkabov

1

由于我觉得你对编程不是很了解,而这可能是你第一次接触到它,所以我认为最好坚持某个东西,直到你学会足够的技能并对自己的水平感到满意。现在跳来跳去可能会给你带来麻烦,因为你可能已经掌握了很多概念,但其中隐藏着你不知道的东西,因此你会轻易地忽略它们。

保持“投入”只有你自己可以做到,而不是文本。当然,有些文本比其他文本更有趣,但你必须致力于阅读材料,无论你是否觉得它们无聊。这就是学习的方式。

Java和C#在基础层面上语法相似,但它们在不同方向上分歧,并以不同的方式执行类似的操作。此外,这些语言在没有基础类库的情况下很大程度上是无用的,而这些类库在不同的语言之间通常非常不同。

你没有提到的是你在学校的表现如何。你的学校是否要求你做更多的Java工作?如果是这样,那么你将不得不坚持下去。如果不是,并且你已经"完成"了它,那么也许从头开始学习C#并不是一个坏主意。就把C#看作是一门你必须从头学习的新语言,即使其中很多内容似乎很熟悉。

1

我发现Wrox图书系列和Head First图书系列特别适合学习,关于哪一个继续学习,我会说这取决于你的测试内容。如果你需要参加笔试并编写示例代码,则不建议无意中开始熟悉C#。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接