我应该学习哪些编程语言才能成为Ubuntu开发人员?

虽然我曾经为项目使用过NetBeans ,但我需要学习哪些语言才能成为一个成熟的Ubuntu开发人员?

我在NetBeans(仅限Java)中的项目是设计一个计算器(相对简单)。 此外,我们如何学习制作图像浏览器,浏览器等?

此外,某些应用程序的最佳语言是什么?

答案很简单,并没有多大帮助。 无论哪种语言。 Ubuntu是一大堆软件,其中一些用C语言编写,一些用C ++编写,一些用Python编写,Perl编写,bash …等等。 你应该用bash学习脚本,你应该选择像Perl或Python这样的语言,可能是后者。 此外,学习优秀的老式C从不伤害任何人 – 你更多地了解程序如何工作,什么是库,其他工具上有很多东西。

否则 – 首先找到一个任务,一个利基,需要处理的东西或者缺少的东西,或者只是令人着迷的东西,你想要对它进行研究。 然后找出适合该目的的语言。

如果您打算为Ubuntu编写可以在多种设备和外形尺寸(桌面,手机,平板电脑,电视……)上运行的应用程序,我建议您学习QML和JavaScript 。 实质上:

  • 使用QML编写跨表单因子和设备运行的融合Ubuntu应用程序
  • 在编写Ubuntu应用程序和编写Ubuntu webapps时,使用JavaScript来补充QML

你应该学习:

  • JavaScript:与大多数UI框架/环境一样。 是/将基于JavaScript; 无论如何,你无论如何都需要它。

然后,对于所有其余的你将需要别的东西:

  • C ++ / C
    • 专业人士:速度惊人,可访问低级function
    • 缺点:有很多时间学习如何写一些稳定,可怕的社区
  • ruby:
    • 专业人士:易于学习,写作非常愉快,社区很棒
    • 缺点:某些任务可能会很慢(真的)
  • python:
    • 专业人士:许多软件包都在python,很棒的社区,快速等等。
    • 缺点:python 3(只是善于’)

但是仍然有许多其他语言,如Java等,但是,上面提到的可能更容易一开始,除了C / C ++,但值得学习,因为你将能够与许多其他语言一起使用(例如扩展)python,ruby等)

编程工作包括实际代码和它下面的心理模型。

只要您掌握计算机工作原理的基本概念,自学编程语言就很容易,但是为了对项目做出有用的贡献,您还需要了解其背后的设计。

因此,我的建议是加入一个你个人感兴趣并经常使用的项目,然后从质量保证工作开始:

  • 如果有一个有点模糊的错误报告,请尝试复制问题,并改进描述。 自动测试的奖励积分。
  • 如果有一段时间没有引起注意的旧bug,请尝试查看它是否仍然存在,并更新错误报告
  • 如果有testuite失败,请尝试找出导致此测试失败的顺序

这将使您能够在可管理的学习曲线上了解项目的困难概念部分,同时保持您的兴趣(因为这是您关心的项目)并让您访问项目周围的社区。 实际的编程语言(无论在项目中使用哪种)都是您可以即时获取的。

有关逐步进入的示例,请查看我对Beignet项目的贡献 。 对编程语言(该实例中的C / C ++)的了解当然不是限制因素。

你应该学习……所有这些! 或者更确切地说 – – 所有语言。 当您了解两种或三种语言时,您可以快速学习与这些语言类似的任何新语言。 如果您了解足够多的语言,那么您“几乎”了解所有语言,更重要的是,您了解语言的一部分,以及与语言无关的编程 。 最终,特定语言无关紧要。

所以你可能想学习Java,C,Scheme,OCaml,Assembly(至少两个架构),Forth和一些Prolog,不一定按顺序。 第二种语言将是最难的,因为你必须学习新概念,忘记用第一语言学到的概念,但结果却是错误的。 之后它很容易,只会变得更容易。

然后,在处理特定的开发任务时,根据编译器和库的可用性和支持,同事的知识,管理的策略约束等使用最适合的语言。 灵活性是关键。 了解多种语言可以提供这种灵活性。