您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

如何快速学习一门新的编程语言?

时间:2019-11-10 10:58:19  来源:  作者:

本文假定你至少已掌握了一门编程语言,然后,可以帮助你更好学习编程。

如何快速学习一门新的编程语言?

作者 | Bob Roebling

译者 | 弯月,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

上学的时候,一位老师在与新手开发人员分享经验的时候曾说:最难学的编程语言是第二门语言。

不要为此感到难过,这句话的意思其实是说,在你第一次学习编程时,就已经对编程有了一些先入为主的想法。你会在语法上做很多的联想和假设。因此,在学习第二门语言时,你必须首先忘掉这些假设。在你学习第二门甚至是第三门语言时,一定要牢记这一点。

1.剖析编程

现有的编程语言已经超过了5,000种,但是TIOBE指数只列出了前250种语言。而排名在前20的编程语言都拥有相似的标准库,这绝非偶然。

我认为思考编程的最佳方法是,剔除所有的“多余部分”,剩下的就只有必需品了。

2.基本组成部分

每种语言的每个方面都可以归结为真与假。为什么?电的工作方式就是这样:要么有电,要么没电。内存以0和1的形式存储值,这个最基本的单位叫做比特,而比特要么为真要么为假。

8比特等于一个字节,足以表示ASCII表中的任何字符。这些比特以特定的顺序翻转,以提供字符的十进制表示形式。计算机知道如何将这种表示形式转换为字母。

如何快速学习一门新的编程语言?

基本的二进制表示形式,表示了单词Hello。

理解这个概念后,后面的内容就很好理解了。
 

3.工具

所有语言中的这些工具都是相同的,你可以按照任意顺序学习,但是我通常会采用以下顺序:

变量

这似乎很简单,但话说回来,如何创建变量呢?

运算符

什么是运算符,如何使用?你明白基本的数学运算符,但是你明白逻辑运算符吗?“AND”运算符的正确拼写是“and”还是“AND”,还是使用诸如“&&”之类的符号?

条件语句

出人意料的是,我写的最受欢迎的Swift和Python文章都与决策有关。接下来,你需要知道如何在程序中做出决定。你学习的语言使用的是传统的“ if/else if/else”,还是像Python一样使用“ if/elif/else?你的语言是否带有“switch”或“guard”语句?

循环语句

如何遍历重复的任务?你学习的编程语言否包含for循环、while循环、do-while循环或for-each语句?

函数

是否可以创建函数?如果可以,那么该怎么创建?如何在这些函数中包含参数?你是否知道如何正确使用函数才能节省时间,并减轻你的工作负担?

类和结构

这种语言是否有类或结构的概念?这个问题听起来有点愚蠢,但有些语言要么没有,要么只有一种。如果有,那么该创建类或结构?类是否需要构造函数或初始化方法?

错误处理

错误是不可避免的。当出现错误时,这种语言是否拥有强大的错误处理解决方案,你又将如何使用呢?应该使用“ try/catch”、“ try/except”还是其他语句?是否还有其他子句,比如能进行其他处理的“else”或“finally”?

测试

如何测试代码?是否有用于测试的内置库,还是说你必须下载单独的工具?

大多数现代编程语言都包含上述工具。即使是稍旧的语言(例如COBOL)也拥有大多数工具,只不过它们有不同的称谓,例如pharagraph或copybook。

 

4.实战

在了解这些工具后,接下来要做的就是使用这种语言并编写应用程序。你可以通过阅读文档来学习一种语言,但是直到你编写一些应用程序之后,才能真正掌握这种语言。

编写应用程序能强迫你像那门语言的程序员那样思考。在参加了C的课程并阅读了有关C++的文档后说,我可以我了解C++,但是只有真正使用C++特有的功能编写应用程序后,才算真正掌握了C++。

二十一点(Blackjack)是一个不错的入门项目。二十一点需要用到变量、运算符、条件、循环(根据玩家的数量)、函数,类/结构和错误处理。你还可以尝试潜在故障的测试用例,例如牌发完了等。

还有一些其他的入门项目,比如爬楼梯游戏、快艇骰子或老虎机等游戏。

如果想尝试更高级的内容,则可以尝试重新创建“大富翁”之类的游戏。多多思考游戏的机制,界面以文本为基础即可。

请务必记住,如果你不愿接受有难度的挑战(例如不去尝试二十一点中的双倍下注或拆牌功能),那么你对这种语言的理解就会很有限。

