如何学习编程语言

像程序员一样思考

David Rangel在Unsplash上的照片

免责声明: 这不是有关如何使用特定编程语言进行编码的教程。 而是,这是某人学习(或愿意学习)编程语言的指南,以了解如何开始或从何处开始,以便有效地学习该语言,从而能够像程序员一样思考。

学习和学习编程有时可能很棘手。 学习编程的关键是能够像程序员一样思考

这是您需要学习,理解和掌握的第一件事

我认为,在深入了解其他任何细节之前,您需要做的第一件事是对所学习语言中使用的数据类型和结构有很好的了解。

所有编程语言之间的主要通用数据类型/结构是:整数,双精度(或浮点型),布尔值,字符串,字符,数组和对象。 例如,Python另外还具有列表,元组,字典和集合。

了解每种语言如何存储信息将使您了解要创建的数据类型,以存储要解决的问题的每个变量。 例如,如果您正在创建一个程序来计算用户的BMI(体重指数),并将结果存储在用户名和年龄旁边,则可以很容易地观察到您将需要一个字符串来存储用户名,浮点变量来存储他的体重和身高(用于计算BMI),以及一个整数来存储他的年龄。

接下来,您需要学习基本语句,逻辑,关系和算术运算符以及数组索引

如果不是,则使用for循环,while循环(如果语言支持,则包括do-while循环)和切换用例。 通过理解每个概念和逻辑,您将能够知道如何,为什么以及何时使用代码中的每个语句。

这些语句将构成您将要编写的任何代码的很大一部分,因此对它们的工作原理有很好的了解非常重要。

在学习如何使用这些语句时,您肯定需要学习条件运算符的基础知识,因为除切换用例外,所有语句的工作都取决于是否满足逻辑条件。 主要的逻辑运算符为AND&& ), OR|| )和NOT )(请注意,例如,我编写的逻辑运算符语法适用于Java,C ++和C#,但对于其他语言则不一定相同) 。 除了逻辑运算符,关系运算符也将很方便地创建条件。 例如,您可能要检查相等性== ), 大于> ), 小于< ), 大于或等于> = ), 小于或等于<= )和不等式!= )。

对于代码中的一些简单数学运算,这些是您需要的基本算术运算符: 加法+ ), 减法- ), 除法/ ), 乘法* )和模数 )。

数组索引是用于访问数组元素的技术(对于Python中的列表,元组和字典,其工作原理相同)。 理解它的工作原理非常重要,并且在使用循环时将非常有用。

获得一些有用的内置函数的经验并编写自己的函数

有许多内置函数或方法可用于数据处理。 在许多情况下,这些方法将证明是有帮助的,并且可以节省您的时间,降低复杂性,并且您仅用一行代码就可以完成您打算做的事情。

除了内置功能之外,了解如何创建自己的功能非常重要。 当您发现自己在程序的不同位置使用相同的代码块时,函数将很有用。 因此,创建多个自己的函数来完成所需的任务集,并在需要时在程序中调用该函数,而不仅仅是多次复制/粘贴代码。 这将节省您的时间,空间,并使您的代码更加整洁,易读和易于理解。

了解面向对象的编程

如今,大多数编程语言都支持面向对象编程(OOP)。 OOP是基于对象概念的模型,其中包含属性和方法。 简而言之,属性是变量,用于存储与对象有关并定义对象的数据,而方法是我们可以用来访问和操纵对象特征的函数。

OOP具有许多优点,包括(但不限于)以下优点:

  • 它为程序提供了清晰的模块化结构。
  • 它有助于定义要在代码中实现的任何现实想法的抽象。
  • 在其他程序中可重复使用的优势,而不是浪费时间。
  • 使用对象使您的程序更简洁,易于维护,更有条理,更易于理解,因为实现细节被其他模块隐藏了。
  • 可以通过继承属性和方法从其他现有对象创建新对象。 继承的对象(称为“子”)除了具有从“父”继承的对象外,通常还具有其附加的功能和方法。

学习编程语言时应该做什么

