0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

学习编程与武功绝学

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-07-05 10:06 次阅读

学习编程与武功绝学

武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。

如果编程语言是一门武功绝学,各语言分别是哪门武功绝学呢?

汇编语言

汇编语言 - 易筋经

汇编语言是计算机提供给用户的最快最有效的语言,也是能够利用计算机的所有硬件特性并能够直接控制硬件的唯一语言。采用它编写的程序具有存储空间占用少、执行速度快的特点,这些是高级语言所无法取代的。通常用在最底层的程序优化,硬件操作或嵌入式编程的场合,已经很少有人直接编写汇编。

《天龙八部》中扫地僧练的就是少林派的独家秘法易筋经。扫地僧除了扫地之外,做的唯一一件事,就是参悟易筋经,几十年的修为,练就一门绝世武功,高深莫测,无坚不摧,高效,无招胜有招。

C 语言

C 语言 - 九阳神功

C 语言是一门面向过程的计算机编程语言,与 C++Java 等面向对象编程语言有所不同。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C 语言主要用途除了实现编程语言底层功能,还应用在实现操作系统,还在通讯领域也有很大的用武之地。虽然相对用来开发应用层面稍微显得笨拙一点,但是在讲究效率的底层发挥空间非常巨大。

C 语言高效、灵活、功能丰富、表达力强、作为一门基础的底层语言与九阳神功偏内功是一致的,九阳真经着重内力,不重招法,里面阐述的其实也主要是“刚柔并济”的道理。一代武当宗师张三丰,就是以九阳内功为基础,才创制了武当一脉功夫。所以学好 C 语言,有强大的内功后,再学习其他语言就会相对轻松。

C++

C++ - 九阴真经

C++ 是 C 语言的继承,它既可以进行 C 语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。与 C 语言相比 C++ 增加了以下方面:

  • 类型检查更为严格
  • 增加了面向对象的机制
  • 增加了泛型编程的机制(Template)。
  • 增加了异常处理。
  • 增加了运算符重载。
  • 增加了标准模板库(STL)。

如果 C 语言是偏内功的九阳神功,那么 C++ 无异于《九阴真经》,两者都是很基础的,并且两者间有近缘,这两门掌握精通之后天下武学皆能容易掌握。。

《九阴真经》偏重招式,威力强大、博大精深,包含无数神奇招术(内功、轻功、拳、掌、腿、刀法、剑法、杖法、鞭法、指爪、点穴密技、疗伤法门、闭气神功、移魂大法等等),诡秘莫测,义理艰深难学,C++ 同样包含很多内容,还在不停的延申,复杂、强大、百科全书式的语言、在大规模项目面前几乎无其他语言可及。

C++ 跟《九阴真经》一样,有很多误区容易陷入,比较突出的问题就是内存泄漏,如果使用不当,很容易落得跟周芷若、欧阳锋、梅超风等一样走火入魔。

java

java - 小无相功

Java 是一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java 可以编写桌面应用程序、Web 应用程序、分布式系统和嵌入式系统应用程序等。

小无相功是金庸武侠小说《天龙八部》中「逍遥派」的一门内功,威力强大。只要身具此功,再知道其他武功的招式,倚仗其威力无比,可以模仿别人的绝学甚至胜于原版,没有学过此功的人很难分辨。这一特点与 Java 的分布式、解释性、可移植性、多线程、动态执行类似。

Java 体系庞大又提供很多网络技术的支持,正如小无相功为根基运行少林七十二绝技,而jvm体系又如同逍遥派体系。门下弟子众多又出类拔萃,名声显赫,博采众长,独步天下。

python

python - 太极

Python 是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。可以应用于以下领域:

  • Web 和 Internet开发
  • 科学计算和统计
  • 人工智能
  • 桌面界面开发
  • 软件开发
  • 后端开发
  • 网络爬虫

Python 语言的简洁性、易读性与太极入门简单类似,但是要达到一定高度也需要长期锻炼,同样达到的效果也极高,精通后威力也巨大,可以以柔克刚,与太极一样 Python 速度慢。

