新手在开端学习编程时通常会问这个问题:
在学会了几门编程言语之后,许多开发者会问这个问题:
我将会在这篇文章里给出我的答案。不过,比得到答案更重要的是:把握学习新编程言语的才能。
授之以鱼不如授之以渔关于一个编程内行来说,学习新的编程言语应该很简略。他们只须要一个周末乃至是几个小时就能够开端用新学的编程言语写代码了。优异的程序员能够为了完结某个使命运用任何一门编程言语。究竟,编程言语仅仅东西。
话是没错,不过更重要的你要学会“怎样学习新的编程言语”,而不只仅学会某一门详细的言语。要把握“学会一切编程言语”的才能,你不须要是一个天才,你要做的是把握编程言语的中心常识,并知道所以,代码实际上便是你传达给人类和估算机的“音讯”。这也是在规划和完结编程言语时须要考虑的权衡点。由于:一些最佳实践。
下面让我来详细解说一下。
假如把编程言语比作轿车要记住,编程言语仅仅东西,它们也是由程序员创造出来的。国际上有几千种编程言语,其间只要20多种在IT界里被广泛运用。假如你略微想一想,就会发现这些编程言语有一些共同点。
咱们以轿车为例,国际上有很牌子的轿车。有些车子紧凑但动力十足,有些车子粗笨开得慢,不同牌子的车子具有不同的驾驭体会。
假如你知道怎样开其间一种车型,也就知道怎样开其他大部分车型,虽然它们的牌子不相同。
为什么这么说呢?由于不同牌子的车子有一些共同点——它们都有发动机和轮胎。它们的效果都是相同的:把你送到目的地。
编程言语的效果是协助程序员表达主意。
为什么会有这么多编程言语编程言语是一种表达东西,包含了两个方面:
向其他程序员表达主意,这样他人就能够了解你写的代码,并一同参加代码保护。
把你的主意传达给估算机(经过编译器或许解说器),让估算机履行你的指令。

所以,代码实际上便是你传达给人类和估算机的“音讯”。这也是在规划和完结编程言语时须要考虑的权衡点。由于:
硬件和估算机言语在开展演化。一般来说,编程言语应该越来越简略运用,在表达主意方面越来越强壮。
跟着估算机运用越来越广泛,越来越多的范畴须要运用估算机,所以不同的编程言语被创造出来,用于处理不同范畴的问题。
不同的编程言语代表了不同的思想风格。
不同的编程言语有不同的语法和特性,但它们都是图灵齐备的。浅显地说便是:一切的编程言语都能够用来完结恣意一种算法。
当然,你不须要学会一切的编程言语,但学会的编程言语越多,就越简略为要完结的使命挑选适宜的言语。
编程言语根底简直一切的编程言语都包含了几类元素,它们都与“笼统”有关:
数据类型和数据笼统;
操控流程和操控笼统;
底层笼统;
对特定范畴的弥补和笼统。
编程言语有许多公共特性,因而,咱们能够学会一切编程言语的首要原因是:编程言语的概念其实是很有限的。常用的编程言语概念不会超越15个:
历程;
递归;
静态类型;
动态类型;
类型揣度;
lambda表达式;
面向目标;
废物收回;
指针;
连续性;
元编程;
宏;
反常。
编程言语的概念根本上是不怎样变的,就像规划准则相同。
编程言语的作者们彼此学习主意,仅仅完结不相同算了。有时期,咱们能够说言语C是言语A和B的儿子,那么整个编程言语的家谱或许像这样:

