阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

成为多编程语言人才的诀窍你想知道吗

283次阅读
没有评论

共计 3320 个字符,预计需要花费 9 分钟才能阅读完成。

导读学习一种新的编程语言就像学一门新的语言。相信许多学习两门或多门语言的朋友都会认同,在双语或多语言间转换难免令人混淆。例如,我的母语是英语,在学校里参加了沉浸式法语课程。这一方面使我的英法双语都达到了十分流利的水平,一方面也对我英语的使用造成了意想不到的效果。

很长一段时间中,我都会在许多单词末尾加上“E”,或是在数字后面加上美元符号(32$ 而不是 $32),这些要求都只存在于法语当中,而非英语。经过一段时间的练习,我终于不再混淆,现在能够英法双语无缝切换了。

然而,这种情况又一次发生了——我试图从 C# 和 Java 转换到 Python。大学时,我所有的课程都围绕着 C# 这样严谨的编程语言展开。如今我准备进军数据科学,现在正在学习 Python。

对于喜欢有条理有组织的事物的人来说,Python 简直是一个噩梦。对我而言,分号、花括号和类型变量严重不足,就好像我正在学习一门新语言,而它与我的母语 (C#) 截然不同。

学习相似的编程语言 (比如 C#,Java 和 JavaScript) 就像学习几种相似的语言。比如,因为我会法语,所以学习意大利语、葡萄牙语、西班牙语这些相似的语言也会比较容易。但我目前所掌握的语言却无助于学习编程语言(Python),因为它们在语义上完全不同,就像我会法语也无助于我学习冰岛语或普通话。

要想熟练掌握多种编程语言,你需要用到一些掌握多种自然语言时的基本知识和技巧。

首先学习静态类型和句法特定的语言。

几乎每篇标题为“我应该先学习哪种编程语言?”的文章都认为 Python 是最适合初学者的编程语言。我同意 Python 句法简单,结构灵活,适合入门,但却无法学到一些后期必要的编程基础知识。因此,我要提的建议似乎听起来很不合理:首先学习静态类型和句法特定的语言。

与其学习温和的入门级编程语言,不如学容错率极低的编程语言,一旦漏掉分号就会立马出错,一旦数据类型错误就会停止运行。

静态类型的语言

静态类型的语言 (例如 C# 和 Java) 需要将数据类型分配给它们的变量。数据类型包括字符串、整数和布尔值等等。变量在初始化时必须与所分配的数据类型绑定,并且不能更改,否则运行前代码将会出错。

动态类型化的语言 (例如 Python) 则无需在变量初始化时分配数据类型,而是在程序编译并运行后,再检查变量类型是否正确。

通过学习静态类型变量,学习者将对以后需要使用的数据类型有一个基本的了解。例如,JavaScript 是一种简单易懂的编程语言,能轻松结合整数和字符串。

但如果不了解数据类型,就可能在程序出错时遇到问题。通过严格的学习和对数据类型的深入了解,就能在学习带变量的动态类型语言时省去不少麻烦,从而即时更改数据类型。此外,先学静态类型的语言有助于增强编码过程的逻辑性。

语法特定的语言

学习新的自然语言时,首先要学习字母,然后学习单词、句子结构、标点符号和语法。学习编程语言的过程也是类似的,因为每种语言都有特定的语法,必须使用它才能让代码正常工作。换句话说,每种编程语言都有特别的遣词造句、形成段落的方式。

有些语言 (例如 Java 和 C#) 的语法非常具体,哪怕只少了一个分号 (通常位于代码行末尾,类似于句子末尾的句号,放在句子的末尾以表示句子结束),都会导致无法运行。而有些语言(例如 Python) 则几乎没有硬性的语法规则。例如,与 C# 相比,Python 中需要用到的分号和花括号都相对较少。

先学语法特定的编程语言有助于充分了解写代码时需要用到的结构,比如缩进结构、代码行必须以分号结尾、函数要加花括号等。这能使写出的代码更简单易懂,条理清晰,方便维护调试。而且,其还可以提供一个写代码的模板,方便在学习其他语法不那么严谨的编程语言时使用。

总之,先掌握严格的规则,将来定会收获回报。

熟练掌握第一语言

如果世界上每种语言都懂一点,却没有一种能说得流利,那你将会很难生存。既没有庞大的词汇量,也无法理解别人的话,甚至无法使用谷歌翻译与来自异国的人交流,最后只会使双方困惑不已。

编程语言也是如此。与其蜻蜓点水地学习很多种语言,却全都浅尝辄止,不如熟练掌握初学的那门语言,或是专攻一门。这并不是说任何人都必须先精通一种编程语言,然后才能开始学习另一种。但在尝试学习新语言之前,要对先一种语言的编程概念有深刻的了解。

为什么呢? 学习一种语言的代码基础时,可以假设另一种语言大致相同。例如,每种编程语言中的 if/else 的作用都相同,唯一的不同就在于怎么表示它。例如,C# 中的 if / else 必须位于花括号中,而 Python 中的 if / else 没有花括号,而是用冒号和缩进来分隔。但根本上说,if / else 的句式在两种语言中的作用相同。

就像用母语说“你好”和“再见”一样。一旦理解了含义,明白了如何使用,就可以学会用多种不同的语言说“你好”和“再见”。这几个词在不同的语言中代表相同的含义,唯一的区别就是写法不同。

通过了解编程语言是单级还是多级、有无特定的变量命名法,或是否要求目标导向型结构,学习者可以更加熟练地掌握第一语言以及后来学习的其他语言。精通一种语言后,就能够越来越快地了解语言之间的细微差别。

编码不要带“口音”

用自然语言交流时,即使别人口音很重,通常我们也能理解。例如,虽然我说法语口音很重,但法国人也能听懂。这是因为我遵循了法语的惯例,所以即使句子结构弯弯绕绕或单词念错,他们也能理解我想要传达的内容。

要掌握一门新的编程语言,不能把它当作一门“已经会了的语言”来进行编码,否则很可能事与愿违,或者效率极低。

我就曾掉进过这样的陷阱。大学时我最出色的项目以 Angular 作为系统前端,我当时很熟悉 JavaScript,我知道 Angular 与 JavaScript 相似,于是尝试套用 JavaScript 的方法,用 Angular 编码。

糟糕的是,这种“带口音”的编码成果欠佳,这可能是不了解 Angular 的规则所致。我的代码全部用 Angular 编写,但却带着浓重的 JavaScript“口音”。不要和我犯一样的错——遵循新语言的规则,不要带“口音”编码。

只有使自己沉浸在新语言的环境中,强迫自己理解所有特殊规则,才能正确使用新语言进行编码。这样就能在掌握多种语言的同时不带“口音”。

例如,如果一个英语母语者决定速成五种新语言,最终他也许能说俄语、意大利语、斯瓦希里语、意第绪语和阿拉伯语,但出口都带着浓厚的英语口音和习惯。相反,如果去学习俄语讲话的习惯,那么俄语母语者就能听懂。其他语言也是如此。如果用典型的英语句式说斯瓦希里语,那肯尼亚人可能会听不懂。

花些时间阅读编程语言的文献,去感受某种语言的习惯。这不仅有助于掌握这门语言,也使你在团队项目中更有价值,让其他也会这门语言的人对你抱有期待。

最初你可能不得不强迫自己不带“口音”地编码,但当你能流畅切换两种语言之时,就是努力得到回报之日。

本文概述了我在学习多种编程语言过程中的一些窍门。这些小诀窍对我帮助很大,但为了尽善尽美,这里也要提出几个更常规的方法:

  • 阅读相关语言的文献、阅读源代码、把用来做例子的代码用新语言写出来、列一份有关新语言的备忘录,通过这些方法让自己完全沉浸在所学语言的环境中。
  • 利用各种资源 (例如 Youtube、Medium 和 StackOverflow) 学习编码语言的教程。要更勇于尝试,换句话说,学习新的编程语言需要主动学习。
  • 用所学语言把以前做过的项目再做一次(哪怕是特别简单的项目),并尽可能发挥它的用处。
  • 参加黑客马拉松、卡格尔比赛等需要用到所学语言的编程比赛。
  • 和熟知这门语言的人合作。我总是在搭档编程项目中受益匪浅。倾听他们在写代码时的思考过程,为了解编程语言的运作方式和原理提供许多启发。
  • 我能给出的最好的建议是持之以恒。学习一门新的语言很难,编程语言也不例外。不要因为有点难学就放弃这门语言。所幸网上有很多资源可供使用,能让学习过程更轻松自然一些。

    最重要的是,学习新语言时要尽可能利用手边的设备和工具。长此以往,不仅能帮助你更好地理解这门语言,也能让你成为更好的开发人员或数据科学家。

    阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

    腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

    代金券:在阿里云专用满减优惠券

    正文完
    星哥玩云-微信公众号
    post-qrcode
     0
    星锅
    版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计3320字。
    转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
    【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
    阿里云-最新活动爆款每日限量供应
    评论(没有评论)
    验证码
    【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

    星哥玩云

    星哥玩云
    星哥玩云
    分享互联网知识
    用户数
    4
    文章数
    19351
    评论数
    4
    阅读量
    8004478
    文章搜索
    热门文章
    星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

    星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

    星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
    星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

    星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

    星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
    我把用了20年的360安全卫士卸载了

    我把用了20年的360安全卫士卸载了

    我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
    再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

    再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

    再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
    飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

    飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

    飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
    阿里云CDN
    阿里云CDN-提高用户访问的响应速度和成功率
    随机文章
    星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

    星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

    星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
    星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

    星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

      星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
    多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

    多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

    多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
    星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

    星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

    星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
    星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

    星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

    星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...

    免费图片视频管理工具让灵感库告别混乱

    一言一句话
    -「
    手气不错
    零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

    零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

    零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
    星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

    星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

    星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
    自己手撸一个AI智能体—跟创业大佬对话

    自己手撸一个AI智能体—跟创业大佬对话

    自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
    手把手教你,购买云服务器并且安装宝塔面板

    手把手教你,购买云服务器并且安装宝塔面板

    手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
    星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

    星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

    星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...