学习编程与学习编程语言不同

24 篇文章 0 订阅
17 篇文章 0 订阅

译注:本文来自phpocean,使用机翻后由Mr.Wei校对。[语言往往给程序员带来的成就感往往让其忘了初衷,当你不再买各种《XXX从入门到精通》就说明你要么放弃了要么明白了。_]

我们都是程序员,我们都是学习者。看到有多少人(学习者)把时间浪费在毫无意义的事情上(bashing their head against the walls),以为自己在学习编程,这真是令人惊讶。

您可能正在学习一种编程语言,而不是编程本身

知道计算机科学不研究计算机,不要感到惊讶。相反,它是使用自动化解决问题的研究。问题解决是计算机科学,而不是编程。这就是为什么许多计算机科学专业的学生似乎不明白他们为什么要学习算法或数学。

如果你以前上过计算机科学课,你不会对我在这里说的话感到惊讶。因为您可能已经注意到,编程与编程语言的关系不大。问问自己为什么伪代码在这些课程中如此常见。

但是,大多数自我思考的程序员总是落入陷阱。我们学习编程语言几十年之后,才真正意识到我们必须做的工作是:编程。我自己就是一个受害者。

我花了十多年时间一点一点地学习各种编程语言。我学得越多,就越难建立简单的东西。我有一种找不到合适工具的感觉。但问题是,当我甚至不知道要做的工作时,我忘了寻找合适的工作而不是正确的工具。

编程语言的奇怪之处在于它们总是在进化。编程语言几乎每天都在变化。很难跟进。大多数好的程序只使用编程语言的一小部分。

首先学习编程语言的问题就像在学习木工之前学习如何使用木工锯子、锤子和所有的切割机一样。木工需要注意的事项:想法、可行性分析、测量、测试、客户行为。高级木匠会对那些东西比锤子和钉子更感兴趣。在工作的科学研究期间,他还会花时间检查钉子、着色剂、木材等的质量。

学习编程和学习编程语言有什么区别?

编程就是通过只给系统一次指令来自由操作系统。我们每天都这样做。我们教育我们的孩子,我们的士兵,我们的顾客。我们给予他们或接受指示以自由/独立的方式生活。你的父母不需要跟随你,指导你在生活中的每一个举动。他们已经在生活的许多方面给你编程(设定了程式)了。

大多数学校和教育网站都会教授编程语言的语法。它们会添加一些设计模式(尽管您忽略了确切的设计是什么)、一些算术计算、如何声明变量以及如何使用变量、数据类型以及如何声明/创建它们。

这不能教你推理。使用这种方法,在后来您将学会推理方法。这会让你觉得自己在浪费时间,或者花了很多时间去学习编程。

我们用编程来解决问题,而编程语言就是帮助我们解决问题的工具。

它们就像工具箱。我们称之为框架。它们帮助你组织你的思想。

如果您正在学习编程,但仍然无法计划和编写真正的应用程序,这意味着您对编程语言的了解要多于对编程的了解。

有多少次,我们遇到的人(学习者)仍然不知道如何创建一个程序。对于程序员来说,程序是一个需要解决的问题。他通过批判性分析解决了这个问题,甚至在涉及到任何编程语言之前。当您解决任何问题时,它可以用任何编程语言编写。我们以求平方为例。为了求平方,我们自己乘以它。我们可以用各种语言来实现它,比如:

在C语言中

function square(int * x) {
    return x * x;
}

在PHP语言中

function square ($x){
    return $x * $x;
}

在Javascript语言中

function square(x){
    return x * x
}

在Scheme语言中

(define (square x) (* x x))

您可以注意到,语法只有在实现中起作用。结果是一样的。这也是为什么你几乎可以使用任何编程语言的主要原因之一,在这种语言下,你可以更轻松地构建任何类型的软件。

通过编程探索一门语言更容易

问题通常是人类语言。人类的语言充满了局限性和错误。因为机器没有感觉,所以不可能用它来指导机器。

在学习编程时,您将学习一种新的术语和新工具,以帮助您以计算机或其他程序员能够理解并同意的方式编写逻辑。