5.还有什么?

本文无法涵盖语言必须提供的所有内容。事实上,你可以利用上面介绍的工具编写任何内容,标准库中包含的其他功能只不过减轻了编程的负担。大多数标准库都包含相同的功能,因此在各个语言之间也享有相似的名称。

随着使用语言的次数增多,你可以从标准库中找到更多的信息,但是一定要先学习这些工具。

在使用某种语言的时候,你需要搞清楚语言本身的优缺点。这可以帮助你决定针对某个特定的问题应该使用何种语言。

如果你需要快速进行一些数据科学研究,那么可以参考Python或R的几个包。如果你需要快速编写一个服务,那么可以考虑C或Go。如果你需要Web服务器,则可以考虑JAVA或Python。

光靠看书或文章不足以学好一门编程语言,你需要真正的实战。

学习新语言是一种挑战,祝你好运!

原文:https://medium.com/better-programming/how-to-learn-any-new-programming-language-quickly-94996895669b

作者:Bob Roebling,高级系统管理员和技术传播者,拥有多种编程语言的背景。

本文为 CSDN 翻译,转载请注明来源出处。

【END】



Tags:编程语言   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
即使在安全技术取得进步之后,网络犯罪仍在不断增加。据统计,网络犯罪每分钟给企业造成约 290 万美元的损失。主要是因为新技术不断涌现,难以维护安全。随着网络威胁的增加,网络...【详细内容】
2021-11-04  Tags: 编程语言  点击:(40)  评论:(0)  加入收藏
作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调。也难怪有很多初学者会有疑惑,为什么会有这么多编程语言,我到底应该学什么语言...【详细内容】
2021-06-29  Tags: 编程语言  点击:(122)  评论:(0)  加入收藏
JavaScript是Web开发中最简单的面向结果的语言之一。该语言使数据的处理和计算成为一种方便。它还有助于将视觉效果添加到屏幕上。它是一种同时用于客户端和服务器端应用程...【详细内容】
2021-06-25  Tags: 编程语言  点击:(112)  评论:(0)  加入收藏
华为开发者大会已经结束不久,我想大家应该都知道鸿蒙系统是基于什么语言开发的了。实际上大部分操作系统的开发基本上离不开C/C++、汇编语言、Java这三种编程语言。不过,我相...【详细内容】
2021-06-24  Tags: 编程语言  点击:(171)  评论:(0)  加入收藏
经常在网上看到各种关于编程语言的争论,对于这个问题大家真是乐此不疲,但是从应用领域上来讲,每种编程语言都各有各的优势,今天黑马君就带着大家一起来盘点一下编程语言的应用领...【详细内容】
2020-12-16  Tags: 编程语言  点击:(197)  评论:(0)  加入收藏
在手机快没电时,管理软件往往会提醒我们关掉某些耗电量高的应用。可见,除了硬件厂商外,软件厂商也应该重视能耗问题。在这篇文章中,研究者分析了一下各种编程语言的能耗对比。...【详细内容】
2020-10-27  Tags: 编程语言  点击:(84)  评论:(0)  加入收藏
讨论当今10种最流行的编程语言的范围,优缺点> Image by Gerd Altmann from Pixabay 编程世界中大约有700种编码语言。了解每种编程语言的重要性以及它们如何影响我们需要执行...【详细内容】
2020-10-18  Tags: 编程语言  点击:(126)  评论:(0)  加入收藏
当今流行的编程语言,大多具备垃圾回收(Garbage Collection,以下简称GC)功能。它能够将不再使用的内存区域收回并重新分配。这一功能可以说,将程序员的注意力从内存的分配/释放工...【详细内容】
2020-09-25  Tags: 编程语言  点击:(53)  评论:(0)  加入收藏
首先文章并不是鼓励大家去成为黑客,毕竟这个用在错误的地方,您最终可能需要尝试牢狱之灾。因为有很多的编程语言我也不是很懂,所以借鉴了一些专业人员的看法。当然他们不是黑客...【详细内容】
2020-09-15  Tags: 编程语言  点击:(149)  评论:(0)  加入收藏
机器语言这个问题应该从机器语言是怎么工作说起的。在计算机的太古宙时代,在制造一台计算机之前,首先要做的是为它建造一座能够容纳它的大房子。然后还要配接上水电资源,因为它...【详细内容】
2020-09-10  Tags: 编程语言  点击:(76)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条