Programming languages 选择新语言学习的标准

Programming languages 选择新语言学习的标准,programming-languages,Programming Languages,有许多线程讨论下一步学习哪种语言。但是,这些线程没有考虑到任务本身。我很好奇社区对学习一门新语言的标准有何看法。我看到一些标准: 你对某种语言的兴趣 你对某个项目的兴趣 学习一门语言对你职业生涯的好处(即实用与学术) 花时间学习语言 你用什么标准?你对每个标准都有什么重要性 我发现我倾向于阅读一种语言本身,并变得感兴趣。然后尝试用这种语言解决一个问题,这当然是一个古老的问题,当你有一把锤子的时候,一切看起来都像钉子 是否有人成功地对一个项目(开源等)感兴趣并学习了该语言以做出贡献 如果我在一门新

有许多线程讨论下一步学习哪种语言。但是,这些线程没有考虑到任务本身。我很好奇社区对学习一门新语言的标准有何看法。我看到一些标准:

  • 你对某种语言的兴趣
  • 你对某个项目的兴趣
  • 学习一门语言对你职业生涯的好处(即实用与学术)
  • 花时间学习语言 你用什么标准?你对每个标准都有什么重要性

    我发现我倾向于阅读一种语言本身,并变得感兴趣。然后尝试用这种语言解决一个问题,这当然是一个古老的问题,当你有一把锤子的时候,一切看起来都像钉子


    是否有人成功地对一个项目(开源等)感兴趣并学习了该语言以做出贡献

    如果我在一门新语言的库和框架中发现一个明显的好处,而在另一门语言的库和框架中我在合理的时间内找不到这个好处,那么我就会学习一门新语言。这就是我学习WPF的原因:当时,在吸引人的桌面应用程序界面方面,没有什么能像现在这样轻松。出于类似的原因,我学习了Cocoa Touch/Objective-C=>iPhone编程,在我想在平台上写东西的时候,它实际上把语言强加给了我

    归结为三个问题。我提供了每种方法的示例:

    1)人们会付钱让我使用这种语言吗?

    示例如下:Java、C#、Ruby

    这是关于技能组合的适销性和市场价格

    2)这种语言是否提高了我的工作效率/使我能够做新事情?

    在这一类人中证明自己的语言可能会被提升到第一类(上图),并成为大众市场

    Ruby-即使你在it行业找不到高薪的工作,提高你的个人工作效率也可能有助于你的个人项目,增强你的自信

    Objective-C-同样,你可能希望我为iPhone编程只是为了凉爽,或者能够编写自己的个人应用程序

    3)这种语言是否加强了我作为开发人员的教育?

    Smalltalk-允许人们比任何其他语言更好地掌握极限编程和高级面向对象

    Lisp-打开人工智能文献和算法的整个图书馆。仅仅为了获取大量用lisp编写的计算机科学资料,就值得学习

    Self-获得一些革命性的UI工作经验和基于原型的OO

    说得最好

    不影响方式的语言 你想的是编程,不是吗 值得知道


    这就是我的标准

    对我来说,学习一门新语言有两个原因:需要和兴趣

    在第一种情况下,我需要做一些事情,通常是为了工作,比如“自动化一个命令行工具并可能添加一个gui”,或者“将xml数据转换成一个漂亮的网页”。在这些情况下,我根据最实际的方法做出决定

    • 新语言比我现在的语言好/快/容易多少?例如,在Python中,自动化命令工具比C++更容易,因此学习Python是有意义的,尤其是因为GUI稍后可能成为一个要求。
    • 我将来可能会使用这种语言吗?例如,我的XML数据是一个小的、定义良好的,用C++中的DOM解析它比学习XSLT更容易,或者这只是转换XML?
    • 的冰山一角?
    • 我是否给团队中的其他开发人员带来了公平的负担?每个人都知道这种语言来维护我的新代码,这合理吗?只有在有战略意义的情况下,我才应该为一个组织添加一种新的语言
    • 我选择这种语言是为了充实我的简历吗?如果是这样的话,我就不应该选择它作为真正的工作
    在第二种情况下,我感兴趣的是什么

    • 也许我认为这对我们的组织未来可能是一种有用的语言,我想了解更多
    • 也许每个人都在谈论它,我想看看所有的宣传是关于什么的,比如RubyonRails,我能从中学习一些新的技术来应用到我现有的语言中吗?例如,约定优于配置
    • 有时我感兴趣的是一个项目,而不是语言或技术,然后我可能会选择适合新项目的语言,就好像它是为了工作一样
    • 有时,我对新的paradim很感兴趣,比如函数式编程,所以我寻找最有趣的语言来探索这一点
    • 有时候它看起来很有趣,比看电视还有趣

    几年前,我在某个地方读到,人们应该每2-3年学习一种新的不同类型的编程语言。这个过程简单地拓宽了您对编程和设计的整体视角。我的个人轨迹是这样的:

    • C语言(我在大学里学的第一门语言)
    • C++(当我真正从事工业领域的实际项目时,支持面向对象编程的多范式语言、通用编程、过程结构化编程)
    • Python(非常棒的完全面向对象、动态和强类型的脚本语言,我专门用它来开发web应用程序(从服务器端))
    • JavaScript(在web应用程序中开发强大客户端交互的唯一语言,一种基于原型的编程语言)
    • Haskell(20年函数式编程研究的顶峰,一个懒散的评估者)