【问题标题】:What to learn first? [closed]先学什么? [关闭]
【发布时间】:2008-09-30 14:26:46
【问题描述】:

几年前我去学校学习编程,毕业后我找到了一份系统管理工作,这就是我职业生涯的方向。我想重新开始某种形式的开发,并且一直在“玩”C# 和 ASP.NET,但是我听到了很多关于其他“新”语言的嗡嗡声(我所说的新语言是指它们是新的我)喜欢 Ruby 和 F#。我想我想知道我是否在浪费时间学习主要是 MS 语言,而不是成为一个通才。很长时间没有离开开发社区(如果我曾经是的话)让我在潮流中挣扎,我不希望落后于时代。

你有什么想法是遵循“最新”的语言还是坚持使用更久经考验的真实技术更好?

【问题讨论】:

  • 你想在你的职业生涯中做什么?这将对您应该首先学习的内容产生影响。
  • 深入研究开发的一部分是如果我想从事编程职业或决定不适合我
  • 如果你发现你真的很喜欢成为一名开发人员,我会听从实用程序员的建议,每年学习一门语言。它会让你思考如何解决问题。

标签: c# asp.net ruby f#


【解决方案1】:

C.

说真的,学习 C。

如果你不尖叫着跑到山上拔头发,那么你就不能成为一名开发人员。

请注意,我并不是说不懂 C 的人就不是开发人员(本网站的创始人 Jeff 不懂 C,而且他做得很好),但 C 会向您介绍很多开发的less glamorous and sugar coated aspects

作为第二选择,选择 C#。

【讨论】:

  • 我在学校学过一点 C 语言,并且已经在指针和数组等方面进行了艰苦的学习——我仍然掌握的大部分概念都是通过 C 语言教给我的。
  • 为什么停在C?组装宝贝!
【解决方案2】:

