达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心 达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心
PHP互联网工程师
 当前位置:主页 > 高端课程 > PHP互联网工程师 >

我今天才知道:学习编程和学习编程语言是两码

时间:2020-09-12  来源:未知  作者:广州达内培训

大多数程序员、初学者都以为自己正在学习编程,其实并不是,而是在走弯路。

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

计算机科学不是学习计算机,很震惊吧。相反,它是关于借助计算机来自动解决问题的一门学问。解决问题才是计算机科学,而不是写代码。这就是许多计算机科学专业的学生,似乎不理解他们为什么学习算法和数学的原因。

如果你以前上过计算机科学的课,那么你不会对此感到惊讶。因为你会注意到编程与编程语言几乎没有关系。思考一下,为什么伪代码在这些课程中如此常见。

但大多数程序员总是会落入陷阱。我们学了十几年编程语言,才意识到自己真正需要学的是编程,而我本身就是受害者。

我花了十多年的时间来学习各种编程语言。我学的编程语言越多,构建简单的东西就越困难,我感觉找不到正确的工具。但问题是,当我不知道如何下手时,我忘记了应该去探索要做什么,而不是寻找正确的工具。

编程语言的奇怪之处在于它们总是在变化。编程语言几乎每天都在变化,跟进非常困难。而且大多数优秀的程序仅用到了编程语言的一小部分。

优先学习编程语言的问题就像在学习木工之前学习如何使用木工锯、锤子和各种切割机。木工需要注意:想法、可行性分析、度量、测试、用户使用习惯,老木匠更关注这些。而不是锤子和钉子这些东西。

在对工作进行科学研究期间,他还将花时间检查钉子、着色剂、木材等的质量。

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

“编程” 通过给出一条指令来使系统自动运行。我们每天都这样做,我们教我们的孩子、士兵、客户。我们发出或收到指令,要求自由或独立地按照规定的方式进行。你的父母不需要一直跟着你,并指导你生活中的每一步,他们已经在之前生活中的许多方面对你给予过指导(指令)。

大多数学校和教育网站都会教授编程语言的语法。他们还会添加一些设计模式(而你可能恰好忽略了设计模式是什么)、一些数学计算、如何声明变量以及如何使用它们,数据类型以及如何声明和创建它们。

上面说的那些编程语言的知识不会教你编程。当你发现时,你会觉得学习编程实在浪费时间,大把的时间。

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

它们就像工具箱,我们称之为框架。它们可以让你的想法更有条理。

如果你正在学习编程,但仍无法设计和编写一个实际的应用程序,这意味着你要花更多的时间去学习编程而不是编程语言。

我们遇到过很多人,他们仍然不知道如何设计一个程序。

对于程序员来说,一个程序是一个需要解决的问题。在涉及任何编程语言之前,需要先认真思考、理解问题。当你无论要解决什么问题时,其实都可以使用任何一种编程语言进行编码(重要的是思考要解决的问题)。

让我们以计算平方为例。计算一个数的平方,对自身进行多次乘法计算。我们可以用多种语言来实现它,例如:

用 C 语言

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

用 PHP

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

学习推荐:php编程入门视频教程

用 JavaScript

function square(x){
    return x * x
}

学习推荐:javascript视频教程

用 Scheme(一种 Lisp 方言)

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

你会注意到,语法只决定具体实现,而解决问题的方法是相同的。这就是你几乎可以使用任何你愿意使用的语言,构建任何类型的软件的主要原因之一。

通过编程更容易理解一门语言

人类语言是个问题,因为人类语言充满局限和错误,所以机器无法直接理解。

在学习编程时,你将学习新的术语和新的工具来编写逻辑,这样计算机或其他程序员也可以理解并达成共识。

通常,你将从一个简单的、类似人类语言,被称作伪代码的语言开始。它是从人类语言到计算机编程语言的很好的过渡工具,这样做是为了防止你在编程语言上浪费时间。

如此,你就可以完全专注于问题的本身和解决的逻辑。通过这一过程,你将发现一个好的编程工具(语言)的核心部分,你就知道那些是重要的、你所需要的(如果你需要用锤子砸东西,就先学砸东西,钉钉子暂时用不到就先不学)。

这样一来,你就会在不知不觉间就学会一门编程语言(完全掌握锤子的用法)

翻译原文:Learning programming is different from learning a programming language: https://phpocean.com/blog/article/learning-programming-is-different-from-learning-a-programming-language/80

【相关文章】

  • 高逼格程序员指南

  • PHP 鸟哥:我也曾经是“不适合”编程的人




上一篇:css基础教程:2020年适合新手的7个CSS入门教程推荐
下一篇:没有了

友情链接:
  • 全球最大晶圆代工半导体制造厂,台积电斥资订购艾斯摩尔机器设备
  • 英特尔依然是那个英特尔,且看英特尔的城防体系
  • 支持双 DRAM 内存接口,慧荣企业级 SSD 主控方案披露
  • 在全球被反垄断罚款,冤!高通到底哪里得罪了欧盟?
  • 强强联合!万业、微电子所和芯鑫共同打造全新半导体设备
  • 复旦大学校长称:对于集成电路产业发展,大学应该主动担当
  • 技术再升级!无锡中科芯攻克晶圆级再布线及晶圆级凸点制备关键技
  • 聚力!万业企业设立集成电路装备集团,提供自主可控设备
  • 德州仪器C2000微控制器增强连通性和控制性
  • 英特尔打出降价策略,以免被竞争对手 AMD 打败?
  • 贸易摩擦的闹剧没有赢家,苹果有勇气离开中国吗?
  • 图像信号与视觉处理器的发展趋势
  • 真干快消品定位方案班(第二期)火热开班
  • Java集合 ArrayList原理及使用
  • TDD(测试驱动开发)死了吗?
  • JAVA基础之XML相关
  • javaweb项目搭建ehcache缓存系统
  • 每日一码——字符串统计
  • 一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
  • 九:模板方法模式
  • 十二:命令模式(人员解耦和)
  • Java 转PPT为图片、PDF、SVG、XPS、ODP以及PPT和PPTX互转
  • SpringCloud学习(SPRINGCLOUD微服务实战)一
  • 记一次微信网页授权后获取用户信息并重定向
  • 速途新营销五点实战洞察解码“品效合一”
  • 十一:外观模式详解(Service,action与dao)
  • 手把手教你学会 基于JWT的单点登录
  • mysql锁机制总结,以及优化建议
  • 解决多个版本jar包冲突【jar内包名重命名】
  • 中国首张5G终端电信设备进网许可证 华为Mate 20 X 5G版入网
  • RPC之Thrift
  • 高级Java工程师必备 ----
  • 天猫618期间实物支付GMV增长38.5%
  • 换季了,老板你的库存处理好了吗?
  • 从“618”大数据看中国消费新活力
  • 小米生态链:贵在格局感与收放度
  • CODING 2.0 企业级持续交付解决方案
  • 老铁奇趴“新京济” 快手*京东618战报出炉
  • 中小企业新媒体运营基本技能
  • 上汽大通房车再度携手LINE FRIENDS 魔都巡游顺利开启
  • 华为高端手机国内市场份额超苹果夺得榜首
  • 中国智能制造分析报告
  • iPlus艾加营销助力腾讯广告牵手吴晓波 推进商业IP变现
  • 2019世界新能源汽车大会7月1日将在海南举行
  • 区域酒企如何转型突围
  • 时时彩论坛
  • 五星体育斯诺克
  • 北单比分直播
  • 河北11选5走势图
  • 福建体彩36选7开奖结果
  • 九龙图库下载