程序员的数学基础课 从理论到Python实践
3月份出版,出版后一直在新书排行榜中。就像书中前言所写“如果你只想当一个普通的程序员,那么数学对你来说并不重要。但是,如果你想当一个顶级程序员,梦想着改变世界,那么数学对你来说就很重要了。”当一个顶级程序员很重要,努力吧,程序员!
伽利略曾经说过,“宇宙这本书是用数学语言写成的”,数学是人类科学进步的重要基础,所以,你我都要怀着敬畏之心去学习、思考数学。编程的世界远不止条件和循环语句,程序员的人生应当是创造的舞台。
本书共分为三大模块:“基础思想”篇梳理编程中常用的数学概念和思想,既由浅入深地精讲数据结构与数学中基础、核心的数学知识,又阐明数学对编程和算法的真正意义;“概率统计”篇以概率统计中核心的贝叶斯公式为基点,向上讲解随机变量、概率分布等基础概念,向下讲解朴素贝叶斯,并分析其在生活和编程中的实际应用,使读者真正理解概率统计的本质,跨越概念和应用之间的鸿沟;“线性代数”篇从线性代数中的核心概念向量、矩阵、线性方程入手,逐步深入分析这些概念是如何与计算机融会贯通以解决实际问题的。本书除了阐述理论知识,还通过Python语言分享通过大量实践积累下来的宝贵经验和编码,使读者能够真正学以致用。
机器学习公式详解 (“西瓜书”学习伴侣“南瓜书”正式版)
经典”西瓜书“《机器学习》的学习伴侣,GitHub标星过万”南瓜书“,一站式解决机器学习中的数学难题。
对于本书,几点阅读建议,供大家参考.
首先,这本“南瓜书”要和“西瓜书”配套阅读,如果在阅读“西瓜书”时对公式疑惑或对概念理解不 畅,可以通过“南瓜书”快速定位公式并进行推导,从而深入理解. 从这个意义来说,“南瓜书”可以看成是 “西瓜书”的公式字典.
其次,阅读时一定要克服对公式的排斥或者畏惧心理. 公式是通过符号对原理本质的高度概括,是一种精简而美丽的数学语言. 推几个公式之后,相信读者会从中感觉到没有体验过的乐趣.
最后,这本书非常偏技术原理,看上去也有点儿枯燥,阅读时读者还是要事先做好克服困难的准备. 有时,即使编著者给出了推导过程,读者也不一定一眼就能理解,这就需要自己静下心来仔细研读。只有这样,才有可能成为具有机器学习思维而不只是会用机器学习工具的人。
王 斌
小米 AI 实验室主任、NLP 首席科学家
周志华老师的《机器学习》(俗称“西瓜书”)是机器学习领域的经典入门教材之一。本书(俗称“南瓜书”)基于Datawhale 成员自学“西瓜书”时记下的笔记编著而成,旨在对“西瓜书”中重难点公式加以解析,以及对部分公式补充具体的推导细节。
全书共16 章,与“西瓜书”章节、公式对应,每个公式的推导和解析都以本科数学基础的视角进行讲解,希望能够帮助读者达到“理工科数学基础扎实点的大二下学期学生”水平。每章都附有相关阅读材料,以便有兴趣的读者进一步钻研探索。
本书思路清晰,视角独特,结构合理,可作为高等院校计算机及相关专业的本科生或研究生教材,也可供对机器学习感兴趣的研究人员和工程技术人员阅读参考。
UNIX传奇:历史与回忆
作者布莱恩.W. 克尼汉(Brian W. Kernighan),全球知名的计算机先驱,普林斯顿大学计算机科学系教授。曾在贝尔实验室工作超过30年,见证了Unix的诞生。著有《C程序设计语言》(豆瓣9.4分)、《Unix编程环境》(豆瓣8.8分)、《Go程序设计语言》(豆瓣9.3分)等10多部在计算机领域具有影响力的著作。
《UNIX传奇:历史与回忆》豆瓣评分8.9,引用这里的一个短评标题很贴切,“Unix历史的科普读物”。
跨越50年历史河流,带你走进贝尔实验室,亲历IT发展史实。从作者自己,到Ken,Dennis,Doug,Hamming,Aho,Bourne等等,确实璨若星河,群星闪耀,Ken和Dennis对Unix的贡献早已如雷贯耳,Doug的贡献囿于我的知识是读了本书后才第一次知晓。巨星们年轻时随随意意地合作,给今后的世界造成了巨大的影响。
Unix的创造者奠定了操作系统的标准基石,Unix的“分而治之”设计哲学——让每个程序做好一件事;要做一件新的工作,就构建新程序,而不是通过增加新“特性”使旧程序复杂化——被优秀程序员奉为圭臬。
一大批天才人物聚集在一起,没有生活的压力,没有KPI的烦恼,自由地探索科学的发展和应用。即使是贝尔实验室的小角色后来都成了大人物,比如谷歌前董事长埃里克•埃默森•施密特就曾作为贝尔实验室实习生参与编写Lex第一版程序。这些天才人物是什么样的个性?创作一个个优秀工具的时候他们经历了什么样的思考和过程?什么样的环境和机制才能带来这样的创造性?这些精彩往事值得细读。
Python编程快速上手 让繁琐工作自动化
豆瓣评分9.7,我想很多人可能都是通过这本书入门Python的吧!如果是你举个手。
对编程抱有“成长心态”很重要,换言之,要明白人们是通过实践来培养编程技能的。他们不是生来就是程序员,现在不具备编程技能,并不表示永远无法成为专家。
本书假定你编程的知识为零,并且会教给你很多知识,但你的问题可能超出本书的范围。记住如何有效地提问,如何寻找答案,这对于你的编程之旅是无价的。
如果你曾经花几小时来重命名文件或更新成千上万个电子表格的单元格,你就知道这样的任务有多繁琐了。如果可以让计算机替你完成呢?
在本书中,你将学习利用Python编程在几分钟内完成手动需要几小时的工作,无须事先具备编程经验。通过阅读本书,你会学习Python的基本知识,探索Python丰富的模块库,并完成特定的任务(例如,从网站抓取数据,读取PDF和Word文档等)。本书还包括有关输入验证的实现方法,以及自动更新CSV文件的技巧。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python程序,自动化地完成很多繁琐的工作,包括:
本书手把手地教你完成每个程序,并通过每章(除第1、2章外)末尾的实践项目帮你改进这些程序,使你能用所学的新技能来自动化地完成类似的任务。
算法设计
豆瓣评分9.2,乔恩.克莱因伯格(Jon Kleinberg),康奈尔大学计算机科学教授。他于1996年从麻省理工学院获得博士学位。他荣获过美国国家科学基金会事业奖、海军研究局青年研究员奖、IBM 杰出创新奖和美国国家科学院创新研究奖等众多奖项。
他的研究集中在算法上,特别是与网络结构和信息相关的算法,以及这些算法在信息科学、优化、数据挖掘以及计算生物学等方面的应用。
这是一本被众多名校采用的算法设计课程教材,强调用实际示例阐明枯燥的算法理论,更注重算法设计思路而非算法复杂度分析。本书采用新颖的教学方式,通过分析真实世界的问题来激发算法思想。两位作者以一种清晰、直接的方式,指导学生自己分析和定义问题,并从中找出适用于给定场景的算法设计原则。本书鼓励读者更深入地理解算法设计过程,探索算法在计算机科学的更广阔领域中的应用。
本书具有以下特色:
Kali Linux2 网络渗透测试实践指南 第2版
全书共15章,围绕如何使用Kali这款网络安全审计工具集合展开,涉及网络安全渗透测试的相关理论和工具、Kali Linux 2的基础知识、被动扫描、主动扫描、漏洞扫描、远程控制、渗透攻击、社会工程学工具、用Python?3编写漏洞渗透模块、网络数据的**与欺骗、无线安全渗透测试、拒绝服务攻击等知识点,并结合Nmap、Metasploit、Armitage、Wireshark、Burp Suite等工具进行全面的实操演示。读者将从书中学习到简洁易懂的网络安全知识,了解实用的案例和操作技巧,更好地运用Kali Linux 2的工具和功能。
本书适合网络安全渗透测试人员、运维工程师、网络管理人员、网络安全设备设计人员、网络安全软件开发人员、安全课程培训人员、高校网络安全专业的师生等群体阅读,有教学需求的读者,还可以从本书的配套资源中获得相应的教辅资料。
奔跑吧Linux内核(第2版)卷2:调试与案例分析
本书基于Linux 5.0内核的源代码讲述Linux内核的调试技巧和案例。本书共6章。主要内容包括并发与同步,中断管理,内核调试和性能优化,基于x86_64的宕机难题解决方案,基于ARM64的宕机题解决方案,安全漏洞的产生原理与修复方案等。
本书适合从事Linux系统开发人员、嵌入式系统开发人员及Android开发人员阅读,也可供计算机相关专业的师生阅读。
本书知识结构
内文展示