了解好这些概念,不只能够帮你快速学会编程言语,还会让你写出更好的代码。例如,函数式编程言语和历程式编程言语的代码风格和笼统方法是十分不相同的,假如没有领会到它的要点,或许就写欠好代码。
专心在言语概念上,而不是语法
因而,咱们要学习编程言语概念,但该怎样学呢?
我主张去了解某个言语概念或特性要处理的问题是什么,它有哪些益处和缺乏,并且最好能够知道它是怎样完结的。
咱们以GC为例,那么榜首问题便是:GC是什么东西?
在网上搜一下,能够找到这个维基百科的解说。GC是用来处理内存办理问题的,能够削减程序的内存过错。有了GC,代码写起来更简略了,由于咱们不须要手动办理内存,但这是以献身功能为价值的。假如你的编程言语运用了GC,要注意GC是怎样帮你处理内存的。
随后,你须要知道GC的作业原理。它们运用了什么算法?GC有许多种,并且它们的品种还在不断开展演化中。
开端学习新的编程言语正是学习编程言语概念的一个好时机。例如,假如Ruby是你的榜首门面向目标编程言语,就能够借这个时机深化了解一下面向目标编程的长处和缺乏。
对面向目标编程有了很好的了解,再去学习其他面向目标编程言语就会简略得多。
自己创造或完结一门编程言语
假如语法不是很杂乱,要完结一门编程言语并不须要做太多作业。能够看看这个项目,任何一门言语都能够被用来完结Lisp。8cc是C言语的一个编译器,假如你想自己写一个编译器,能够参阅这个项目。
除了这些,还有一些书能够看:
《编程言语方法》介绍了许多种解说器,《编程言语编译器实践》也是一本合适用来学习编程言语的书。
学习一门新言语的过程假如你遵从以下这些过程,就能够快速“学会一切的编程言语”。
榜首步:了解这门言语的规划理念和通用的言语特性
例如,假如你要学Ruby,那就先看一下Ruby有什么特别的?
让咱们更深化地看一下:
那么,在学习Ruby之前,须要了解的要点是:
Ruby专心于易用性和功率,代码简略阅览;
Ruby是解说履行的,所以运用了GC,也便是说关于某些使命,功能或许会是个问题;
在Ruby中,一切东西都是目标,所以它是面向目标编程言语,并且是纯面向目标的;
Ruby很灵敏,咱们能够从头界说它的一些东西。
了解这门言语最重要的特性,包含它的长处和缺乏。
第二步:经过教程或书本学习语法和最佳实践
在第二步,你须要把握语法、根本的IO、调试东西和单元测试。
假如你刚开端学习编程,最好找那种“威望攻略”之类的书本,比方言语作者写的书,或许在网上书店查找这门编程言语,找到好评如潮的书。
假如你是个编程内行,只须要找一些容易的攻略或示例代码就能够了,能够看看这个。
记住,在学习语法时,你须要动手写代码,不要仅仅复制黏贴。你能够在这个网站上操练写代码,有人会审理你的代码,并免费为你供给主张。
第三步:运用新学的言语写更多的代码
现在,你须要运用新学的言语开端一个项目,包含与这门言语有关的生态系统、东西和库。你能够从容易的开端,比方一个猜数字小游戏、容易的网上书店或许TODO运用程序。在GitHub上能够找到许多相似的项目。
第四步:了解言语的完结细节
这一步并非都是必需的。不过,有寻求的程序员对编程言语的完结细节会感兴趣。有时期,由于对编程言语的完结细节不是很了解,简略写出bug。

好吧,现在咱们来答复这个问题。这个问题的答案取决于许多要素,但容易地说便是:
1:有人教你吗?或许说你在上编程言语课程吗?假如你的教师要你学习C言语,那么C言语便是你的榜首门须要学习的编程言语,由于有人教你,你还有同学,学习起来会更简略。
2:你计划用它来做什么?假如你要开发Web运用程序,就学习JavaScript/Python/Ruby。假如你要开发游戏,就学习C++。假如你要处理数据,就学习Python/R言语。假如你要开发AndroidApp,就学Java/Kotlin。
3:你须要用它来找作业吗?假如是这样,依照岗位的要求来学就好了。
哪一种编程言语是最好的?
这个也取决于实际状况。每一门编程言语都有自己的长处和缺乏。合适用来处理一切使命的编程言语是不存在的。假如存在,咱们只须要学习一门就够了,不是吗?记住,这个国际上没有万灵丹。
关于我个人而言,我最喜欢的言语是C言语/Ruby/Lua/OCaml。
有人说,在把握5门编程言语之前,不要把自己当成高档程序员。当正如之前所说的,不要专心于学习更多的编程言语,而是试着学习更多的编程言语概念和规划准则。
假如你在作业中运用的是结构化的编程言语,为什么不试着学习一门函数式编程言语?假如你的言语是动态类型的,为什么不试着学习一门静态类型的言语?
本文暂无评论 - 欢迎您