我认为, 作为程序员 ,理解,学习和思考的最重要方面是编写一些代码。 在学习中运用所学知识。

从您开始学习编程课程或者您想自己学习开始,您应该做的第一件事就是下载并安装要学习的语言以及IDE(集成开发环境) 。

IDE是一个软件应用程序,您可以在其中编写,编辑和调试代码。 我通常建议使用IDE而不是简单的文本编辑器,特别是对于初学者,因为它们包括:

  • 集成的编译器和/或解释器。
  • 集成调试器。
  • 代码自动完成功能可在编写时给您提示。
  • 错误突出显示功能可以告诉您是否写错了什么或缺少什么。
  • 为您提供所用任何函数或库的文档摘要(或几行)。
  • 具有集成的命令行终端,您可以在其中查看代码的输出或在IDE中键入任何用户输入。
  • 当您运行代码并出现错误时,集成命令行上将显示有用的错误描述(通常为红色),以帮助您了解导致错误的原因。

如果您正在研究Python,那么使用Jupyter Notebook也对学习非常有用,因为它允许一次运行每个代码块(在一个单元格中)以查看输出,然后再继续运行其他单元格。 但是,当然,它的目的不是编写完整的程序并从内部运行它们。

因此,在学习时,我强烈建议您尝试实现您所阅读的内容。 打开笔记本电脑,然后在学习时开始编码。 您会发现它非常有益,尤其是当您遇到一些您不真正了解它的工作原理,含义或解释方式的时候。 在该IDE上写下它,运行它(即使它是一行代码)并检查结果。 犯错误,检查错误,然后尝试调试代码。 这样,除了可以真正真正地了解所学内容之外,它还可以帮助您更快地学习语法。

现在您已经学习了语言,是时候实施一些程序了

了解您要实现的问题非常重要。 永远不要去笔记本电脑,立即开始编码。

坐下来,了解问题,将其分为几部分,并了解每个部分的连接方式。

尚不正确的代码! 首先写下一个伪代码。 伪代码使用英语编写程序,以提供程序的高级描述和概述。 程序的不同部分之间的关​​系如何,首先是哪个,接下来是哪个,依此类推。

一个玩具例子—机器人宠物护理

假设您有一只宠物,并且最近购买了一个机器人,您希望对其进行编程以照顾宠物。 您希望您的机器人执行以下操作:

  • 每天早晨,机器人应补充食物和水并清洁宠物的笼子。
  • 下午和宠物一起玩。
  • 在中午和晚上补充食物和水。

但是,仅在早晨,如果宠物(仍)在睡觉,则机器人不应执行任何操作。 机器人应离开并在一个小时后到达,以检查宠物是否仍在睡觉,以便执行推迟的动作(即,清洁并重新装满食物和水)。 如果机器人进出3次并且宠物仍在睡觉,则机器人应清洁笼子,无论如何都要补充食物和水。 但是,如果在机器人清洁笼子时宠物保持睡眠状态,则机器人应向您的手机发送一条通知,告知您“宠物可能生病了!”。

用于此类问题的伪代码可以编写如下:

我的要旨: https : //gist.github.com/aaelamine/82166028e1f5f3245edef92c707eacdf

首先写下一个伪代码将帮助您组织有关如何构建代码以及代码的各个部分之间如何关联的想法。

假设地,假设我们已经创建了具有某些必要功能的类“ robot”和“ pet”,则可以轻松地将上述伪代码转换为以下Python代码:

从我的主旨中: https : //gist.github.com/aaelamine/ff9cb6572caa93d173892c3d89b4c82a

编码愉快!

希望您喜欢阅读。 如果您有任何想法,意见或建议,我想听听您的意见!

我还要向机电工程专业的学生表示非常感谢,他建议我写这个话题。

关于作者

我是一名计算机和通信工程师,对无线通信,资源分配,博弈论,优化,天线设计和认知无线电感兴趣。 我也喜欢编程,并且喜欢结合我在编程方面的专业知识来解决与我的研究相关的问题。 您可以在Medium Ahmad ElAmine LinkedIn 上与我联系

