精华内容
下载资源
问答
  • Python是一种通用的解释型编程,主要用于Web开发、机器学习和复杂数据分析。...有的人问学习Python编程能干什么…这些问题的答案是因人而异的,推荐你一些学习Python编程适合看的。你可以试着看看是不...

    Python是一种通用的解释型编程,主要用于Web开发、机器学习和复杂数据分析。Python对初学者来说是一种完美的语言,因为它易于学习和理解,随着这种语言的普及,Python程序员的机会也越来越大。

    有的人问零基础能否学好Python编程?有的人问Python适合自学吗?有的人问学习Python编程能干什么…这些问题的答案是因人而异的,推荐你一些学习Python编程适合看的书。你可以试着看看是不是可以看懂,是不是感兴趣…书中藏着你想要的答案。下面就为大家揭秘学习Python编程看哪些书比较好?
    在这里插入图片描述
    如果你想学习Python编程,市场上就有很多的书籍。

    比如:适合初学者的Python书籍

    1、《Python编程:从入门到实践》

    埃里克·马瑟斯的这本《Python编程:从入门到实践》是一本快速,全面的Python语言入门教程,适合初学者,他们希望学习Python编程并能够编写出有用的程序。本书旨在让读者快速上手编写真正的程序。本书也适用于对语言有模糊理解并希望在尝试Python编程之前了解其知识的程序员。在学习本书时,你将学习使用Numpy和matplotlib等库和工具,并使用数据创建令人惊叹的可视化效果。你还将了解2D游戏和Web应用程序背后的思想以及如何创建它们。

    这本560页长的书主要分为两部分。本书的第一部分讨论了Python编程的基础知识,并阐述了字典,列表,循环和类等概念,在此部分你将了解Python程序的工作原理,并学习如何编写干净且可读的代码来创建交互式程序,第一部分最后讲解的主题是关于测试代码。本书的第二部分遵循实用的方法,通过使用Python的库实现三个不同的项目,街机游戏,简单的Web应用程序和数据可视化,帮助你检验通过这本书你都学到了什么。

    2、《Head-First Python (2nd edition)》

    如果你想要学习Python编程的基础知识,并且不想要看一堆乏味难懂的书籍和教程。那么Paul Barry的《Head First Python》就是你的不二之选,它将帮助你快速掌握Python编程的基础知识,并使用内置函数和数据结构。然后,本书将帮助你构建自己的Web应用程序,异常处理,数据争论和其他概念。

    作者是Paul Barry,是一位讲师。在进入学术界之前,他在IT行业工作了十多年。他是许多著名编程书籍的作者。

    3、《“笨方法”学Python》

    这本书结构很简单,是52个习题的集合。你必须认真阅读这些习题的代码并准确输入,然后你还得修复代码中的Bug,以便更好地理解并观察程序的运行情况。在这个过程中,你将了解软件是如何工作的,好的程序看起来是什么样子,怎样阅读、编写、思考代码,以及如何用专业程序员的技巧来找出并修正错误。

    本书通过帮助你安装完整的Python环境开始,接着教你如何编写优化的代码。然后,本书讨论了基础数学,变量,字符串,文件,循环,程序设计和数据结构等主题。本书非常适合想通过语言的核心来学习Python编程的初学者。作者是Zed A. Shaw,他是Hard Way系列的创建者,该系列包括有关C,Python和Ruby编程语言的书籍。

    4、《Python程序设计(第3版)》

    John Zelle的《Python程序设计》,与其把它当做Python编程的代码介绍,不如把它当做是一本关于编程艺术的介绍,这本书将向你介绍计算机科学、编程以及其他相关的概念,只是使用Python语言作为初学者的媒介,本书以最适合初学者的方式讨论,因此书中的概念是非常有趣并易于理解

    第三版中最显著的变化就是几乎删除了所有python eval()库的使用,并增加了一个讨论其缺点的部分,最新版本还使用了新的图形示例。

    5、《像计算机科学家一样思考Python (第2版)》

    本书按照培养读者像计算机科学家一样的思维方式的思路来教授Python语言编程。作者从最基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。此外,书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法、运行时和语义错误。

    本书是遵循GUN自由文档许可,可以被免费下载和打印,已经被翻译成西班牙语、意大利语、德语、捷克语、中文等

    6、《A Byte of Python》

    这是另外一本关于Python的免费书籍,本书主要讨论Python 3版本,这本书有超过26种语言可供选择,包括土耳其语、瑞典语、法语、汉语、德语、西班牙语、俄语、乌克兰语、葡萄牙语和朝鲜语。这些翻译是由活跃的社区成员提供的

    这本书首先介绍了这本书是关于什么的,然后介绍Python以及它如何成为编程世界中最强大的语言之一。然后介绍Python概念,并在每个示例的步骤中详细讲解。在阅读完本书之后,你还需要继续深入学习Python

    比如:适合中高级程序员的Python书籍

    7、《Python Cookbook(第3版)中文版》

    《Python Cookbook(第3版)中文版》旨在帮助你掌握Python 3中的编程技巧,对于那些想要采用现代工具和用法,而不仅仅是标准编码的有经验的Python程序员来说,这本书包含了大量用Python 3.3测试过的代码。本书提供了各种主题的完整代码,包括Python语言及其用途,以及大量应用程序领域的常见示例。

    8、《Python机器学习基础教程》

    许多商业应用和项目都将机器学习作为其不可或缺的组成部分,而这类的应用程序多年来一直在增加。Sarah Guido和Andreas C. Muller的这本书将教你如何使用Python编程语言来构建自己的机器学习解决方案。

    在本书中,你将了解使用Python和scikit-learn库创建丰富的机器学习应用程序所需的步骤。向你介绍机器学习的基本概念和用法,然后再介绍流行的机器学习算法的优缺点。然后,你还将了解交叉验证和网格搜索;管道的概念;如何将前面各章的方法应用到文本数据上,以及介绍了一些文本特有的处理方法。总之,本书将提供能够帮助你提高数据科学技能的一切建议。

    9、《流畅的Python》

    本书将帮助你学习如何使用该语言最被忽视但最好的特性来编写有效的Python代码。作者将带你了解该语言的特性和库,并帮助你使代码更短、更快和可读。

    本书涵盖了各种概念,包括python数据模型、数据结构、把函数视作对象、面向对象习惯用法、控制流程和元编程。通过这本书,高级Python程序员将了解Python 3以及如何精通该语言版本。

    本文作者Luciano Ramalho是一名Web开发人员,他通过Python与巴西一些最大的新闻门户网站合作,并拥有自己的Python公司。

    10、《Programming Python》

    非常适合那些已经了解了Python编程的基本原理并准备学习如何使用它们来完成实际工作的程序员。这本书包含了关于Python的各种应用领域的深入教程,例如gui、Web和系统管理。本书还将讨论如何在数据库、文本处理、前端脚本层、网络等方面使用该语言。

    这本书还介绍了一些常用的工具,语言语法,和编程技术等,还有许多示例,向你讲解正确的用法。这本书还深入探讨了这种语言作为软件开发工具的会遇到问题,并举例说明了几个具体的例子。

    以上就是推荐的学习Python编程比较适合看的书!说来,Python开发入门还是比较简易的。所以,对于Python开发有兴趣的小伙伴们,不妨先从看看Python开发书籍开始入门!

    展开全文
  • 学习C语言编程,推荐你看这6本书

    千次阅读 2021-05-09 11:56:30
    C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单...

    C语言文章更新目录

    C语言学习资源汇总,史上最全面总结,没有之一
    C/C++学习资源(百度云盘链接)
    计算机二级资料(过级专用)
    C语言学习路线(从入门到实战)
    编写C语言程序的7个步骤和编程机制
    C语言基础-第一个C程序
    C语言基础-简单程序分析
    VS2019编写简单的C程序示例
    简单示例,VS2019调试C语言程序
    C语言基础-基本算法
    C语言基础-数据类型
    C语言中的输入输出函数
    C语言流程控制语句
    C语言数组——一维数组
    C语言数组——二维数组
    C语言数组——字符数组
    C语言中常用的6个字符串处理函数
    精心收集了60个C语言项目源码,分享给大家
    C语言核心技术——函数
    C代码是怎样跑起来的?
    C语言实现字符串的加密和解密
    C语言——文件的基本操作
    使用C语言链表创建学生信息并且将信息打印输出
    图解C语言冒泡排序算法,含代码分析
    实例分析C语言中strlen和sizeof的区别
    开发C语言的3款神器,VS2019、VScode和IntelliJ Clion

    最近有好多同学让我推荐一些学习C语言的书籍,今天它来了。。。
    在这里插入图片描述

    1. C语言从入门到精通在这里插入图片描述

    这本书总共分为4篇:

    • 第1篇 基础知识
    • 第2篇 核心技术
    • 第3篇 高级应用
    • 第4篇 项目实战
      内容通俗易懂,很适合初学者,在学习这本书时,不用过于追求一些原理。只要掌握一些基本的概念,然后看着书本多敲敲代码,多敲敲代码,多敲敲代码(重要的事情说三遍),刚开始学,一定要书本与实践结合,有些代码敲着敲着就会了,就是这么神奇,你可别不信。

    2. C语言核心技术

    在这里插入图片描述

    这本书总共包含21章也适合入门,是一本不可多得的编程必备书籍。知识点更详细,但内容上对初学者来说没上一本通俗易懂(个人觉得)

    3. C Primer Plus

    在这里插入图片描述

    本书详细讲解了C语言的基本概念和编程技巧。
    全书共17章。第1章、第2章介绍了C语言编程的预备知识。第3章~第15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入和输出、结构、位操作等。第16章、第17章介绍C预处理器、C库和高级数据表示。本书以丰富多样的程序为例,讲解C语言的知识要点和注意事项。每章末尾设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。
    适用于需要系统学习C语言的初学者,也适用于想要巩固C语言知识或希望进一步提高编程技术的程序员。

    4. Linux C编程从初学到精通

    在这里插入图片描述

    如果是学习Linux下的C编程的话,推荐你们看一下《Linux C 编程从初学到精通》

    这本书总共分为3篇

    • 基础篇
    • 提高篇
    • 实践篇

    从Linux系统的安装、C语言编程基础、Linux下的基本编辑器、程序编译器和调试器、make工具管理器,到Linux系统的各种函数调用,再到Linux下具体程序案例的设计开发,深入浅出、循序渐进地讲解了Linux平台下的C程序设计,并通过大量的程序实例,以及综合开发案例的演示,帮助读者快速掌握Linux下C语言编程的方法和技巧。

    5. C语言解惑:指针,数组,函数和多文件编程

    在这里插入图片描述
    通过比较编程中存在的典型错误,从而实现像雨珠打在久旱的沙滩上一样滴滴入骨的效果,使学习者更容易记住编程的要诀,并通过演示如何将一个能运行的程序优化为更好、更可靠的程序,使读者提高识别坏程序和好程序的能力。
    这本书就像是课堂上的好学生写出的笔记一般,基本都是干货和写代码中的各种坑。看完会解答你对C语言的很多疑惑。

    6. C语言进阶 重点、难点与疑点解析

    在这里插入图片描述
    本书是一本修炼C程序设计能力的进阶之作,它没有系统地去讲解C语言的语法和编程方法,而是只对C语言中不容易被初学者理解的重点、难点和疑点进行了细致而深入的解读,同时包含大量技巧和最佳实践,揭露了C语言中那些鲜为普通开发者所知的秘密,旨在让读者真正掌握C语言,从而编写出更高质量的C程序代码。

    不管是看哪一本书,里面的代码一定要亲自敲几遍(熟能生巧)。

    如果您觉得本篇文章对您有帮助,请转发给更多的人
    C语言中文社区】是一个C语言/C++视频教程、学习笔记、电子书、计算机二级资料等专注于C语言/C++编程学习者的干货知识分享平台,精选深度文章,分享优秀干货类、技能类的学习资源,帮助学习中的你。
    在这里插入图片描述

    展开全文
  • 推荐几本学习c++的靠谱

    千次阅读 2021-08-04 09:17:40
    C++ Primer Plus 第6版 中文版 C++程序设计经典教程,畅销30年的C++大百科全书,零基础自学C++入门。 C++是在 C 语言基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言,是C语言的超集。...

    入门推荐

    C++ Primer Plus 第6版 中文版

    C++程序设计经典教程,畅销30年的C++大百科全书,零基础自学C++入门。

    C++是在 C 语言基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言,是C语言的超集。本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了 C++的基本概念和技术,并专辟一章介绍了C++11新增的功能。

    《C++ Primer Plus(第6版)中文版》分18章,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑运算符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出、C++11新增功能等内容。

    《C++ Primer Plus(第6版)中文版》针对C++初学者,从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性,因此不要求读者有C语言方面的背景知识。《C++ Primer Plus(第6版)中文版》可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。

    与之配套的有

    C++ Primer Plus 第6版 中文版习题解答

    经典畅销图书《C++PrimerPlus(第6版)中文版》的学习伴侣,北京师范大学名师详细剖析所有题目,全面提升C++编程能力的优选编程练习册。

    C++程序设计(第3版)

    C++编程从入门到精通,C++程序设计基础教程,C++自学入门经典,提供习题及教学PPT,用C++编程语言讲解计算基础知识和技能的实用教程。

    本书是以C++编程语言来讲解计算基础知识和技能的实用教程。本书是作者数十年教学经验凝结的成果, 深入浅出地介绍对象和类的概念,帮助学生更好地学习计算机科学的**门课,并为后续课程的学习打下坚实的基础。本书每一章都给出了自测题、练习题、编程技巧、编程项目等内容。附录部分给出了所有自测题的解答,供读者学习参考。

    本书适合作为高等院校计算机专业程序设计、编程基础等课程的教材,也适合专业程序员和想要学习C++编程的读者阅读参考。

    进阶推荐

    C++沉思录

    C++业界资深技术大神,C++标准委员会成员,著名技术伉俪的经典著作,全球畅销20余年。融聚了作者10多年C++程序生涯的真知灼见,C++之父倾力推荐。

    《C++沉思录》分为6篇,共32章,分别对C++语言的历史和特点、类和继承、STL与泛型编程、库的设计等几大技术话题进行了详细而深入的讨论,细微之处几乎涵盖了C++所有的设计思想和技术细节。本书通过精心挑选的实例,向读者传达先进的程序设计方法和理念。

    《C++沉思录》适合有一定经验的C++程序员阅读学习,可以帮助他们提升技术能力,成为C++程序设计的高手。

    C++语言的设计和演化

    C++语言之父经典著作、思想集锦,一本描述C++语言的发展历史、设计理念及技术细节的综合性著作。

    本书是C++的设计者Bjarne Stroustrup关于C++ 语言的最主要著作之一(另一本是《C++程序设计语言》)。在这本书中,作者全面论述了C++ 的历史和发展,C++中各种重要机制的本质、意义和设计背景,这些机制的基本用途和使用方法,讨论了C++ 所适合的应用领域和未来发展前景。本书在帮助人们深入理解C++ 语言方面的地位无可替代,值得每个关心、学习和使用C++ 语言的专业工作者、科研人员、教师和学生阅读。在这本书中,作者还从实践的角度出发,讨论了许多与程序设计语言、系统程序设计、面向对象的技术和方法、软件系统的设计和实现技术等有关的问题,值得每一个关心这些领域及相关问题的计算机工作者和学生们阅读参考。

    C++并发编程实战

    《C++并发编程实战》是一本基于C++11新标准的并发和多线程编程深度指南。内容包括从std::thread、std::mutex、std::future和std::async等基础类的使用,到内存模型和原子操作、基于锁和锁数据结构的构建,再扩展到并行算法、线程管理,最后还介绍了多线程代码的测试工作。本书的附录部分还对C++11新语言特性中与多线程相关的项目进行了简要的介绍,并提供了C++11线程库的完整参考。

    《C++并发编程实战》适合于需要深入了解C++多线程开发的读者,以及使用C++进行各类软件开发的开发人员、测试人员。对于使用第三方线程库的读者,也可以从本书后面的章节中了解到相关的指引和技巧。同时,本书还可以作为C++11线程库的参考工具书。


    C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。使用C++的原因之一是为了利用其面向对象的特性。要利用这种特性,必须对标准C语言知识有较深入的了解,因为它提供了基本类型、运算符、控制结构和语法规则。所以,如果已经对C有所了解,便可以学习C++了,但这并不仅仅是学习更多的关键字和结构,从C过渡到C++的学习量就像从头学习C语言一样大。另外,如果先掌握了C语言,则在过渡到C++时,必须摒弃一些编程习惯。如果不了解C语言,则学习C++时需要掌握C语言的知识、OOP知识以及泛型编程知识,但无需摒弃任何编程习惯。如果您认为学习C++可能需要扩展思维,这就对了。

    C++的起源

    与C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于20世纪80年代在这里开发出了这种语言。用他自己的话来说,“C++主要是为了我的朋友和我不必再使用汇编语言、C语言或其他现代高级语言来编程而设计的。它的主要功能是可以更方便地编写出好程序,让每个程序员更加快乐”。


    Bjarne Stroustrup的主页

    Bjarne Stroustrup设计并实现了C++编程语言,他是权威参考手册《The C++ Programming Language》和《The design and Evolution of C++》的作者。读者应将他位于AT&T Labs Research上的个人网站作为首选的C++书签:

    http://www.research.att.com/-bs/

    该网站包括了C++语言有趣的发展历史、Bjarne的传记材料和C++ FAQ。Bjarne被问得最多的问题是:Bjarne Stroustrup应该如何读。您可以访问Stroustrup的网站,阅读FAQ部分并下载.WAV文件,亲自听一听。


    Stroustrup比较关心的是让C++更有用,而不是实施特定的编程原理或风格。在确定C++语言特性方面,真正的编程需要比纯粹的原理更重要。Stroustrup之所以在C的基础上创建C++,是因为C语言简洁、适合系统编程、使用广泛且与UNIX操作系统联系紧密。C++的OOP方面是受到了计算机模拟语言Simula67的启发。Stroustrup加入了OOP特性和对C的泛型编程支持,但并没有对C的组件作很大的改动。因此,C++是C语言的超集,这意味着任何有效的C程序都是有效的C++程序。它们之间有些细微的差异,但无足轻重。C++程序可以使用已有的C软件库。库是编程模块的集合,可以从程序中调用它们。库对很多常见的编程问题提供了可靠的解决方法,因此能节省程序员大量的时间和工作量。这也有助于C++的广泛传播。

    图1.2 C++的二重性

    名称C++来自C语言中的递增运算符++,该运算符将变量加1。名称C++表明,它是C的扩充版本。

    计算机程序将实际问题转换为计算机能够执行的一系列操作。OOP部分赋予了C++语言将问题所涉及的概念联系起来的能力,C部分则赋予了C++语言紧密联系硬件的能力(参见图1.2),这种能力上的结合成就了C++的广泛传播。从程序的一个方面转到另一个方面时,思维方式也要跟着转换(确实,有些OOP正统派把为C添加OOP特性看作是为猪插上翅膀,虽然这是头瘦骨嶙峋、非常能干的猪)。另外,C++是在C语言的基础上添加OOP特性,您可以忽略C++的面向对象特性,但将错过很多有用的东西。

    在C++获得一定程度的成功后,Stroustrup才添加了模板,这使得进行泛型编程成为可能。在模板特性被使用和改进后,人们才逐渐认识到,它们和OOP同样重要——甚至比OOP还重要,但有些人不这么认为。C++融合了OOP、泛型编程和传统的过程性方法,这表明C++强调的是实用价值,而不是意识形态方法,这也是该语言获得成功的原因之一。

    C++的发展

    Stroustrup编写的《The Programming Language》包含65页的参考手册,它成了最初的C++事实标准。

    下一个事实标准是Ellis和Stroustrup编写的《The Annotated C++ Reference Manual》。

    C++98标准新增了大量特性,其篇幅将近800页,且包含的说明很少。

    C++11标准的篇幅长达1350页,对旧标准做了大量的补充。

    如何学习C++?

    我对C或C++ 都不了解,是不是应该先学习C?不,首先学习C++。C++ 的C子集对于C/C++ 的新手是比较容易学的,又比C本身容易使用。原因是C++(通过强类型检查)提供了比C更好的保证。进一步说,C++ 还提供许多小特征,例如运算符new,与C语言对应的东西相比,它们的写法更方便,也更不容易出错。这样,如果你计划学习C和C++(而不只是C++),你不应该经由C那条迂回的路径。为能很好地使用C,你需要知道许多窍门和技术,这些东西在C++ 里的任何地方都不像它们在C里那么重要、那么常用。好的C教科书倾向于(也很合理)强调那些你将来在用C做完整的大项目时所需要的各种技术。好的C++ 教科书则不太一样,强调能引导你去做数据抽象、面向对象的程序设计的技术和特征。理解了C++ 的各种结构,而后学习它们在(更低级的)C里替代物将会很简单(如果需要的话)。

    要说我的喜好:要学习C,就用 [Kernighan,1988];要学习C++,就用[2nd]。两本书的优点是都组合了两方面内容:一方面是关于语言特征和技术的指导性的描述,另一方面是一部完整的参考手册。两者描述的都是各自的语言而不是特定的实现,也不企图去描述与特定实现一起发布的特殊程序库。

    现在有许多很好的教科书和许多各种各样风格的材料,上面只是我对理解有关概念和风格的喜好。请仔细选择至少两个信息来源,以弥补可能的片面性甚至缺陷,这样做永远是一种明智之举。

    我想做OOP,那么,是不是应该在学习C++之前先学Smalltalk?不。如果你计划用C++,那就学C++。各种语言,像C++、Smalltalk、Simula、CLOS和Eiffel等,各有自己对于抽象和继承等关键概念的观点,各语言以略微不同的方式支持着这些概念,也支持不同的设计概念。学习Smalltalk当然能教给你许多有价值的东西,但它不能教给你如何在C++ 里写程序。实际上,除非你有充分时间学习和消化Smalltalk以及C++ 的概念和技术,否则用Smalltalk作为学习工具将导致拙劣的C++ 设计。

    当然,如果同时学了C++ 和Smalltalk,能使你取得更广泛领域中的经验和实例,那当然是最理想的。但是那些不可能花足够时间去消化所有新概念的人们常常最后是‘在C++ 里写Smalltalk’,也就是说,去用那些并不能很好适应C++ 的Smalltalk设计概念。这样写出的程序可以像在C++ 里写C或Fortran一样,远不是最好的东西。

    常见的关于学习Smalltalk的理由是它‘很纯’,因此会强迫人们去按‘面向对象的’方式思考和编程。我不想深入讨论‘纯’的问题,除提一下之外。我认为一个通用程序设计语言应该而且也能够支持一种以上的程序设计风格(范型)。

    这里的问题是,适合Smalltalk并得到它很好支持的风格并不一定适合C++。特别是模仿性地追随Smalltalk风格,将会在C++ 里产生低效、丑陋,而且难以维护的C++ 程序。个中理由很简单,好的C++ 程序所需要的设计应该能很好地借助C++ 静态类型系统的优势,而不是与之斗争。Smalltalk(只)支持动态类型系统,把这种观点翻译到C++ 将导致广泛的不安全性和难看的强制转换。

    我把C++ 程序里的大部分强制转换看作是设计拙劣的标志。有些强制转换是很基本的,但大部分都不是。按我的经验,传统C程序员使用C++,通过Smalltalk理解OOP的C++ 程序员是使用强制转换最多的人,而所用的那些种类的转换,完全可以通过更仔细的设计而得以避免。

    进一步说,Smalltalk鼓励人们把继承看作是唯一的,或者至少是最基本的程序组织方式,并鼓励人们把类组织到只有一个根的层次结构中。在C++ 里,类就是类型,并不是组织程序的唯一方式。特别的是,模板是表示容器类的最基本方法。

    我也极端怀疑一种论断,说是需要强迫人们去采用面向对象的风格写程序。如果人们不想去学,你就不可能在合理的时间内教会他们。按我的经验,确实愿意学习的人从来也不短缺,最好还是把时间和精力用到他们身上。除非你能把握住如何表现隐藏在数据抽象和面向对象的程序设计后面的原理,否则你能做的不过是错误地使用支持这些概念的语言特征,而且是以一种不适当的‘巴罗克’形式[2]——无论在C++、Smalltalk或者其他语言里。

    参看《C++ 程序设计语言》(第2版) [2nd],特别是第12章,那里有关于C++ 语言特征和设计之间关系的更多讨论。

    我在一开始应该把C++ 作为一种OOPL,还是作为一个更好的C语言?看情况。为什么你想开始用C++?对这个问题的回答应该能确定你走近C++ 的方式,在这里,没有某种放之四海而皆准的道理。按照我的经验,最安全的方式是自下而上地学习C++,也就是说,首先学习C++ 所提供的传统的过程性程序设计特征,也就是那个更好的C子集;而后学着去使用和遵循那些数据抽象特征;再往后学习使用类分层去组织相互有关的类的集合。

    按照我的观点,过快地通过早期阶段是很危险的,这样会使忽视某些重要概念的可能性变得非常之大。

    例如,一个有经验的C程序员可能会认为C[3]的更好的C子集是‘很熟悉的’,因此跳过了教科书中描述这方面的前100页或多少页。但在这样做时,这个C程序员可能就没看到有关函数的重载能力,有关初始化和赋值之间差异的解释,用运算符new做存储分配,关于引用的解释,或许还有其他一些小特征。在后面阶段它们会不断地跳出来缠住你,而在这时,一些真正的新概念正在复杂的问题中发挥着作用。如果在更好的C中所用的概念都是已知的,读过这100页可能也就只要几个小时的时间,其中的一些细节又是有趣的,很有用的。如果没有读,后面花的时间可能更多。

    有些人表达了一种担心,害怕这种‘逐步方式’会引导人们永远去写C语言风格的东西。这当然是一种可能的后果,但是从百分比看,与在教学中采用‘更纯的’语言或者强迫的方式相比,很难说这样做就一定更不值得信任。关键是应该认识到,要把C++ 很好地用作数据抽象和/或面向对象的语言,应该理解几个新概念,而它们与C或者Pascal一类语言并不是针锋相对的。

    C++ 并不只是用新语法表述一些老概念——至少对于大部分程序员而言不是这样。这也就隐含着教育的需要,而不仅仅是训练。新概念需要通过实践去学习和掌握。老的反复试验过的工作习惯需要重新评价。不再是按照‘老传统的方式’向前冲,而是必须考虑新方式——通常,与按照老方式相比,以新方式做事情,特别是第一次这样做时,一定更困难,也更费时间。

    许多经验说明,对大部分程序员而言,花时间和精力去学习关键性的数据抽象和面向对象技术,是非常有价值。并不是必须经过很长的时间才能产生效益,一般在3到12个月就可以。不花这些精力,而只是使用C++,也会有效益,但最大的效益还是要在为学习新概念而花费精力之后——我的疑问是,如果什么人不想花这个精力,那么为什么还要转到C++ 来呢。

    在第一次接触C++,或是在许多时间之后又第一次接触它,用一点时间去读一本好的教科书,或者几篇经过很好选择的文章(在The C++ ReportThe C++ Journal里有许多这样的文章)。你也可能想看看某些主要的库的定义和源代码,分析其中使用的概念和技术。对那些已经用了一段C++ 的人来说,这也是个好主意,在重温这些概念和技术的过程中可以做许多事情。自C++ 第一次出现以来,在C++ 语言以及与之相关的编程和设计技术方面已经发生过许多事情。将《C++ 程序设计语言》的第1版和第2版做一个简单对比,就足以使人相信这个说法。

    学习C++ 需要花多少时间?同样要看情况。依赖于你的经验,也依赖于你所说的‘学习C++’的意思。对大部分程序员而言,学习语法和用更好的C的风格写C++,再加上定义和使用几个简单的类,只要一两周时间。这是最容易的部分。最主要的困难在于掌握新的定义和编程技术,这也是最有意思、最有收获的部分。曾经和我讨论过的大部分有经验的程序员说,他们用了半年到一年半时间,才真正觉得对C++ 适应了,掌握了它所支持的数据抽象和面向对象技术。这里假定他们是在工作中学习并维持着生产——通常在此期间也用着C++的某种‘不那么大胆’的风格做程序设计。如果你能拿出全部时间学C++,就可能更快地适应它。但是,在没有将新的思想和设计应用到真实的项目中之前,这个适应也很可能是骗人的。面向对象的编程和面向对象的设计,基本上是实践性的训练而不是理论训练。只是对一些玩具式的小例子使用或者不使用它,这些思想就很可能演化为一种危险的盲从倾向。

    请注意,学习C++,最根本的是学习编程和设计技术,而不是语言细节。在做完了一本教科书的学习工作之后,我会建议一本有关设计的书,例如 [Booch,1991] [4],该书里有一些稍长的例子,用的是5种语言(Ada、CLOS、CLU、C++、Smalltalk和Object Pascal),这样就可能在某种程度上避免语言的偏狭性,而偏狭性已经弄糟了许多有关设计的讨论。在这本书里,我最喜欢的部分就是描述设计概念和例子的那几章。

    关注设计方式,与非常仔细地关注C++ 的定义细节(例如ARM,其中包含许多有用的信息,但是没有关于如何用C++ 编程的信息)是截然不同的。把注意力集中到细节上,很容易把人搞得头昏脑涨,以至于根本就用不好语言。你大概不会试着从字典和语法去学习一种外国语吧?

    在学习C++ 时,最根本的,应该是牢记关键性的设计概念,使自己不在语言的技术细节中迷失了方向。如果能做到这一点,学习和使用C++ 就会是非常有趣的和收效显著的。与C比较,用一点点C++ 就可能带来许多收获。在理解数据抽象和面向对象技术方面付出进一步努力,你将能得到更多的收获。”

    这个观点也不是全面的,受到当前工具和库的状况的影响。如果有了保护性更强的环境(例如包括了广泛的自动的运行时检查)以及一个小的定义良好的基础库,你就可以更早地转到大胆使用C++ 的方面去。这些将能更好地支持从关注C++ 的语言特征到关注C++ 所支持的设计和编程技术的大转移。

    分散一些兴趣放到语法上,把一些时间用到语言的技术细节上,也是非常重要的。有些老牌程序员喜欢翻弄这些细节。这种兴趣与不大情愿去学习新的程序设计技术,经常是很难分辨清楚的。

    类似地,在每个课程和每个项目里总有这样的人,他们根本不相信C++ 的特征是可以负担得起的,因此在后来的工作中坚持使用自己更熟悉和信任的C子集。只有不多的有关个别C++ 特征和用C++ 写出的系统的执行效率方面的数据(例如,[Russo,1988]、[Russo,1990]、[Keffer,1992]),不大可能动摇这些人长期而牢固的,有关比C更方便的机制是不可能负担的观点。看到这种宣传的量,与语言或工具领域中未得到满足的允诺的量的比较,人们应该对这种说法持怀疑态度,并要求拿出更明显的证据。

    在每个课程和项目里也总有另一种人,他们确信效率无关紧要,倾向于用更一般的方式去设计系统,结果是,即使在最先进的硬件上也产生了可观察到的延迟。不幸的是,这种延迟在人们学习C++ 的过程中写玩具程序时很难观察到,因此具有这种性质的问题常常被遗留下来,直到遇到真正的项目。我一直在寻找一个简单但又实际的问题,如果采用一种过分一般的方式去解决,它就能打倒一个很好的工作站。这样的问题将使我能证明带有倾向性的设计的价值,以抵制那些极端的乐观主义者;而通过仔细思考又能使性能大大改善,可以对付过于谨慎和保守的人们。

    展开全文
  • 是读不完的,但是知识可以是自己的,选择适合你自己的书单,可能是最佳的解决方案。 书单说明: 1、图书列表按照初级、中级、高级进行了大致区分; 初级是指刚入门Java的同学或者开发经验很少的初级工程师;...

    书是读不完的,但是知识可以是自己的,选择适合你自己的书单,可能是最佳的解决方案。

     

    书单说明:

    1、图书列表按照初级、中级、高级进行了大致区分;

    初级是指刚入门Java的同学或者开发经验很少的初级工程师;中级是有一定开发经验,但还没有独立设计过大型项目的工程师;高级是指由大型项目设计经验,并且有一定项目架构、管理经验的工程师。但推荐书目只是大致进行了区分,区分了书籍最适应的人群。初级的同学可以阅读中高级的推荐书目,只是有些读起来会有些吃力

     

    初级经典书籍(适合初学者)

    作为一个初学者,首先要了解Java这门语言。Java入门语言书,首推《Java编程思想》

     

    《Java编程思想》

    《Java 编程思想》这本书确实没得说,质量很高,但需要放在 Java 入门后再去读,这样才能真正地去理解思想。

     

    很多没有足够编程基础的同学,盲目自信,直接开啃这本书,然后他们发现,啃得很痛苦,这就是因为没有根基的原因造成的,就像没有学会走就开始跑一样,摔得很痛。

     

    《Java 编程思想》不仅教我们怎么做,还告诉我们为什么要这样做,这才是 Java 这门编程语言的精髓。这本书值得每位Java程序员买一本仔细阅读。注意,对于初学者,一定要自己做下课后习题,学习编程动手很重要。

     

    《Head First Java》

    和Head First其他系列一样,这本入门书图文并茂,还有游戏、解谜题等,看起来轻松,简单易懂,适合刚入门的初学者,讲的是一些最基础最实用的东西知识点不够丰富。读起来会非常有意思。如果感觉《Java 编程思想》过于枯燥,可以买这本书来看看。

     

    《Java核心技术》

    和上面两本书比,这本书更像国内的教科书风格。没有太多的理论讲解,每一张都有不少示例,更加实用。并且本书分为上下两卷,基础篇和高级篇。统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强

     

    《Spring实战》

    图书简介: Spring是Java程 序员必学的框架,现在Web开发基本上离不开Spring生态的各种框架,微服务领域Spring Cloud也占据了半壁江山。随着Spring版本的迭代,本书每隔几年就会更新一次,2020年2月最新的第五版中文版已经出版。本书会介绍Spring的核心原理,但更偏向于应用。

     

    按照书.上的例子,自己写-写,可以快速掌握Spring的基本特性。第五版讲了一些异步和响应式的内容,对初学者来讲有一定的难度, 可以忽略。

     

    《深入理解计算机系统》

    图书简介:这本书在CMU是大-的入门导论课程教程,但书其实很有深度,从硬件到软件,从编译原理到Web网络都有讲解,是一本难得的深入浅出的好书。久之前就有这种说法,这本书你能看懂多少页,毕业就能拿多少钱。豆瓣9.5 (中文版)的高分也客观反映了大家对这本书的认同。

     

    初学者看起来会有难度,能看懂多少算多少,尽量多做些课后习题,做了这些习题才能更好的理解这本书的精华。中级读者也建议时不时的翻一下, 相信每次看都会有新的收获。

     

    中级经典书籍(适合有一定编程经验的工程师)

     

    《Effective Java》

    《Effective Java》第三版一共包含了 90 条极具实用价值的经验规则,每条规则都值得 Java 程序员在实战中去参照。这本书不需要按部就班地从头到尾读,可以随意挑选任意小节进行阅读,因为每条规则相对都是独立的,尽管它们之间会交叉引用,但并不妨碍我们随心所欲地阅读。

     

    《阿里巴巴 Java 手册》

    《阿里巴巴 Java 开发手册》这本小册子虽然只有几十页,但讲的主要是一些典型的开发规约、编程规范、以及最佳实践,已经成为业界普遍遵循的开发规范。

     

    这本书介绍了阿里的Java编程规范,非常详尽、可操作,值得学习。这本书可以直接看电子版每年都会有更新

     

     

    《代码整洁之道》

    软件的质量,不仅依赖于架构,更与代码质量息息相关。而代码的质量与其整洁度成正比关系,越整洁的代码,其质量毫无疑问的就会越高。

    《代码整洁之道》的第一章,对整洁代码下了一个定义,每个程序员都应该铭记在心。

    1、整洁的代码力求专注,每个方法、每个类都应该全神贯注于一件事;命名更要给人一种“顾名思义”的感觉。

    2、整洁的代码简单直接,从不隐藏设计者的意图。

    3、整洁的代码应当有单元测试。

    4、整洁的代码拒绝重复,其表达力直击人的心灵。

    • 《Java 并发编程实战》

    • 《Java 并发编程之美》

    • 《实战 Java 高并发程序设计》

    对于程序来说,如果具有并发的能力,效率就能够大幅度地提升。对于程序员来说,如果精通 Java 并发编程的话,挣钱能力就会大幅提升,这话真的不是调侃,而是良心话啊。

     

    这三本 Java 并发方面的书可以结合起来看,互相补充,帮助同学们在这方面快速地提高

     

    《Java 性能权威指南》

    通过阅读《Java 性能权威指南》这本书,我们可以运用 4 个基本原则最大程度地提升性能测试的效果、使用 JDK 自带的工具收集程序的性能数据、理解 JIT(即时编译器)编译器的优缺点、调优 JVM 垃圾收集器、最大程度优化多线程等等。

     

    《重构》

    看完这本书感觉自己之前写的代码不忍直视,只能算得上碰巧能跑的指令集合。现在会带一些应届生做项目,我给他们推荐的第一本书就是《重构》。对于提高代码质量非常有帮助,适合初学者仔细阅读。

     

    《深入理解Java虚拟机》

    这也是一本国内难得的经典书籍,有了一定的Java开发经验,就要对Java虚拟机原理有所了解。《深入理解Java虚拟机》这本书从Java应用开发者的角度介绍了JVM的实现原理周志明老师以深厚的技术功底把JVM晦涩的概念写得深入浅出,值得中、高级Java开发同学阅读。

     

    《重构,改善既有代码的设计》

    《重构,改善既有代码的设计》这本书在业界的名声也非常的响,只不过看起来就需要一些精力和耐力,上面这些书看完后,可以看这一本,对于重新审视现有代码有极大的帮助。

     

    《深入理解 Nginx》

    Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。《深入理解 Nginx》这本书通过还原 Nginx 设计思想,剖析 Nginx 架构来帮助我们快速高效地开发 HTTP 模块。

     

    《深入剖析 Tomcat》

    Tomcat 是一个 Servlet 容器,并提供了作为 Web 服务器的一些特有功能。基本上写过 Web 程序的 Java 程序员都用过 Tomcat 作为服务器,所以有时间的话,对 Tomcat 深入剖析一下还是非常值得去做的。

    • 《JDK 里的设计模式》

    • 《深入浅出设计模式》

    • 《设计模式之禅》

    • 《Head First 设计模式》

    大家都听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。

     

    武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。

     

    设计模式就是根据不同类型场景,设计优雅的(编码)解决方案。学好设计模式有很多好处,比如,容易看懂经典代码中的逻辑(很多优秀的开源框架大量使用了设计模式);应对面试时对答如流(设计模是面试重点);可以编写出优雅的解决方案(或者代码)。

    如果你需要一本全面的Java书,应该就是这个。以下电子书可以文件免费下载,需要的小伙伴可加入我的java技术球球交流圈:766328863自行下载获取

    先写到这里吧

    欢迎各位在留言区补充你觉得不错的Java方向的书籍或者计算机基础必看的书籍哟!

    展开全文
  • 中文版Latex常用语法大全教程

    千次阅读 多人点赞 2020-06-04 14:28:31
    中文版的Latex快速入门教程Latex语法格式中文版的“hello world”注释换行、分段、分页、首行缩进文字的粗体、斜体、颜色、大小下划线、双下划线、波浪线、删除线、斜删除线Latex文档层次结构文档封面文档前言文档...
  • 针对在校大学生的C语言入门学习——高级语法 对于一门语言,什么才算是高级语法呢?个人认为是一些比较难以理解的语法。之所以难以理解,是因为这类语法往往都是为了处理一些高级的问题,而这些高级问题对于没有...
  • 大概小数点后6~7位 double:八个字节,小数的十进制科学计数法,大概小数点后15~16位 字符型 char:2个字节,因为是2个字节,所以一个中文汉字,也可以表示一个字符 char c = ‘中’;Java中使用Unicode值来表示每一...
  • 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程,这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2
  • 值得看的SQL书籍

    万次阅读 2018-04-29 00:00:00
    入门,写得很浅显易懂,而且会不厌其烦地强调过的内容。中涉及到的SQL的知识点都很基础,应届生面试看看可能够了,但是如果要经常和数据库打交道那很显然不够。 @匿名: 看起来很快,3天不到能看完,算是快速...
  • SQL语法学习及使用 一、DQL语言(Data Query Language )数据查询语言 基础查询 #基础查询 /* 语法: select 查询列表 from 表名; 特点: 1.查询列表可以是:表中的字段,常量值,表达式,函数 2.查询的结果是...
  • 本书针对DHTML语法中每一项功能的类别来区分,并详细列出语法的使用规格,并有一个对应的完整实例配合学习,其中分别针对Internet Explorer,Netscape Navigator 4.x, 6.0版之不同列有详细的说明,并对不同处列出...
  • 目前最好的算法

    2020-12-23 11:50:00
    这是从图灵 2016 年发的一篇文章修改而来的标题,原先这篇文章的标题叫《如果你只能拥有一本算法》。没错,这次,我们就不遮遮掩掩了,引用了一位大学教授的书评标题「 Best algor...
  • 由于 JavaScript 高级还是针对 JavaScript 语言本身的一个进阶学习,所以在开始之前我们先对以前所过的 JavaScript 相关知识点做一个快速复习总结。 重新介绍 JavaScript JavaScript 是什么 解析执行:轻量级...
  • 基本HTML标签语法整理

    2021-04-10 18:51:36
    1.1 基本语法概述 HTML标签是由尖括号包围的关键词.例如<html>. HTML标签通常是成对出现的,例始<html>和</html> , 我们称为双标签。标签对中的第一个标签是开始标签, 第二个标签是结束标签。 ...
  • C 语言,最经典的有这样几本

    千次阅读 多人点赞 2021-07-30 09:01:50
    学习C语言的过程中,会发现它的许多优点(见图1.1)。下面,我们来看看其中较为突出的几点。 图1.1 C语言的优点 1 设计特性 C是一门流行的语言,融合了计算机科学理论和实践的控制特性。C语言的设计理念让...
  • html看什么

    2021-06-10 08:32:29
    html可以看的:“精通HTML”、“深入浅出html”、“html+css+js网页制作从入门到精通”、“HTML5+CSS3从入门到精通”、“疯狂HTML5/CSS3/JavaScript讲义”、“HTML5与CSS3权威指南”等。本教程操作环境:windows...
  • Hibernate学习(八)———— Hibernate检索策略(类级别,关联级别,批量检索)详解 序言 很多看起来很难的东西其实并不难,关键是看自己是否花费了时间和精力去看,如果一个东西你能看得懂,同样的,别人也能看得懂,体现...
  • 学习Python必备的8本书

    2021-05-15 17:33:22
    所以,本文将推荐几本学习Python编程必看的几本书籍 《Python编程:从入门到实践》 Amazon编程入门类榜首图书,国内 Python 入门第一。基于 Python3.5同时也兼顾 Python2.7,是一本全面的Python编程,从入门到...
  • 十大最佳Python书籍[2021年更新]

    千次阅读 多人点赞 2021-02-07 17:33:42
    对于机器人,计算机科学或电子领域的学生或工程师来说,这本Python学习书应该是强制性的。 如果您想让孩子用创新的想法来创建自己的项目,那么Python书籍提供了很多从基础知识到令人难以置信的实时项目的学习机会。...
  • 对于一些经典的技术书籍,只看一两遍很难完全理解其中的精髓,之后可能还要多次地回顾,也可能在实际应用中再来回顾中的理论知识,也能更深入地进行理解。例如深入理解计算机系统这本书,内容非常经典,很多地方当...
  • 前言 preface   之所以选择这本《Essential C++ 中文版》而不是谭浩强的《C++程序设计》或C++圣经——《C++ Primer》作为正式学习C++的第一本书籍原因有以下几点。   首先,正如《Essential C++》前言所说,这...
  • JavaSe基础语法

    2021-03-07 22:01:28
    JavaSe基础语法 1. 变量(variable) 1.1. 变量简介 程序最核心的目的就是为了操作数据,但是数据都在内存中,也就是我们的JVM,而且这个内存区域是 循环使用的。 程序中一般使用变量来操纵存储空间中的数据! Java...
  • 原标题:读书笔记 | 鲁川:汉语语法的意合网络 | 从网络到表层序列的生成编者按意合性是汉语的重要特点(当然不唯一,也不是唯独汉语的),也是困扰中文信息处理的难点。汉语语法和语义的“错位”由其意合性体现。鲁川...
  • vue 学习 01 —— 基本语法 vue 学习 02 —— vue-cli项目、Webpack、vue-router vue 学习 03 —— ElementUI 文章目录系列文章一、概述二、第一个Vue程序三、Vue基本语法1、v-bind2、v-if和v-else3、v-for4、v-on5...
  • 推荐的20本学习 Java 必看书,记得点收藏哈~ 基础核心 1、《Java核心技术·卷2:高级特性(原第9版)》 豆瓣评分: 8.7 推荐指数:???????????????? 2、《图解 HTTP》 讲漫画一样的讲 HTTP,很有意思,...
  • Python是一种通用的解释型编程,主要用于Web开发、机器学习和复杂数据分析。Python对初学者来说是一种完美的语言,因为它易于学习和理解,随着这种语言的普及,Python程序员的机会也越来越大。 如果你想学习Python...
  • 学弟学妹要的Java学习路线我终于写完了

    千次阅读 多人点赞 2021-05-07 21:27:03
    Java有哪些就业方向? 数据结构和算法 设计模式 计算机基础 Java 入门 Java 高手进阶 基础框架(SSM) 微服务框架 常用中间件 数据库 分布式架构 必须掌握的工具软件 学习资源网站列表汇总 最后回答...
  • 那么自学Java可以参考哪些书呢?下面就来给大家推荐几本比较的书籍。 ​  入门类书籍推荐:《Java编程思想》、《Agile Java》中文版  《Java编程思想》比较清楚的说明了对于基本的面向对象知识,清楚的讲解了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,225
精华内容 21,690
关键字:

学中文语法哪些书好