Programming languages 为什么可以';我不能同时记住两种语言吗?

Programming languages 为什么可以';我不能同时记住两种语言吗?,programming-languages,Programming Languages,在家里,我正在做一个用Java编写的大型个人项目。我最近找到了一份C#开发者的工作 在花了8个小时的工作日阅读C#代码之后,我发现在家里很难切换回Java。事实上,自从我被雇用以来,我的家庭项目几乎完全停顿了 起初,我认为我必须等到假期才能真正切换回Java,但即使在一周没有C#进入大脑后,我也没有再次进入Java情绪。我不想承认我的家庭项目失败了,但我真的找不到克服这个问题的方法。如果情况如此糟糕,你能用C重新开始这个项目吗?这可能比等待java情绪恢复要快。它应该比从头开始要快,因为您已经对

在家里,我正在做一个用Java编写的大型个人项目。我最近找到了一份C#开发者的工作

在花了8个小时的工作日阅读C#代码之后,我发现在家里很难切换回Java。事实上,自从我被雇用以来,我的家庭项目几乎完全停顿了


起初,我认为我必须等到假期才能真正切换回Java,但即使在一周没有C#进入大脑后,我也没有再次进入Java情绪。我不想承认我的家庭项目失败了,但我真的找不到克服这个问题的方法。

如果情况如此糟糕,你能用C重新开始这个项目吗?这可能比等待java情绪恢复要快。它应该比从头开始要快,因为您已经对逻辑和域进行了编码,所以您可以通过该位进行翻译和键入

  • 在这两个方面都使用一个好的(和可比的)IDE。我在C#和Java之间切换,发现VisualStudio与JetBrains ReSharper for C#和IntelliJ Idea for Java的结合使这一点变得简单明了

  • 庆祝差异——我发现C语言中的咒语有助于我的Java,反之亦然。例如,收集框架的不同之处只是帮助您更深入地理解每种语言的实现

  • 利用这些相似之处发挥你的优势。从句法上讲,差别不大。您应该编写代码,而不是编写C#或Java。正如史蒂夫·麦康奈尔(Steve McConnell)所说,“将编码到语言中,而不是语言中”(或者类似的东西——认为它来自代码完成)


  • 事实上,如果你还没有阅读完整的代码,那就阅读完整的代码吧——这是一次很棒的语言转换训练。我想你可以称之为恢复的习惯时间

    它可以帮助概括为:编程逻辑知识+语法和API=语言知识。。。因为

    人类是习惯的生物,根据我们经常执行的环境和任务,建立有效的工作方法、记忆和心理。这是一件好事

    我最近花了很多时间用Python编程,在很长一段时间几乎是100%的C语言之后。我很容易地学会了Python,现在又回到了C。令我感到惊讶的是,我原以为会遇到的问题(缺少分号,随机缩进的冲动)并不存在

    我的结论是,这是因为:

  • 当我编写Python时,我经常(每天)查看其他项目的C源代码,以记住那些我没有很好地记录的项目。因为我的C项目适合Python的东西
  • 我一直在看一些Python的C实现
  • 我想诀窍在于将新技能与旧技能联系起来,这样当你在新技能集中执行任务时,你的大脑仍在思考旧技能以及它们之间的关系。许多理论认为学习是建立在你头脑中的关系基础之上的,了解它可以帮助你减少学习曲线和恢复的时间。 把它想象成一个关系数据库。当你做一些新的事情时,创建一个forign键并将其正常化。不要创建一个全新的表或数据库

    学习编程逻辑的一般化,并在此基础上进行语言间的更改。你将学习/转换得更快


    很抱歉,RDBMS的类比很糟糕

    在两个不同的框架之间切换非常困难。如果你没有很长时间这么做,那就更难了

    我认为,这个问题必须回到你身边,因为你现在应该问问自己你更喜欢什么。如果您仍然喜欢Java,并且希望保持Java技能,那么您可能需要每天花更多的时间使用它。在晚上和周末使用它,并确保其间没有长时间的休息


    如果你现在更喜欢C#而对Java真的没有兴趣,我会把家里的项目转换成C#,因为这只能让你成为一个更好的C#程序员,让你在日常工作中做得更好

    我想知道这是否与那些特定语言之间的相似性有关。虽然我没有实际使用过C#,但它似乎与Java非常相似。这些相似之处可能会使人们很难从工作转换到爱好。也许你可以学习并切换到、等来完成你的个人项目。

    你可以尝试在业余时间用一种完全不同的语言编程。例如,在、或中写一些东西


    当你回到Java时,它与C#的相似之处会比它的不同之处更加显著。

    我也有一个类似的想法。我用JavaScript和c#编写代码,但在家里我用Python和JavaScript编写代码


    我有时会发现自己用c#编写python风格的代码,然后测试失败。我同意Nat的观点,用一种与你的工作语言完全不同的语言工作会帮助你看到相似之处,而只有在图书馆存在的地方才有差异

    我认为java是为勤奋的人准备的,而.net是为懒惰的人准备的。 也许有人会为此生气,但我想说我是一个.Neter.net语法没有java严格。事实上,在.net的源代码中,有一些简化。 例如,我们可以使用Convert.toDateTime(string)将字符串直接转换为DateTime。
    但是在java中,我们应该定义字符串的格式,比如“yyyy-dd-mm”,然后我们可以转换。

    首先,如果你每天用任何语言编写8小时的程序,它可能不会切换语言,而只是需要暂停编程。我只能为自己说话,我知道有些人可能会有不同的感觉,但我经常需要一个b