初学者的最佳编程语言

我一直对学习编程的不同想法感兴趣。 也许是因为我仍然是这个领域的永恒学生。 但是今天,我对我有了一个意外的想法 -开始学习Java。 我无法保持沉默。

我不是教育学的优秀专家-也许在计算机科学领域,习惯上是将学生扔进水中,选择更深的地方,在那里-注定要来的人。 但是在我看来,如果随着复杂性的增加,老师一次向学生介绍各种编程概念,培训将是最有效的。 因此,“培训” PL的主要要求是能够从最基本的功能开始隔离使用功能。

同样,根据我的业余爱好,很容易检查编程语言是否满足此要求。 只需打开Rosetta Code上的“ Hello World”部分即可

让我们尝试列出理解这些基本程序所必需的概念。

应无线电收听者的要求对其进行补充。 Brainfuck,PHP,C和Julia。


Python 2


print 'Hello world!' 


解析此代码时,教师至少应向学生简要说明什么是关键字运算符字符串数据类型 。 当然,即使没有这样的解释,一些学生(但不是全部!)也可以快速发展出对这些功能的直观理解。 但是,最好立即获得确定性。

Ruthon 3


 print('Hello world!') 


函数的概念添加到关键字行中 。 是的, print功能是Python 3的一种加工业语言。 但同时,函数是比运算符更高级别的功能,这使对Python 3作为第一个PL的研究变得复杂。 是的,您作为老师可以推迟对以下课程之一使用括号的解释,但这将仍然困扰您的学生。

朱莉亚


 println("Hello world!") 


基本概念与Python 3相同。但是Julia是一种高性能动态Java,已编译为本机代码。 太棒了!

基本的


 10 PRINT "Hello world!" 


关键字字符串AP运算符 ,代码编号。 Basic中的行编号是一个相当复杂的低级概念,它模仿计算机的物理存储设备。 如果老师不注意她,这可能成为学生的绊脚石。

在后来的方言中,例如VisualBasic,代码行成为简单的,不可计算的标签 。 在第一个程序中,不需要标签。 因此,语言对于基础学习变得更加容易。

帕斯卡


 program HelloWorld(output); begin writeln('Hello, World!'); end. 


关键字字符串TD运算符函数以及其他内容? 由于该程序需要多行,所以将block定界符 (或终止符 ?我总是感到困惑)和缩进添加到第一个概念中。 而且program语句不是那么简单。似乎Pascal的友好程度有些夸张。

ç


 #include <stdlib.h> #include <stdio.h> int main(void) { printf("Hello world!\n"); return EXIT_SUCCESS; } 


关键字字符串AP运算符函数定界符缩进 ,以及预处理器指令 。 在此示例中可以不使用宏,但是在这种情况下return EXIT_SUCCESS很有指示性:C是传统的系统编程语言,因此建议您在对操作系统的操作有充分了解并着重于可移植性的基础上进行研究。 否则,此PL似乎比Pascal复杂一些。

p


 <?php echo "Hello world!\n"; ?> 


除了了解关键字字符串AP运算符定界符 (或终止符 ?)之外,如果没有对特定Web技术(如标记语言 (HTML)和模板引擎 )的基本了解,就无法学习该示例。 实际上,PHP是模板语言,是一种DSL。 因此,对于想要深入研究后端技术的前端供应商而言,PHP是一种出色的学习语言。 但是,从头开始学习PHP相当困难。

C ++


 #include <iostream> int main () { std::cout << "Hello world!" << std::endl; } 


关键字字符串AP运算符函数分隔符缩进 ,以及具有其指令, 作用域流输入/输出预处理器 ... gh,仅此而已?

爪哇


 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } 


关键字字符串AP (甚至是两个字符串AP,但您可以保持安静), 空AP数组分隔符缩进 ,以及对象 (隐式地,但是您不能解释static ), 属性方法修饰符访问 ...上帝,我已经想看到所有这一切! 毕竟,我只想为Minecraft编写mod!

C#


 namespace HelloWorld { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello world!"); } } } 


相同的Java,减去访问修饰符 ,再加上名称空间 。 没什么有趣的,我们过去了。

脑干


我不想在这里列出-它过于庞大和单调。 我仅列出理解该示例所需学习的基本概念: 关键字运算符变量指针条件循环字符的数字表示 (ASCII表)。 是的,Brainfuck不是初学者最易用的语言。

结论


当然,除了“快速入门”(易于理解基本程序)外,还有许多因素会影响培训PL的选择。 这是便利的环境和用于编码的工具的可用性,以及文档的质量,以及最后的实用性。 但是,如果学习的第一步与痛苦和误解联系在一起,那么这可能会超过所有其他论点。 一般而言,轻松学习,不要打扰!

Source: https://habr.com/ru/post/zh-CN477038/


All Articles