我一直对学习编程的不同想法感兴趣。 也许是因为我仍然是这个领域的永恒学生。 但是今天,我对我有了一个意外的
想法 -开始学习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的选择。 这是便利的环境和用于编码的工具的可用性,以及文档的质量,以及最后的实用性。 但是,如果学习的第一步与痛苦和误解联系在一起,那么这可能会超过所有其他论点。 一般而言,轻松学习,不要打扰!