我应该学习什么编程语言才能成为Ubuntu开发人员?[关闭]


22

尽管我曾经将NetBeans用于一个项目,但要成为一名成熟的Ubuntu开发人员,我需要学习哪些语言?

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

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


3
这是相当主观的...示例:perl可以替代python,
反之亦然,

如果您对要编写的内容更加具体,我们可能会回答得更好,但bash会... ...,您可能会得到很多不同的意见,并且您最好在Ubuntu论坛中进行以下提问:开发和编程
沃伦·希尔

Answers:


31

答案很简单,并没有真正的帮助。需要哪种语言。Ubuntu是大量软件,其中一些是用C编写的,一些是C ++编写的,一些是用Python,Perl,bash等编写的。您绝对应该使用bash学习脚本编写,并且应该选择Perl或Python之类的语言,可能是后者。此外,学习老式的C语言永远不会伤害任何人-您可以了解有关程序如何工作,什么是库以及其他工具上很多东西的更多信息。

否则-首先找到一个任务,一个利基市场,一些需要处理的东西,或者缺少的东西,或者只是令人着迷的东西,而您想对其进行处理。然后找出适合该目的的语言。


5
简单但准确;)使用哪种语言才能最有效地完成工作。
Rinzwind

3
由于OP提到他具有Java经验,因此值得一提的是Java在Ubuntu上也能很好地运行。您甚至不需要重新编译(从其他操作系统移植时)
BlueRaja-Danny Pflughoeft13年

@ BlueRaja-DannyPflughoeft除非您正在开发需要低级系统调用的应用程序,否则都必须使用。通常,您会看到为这些功能提供特定于平台的库的应用程序。但是通常是的,您是对的。
丹尼斯·艾希霍恩

当然,可以针对特定cpu架构进行编译的任何内容都可以胜任。当有人要为特定平台开发时,还有更多重要的方面需要考虑。就像该人需要花多少时间开始,是否要处理内存管理,是否要执行跨平台程序,要制作哪种类型的程序,是否知道要在团队中工作一样? ,他是否想在按摩用户或移动空调系统的同时制造服务于培根三明治的计算机,有人说,天空是极限,等等...
userDepth 16'April

7

如果您打算为Ubuntu编写可以在多种设备和外形(台式机,电话,平板电脑,电视...)上运行的应用程序,建议您学习QMLJavaScript。实质上:

  • 使用QML编写可在各种尺寸和设备上运行的融合Ubuntu应用
  • 编写Ubuntu应用程序和编写Ubuntu Webapp时使用JavaScript补充QML

您能否详细说明为什么这两个都适合?
don.joey 2013年

完成,我希望可以提供明确的指导:)
David Planella

5

您应该学习:

  • JavaScript:与大多数UI框架/ env一样。是/将基于JavaScript;无论如何,您总有一天会需要它。

然后,对于所有其他内容,您将需要其他一些东西:

  • C ++ / C语言
    • 优点:速度惊人,可使用低级功能
    • 缺点:有很多时间学习如何编写稳定,糟糕的社区内容
  • 红宝石:
    • 优点:易学,写得真好,社区很棒
    • 缺点:对于某些任务可能很慢(真的)
  • 蟒蛇:
    • 优点:许多软件包都在python中,具有强大的社区功能,速度快等。
    • 缺点:python 3(只是种)

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


1

编程工作包括实际代码和其下的思维模型。

只要您具有计算机工作原理的基本概念,就可以轻松地自学编程语言,但是,为了对项目做出有益的贡献,您还需要了解其背后的设计。

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

  • 如果有一个含糊不清的错误报告,请尝试复制问题并改进描述。自动测试的奖励积分。
  • 如果有一个旧的bug一段时间没有引起注意,请尝试查看它是否仍然存在,并更新bug报告
  • 如果存在测试套件失败,请尝试找出正在发生的情况,以使该测试失败

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

有关逐步入门的示例,请看我对Beignet项目的贡献。编程语言(在这种情况下为C / C ++)的知识当然不是这里的限制因素。


0

您应该学习...所有人!或更确切地说,学习所有语言。当您知道两种或三种语言时,您可以快速学习与这些语言相似的任何新语言。如果您了解足够多的语言,则可以“虚拟地”全部了解它们,更重要的是,您将了解哪一种语言是该语言的一部分,以及与该程序无关的语言。最终,特定的语言是无关紧要的。

因此,您可能想学习Java,C,Scheme,OCaml,Assembly(至少两个体系结构),Forth和一些Prolog,但不一定要按此顺序学习。第二语言将是最难的,因为您既必须学习新概念,又要忘记用第一语言学习但被证明是错误的概念。之后,这很容易,而且只会变得更容易。

然后,在处理特定的开发任务时,请根据编译器和库的可用性和支持,同事的知识,管理方面的策略约束等,使用适应性最强的语言。思维的灵活性是关键。知道多种语言可以赋予这种灵活性。


他们都是?真?在这里看看经典的“ HelloWorld”程序。大多数程序员只懂几种语言。了解您所需要的只是最重要的。
沃伦·希尔
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.