翻译自: https://hackernoon.com/how-to-study-programming-c867380e3267

如何学习编程语言

如何学习编程语言_如何学习编程相关推荐

  1. 正则表达式学习日记_《学习正则表达式》笔记_Mr_Ouyang

    正则表达式学习日记_<学习正则表达式>笔记_Mr_Ouyang 所属分类: 正则表达式学习日记  书名:     学习正则表达式 作者:     Michael Fitzgerald 译者 ...

  2. 强化学习-动态规划_强化学习-第5部分

    强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...

  3. 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类

    深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...

  4. 强化学习-动态规划_强化学习-第4部分

    强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...

  5. 日语学习心得_日语学习资料

    日语学习心得 现在的学习资料越来越丰富,音视频配合,学习起来比较有兴趣,每次都是尽量学到疲倦得不行.想到掌握一门外语的重要性,拼了... 在网上还收录了一些学习资料 新编日语 点击下载 新编日语1-4 ...

  6. 前端学习路线_前端学习路线图

    2020年全新前端学习路线图分享给大家! 学习是一个循序渐进的过程,是一件非常难得坚持的事情.如果真的想学习前端开发,一定要下决心! 我这里分享给你的前端学习路线图,希望对你有帮助,以下为2020年更 ...

  7. 前端初学者开发学习视频_初学者学习前端开发的实用指南

    前端初学者开发学习视频 by Nikita Rudenko 通过尼基塔·鲁登科(Nikita Rudenko) 初学者学习前端开发的实用指南 (A practical guide to learnin ...

  8. 深度学习去燥学习编码_请学习编码

    深度学习去燥学习编码 This morning I woke up to dozens of messages from students who had read an article titled ...

  9. 深度学习试题_深度学习秋招面试题集锦(一)

    这部分的面试题包含C++基础知识.python基础.概率相关.智力题相关.算法相关以及深度学习相关.后续还会不断补充,欢迎大家查阅! C++后台开发面试常见问题汇总 Q1 : C++虚函数表剖析. A ...

最新文章

  1. 《精解Windows8》——2.6 Windows应用商店
  2. 项目管理中网络图的看法和相关参数阅读说明
  3. YAML的扩展名是.yaml还是.yml?
  4. 6.exports、module.exports、export、export defalut
  5. android锁屏自动清理,安卓手机如何把锁屏自动清理关掉急
  6. 数据库:关于BULK INSERT 学习笔记(1)
  7. matlab画分散点图,Matlab怎么绘制离散图? matlab画散点图的教程
  8. python爬虫,爬取哔哩哔哩视频
  9. 永久域名存在吗?永久域名注册流程是什么样的?
  10. CS231n课程笔记:神经网络笔记 2
  11. 零售商店销售管理系统——第四周
  12. 计算机记账的优点,记账凭证的优缺点
  13. 奇葩需求系列-距离明天十二点倒计时
  14. Hark的数据结构与算法练习之快速排序
  15. java 空白图片_图片文件打印空白的解决办法
  16. SAP销售订单关联的生产成本核算
  17. python切片是什么意思_python中的切片是什么?(实例解析)
  18. Android快速SDK(1)基础工具库QuickBase
  19. 数据库的“读现象”浅析
  20. 计算机科学与技术班训,第九届校级先进班集体候选班级风彩展示(二)

热门文章

  1. 【二维码识别】灰度+二值化+校正二维码生成与识别【含GUI Matlab源码 635期】
  2. 一个连接态DRX下的paging接收专利
  3. 解决白盒、mock、性能、自动化测试脚本中的数据自动生成问题——Spock-Genesis
  4. 【RHEL】RHEL 7.6 用户和组管理
  5. Android — jimu Mirror
  6. echarts图表的x轴和y轴的配置
  7. 工程车辆监控管理系统方案
  8. 猿创征文 | Java知识【Java基础语法】
  9. Android 快捷方式 shortcuts 使用
  10. 2019-04-28 21:43:41.098 ERROR 2920 --- [nio-8888-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] :