Go语言

Go语言 - 北冥神功

Go(又称Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

Go 的语法接近 C 语言,但对于变量的声明有所不同。Go 支持垃圾回收功能。

与 C++ 相比,Go 并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。

GO 语言的关键特性主要包括以下几方面:

  • 并发与协程
  • 基于消息传递的通信方式
  • 丰富实用的内置数据类型
  • 函数多返回值
  • defer机制
  • 反射(reflect)
  • 高性能HTTP Server
  • 工程管理
  • 编程规范

语言容易上手,解决了并发编程和写底层应用开发效率的痛点,有 Google 这个世界一流的技术公司在后面支撑,杀手级应用 Docker 的生态圈在这几年完全爆棚。所以,Go 语言的未来是不可限量的。可能会吞食很多 C、C++、Java 的项目。

北冥神功,金庸小说《天龙八部》中「逍遥派」最高武学,练成北冥神功后,全身每处穴道皆可吸人内力,且兼容天下武功。剧毒不侵。强凶霸道,随手攻击便有莫大威力。真气护体防御大增,受到攻击时反震敌人。速度大增。这些特点与 Go 语言速度极快、性能强、效率高、先进的并发支持模型和丰富的标注库有类似的地方。

object-c

object-c - 独孤九剑

Objective-C 感觉是 C 语言体系中比较出色的大师兄,然后自立门户,不过还会 C 语言,Objective-C 是一种在C的基础上加入面向对象特性扩充而成的编程语言,可以把 Objective-C 看成是 ANSI 版本 C 语言的一个超集,它支持相同的 C 语言基本语法,同时它还扩展了标准的 ANSI C 语言的语法。

独孤九剑在武功体系里比较独特与 object-c 是苹果开发软件的语言类似,与 object-c 类似风清扬的独孤九剑剑法同样潇洒、优雅、进攻大于防守。

JavaScript

JavaScript - 吸星大法

JavaScript 直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。动态性和跨平台性强。

JavaScript的优势:

  • 快速的终端反应:Java 脚本为客户端编写,不需要服务器端支持就可运行。也不需要在客户端被编译提高速度优势。在用户电脑上作为脚本执行,依靠任务,结果几乎是立即完成的。
  • 简洁性:JavaScript 很容易学习和实现。提供大量的预编制的功能性对象代码,使得开发一个满足用户需要的脚本变得轻而易举。
  • 用途广泛:JavaScript 和其他语言可以很好的交互,并且广泛应用于各个领域。

由于 Javascript 的发展非常快,Javascript推出一年半之后,国际标准就问世了。过早的标准化,Javascript 的规格还没来及调整,就固化了。设计缺陷还没有充分暴露就成了标准。例如:

  • 不适合开发大型程序,没有名称空间,很难模块化;允许同名函数的重复定义,后面的定义可以覆盖前面的定义,很不利于模块化加载。
  • 非常小的标准库,只能完成一些基本操作,很多功能都不具备。
  • 全局变量难以控制。
  • 数组和对象的区分,由于 Javascript 的数组也属于对象(object),所以要区分一个对象到底是不是数组,不是很清晰。

吸星大法,出自金庸的武侠小说《笑傲江湖》,是日月神教教主任我行修习的武功,任我行仗以威震江湖的绝学。修炼者有任我行、令狐冲,唯一害处是有内力反噬之险。同为吸取别人内力的一流武功。给人的感觉就是北冥神功是正版,化功大法是盗版,吸星大法是删减版。

JavaScript 如同吸星大法 用好了神奇,能最简单实现目的,标准有删减的缺陷,用不好控制,还可能反噬。

C#

C# - 蛤蟆功

C# 是微软公司发布的一种由 C 语言 和 C++ 衍生出来的面向对象的编程语言、在继承 C 语言 和 C++ 强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C# 综合了 VB 简单的可视化操作和 C++ 的高运行效率,以 .NET 框架类库作为基础,拥有类似 VB 的快速开发能力,完全面向对象和类型安全。

由于 C# 是后生,所以其很多语法都是其它语言的改进。从整体看,C# 语法比 java 更优雅。支持事件、委托、属性、Linq等一系列让业务开发更简单的功能。

仅能运行在Windows平台)使其渐渐被排斥于主流之外。如今偏居一隅,难以影响中原大势。

