Programming languages 在项目中学习语言?

Programming languages 在项目中学习语言?,programming-languages,Programming Languages,你曾经在项目中尝试过学习一门语言吗?我有,从我个人的经验来看,我可以说这需要勇气、努力、时间、思考、大量的咖啡因和不睡觉。有时,这是必须做没有选择,其他时候,你选择这样做;例如,如果你正在做一个个人项目 我通常在这种情况下所做的,我相信每个人都会做的,是在我目前的语言、结构、语法和逻辑知识的基础上“构建”。我发现难以应对的是,在某些情况下,诚信的差异。有些语言为未来的学习和“语言学习”提供了良好的背景,它们是一个很好的信息来源或参考框架,能够“坚定”地掌握未来。其他语言形成或引入了一种新的思维方

你曾经在项目中尝试过学习一门语言吗?我有,从我个人的经验来看,我可以说这需要勇气、努力、时间、思考、大量的咖啡因和不睡觉。有时,这是必须做没有选择,其他时候,你选择这样做;例如,如果你正在做一个个人项目

我通常在这种情况下所做的,我相信每个人都会做的,是在我目前的语言、结构、语法和逻辑知识的基础上“构建”。我发现难以应对的是,在某些情况下,诚信的差异。有些语言为未来的学习和“语言学习”提供了良好的背景,它们是一个很好的信息来源或参考框架,能够“坚定”地掌握未来。其他语言形成或引入了一种新的思维方式,更难适应

有时,你无意中用一种特定的语言思考,当你接触到一种新的思维方式,一种新的语言时,可能会造成混乱,或使你迷失在新语言和现有语言知识的“边界”之间


在这种情况下,什么是好的解决方案?应该用什么来扩展新语言的知识、新的思维方式,并在新语言的“边界”内保持或整合其他语言的现有知识?

我想在这里提到ALT.NET

自组织的、临时的开发人员社区,他们渴望改进自己,挑战假设,并在软件开发实践中相互帮助追求卓越

因此,本着ALT.NET的精神,走出舒适区学习新的语言是一件很有挑战性但很有用的事情。以下是一些真正帮助我的事情:

  • 了解语言或脚本背后的历史。了解进化有很大帮助
  • 选择合适的书。研究StackOverflow和Amazon.com,找到合适的书来帮助你缓解成长中的痛苦
  • OOP在大多数成熟的语言中都很常见,因此您可以跳过许多书籍中与OOP相关的章节。语法学习将是一个渐进的过程。为此,我通常会将一些快速便捷的指南编入书签
  • 尽可能多地阅读社区论坛,了解新语言的常见缺陷
  • 参加一些当地的聚会,与社区互动,分享你的痛苦
  • 通过构建不那么复杂的小型应用程序,一次只做一次演讲,从而获得动力
  • 确保为您需要学习的内容创建一个参考框架。比如如何处理安全性、日志记录和多线程
  • 开明一点,你可以批评别人,但如果你讨厌什么,就不要学那种语言
  • 最后,我认为值得学习一种强大的语言,如C#或Java,一种函数式语言和一种脚本语言,如ruby或python


    这些东西极大地帮助了我,我认为这将帮助所有的软件工程师和架构师真正适应任何开发环境。

    在我被聘为Zend Framework项目的项目负责人后,我学习了PHP

    我有20年的专业编程背景,对C、Java、Perl、JavaScript、SQL等都有很好的了解,这让我受益匪浅。在我职业生涯的大部分时间里,我都被动态脚本语言所吸引。我用awk编写了应用程序,用shell编写了框架,用troff编写了宏包,甚至只用sed编写了一个论坛

    有助于在工作中学习语言的事项:

    • 阅读代码和文档
    • 收听社区的邮件列表和博客
    • 与语言专家交谈,幸运的是其中有几个是我的直接队友
    • 编写实践代码,并要求进行代码审查和指导。(
      Zend_Console_Getopt
      是我对PHP的第一个重大贡献)
    • 学习与语言配套的工具,等等
    当然,我确实应用了我从其他编程语言学到的知识。许多计算机科学概念是通用语言。一种特定语言的差异通常只是习语,一种用另一种语言表达可以用另一种方式完成的事情的方式。对于Perl或PHP这样的语言来说尤其如此,它们都从早期语言中借用了大量的习惯用法


    我在大学里选修了编译器设计课程,这也对我有所帮助。在构建语言的基础上有了良好的基础,更容易掌握新的语言。在某种程度上,它们都只是抽象运行时堆栈和对象引用的方法。

    我认为,在某些方面,无论学习该语言的动力是什么,都必须从模仿新语言中的良好模式开始。无论这意味着找到一本好书,提供优秀的代码示例、优秀的在线教程,还是遵循经验丰富的开发人员的指导,您都必须首先了解用特定语言编写好代码的含义。一旦你达到了舒适的程度,你就可以开始扩展并尝试你所学模式的替代方案,寻找方法来应用你从其他语言中学到的东西,但要遵守语言的“规则”。最终,你会知道你可以“打破”你之前学到的规则,因为你有足够的经验知道它们什么时候适用/不适用

    我个人的偏好,即使是在被迫学习一门新语言时,也是从一些一次性代码开始。即使是从好的教程开始,你无疑会编写代码,以后你会回头看,不明白自己有多愚蠢。如果可能的话,我更喜欢第一次尝试编写一种会被丢弃的语言代码走开,以后不要再来打扰我。另一种选择是,随着你了解的越来越多,花大量时间重构。Eventua