初学者最好从哪种编程语言开始?

Mys*_*rio 5 linux programming

我非常渴望学习一些编码。但是,我有点犹豫要从哪种编程语言开始。周围是 Python,但对于 QBASIC 知识有限的人来说,它是正确的选择吗?

Lev*_*von 21

我也推荐 Python 作为一种友好、易于访问的语言,没有过多的语法糖。虽然它看起来很简单,但它不是一种玩具语言,它是 Google、NASA、YouTube 和许多其他地方使用的语言。它非常强大和灵活,并且支持命令式和面向对象的编程范式。

它的语法直截了当,并教会了您格式化代码方面的良好习惯(与其他语言不同,空格,即缩进等很重要。因此,虽然您可以编写非功能性代码,但它总是看起来不错:)

所以,算我一个 Python 的粉丝。它是免费的、跨平台的并且可以交互使用。这意味着,您可以打开 Python shell 窗口并在那里尝试命令,而无需编辑文件并保存和编译它。Python 还带有自己的名为IDLE的 IDE ,它不像 eclipse 那样超级复杂,但可用。

您可能想访问Python.org以获取更多信息,也许这个Python 初学者指南会有用。

只是为了提供一个简单的例子来传达这种风格,这里是如何在 C、Java 和 Python 中打印“Hello World”:

在 C 中

#include <stdio.h>

int main(void)
{
   puts("Hello World");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

在 Java 中:

public class HelloWorld
{
   public static void main(String[] args)
   {
     System.out.println("Hello World");
   }
}
Run Code Online (Sandbox Code Playgroud)

在 Python 中:

print("Hello World")
Run Code Online (Sandbox Code Playgroud)

如果你谷歌,你会在网上找到很多Python 教程。

玩得开心!

更新

我的目的不是要开始一场“我的比你的好”的语言战争。问题是哪种语言适合初学者?我的答案是(并保持)Python。

我已经概述了上面的好处,Python(或 Ruby 就此而言)的概念包袱要少得多。初学者可以专注于编程概念,而不是无关紧要的事情。他们可以打开一个 shell Python 窗口并输入 Python 语句并立即以交互方式观察输出。与 C 或 Java 不同,不需要单独的步骤来编辑源文件、编译它们然后在早期运行它们,也不需要解释 C 中的“头文件”或public static void mainJava 中的整个咒语:) 也不为什么我们使用puts()或者System.out.println()当我们真的想要/意味着“打印”时。

简单地看一下上面的3个例子。初学者更容易理解哪些代码?如果您对编程一无所知,更愿意学习哪种语言?(旁白:去掉return 0in C 真的更容易理解吗?)

如果问题是在 Unix/Linux 中用于系统编程的语言是什么,那么我会说 C,Java 也有它的用途。带有指针和无边界检查数组以及“手动”内存分配和释放的 C 会成为初学者的好语言吗?不,在我看来不是。一个称职的程序员应该知道这些事情吗?是的,当然,在他们掌握基本概念之后的适当时间。我们在这里讨论初级程序员

这样看:如果你有一个想学开车的人,你会推荐一辆法拉利来学习基础知识吗?

  • 你的比较非常有偏见。C-Example,可以简化为`int main() { puts("Hello World"); 在另一方面,我也看到了带有 `__main__` -boilerplate 的 python 代码。 (2认同)
  • @userunknown 您优化的 C 代码遗漏了头文件。我想这也是可选的。此外,至少 gcc 4.4.3 在没有 `return 0` 的情况下不会在其默认设置中返回 `0`。必须使用编译器开关等很好,但为什么要给初学者带来负担呢?他们有足够多的其他事情需要担心。您优化的“技巧”和规则引入了所有这些初学者不必担心的无关紧要的东西。没有人会放下 C 或 Java,问题是什么是初学者学习编程的好语言。 (2认同)

bah*_*mat 11

Chris Pine 在网上有一本免费的书叫做Learn to Program,它使用Ruby

它开始假设您对编程一无所知,并从那里开始教书。即使您对编程有一点了解,前几章也会培养强大的 Ruby 技能,但不要觉得重复。


rah*_*hmu 6

询问哪种编程语言最适合初学者就像询问哪种工具最适合初学者一样。这完全无关紧要。重要的是你学到了什么,而不是你表达它的语言。

如果你对编程感兴趣并且认真对待它,我建议你开始阅读计算机语言的结构和解释。这比一般的“7 天学会 C++ 轻松致富……要复杂一些,但它是成为真正程序员的最短路径。

但这远远超出了当前网站的范围。Stack Exchange 网络还有其他网站,其中可能与此问题相关。为了使事情变得足够,我假设您想学习一些与 Unix 相关的编程。我建议花几个星期学习 C,然后拿一本Stevens写的Advanced Programming in the Unix Env​​ironment。这应该让你开始。

  • 我不同意语言的选择“无关紧要”,尤其是因为我们在谈论初学者。对于他们来说,您希望他们能够专注于主要概念,而不必担心所有各种语法要求。当然,每种语言都有这些,但正如我在回答中的 3 个示例所示,Python(和 Ruby 也是)将它们保持在最低限度。向某人解释为什么如果他们想打印一些东西,他们不能简单地说“打印‘东西’”,而是必须了解“公共课程......”等:-) (3认同)