您如何获得学习多种语言的机会?[关闭]


9

我读过一个程序员应该至少专注于几种语言?,我发现我不知道第一个答案的数字2、3中的语言。我想学习更多的语言来增加我的知识和编程技能。但是,通常在公司中,他们使用固定的框架和语言,很少更改。因此,我不确定是否有机会学习这些语言,我认为其他程序员也一样。

但是,我已经看到许多开发人员在这里了解多种语言。您如何获得学习多种语言的机会?

更新资料

我认为,很多人感到不舒服,因为似乎我根本不想在业余时间学习。实际上,这是不正确的。:)我是一名程序员,所以这就是为什么我在这里发布这种问题。我在业余时间学习,但我只是认为仅仅熟练掌握语言是不够的。无论如何,感谢您的所有回答!


7
简单来说,您可以在业余时间学习新知识。
乔纳斯(Jonas)

1
杜德(Dude),这个答案已经由39岁的程序员发布。我认为这是一个不错的清单,但不要为此而自杀。
工作

7
您不会“获得”机会。您有机会。如果您想学习更多的语言,那就出去做吧。不要等待一些神话般的工作责任来找你。
Joel Etherton

Answers:


10

我发现学习语言的最佳方法是立即使用它来使您有用或需要的东西

例如,我发现自己需要使每次必须手动执行的许多操作自动化。重复性的任务,文件和文件夹的创建等。因此,我只是选择一种脚本语言来制作一些有用的工具。我上了Perl,并通过在线教程和书籍开始学习制作脚本所需的语法和功能。

在几天之内,我就启动并运行了工具,然后在业余时间里,我不断学习有关该语言的新知识并为其添加更多功能。


想到的另一个不错的选择是:如果您找不到自己喜欢的语言,或者您认为不完全符合您的需求,则仍然可以创建自己的语言

我现在正在使用Perl进行操作,我选择了一种语法,可以帮助我最好地解决我的特定问题(由于您是在编写自己的语言,因此您可能希望为工作选择正确的语法,该语法最能描述和解决问题您的特定域问题)。

结果?现在开发速度更快,并且代码本身更具描述性,因为它是特定于领域的语言。几周前,我问了一个与此主题相关的问题,并提供了许多有用的链接。

您甚至可以使用PHP使用任何脚本语言来创建新的脚本语言。


我不知道我可以用Perl创建自己的语言。您能详细说明一下还是给我一些参考?
Sanghyun Lee

在这里要这个。基本上,您必须创建一个脚本,该脚本将理解(解析)您的输入并根据您键入的内容执行不同的任务。它可以只是一组功能,也可以是全新的语言语法。然后,您可以根据需要自动执行所有操作。不仅使用Perl,您还可以使用任何脚本语言来创建新的脚本语言。
何塞Faeti

8

这些问题总是让我感到困惑。我已经专业地使用7种语言,在业余爱好和学术环境中用大约5种语言编写了代码,并且可以阅读更多种语言的代码。没有一次有我学过的语言只是为了它的缘故。始终有一些具体的近期目标。例如,这个周末我学会了足够的Android库,可以开始为我的家庭开发应用程序。如果我们有iPhone,我会学到Objective-C。

我的感觉是,了解多种语言是熟练的或至少是热心的程序员的症状,而不是原因。如果您无法想到学习一种新语言的令人信服的理由,那么我不知道它将为您带来多少好处。


3

有问题要解决时,学习新语言的最佳方法。花一些时间来查看哪些工具(语言,框架,库)可能有助于您解决问题,而不是仅仅使用您自己熟悉的工具。如果您有时间学习新工具,请继续使用。当由于外部因素而导致日程安排压力和技术限制时,您可能无法在工作中执行此操作,但是没有理由不能将这种方法用于个人项目。


2

您只需要花时间去做。查阅Prags中的“七周内的七种语言”一书。它将为您介绍七种非常有趣的语言,从那里您可以去各种各样的地方。


1

