深圳幻海软件技术有限公司 欢迎您!

从零到一百,如何快速学习新编程语言?

2023-02-27

本文默认你已经了解至少一种编程语言。一种也不会?别怕,文中的概念会帮助你从编程开始学起。在学校里老师常跟小芯说的一些东西,小芯可以分享给新手开发人员:最困难的编程语言永远是你将要学习的第二个编程语言。不要因为小芯分享的故事而垂头丧气——小芯故事的意思是,当你开始学习如何编程,你会对编程有预先的想法。

本文默认你已经了解至少一种编程语言。

一种也不会?

别怕,文中的概念会帮助你从编程开始学起。

在学校里老师常跟小芯说的一些东西,小芯可以分享给新手开发人员:

最困难的编程语言永远是你将要学习的第二个编程语言。

不要因为小芯分享的故事而垂头丧气——小芯故事的意思是,当你开始学习如何编程,你会对编程有预先的想法。最后,你会做出比理应更多的句法连接和假设,由此,在开始学习第二种编程语言时,你必须忘记上述假设。倘若你尝试学习第二种甚至第三种编程语言,你就应该把小芯说的牢记于心。

 

编程分析

世界上有许多编程语言,一下就能列举出5000多种,但编程语言排行指数列出了前250名,位于列表的前20名编程语言有相似的标准程序库,这不足为奇。

在小芯看来,剔除“素材资料”所有额外的事情是思考编程很好的方式,由此,你接触到的就只是跟编程有关的必要事情。

 

原子

每门编程语言的每个层面都可以用true和false来看待(归结为真假)。为什么呢?因为电流就是这样工作的——要么有电荷,要么没有。记忆以0和1二进制代码的形式存储价值,该比特(二进制信息单位)要么带电,要么不带电。

八个比特等同于一个字节,这足够你在ASCII表上列出任何一个字符。比特就是这样一种翻转顺序,这种顺序提供了十进制字符的表示方法,计算机能够把这种表示转换为字母。

 

 

(如何创建Hello一词的基本二进制表示)

了解这一概念的原因后,理解接下来的内容就比较容易了。

 

工具

工具都是一样的,虽然每个人学习这些工具的顺序可能不同,以下是小芯学习这些工具的顺序。

变量

这看起来非常简单,但认真来讲,你该如何创造变量?

算符

何为算符?怎么使用算符?假定你已有基本的数学算符知识,但逻辑算符是什么呢?“AND”这个算符是该被拼写为“and” 、还是“AND,”呢?又或是这个词运用诸如“&&?”这样的符号?

条件

令人吃惊的是,关于Swift和 Python两种语言,小芯读到最多的是与决策有关。下一步你需要了解的是如何在自己的程序里作出决定。你在尝试学习的编程语言会用到传统的“if/elseif/else”判断结构、还是一些诸如“if/elif/else?”更Pythonic的编程语言?你的编程语言有”switch” 或“guard”语句吗?

循环

如何循环执行重复的任务?该编程语言包含for循环、while循环、do-while循环还是for-each语句?

函数

可能创造出函数吗?如果可以,你会如何处理?如何把参数包含在函数内?了解如何运用这些函数会节省时间,使生活更轻松。

类别和结构

你学习的这种编程语言能理解类别和结构的概念吗?这听起来像是个蠢问题,但有一些编程语言确实没有,或者只有一种类别和结构。假如这种语言真的没有,那么又该如何创建类别和结构呢?这种类别需要用到构建函数或初始化的方法吗?

错误处理

错误不可避免。当出现错误,该语言有稳妥的处理问题的办法吗?这时你又会如何使用这种语言?是会用“try/catch”、 “try/except”还是别的办法?该编程语言有像“else” 或 “finally”这样允许选择差错的子句吗?

测试

怎样测试编码?是用已经建好的算法库还是必须下载独立的工具来测试?

所有这些工具都应该适用于最现代的编程语言,甚至是像COBOL这些较早的编程语言大部分也具备这些工具,但可能叫法不同,例如可能会被叫做段落或复写本。

 

逐步优化

一旦你理解这些工具,下一步你需要做的是使用工具然后编写一个应用程序。你可以通过阅读文献了解一门编程语言,但只有真正编写一些应用程序,才能了解该语言。

通过编写一个程序,你不得不像某程序员那样思考。小芯可以说自己知道C++这门语言,因为小芯上过有关课程,阅读过有关文献,但直到用C++这门编程语言的特有特征完成一个程序的编写,小芯才真正了解这门语言。

扑克牌的二十一点(Blackjack)是一个比较好的初学项目,它需要变量、算符、条件、循环(基于许多玩家)、函数、类别/结构以及差错处理。你可以把潜在故障包含在测试情况内,比如牌用完这种情况。

其他一些项目如射击(Shoots)、梯子(Ladders)、快艇骰子(Yahtzee)或自动售货机(SlotMachine)也是较好的初学项目。

对于一些进阶项目来说,可以尝试再创造一个像《大富翁》这样的游戏,多关注运作方式,使其基于文本运行。

面对困难的任务(例如跳过双下或分离blackjack的特征),如果偷懒,就只会限制自己对该编程语言的理解,记住这一点至关重要。

 

还有呢?

小芯知道,上述内容不是一门编程语言的必要要素。事实是,你可以用上述列举的工具编写任何东西,但包含在标准算法库内的附加功能会使你的编写更加容易。大部分的标准算法库都有相同的功能,所以你可以使用编程语言间类似的名称。

使用一门编程语言进行的工作越多,关于标准算法库就会发现越多,但一定要提前学习这些工具。.

当你用一门编程语言工作,要试着找出这种语言的优缺点,这些会帮助你了解针对特定问题选择使用特定编程语言。

需要快速做一些数据科学?去看些Python程序包吧。或需要编写一个快速服务?那就去看看C语言或Go语言吧。编写网页服务器?那就去看看Java或Python吧。

如果只看的话,小芯不会了解这些编程语言,而是通过运用来学习。

所以,这里小芯要布置任务啦,希望大家都可以挑战一下自己,去学习一门新的编程语言~