通常,您会从一个简单的、类似人类语言的符号“伪代码”开始。它是人类语言向计算机编程语言过渡的好工具。这通常是为了防止你在语言上浪费时间。这样你就会完全专注于推理。通过这些,您将发现组成一个好的编程工具(语言)的核心部分。你知道到底需要什么。您了解编程语言的核心目标。有了它,你在不知不觉中学会了它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
  C++是在C语言的基础上发展而来的,但C++又可视为是一门全新的语言,C++独有的面向对象特性使其极具生命力,获得了众多软件厂商和开发人员的青睐。 《程序员成长课堂:C++标准教程(附光盘)》内容共分4篇11章。其中,第1篇是C++概述篇,主要内容包括:C++的起源和特点、C++源程序的构成、C与C++的比较、C++代码规范、排版风格、命名规范以及代码设计风格等;第2篇是C++基本语言篇,主要内容包括:C++基本数据类型、表达式、运算符、操作符、C++语句以及C++标准模板库等;第3篇是C++面向对象编程篇,主要内容包括:类和对象、继承、多态、运算符重载等;第4篇是C++编程实践篇,通过教学管理系统的开发实例,讲解如何使用C++进行实际开发。 全书配合了大量实例及代码说明,随书光盘中含有视频讲解,非常适合入门读者阅读,以迅速掌握C++开发技术。对于已有相关编程经验的读者,《程序员成长课堂:C++标准教程(附光盘)》也可作为学习开发的参考用书。 第一篇 C++概述 第1章 由C迁移到C++ 2 第2章 C++代码规范 11 第二篇 C++基本语言 第3章 C++数据类型 40 第4章 表达式 96 第5章 C++语句 106 第6章 标准模板库STL 130 第三篇 C++面向对象编程 第7章 类 148 第8章 类的初始化、赋值和析构 169 第9章 模板 190 第10章 面向对象程序设计 213 第四篇 C++编程实践 第11章 教学管理系统的C++实现 260 附录A Visual C++菜单中文注释 299 附录B Visual C++操作技巧小代码 302