刚开始使用它。显然,用一种您从未接触过的语言从头开始构建生产系统是一个坏主意,但是这里有一些建议:

  • 在自己的时间学习。选择一个您觉得有趣的项目,您有信心可以自己完成它。最好对新语言进行一些入门阅读,以判断它是否合适-每种语言都有优点和缺点,并且最好从设计该语言的优点开始。
  • 开始在现有项目上执行维护任务。这样,您甚至不需要阅读文档就可以掌握大部分语言:可以从示例代码中推断出很多内容,而对于确实需要阅读文档的部分,由于您已经看到了其中的内容,因此将更加清晰。代码已经。查找“此代码的作用”也比“我如何编写执行X的代码”要容易得多。
  • 将您的新语言用于所需的小型工具和助手:shell脚本,用于特定任务的一次性代码,快速计算(例如,许多动态语言的交互式解释器(python,lisp,haskell等),都是出色的计算器)。但是,并非所有语言都适合。

1

选择您用一种语言所做的相对较小的事情,并开发另一种语言的直接替换。这样做只是为了挑战自己。为了完成它,您将学到很多其他语言。

就在过去一周之内,我决定在NodeJS(以前是JSP服务)中学习并重新编写Web服务后端。几天后才开始使用准系统服务,几天后我扩展了它的基础结构,错误处理,日志记录,并添加了实时监视。现在,它比原始版本优越。管理层是否接受并不重要,因为我已经学到了一些东西并且对此非常满意。


1
  • 我认为我工作的一部分是“研究”。1998年的研究意味着要修复Y2K错误。上个月的研究意味着学习Subversion。我从事研究已有40年了。当我列出语言时,我必须按字母顺序列出它们。

  • 学习语言时,请阅读参考手册封面。然后我实际上使用了几个月。然后,我再次阅读了参考手册。二读揭示了我第一次错过的许多技巧和含义。

  • 实用研究涵盖普通语言,例如C#和Pascal。高级研究涵盖了诸如LISP和FORTH之类的怪异语言。您可能永远不会专业地使用LISP,但是学习它会大大扩展您的思维。

  • 当然,在我的环境中,我没有为时间付费,而是为交付而付费。如果我可以在两周内交付,每天使用六个小时,则可以将其他三个时间用于研究。如果一天要花十二个小时,那么就不用研究了。

  • 当然,所有的研究都应该对付给我的研究有一定的潜在作用。小型公用事业是好的。下次您要处理C源代码时,请在Python中尝试。(不,我不懂Python,但我听说它对字符串操作很有用。)


0

有时机会来自您的工作。这种机会通常是三个驱动因素之一。

  1. 这是一项崭新的技术。例如,许多公司在.NET发布后的前两三年中为其开发人员支付了C#培训费用。

  2. 这很容易学习。例如,在linux商店中,您会发现需要编写.bash脚本。如果您一直在使用终端会话等,并且还有其他编写它们的经验的开发人员,那么即使只是自动化一些自己的任务,您也应该能够掌握这项技能。

  3. 这是不常用的技术技能,您的公司不想花时间和金钱来找顾问来做这项工作。例如,我学习了如何编写XSLT,因为我们需要一种简单的方法来转换一些XML(日志)文件以进行显示。

您需要在工作以外为自己创造其他机会。谨慎选择-您认为将来有哪些技术有用?在这种情况下,您必须花费时间和精力来学习和应用该技术。这应该是整体职业计划的一部分,您可能必须支付课程费用。(我很幸运-当我学习Java时,他们晚上在当地社区大学教Java)。


0

根据我自己的经验回答您的问题(我在这个行业还很新,所以还很少),我通过进行一些研究来了解哪种语言最适合我的需求,从而学习新的语言。在大学里,我有一个密码学项目,要求使用大型Integer。在C ++中,它变得相当繁琐,因此我转向Java,因为它提供了BigInteger类。在我目前的工作中,我可以看到shell脚本无法完全解决我的问题而不变得太复杂,因此我学习了Perl。快速学习是我的建议。当然,如果您觉得自己无聊,可以探索各种语言。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.