您应该至少学习 1 种编译语言(如 C# 或 Java)和 1 种脚本语言(Python、Ruby 等)。这通常足以帮助大多数开发人员在他们所做的事情上取得成功,无论语言的年龄如何。

至于新旧对比,我现在会坚持使用 C#,因为它非常流行。不过学习一门新语言也不错。

【讨论】:

  • 我要补充一点,你应该至少学习一门可以直接在操作系统中运行的语言,而不是依赖 CLR 或 VM。
  • C# 也不错,因为语法类似于 Javascript、Actionscript、PHP 等。
【解决方案3】:

您选择的语言并不重要。当您理解了这些概念后,您很可能很快就能掌握一门新语言。

【讨论】:

    【解决方案4】:

    查看http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html了解语言流行度的完整索引

    【讨论】:

    • lui.arbingersys.com/index.html 也提供了一些有趣的数据
    • 虽然受欢迎程度并不总是选择语言的最佳理由,但它肯定是值得考虑的事情。两个重要的信息来源! ++
    【解决方案5】:

    C# 是我选择的语言,Java 和 C# 足够相似,我认为一旦了解了 c# 基础知识,学习 Java 就没什么大不了的……但 c++ 完全是另一只野兽。

    我认为 c++ 是更好的通用工具之一,一旦 c# 被很好地理解就会更容易处理(它有很多文档和帮助论坛)。但是,c++ 的体验不仅限于微软——大多数流行的平台都将运行 c++,因此有了这种体验,您将不会仅限于 windows。它也很好,因为它不像 c# 或 Java 那样糖果,也不像纯 c 那样坚韧不拔,而且它可以很容易地与 c# 互操作(这是转换更容易的原因之一)

    所以c#是个不错的选择,imho紧随其后的是c++

    【讨论】:

      【解决方案6】:

      我必须同意上述许多观点:语言并不重要。很大程度上,语言只对以下方面很重要:

      1. 功能。如果需要多重继承,最好使用 C++。如果像 90+% 的开发人员一样,您不需要特定于一种(或一小部分)语言的任何东西,这没关系。
      2. 语法。你讨厌空白吗?使用 C#。讨厌花括号? LISP 是你的朋友。不在乎一种或另一种?这没关系。
      3. 编译还是解释?这很重要。使用已编译(或部分编译,如 .NET),它会更快......但速度差距正在缩小。
      4. 当地的工作机会。当然,您可能是 C# 方面的高手……但如果您附近正在招聘的每个人都在寻找 PERL 程序员,那对您没有任何好处。
      5. 社区支持。如果你的语言在 20 年(或曾经)没有被认真使用过,不要指望谷歌有太多的生命线。 QBASIC,我在看着你。 StackOverflow 会在这里...

      最后,我们可以讨论事情,直到我们都脸色发青。选择具有您喜欢的功能集、语法不会让您发疯的语言、体面的社区以及您所在地区的工作机会。

      至于新的或旧的......两者都很好。较新的语言可能更容易上手,但有更广泛的文档和对旧语言的使用,尽管这可能正在逐步淘汰。

      【讨论】:

      • 你的#4 +1——这是一个通常被忽略的常识概念。如果没有人为语言 x 招聘,那么学习语言 x 对你没有好处。
      【解决方案7】:

      这是一个有点牵强的问题,但您会发现这里的人们对他们的工具选择充满热情,同时相信选择提供的灵活性。

      也就是说,如果您不介意“供应商锁定”,Microsoft 堆栈是进入编程并在未来几年找到有酬工作的绝佳方式。微软既是“久经考验的”又是“最新的”。 Microsoft 堆栈传统上面向构建业务应用程序,但您不限于此(例如,用于构建此站点的 ASP.NET MVC)。

      我对 Ruby on Rails 之类的世界了解不多,所以我会听从知识渊博的人的意见。

      我真正的建议是随心所欲。学习 C# F#,如果你喜欢的话。

      【讨论】:

      • 麻烦的是,有人说IBM曾几何时,随着开源、谷歌、web和移动变得越来越重要,MS在未来可能越来越无关紧要。
      【解决方案8】:

      好吧,如果您及时了解最新的语言,那么您将始终可以被希望增加营销流行语数量的公司雇用。并不是说这是语言的唯一用途,但它绝对是一种用途。

      另一方面,旧技术也总是存在市场,两家公司都希望在更可靠和经过测试的旧技术之上构建并维护旧技术。

      我想这取决于你想如何进步。如果你追求趋势,你可能会发现你从来没有时间真正从里到外学习一门技术,但如果你追求旧语言,你可能会发现更有趣的项目正在推出你不熟悉的新东西,而你留下维护。一切都是为了权衡。

      【讨论】:

        【解决方案9】:

        我自己的想法是考虑你想从事什么样的工作以及对这些工作有什么样的要求会有所帮助。例如,您了解设计模式吗?使用类和继承对系统建模怎么样?如果您想进入富 Internet 应用程序,则需要学习 AJAX 和其他 Javascript 元素以及 HTML 及其各种分支,如 XHTML 和 DHTML。

        我认为只了解 Microsoft 技术没有任何问题,如果它们没有碰到其他可能需要的技术,如果你想申请开发人员工作并且它们需要你不知道的 Javascript 或 CSS没有。

        另一点是要注意随着时间的推移工具的变化,因为随着 Web 的进一步发展,可能会有更多的变化,例如看看最近关于 jQuery 和 MVC 框架的一些公告,Visual Studio 2010 的变化可能比当前的 Visual Studio 2008 多得多。

        【讨论】:

          【解决方案10】:

          在过去的一年里,我专业地使用了 C#、Ruby、Perl、JavaScript 和 PHP,它们都以不同的方式发挥了作用。我建议,如果您想要一种简单的方法来掌握编程的基础知识,那么 Ruby 是一种很好的语言,它具有简单、易于遵循的语法,并且很容易在面向对象中进行思考方式,使用像 C# 或 Java 这样的半 OO 语言可能会更难。

          C# 非常值得学习,因为了解 C 家族中的一门语言很有用 - 基本习语非常普遍,值得使用它们 - 但我会避免使用 C 或 C++,只是因为我没有真正看到需要管理自己的记忆——这让生活变得非常艰难,引入了许多不必要的错误,并且在你真正擅长它之前几乎没有什么好处。首先要擅长处理内存管理,然后如果需要,您可以继续处理更难的事情。

          我会避免使用像 F# 这样的函数式语言。它们非常困难且完全不同,尽管从各方面来看,理解它们会让你成为更好的程序员。

          【讨论】:

            【解决方案11】:

            我想说的是学习什么是最简单的,并抓住它们背后的基本概念。语法是一个很容易克服的障碍,语言之间的差异有点棘手。

            但是,由于 C# 似乎在网上和 SO 上都有广泛的帮助基础,所以我将从那里开始,了解面向对象编程的来龙去脉。然后,理想情况下,您应该能够切换到当时需要的大多数其他 OO 语言(如 ruby​​、Java、Obj-C,甚至是可怕的 C++)jk、C++ 人

            像 F# 这样的语言虽然很流行,但与 C# 有很大不同,因为它是函数式的。如果您习惯于编写函数式代码,F# 可能是个不错的选择。但是,即便如此,也要了解编写函数式代码的感受,并掌握该语言的基础知识。

            【讨论】:

            • 抱歉,从您的帖子中不清楚 - 您是在声称 F# 是程序性的吗?它是一种功能语言,而不是程序语言。
            • F# 是功能性的,而不是程序性的。它更类似于 Haskell 而不是 C...
            猜你喜欢
            • 1970-01-01
            • 2011-03-13
            • 2010-10-17
            • 2022-01-05
            • 1970-01-01
            • 2011-05-03
            • 1970-01-01
            • 2011-02-06
            • 2011-01-30
            相关资源
            最近更新 更多