第一篇 Oracle管理配置 第1章 Oracle安装配置(教学视频:10分钟) 23 1.1 Oracle简介 23 1.1.1 数据库术语 23 1.1.2 主流数据库简介 24 1.1.3 Oracle数据库的特点 24 1.2 安装Oracle数据库 25 1.2.1 Oracle数据库的版本变迁及安装环境 25 1.2.2 安装过程 26 1.2.3 安装中需要注意的问题 27 1.3 本章小结 28 1.4 习题 28 第2章 Oracle常用工具(教学视频:7分钟) 29 2.1 Net Configuration Assistant(网络配置助手) 29 2.1.1 监听程序配置 29 2.1.2 命名方法配置 31 2.1.3 本地Net服务名配置 32 2.2 Net Manager(网络管理员) 34 2.3 本章实例 36 2.4 本章小结 38 2.5 习题 38 第3章 SQL Plus和PL/SQL(教学视频:11分钟) 39 3.1 SQL Plus与PL/SQL简介 39 3.2 使用SQL Plus 40 3.2.1 登录SQL Plus 40 3.2.2 SQL Plus输出结果的格式化 41 3.2.3 SQL Plus小结 46 3.3 PL/SQL 46 3.3.1 PL/SQL常用开发工具 46 3.3.2 开发一个简单的PL/SQL程序 48 3.4 本章实例 49 3.5 本章小结 50 3.6 习题 50 第二篇 Oracle数据库对象 第4章 Oralce数据库(教学视频:15分钟) 51 4.1 创建Oracle数据库 51 4.2 Oracle数据库的相关术语 52 4.2.1 数据库 53 4.2.2 数据库实例和SID 53 4.2.3 ORACLE_SID 54 4.3 Oracle数据库的备份与恢复 55 4.3.1 逻辑备份/恢复(导出/导入) 55 4.3.2 物理备份/恢复 56 4.3.3 利用PL/SQL Developer备份数据库 60 4.4 本章实例 61 4.5 本章小结 61 4.6 习题 62 第5章 Oracle数据表对象(教学视频:42分钟) 63 5.1 Oracle表空间 63 5.1.1 Oracle表空间简介 63 5.1.2 创建Oracle表空间 64 5.1.3 查看表空间 66 5.1.4 修改数据库默认表空间 67 5.1.5 修改表空间名称 68 5.1.6 删除表空间 69 5.2 创建Oracle数据表 70 5.2.1 利用工具创建数据表 70 5.2.2 利用工具查看数据表 71 5.2.3 利用命令创建数据表 72 5.2.4 利用命令查看表结构 72 5.3 修改Oracle数据表结构 73 5.3.1 利用工具修改数据表结构 73 5.3.2 利用命令修改数据表结构 74 5.4 删除数据表 75 5.4.1 利用工具删除数据表 76 5.4.2 利用SQL语句删除数据表 76 5.5 备份/恢复数据表 76 5.5.1 利用工具备份/恢复数据表 77 5.5.2 利用命令备份/恢复数据表 82 5.6 临时表 83 5.6.1 临时表简介 83 5.6.2 会话级临时表 84 5.6.3 事务级临时表 85 5.6.4 查看临时表在数据库中的信息 86 5.6.5 临时表的应用场景 86 5.7 特殊的表dual 87 5.7.1 分析dual表 87 5.7.2 dual表的应用场景 87 5.7.3 修改dual表对查询结果的影响 88 5.8 本章实例 89 5.9 本章小结 90 5.10 习题 90 第6章 约束(教学视频:43分钟) 91 6.1 主键约束 91 6.1.1 主键简介 91 6.1.2 创建主键约束 92 6.1.3 修改表的主键约束 94 6.1.4 主键应用场景 96 6.2 外键约束 97 6.2.1 外键简介 97 6.2.2 创建外键约束 97 6.2.3 级联更新与级联删除 100 6.2.4 修改外键属性 102 6.2.5 外键使用 104 6.3 唯一性约束 105 6.3.1 唯一性约束简介 105 6.3.2 创建唯一性约束 105 6.3.3 修改唯一性约束 107 6.3.4 唯一性约束的使用 108 6.4 检查约束 108 6.4.1 检查约束简介 108 6.4.2 创建检查约束 108 6.4.3 修改检查约束 110 6.4.4 检查约束的使用 111 6.5 默认值约束 111 6.5.1 默认值约束简介 112 6.5.2 创建默认值约束 112 6.5.3 修改默认值约束 113 6.6 本章实例 115 6.7 本章小结 116 6.8 习题 116 第7章 视图(教学视频:50分钟) 117 7.1 关系视图 117 7.1.1 建立关系视图 117 7.1.2 修改/删除视图 118 7.1.3 联接视图 120 7.1.4 编译视图 122 7.1.5 使用force选项强制创建视图 124 7.1.6 利用视图更新数据表 125 7.1.7 with check option选项 126 7.1.8 关系视图小结 128 7.2 内嵌视图 128 7.2.1 内嵌视图简介 128 7.2.2 内嵌视图的使用 128 7.2.3 内嵌视图小结 130 7.3 对象视图 131 7.3.1 对象视图简介 131 7.3.2 对象视图简介 131 7.4 物化视图 133 7.4.1 物化视图简介 133 7.4.2 物化视图的使用 133 7.4.3 物化视图的数据加载 135 7.4.4 物化视图的数据更新 135 7.4.5 查询重写 136 7.5 本章小结 136 7.6 本章实例 137 7.7 习题 137 第8章 函数与存储过程(教学视频:48分钟) 138 8.1 函数 138 8.1.1 函数简介 138 8.1.2 创建函数 139 8.1.3 函数中的括号 140 8.1.4 函数的参数 141 8.1.5 函数的确定性 142 8.1.6 典型函数举例 143 8.2 存储过程 144 8.2.1 存储过程简介 144 8.2.2 创建存储过程 144 8.2.3 存储过程的参数——IN参数 146 8.2.4 存储过程的参数——OUT参数 147 8.2.5 存储过程的参数——IN OUT参数 149 8.2.6 存储过程的参数——参数顺序 149 8.2.7 存储过程的参数——参数的默认值 152 8.2.8 存储过程的参数——参数顺序总结 153 8.3 程序包 153 8.3.1 规范 153 8.3.2 主体 155 8.3.3 调用程序包中的函数/存储过程 157 8.3.4 程序包中的变量 158 8.4 本章实例 159 8.5 本章小结 161 8.6 习题 161 …… 第9章 游标(教学视频:36分钟) 162 第10章 触发器(教学视频:58分钟) 178 第11章 序列(教学视频:28分钟) 206 第12章 用户角色与权限控制(教学视频:45分钟) 215 第三篇 Oracle中的SQL 第13章 Oracle数据类型(教学视频:21分钟) 231 第14章 Oracle中的函数与表达式(教学视频:111分钟) 240 第15章 Oracle中的控制语句(教学视频:16分钟) 282 第16章 SQL查询(教学视频:55分钟) 290 第17章 SQL更新数据(教学视频:34分钟) 319 第四篇 Oracle编程高级应用 第18章 数据库速度优化与数据完整性(教学视频:32分钟) 332 第19章 数据一致性与事务管理(教学视频:46分钟) 341 第20章 并发控制(教学视频:35分钟) 356 第21章 Oracle中的正则表达式(教学视频:29分钟) 369 第五篇 Oracle与编程语言综合使用实例 第22章 Oracle在Java开发中的应用(教学视频:38分钟) 376 第23章 Oracle在C#开发中的应用(教学视频:12分钟) 391

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值