蛤蟆功,欧阳锋独创,成为南宋时期天下武林五大高手之一,号称西毒。是一门极厉害的功夫。威力足以跟降龙十八掌打成平手,精神出问题的欧阳锋和洪七公一战也能打成平手,两人内力耗尽最终死在华山上,可见蛤蟆功的威力。

与蛤蟆功一样,C# 功力深厚,刚出现时风光无限,但在 .net 庞大的类库下也显得有些臃肿,再加上仅能运行在 Windows 平台所以发展相对缓慢,出现了很多看不起 C# 的声音,如同蛤蟆功不受待见一样。

PHP

PHP - 降龙十八掌

PHP 实用性强,跨平台强,效率高,容易部署,完全开源,支持几乎所有的流行的数据库及操作系统。

PHP 是在服务器端执行的脚本语言,独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。利于学习,使用广泛,专注于 Web 开发,写中小型网站后台的首选。PHP 主流框架依然基于 MVC 模式,但也在不断地创新,比如 Codelgniter 框架,性能高、速度快,适用于共享主机;Seagull 则功能更加强大,代码库的标准化和模块化更高,同时也有较多的文档提供支持。

缺点:

  • 对多线程支持不太好,大多数时候只能简单的模拟去实现的。
  • 语法不太严谨。
  • PHP的解释运行机制繁琐。

每当有编程语言之争时,总有人说“ PHP 是世界上最好的语言”,当然,也有很多批评的声音,没有一种语言是被所有人接受,影响 PHP 声誉可能和 PHP 薪资有关,从“ PHP 是世界上最好的语言”这一点来说勉强与被扫地僧称为天下第一的降龙十八掌匹配。

侠客 - 程序员

如果把编程语言比喻为武功绝学,那么一代大师都是很牛逼的程序员。

在武侠小说中,张三丰是位武学奇才,技击之术冠绝天下。如果放到现在来看,张真人的角色很可能是个天才程序员。师从觉远大师,学习了九阳神功,如果是程序员就是精通 从语言这门偏内功的语言,对以后的发展至关重要。后来张真人又学习了很多其他武功,自创了《太和功》、《九转玄功》、《纯阳功》等内息功法,是一位编程能力很高,创新能力不可小觑的程序员。

在武侠小说中,绝顶高手,都不止会一门武功,天下之术,皆为我用,但是绝对有一门武功达到炉火纯青的地步,作为程序员不要想着集成和借鉴别人的东西,自己也需要“练武”。

代码的世界,也是江湖。对编程思想理解越透彻,内功便深厚,多掌握一门语言,便是多了一门武艺。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7602

    浏览量

    136363
  • 编程
    +关注

    关注

    88

    文章

    3600

    浏览量

    93629
  • 编程语言
    +关注

    关注

    10

    文章

    1940

    浏览量

    34637
