TIOBE 官方最新发布了 7 月的编程语言榜单,而本月也是 TIOBE 榜单成立 20 周年,一起来看这个月榜单中有哪些最新变化吧?
— 01 —
C、Java 和 Python 争夺第一
回想 2001 年仅作为个人项目首次发布的 TIOBE 排行版,当时榜单前三甲为 Java、C 和 C++。神奇的是,即便 20 年过去了,这个排位也并没有发生大洗牌——7 月 TIOBE 排行榜前三名为 C、Java 和 Python,C++ 位列第四。
虽然与前两个月相比,Python 的排名从第 2 变为第 3,但本月榜单的前三名相差甚小:第一名的 C 与第三名的 Python 仅相差 0.67%。这前所未有的微小差距彰显了 C、Java 与 Python 之间争夺第一愈发激烈的战况。而哪种编程语言将最终赢得这场战争?考虑到 Python 近年来在蓬勃发展的数据挖掘和人工智能领域的市场领导地位,TIOBE 官方预测:继 C 和 Java 之后,Python 很大可能将成为第三个登顶 TIOBE 榜单的编程语言。
除了前三甲之间的激烈竞争,相比 6 月,本月 C++ 涨幅超过 0.5%,市场占比也在向前三名靠拢。除此之外,TOP 20 中还有一些值得关注的变化:
与 6 月榜单相比,Go 语言从第 20 名上升到第 13名;R 语言下滑 4 个名次,降为第 12 名;自 4 月起冲进 TOP 20 的上古编程语言 Fortran 上升到第 14 名。— 02 —
其他编程语言排名
下面列出了完整的 21-50 名,因为是非官方发布的,所以可能存在遗漏:
第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):
ActionScript, Arc, Awk, BBC BASIC, bc, Bourne shell, C shell, CFML, CHILL, CIL, CLIPS, Clojure, Eiffel, Emacs Lisp, F#, Hack, Icon, Inform, Io, J, JADE, Korn shell, Lingo, LiveCode, Maple, MEL, ML, Modula-2, MQL4, MS-DOS batch, NATURAL, Nim, NXT-G, Occam, OpenEdge ABL, Oz, Pony, PowerShell, Pure Data, REXX, Ring, RPG, Simulink, Smalltalk, Snap!, SPARK, Tcl, Vala/Genie, VHDL, X10— 03 —
Top 10 编程语言 TIOBE 指数走势(2002-2020)
详细榜单信息可参考TIOBE官网:
2021年TOP新书名人堂
Python编程快速上手
让繁琐工作自动化(第2版)
如果你曾经花几小时来重命名文件或更新成千上万个电子表格的单元格,你就知道这样的任务有多繁琐了。如果可以让计算机替你完成呢?
在本书中,你将学习利用Python编程在几分钟内完成手动需要几小时的工作,无须事先具备编程经验。通过阅读本书,你会学习Python的基本知识,探索Python丰富的模块库,并完成特定的任务(例如,从网站抓取数据,读取PDF和Word文档等)。本书还包括有关输入验证的实现方法,以及自动更新CSV文件的技巧。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python程序,自动化地完成很多繁琐的工作。
内容简介
本书是一本面向初学者的Python编程实用指南。本书不仅介绍了Python语言的基础知识,而且通过案例实践教读者如何使用这些知识和技能。本书的第一部分介绍了基本的Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。
《机器学习公式详解》
这是周志华教授“西瓜书”《机器学习》公式完全解析指南——“南瓜书”系Datawhale成员自学笔记,对“西瓜书”中250个重难点公式做了详细解析和推导(重难点公式覆盖率达99%),旨在解决机器学习中的数学难题。
这是一本机器学习初学小白提升数学基础能力的必备练习册——以本科数学基础视角对“西瓜书”里比较难理解的公式加以解析和推导细节,补充大量重、难点数学知识和参考材料,分享在学习中遇到的“坑”以及跳过这个“坑”的方法,对于初学机器学习的小白也能上手练习!
内容简介
周志华老师的《机器学习》(俗称“西瓜书”)是机器学习领域的经典入门教材之一。本书(俗称“南瓜书”)基于Datawhale 成员自学“西瓜书”时记下的笔记编著而成,旨在对“西瓜书”中重难点公式加以解析,以及对部分公式补充具体的推导细节。
全书共16 章,与“西瓜书”章节、公式对应,每个公式的推导和解析都以本科数学基础的视角进行讲解,希望能够帮助读者达到“理工科数学基础扎实点的大二下学期学生”水平。
每章都附有相关阅读材料,以便有兴趣的读者进一步钻研探索。本书思路清晰,视角独特,结构合理,可作为高等院校计算机及相关专业的本科生或研究生教材,也可供对机器学习感兴趣的研究人员和工程技术人员阅读参考。
数据结构与算法之美版
本书作者王争是前Google算法工程师,同时是微信公众号【小争哥】作者。本书来源于好评爆表的极客时间算法专栏,得到了超10万+读者的订阅,书籍内容更新超30%。
本书在GitHub上算法教程标星过万,并且涵盖20个经典数据结构与算法,100个真实项目场景案例,300多幅算法手绘图解,助力工程师解决项目中的实际算法难题。
本书结合实际应用场景讲解数据结构和算法,涵盖常用、常考的数据结构和算法的原理讲解、代码实现和应用场景等。
本书分为11章。第1章介绍复杂度分析方法。第2章介绍数组、链表、栈和队列这些基础的线性表数据结构。第3章介绍递归编程技巧、8种经典排序、二分查找及二分查找的变体问题。第4章介绍哈希表、位图、哈希算法和布隆过滤器。第5章介绍树相关的数据结构,包括二叉树、二叉查找树、平衡二叉查找树、递归树和B+树。第6章介绍堆,以及堆的各种应用,包括堆排序、优先级队列、求Top K、求中位数和求百分位数。第7章介绍跳表、并查集、线段树和树状数组这些比较高级的数据结构。第8章介绍字符串匹配算法,包括BF算法、RK算法、BM算法、KMP算法、Trie树和AC自动机。第9章介绍图及相关算法,包括深度优先搜索、广度优先搜索、拓扑排序、Dijkstra算法、Floyd算法、A*算法、最小生成树算法、最大流算法和最大二分匹配等。第10章介绍4种算法思想,包括贪心、分治、回溯和动态规划。第11章介绍4个经典项目中的数据结构和算法的应用,包括Redis、搜索引擎、鉴权限流和短网址服务。另外,附录A为书中的思考题的解答。
机器学习的数学
人工智能深度学习领域经典教程,AI程序员的数学参考书透彻理解机器学习算法,从数学层面搞懂核心算法原理的逻辑python程序讲解,众多专家学者力荐本书的目标是帮助读者全面、系统地学习机器学习所必须的数学知识。全书由8章组成,力求精准、最小地覆盖机器学习的数学知识。包括微积分,线性代数与矩阵论,**化方法,概率论,信息论,随机过程,以及图论。本书从机器学习的角度讲授这些数学知识,对它们在该领域的应用举例说明,使读者对某些抽象的数学知识和理论的实际应用有直观、具体的认识。本书内容紧凑,结构清晰,深入浅出,讲解详细。可用作计算机、人工智能、电子工程、自动化、数学等相关专业的教材与教学参考书。对人工智能领域的工程技术人员与产品研发人员,本书也有很强的参考价值。对于广大数学与应用的数学爱好者,本书亦为适合自学的读本。
程序员的数学基础课 从理论到Python实践
本书没有涉及数学领域的全部课题,而是从程序员的需求出发,精心挑选了编程所需的常用知识点,并实现学以致用;降低技术理解的门槛,让程序员更容易理解数学背后的逻辑,并对实际生产问题进行数学建模,进而设计出更有效的算法,编写出更优雅的代码;除了阐述理论知识,书中还提供了要通过大量实践才能积累的宝贵经验,让读者有机会亲自动手编写Python 代码,进而加深理解;并且提供源码下载。
内容简介
本书紧贴计算机领域,从程序员的需求出发,精心挑选了程序员真正用得上的数学知识,通过生动的案例来解读知识中的难点,使程序员更容易对实际问题进行数学建模,进而构建出更优化的算法和代码。
本书共分为三大模块:“基础思想”篇梳理编程中常用的数学概念和思想,既由浅入深地精讲数据结构与数学中基础、核心的数学知识,又阐明数学对编程和算法的真正意义;“概率统计”篇以概率统计中核心的贝叶斯公式为基点,向上讲解随机变量、概率分布等基础概念,向下讲解朴素贝叶斯,并分析其在生活和编程中的实际应用,使读者真正理解概率统计的本质,跨越概念和应用之间的鸿沟;“线性代数”篇从线性代数中的核心概念向量、矩阵、线性方程入手,逐步深入分析这些概念是如何与计算机融会贯通以解决实际问题的。
除了理论知识的阐述,本书还通过Python语言,分享了通过大量实践积累下来的宝贵经验和编码,使读者学有所用。本书的内容从概念到应用,再到本质,层层深入,不但注重培养读者养成良好的数学思维,而且努力使读者的编程技术实现进阶,非常适合希望从本质上提升编程质量的中级程序员阅读和学习。
UNIX传奇:历史与回忆
UNIX的诞生记与发展史,计算机先驱布莱恩·W.克尼汉继C程序设计语言后又一力作,讲述贝尔实验室的幕后故事,C/C++等重要发明的起源,探寻计算科学之光!
自1969年在贝尔实验室的阁楼上诞生以来,Unix操作系统的发展远远超出其创造者们的想象。它带动了许多创新软件的开发,影响了无数程序员,改变了整个计算机技术的发展轨迹。
本书不但书写Unix的历史,而且记录作者的回忆,一探Unix的起源,试图解释什么是Unix,Unix是如何产生的,以及Unix为何如此重要。除此之外,本书以轻松的口吻讲述了一群在贝尔实验室工作的发明天才的有趣往事,本书中每一个故事都是鲜为人知却又值得传播的宝贵资源。
本书适合对计算机或相关历史感兴趣的人阅读。读者不需要有太多的专业技术背景,就可以欣赏Unix背后的思想,了解它的重要性。
Python编程实战 妙趣横生的项目之旅
《Python编程实战:妙趣横生的项目之旅》基于Python语言,通过项目展示Python的奇妙应用,适合Python初学者学习。在本书中,你将使用Python编程语言模拟探索火星、木星以及银河系最遥远的地方,体验诗人的意境,了解高级的金融知识等。你还会学到各种各样的技术,如马尔可夫链分析技术、蒙特卡罗模拟、图像叠加技术、基因遗传算法等。与此同时,你还会学习一些模块的使用方法,例如pygame、Pylint、pydocstyle、Tkinter、python-docx、Matplotlib和pillow等。
《Python编程实战:妙趣横生的项目之旅》基于一些有趣的项目进行讲解,能够让读者在新奇的项目案例中体验学习Python的乐趣。此外,读者还能将自己所学的知识与实际的应用程序开发、数据库设计和解决实际问题联系起来,提升自己的项目实践能力。
学Python 不加班 轻松实现办公自动化
这是一本关于如何利用Python提高日常办公效率的书,书中凝聚了作者多年的实践经验和独特思考,旨在帮助读者准确、高效地完成大量高重复度的工作。
《学Python,不加班:轻松实现办公自动化》汇集了日常办公和处理文档时常见的问题,通过实例的演示与讲解,帮助读者灵活有效地使用Python处理工作中遇到的问题。全书共11章,涵盖Python的各种应用场景,具体包括文件管理自动化,网络信息自动获取,TXT、XLS/XLSX、DOC/DOCX、PPT、PDF、图片文件的自动化处理,模拟鼠标、键盘操控本地软件,自动化运行管理等。本书力图淡化编程中的抽象概念,贴合工作场景,注重实战效果,通过对Python技术的巧妙讲解,帮助读者成为高效率的办公室“超人”。
《学Python,不加班:轻松实现办公自动化》适合任何想要学习Python编程的读者,尤其适合缺乏编程经验的初学者。同时本书提供所有案例的源代码文件,方便读者边学边练,爱上Python编程。
数据结构 Python语言描述 第2版
本书用 Python 语言来讲解数据结构及实现方法。全书首先概述 Python 编程的功能—这些功能是实际编程和解决问题时所必需的;其次介绍抽象数据类型的规范、实现和应用,多项集类型,以及接口和实现之间的重要差异;随后介绍线性多项集、栈、队列和列表;最后介绍树、图等内容。本书附有大量的复习题和编程项目,旨在帮助读者巩固所学知识。
本书不仅适合高等院校计算机专业师生阅读,也适合对 Python 感兴趣的读者和程序员阅读。