收藏 人收藏

    评论

    相关推荐

    4G模组SD卡接口编程:深度学习

    今天我们需要深度学习的是4G模组SD卡接口编程,以我常用的模组Air724UG为例,分享给大家。
    的头像 发表于 11-20 23:14 144次阅读
    4G模组SD卡接口<b class='flag-5'>编程</b>:深度<b class='flag-5'>学习</b>

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的机器
    的头像 发表于 11-16 01:07 285次阅读
    什么是机器<b class='flag-5'>学习</b>?通过机器<b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU支持的编程语言有哪些

    NPU(Neural Processing Unit)是一种专门为深度学习和人工智能应用设计的处理器。NPU支持的编程语言通常与它所集成的平台或框架紧密相关。以下是一些常见的编程语言和框架,它们可以
    的头像 发表于 11-15 09:21 458次阅读

    Orin芯片的编程语言支持

    语言支持 Orin芯片支持多种编程语言,以满足不同开发者的需求。其中,C/C++和Python是两种广泛应用的编程语言。C/C++以其高效和灵活的特性,在底层开发和系统级编程中占据重要地位。而Python则以其简洁易读和丰富的库
    的头像 发表于 10-27 16:45 216次阅读

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速深度学习模型的案例: 一、基于FPGA的AlexNet卷积运算加速 项目名称
    的头像 发表于 10-25 09:22 168次阅读

    如何学习ARM?

    、寄存器、内存管理单元(MMU)、中断控制器等方面的知识。 3.学习编程语言和工具: 掌握一门与 ARM 处理器兼容的编程语言是必不可少的。C/C++ 是最常用的编程语言,可以使用它
    发表于 10-11 10:42

    仓颉来啦,辟谣:不是中文编程

    体验。同时思考在大模型浪潮下 AI for PL、PL for AI 的形态 学习路线 仓颉白皮书 学习仓颉语言 仓颉编程语言语言规约 学习仓颉应用开发 开发尝鲜 获取内测资格后,可以
    发表于 09-03 08:50

    按照这样学习C语言,成为卷王不是梦!

    在计算机编程领域,C语言被誉为一种强大而灵活的编程语言,掌握好C语言不仅可以让你轻松驾驭各种编程任务,还能够为你的职业生涯打下坚实的基础。但要成为C语言的“卷王”,需要一定的学习方法和
    的头像 发表于 07-06 08:04 301次阅读
    按照这样<b class='flag-5'>学习</b>C语言,成为卷王不是梦!

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习算法原理,包括线性回归、逻辑回归、支持向量机
    的头像 发表于 07-02 11:25 847次阅读

    如何提升嵌入式编程能力?

    如何提升嵌入式编程能力? 要提升嵌入式编程的能力,可以从以下几点学习: 1. 理解硬件:熟悉你正在编程的硬件平台,包括微控制器、处理器、内存、输入/输出设备等基础理论与应用。 2.
    发表于 06-21 10:01

    全球首辆插电混动汽车诞生地在西安揭牌

    比亚迪品牌及公关部总经理@不会武功武功李云飞在微博上热烈祝贺此举成功在西安落成,并表示西安以其深厚的历史和文化底蕴,成为比亚迪的重要基地。
    的头像 发表于 05-24 16:02 401次阅读

    PLC编程入门速成的基础知识与学习技巧

    学习PLC技术电路图是发展的基础,既然PLC可以取代继电器和接触器控制,那相应的基础电路原理是肯定要知道!
    发表于 03-31 16:09 1026次阅读
    PLC<b class='flag-5'>编程</b>入门速成的基础知识与<b class='flag-5'>学习</b>技巧

    机器学习如何助力芯片设计

    1959年,计算机游戏和人工智能的先驱亚瑟·塞缪尔(Arthur Samuel)将ML定义为“使计算机能够在没有明确编程的情况下学习的研究领域”。
    的头像 发表于 03-29 10:03 498次阅读

    WiFi模块助力少儿编程:创新学习与实践体验

    随着科技的飞速发展,少儿编程已经成为培养孩子们创造力和问题解决能力的重要途径之一。在这个过程中,WiFi模块的应用为少儿编程领域注入了新的活力,使得学习编程不再是单一的代码教学,而是一
    的头像 发表于 03-08 16:35 359次阅读

    PLC新手编程入门指南:从基础到实践的旅程

    在掌握了PLC的硬件接线后,您可以开始学习PLC的编程。首先,您需要了解一些基本的编程术语,如脉冲信号、时序图、寻址方式等。接下来,您将学习PLC的
    的头像 发表于 01-14 10:38 4442次阅读
    PLC新手<b class='flag-5'>编程</b>入门指南:从基础到实践的旅程