有没有懂编程的老哥?

大家好,我是小麦,就在前几天,有几位老哥和我私聊,让我整理一份C语言经典书籍的书单,现在我把这个清单重新整理了一下,这里有零基础入门进阶提高的书籍,对每个阶段的学习都会有帮助,下面它来了。

先看C语言的历史;1973 年,KenThompson 和 DennisRitchie 在做系统内核移植开发时,感觉使用汇编语言很难实现。后来决定使用一种称为 BCPL的语言进行开发,在开发过程中,他们在 BCPL 的基础上做了进一步的改进,推出了 B 语言(取 BCPL 第一个字母)。

后来发现使用 B 语言开发的 UNIX 内核,还是无法达到他们的预期要求,于是在 B 语言的基础上,做了进一步的改进,设计出了具有丰富的数据类型,并支持大量运算符的编程语言。改进后的语言较B语言有质的飞跃,1970年左右,取名为 C 语言,并使用 C 语言成功重新编写了 UNIX内核。

这也是为什么UNIX的时间戳默认是从1970年1月1日开始;

C/C++无处不在,到底能做哪些事情呢?

  • 大多数操作系统内核都是用C编写的,包括但不限于Windows,Linux,Mac,iOS,Android等。

  • 现代游戏引擎是用C/C++编写的,例如Unity3D,虚幻引擎,cocos2d-x等。

  • 编程语言的编译器和解释器也是用C/C++实现的。

下面给大家推荐基本C语言学习非常优秀的书籍。

  • C 语言程序设计现代方法

  • 数据结构与算法分析——C语言描述

  • UNIX环境高级编程(第3版)

《C Primer Plus(第5版)(中文版)》是C语言书最好的入门书籍之一,0基础完全可以。
可以说是满分入门书籍,内容循序渐进,这本书重要的不止是让你学会了C语言,更重要的是能够锻炼你的编程思想,这对以后的学习很有帮助。
遇到看不懂的地方多看几遍,再看不懂就先跳过,有时候一回头就突然懂了。
如果想把C当作吃饭的技能,除了这本书,还必须要再补一下数据结构和算法方面的知识。

  • 一条线索是以Linux平台为载体全面深入地介绍C语言的语法和程序的工作原理;

  • 另一条线索是介绍程序设计的基本思想和开发调试方法。

  • 第一部分讲解编程语言和程序设计的基本思想方法,让读者从概念上认识C语言;

  • 第二部分结合操作系统和体系结构的知识讲解程序的工作原理,让读者从本质上认识C语言。

本书适合做零基础的初学者学习C语言的第一本教材,帮助读者打下牢固的基础。

有一定的编程经验但知识体系不够完整的读者也可以对照本书查缺补漏,从而更深入地理解程序的工作原理。

本书对于C语言的语法介绍得非常全面,对C99标准做了很多解读,因此也可以作为一本精简的C语言语法参考书。

这本书和《专家编程》《C缺陷和陷阱》可以并称C语言(进阶书)三杰;

这本书提供与C语言编程相关的全面资源和深入讨论,由浅入深;

它涵盖了C语言的全部内容,特别注重指针的讲解,除了头尾的几章,指针的话题几乎是贯穿了全书。

正是指针使得C语言如此之强大,所以要学习C语言的精髓,就是要精通指针!

在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。

本书作者是C语言之父,相当经典,“hello,World"程序就是由本书首次引入的。

不过读这本书,我们得有一些unix like系统的操作经验,需要知道文件描述符,输入输出流,重定向,管道以及”anything is file“等在unix世界里这些归为常识的概念;

这些离我们这些在windows的世界里长大的一辈太远。

深入理解C指针和内存管理,提升编程效率!这是一本实战型图书,通过它,读者可以掌握指针动态操控内存的机制、对数据结构的增强支持,以及访问硬件等技术。

虽然是技术类书籍,但是作者很幽默,书里面八卦比较多,趣味性比较强;

同时也展示了优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。

对于有一定经验的C程序员会很有帮助;

对于C语言功底深厚的程序员,本书可以帮助他们站在C的高度了解和学习C++。

作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。

写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。

本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备书籍。

正如书上所说,“本书所揭示的知识,至少能够帮助你减少C代码和初级C++代码中90%的Bug”,我觉得这并不夸张。

《C语言的科学和艺术》是一本C语言经典教材,强调软件工程和优秀的程序设计风格。

此外,读者还可以从书中学习到ANSIC的基础知识,这些内容已经成为计算机行业的标准。

作者的写作风格使得书中深奥的概念变得易于理解和引人入胜。

这本书集中讨论库和抽象的用法,这是当代程序设计技术中最基本的知识。

使用库来隐藏C语言的复杂性,更加突出主题,使读者可以较好地掌握每一个主题的精髓。

然后,进一步给出每个库的底层实现,较好地展示了库自身的抽象威力。

C 语言程序设计现代方法

《C语言程序设计现代方法》最主要的一个目的就是通过一种“现代方法”来介绍C语言,实现客观评价C语言、强调标准化C语言、强调软件工程、不再强调“手工优化”、强调与c++语言的兼容性的目标。《C语言程序设计现代方法》分为C语言的基础特性。C语言的高级特性、C语言标准库和参考资料4个部分。每章都有“问与答”小节,给出一系列与本章内容相关的问题及其答案,此外还包含适量的习题。

《C语言接口与实现:创建可重用软件的技术》概念清晰、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。

书中提供了大量实例,重在阐述如何用一种与语言无关的方法将接口设计实现独立出来,从而用一种基于接口的设计途径创建可重用的API。

数据结构与算法分析——C语言描述

原书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。

在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。

《UNIX环境高级编程》被誉为UNIX编程“圣经”。

经典中的经典。不过看这本书的前提是你熟悉linux,哪怕不是使用linux接口编程,至少要用过,了解shell,gcc,vim。所以适合有一些基础的读者。

时至今日,Linux系统发展越来越成熟,因为具备跨平台、开源、支持众多应用软件和网络协议等优点,它得到了各大主流软硬件厂商的支持,也成为广大程序设计人员理想的开发平台。

本书是Linux程序设计领域的经典名著,以简单易懂、内容全面和示例丰富而受到广泛好评。

中文版前两版出版后,在国内的Linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今。



公众号后台回复【C语言】上述书单中的书籍,即可下载;或者您有更好的经典书籍推荐或者有好的想法,欢迎积极讨论。

推荐好文  点击蓝色字体即可跳转

}

平安金融壹账通大数据研究院数据挖掘攻城狮

最近很忙,很久没有写文章了

今天的话题是 “为什么你的提问没人解答?”

在IT圈子里,不同岗位的从业者都会或多或少在工作中遇到各种问题,公司的相关规章制度流程,大部分人倾向于求助同事,毕竟他们是你最直接获得答案的来源,一问一答,几次下来,即使你是新入职的员工,你也能和同事相互认识了解,这是一件不错的事。

但是关于技术相关的问题,很多从业者并不倾向问同事,或许是因为他们不好意思开口,或许是因为觉得自己的问题同事不一定知道,或许是因为他觉得同事会认为他这都不知道,会嘲笑他!

于是这群“有问题”的人来到了各种技术交流群,例如“人工智能爱好者交流群”、“XX编程语言学习群”。

在群里反正自己也不是实名制,问的啥问题都没事,能得到答案岂不是美滋滋?

于是他们找到了列表中的这些群,编辑了一下自己的问题,如果有心的话,配上一张并不清晰甚至旋转了90度拍摄的问题照片,或许是想让群友活动一下颈椎吧。

编辑的提问文字各有千秋

有会Python的朋友么?

有精通网络爬虫的大佬么?

有参与过XXX大型项目的大牛么?

请各位大佬指点一下我,我是XX编程语言初学者,请问怎么快速入门啊?

这个报错我尝试解决了一上午了,还**没有解决,好**烦躁啊!

这个xxx参数我设置了,为啥不太对啊,出的结果不是我想要的,你们帮我看看。

然后大部分后续情况是这样的:

群里继续讨论刚才的话题,完全忽视了这个提问。

群里冷场了,偶尔有人发个“穿个秋裤或者军大衣救场”的类似表情包让气氛更加尴尬。

群里开始讨论问题,并形成不同声音派系,最后变成世界上最好的编程语言是哪个???

下面跟着几个砍价小程序,游戏小程序分享

第五种情况,也是提问者希望看到的:

写到这,我满脑子 什么 在线发牌???

为什么大部分情况下,你的提问没人解答?

是大家普遍冷漠?还是我问的问题太高深?

但大部分提问者从来不从自己的角度出发去考虑原因。

如何提出更高概率获得期望回复的答案呢?

我个人觉得需要做到以下几点:

1. 你在提问前有自己先研究过解决办法么?

例如写代码抛出异常,你仔细看过异常给出的原因么?

你可能会说,我当然看过啊! 只不过我看不懂啊!

即使看不懂,我们也能有很多种很多办法尝试解决问题!

你可以将异常内容复制在搜索引擎搜索,你遇到的问题可能很多人遇到过,一些博客和stackoverflow可能已经有相关问题的回答了。 这里给出一张群友回复提问者的常见表情图(这里并没有恶意,只是调侃):

除了搜索引擎,你可以去看相关编程内容的官方文档和翻译文档,如果搜索不到或者你的问题不只是编程异常,而是你认为较为复杂的,例如“如何从零开始学习自然语言处理? ”,可以去知乎提问啊,知乎大V最喜欢回答这类问题,他们会给你贴出各个阶段详细的学习规划内容(包括视频,书本,论文,比赛等等)。

甚至,针对一些专业领域的问题,他们会百忙之中抽出时间回答你的问题。

因为他们正式回答问题前,总会说一句:

“人在美国,刚下飞机。 ”

所以很多问题在这个阶段,自己就能基本解决了,也就用不到去群里提问了。

你可能会说: 我这样也没搞定啊!

那在群里提问前,你真的把遇到的问题讲清楚了么?

2. 你的问题别人看得懂么?

大家也看到我之前说的几种不同的提问文字,关于提问,你得描述以下几个点:

(1)说清楚问题所在的领域。

你的问题是什么编程语言的问题? 还是什么算法的问题?

(2)说清楚你不懂的点在哪,而不是一个宽泛的概念。

例如是机器学习的决策树里面的剪枝原理不太理解,那就不要说决策树不太理解,让准备回答的人能get到你不知道的点。

(3)提问的目的求得答案,不是你炫耀的舞台。

例如你在做一个极其专业的内容时遇到问题,你应该虚心提问,而不是装X的提问: “在XX研究领域你们有了解过么? 我这遇到个问题! ”

(4)除了文字,还可以提供更多材料。

能提供截图就不要拍照(花),能提供电脑录屏短视频就不要手机(抖)录像。

(5)声明自己已经做过前期解决问题尝试。

例如提问时说我在xx搜索引擎上搜了“xxxx”,没找到合适的结果,我翻看了xxx文档,在xxx一节没找到解决方案。 这样能规避掉很多无意义的群友调侃,毕竟他们认为你是真心提问。

大家好,打扰大家了,我现在在xx领域操作中遇到一个问题,在xx情况下,我运行了xx文件,结果显示错误,错误为xx,内容如截图中,我尝试在xx上搜索相关内容,并没有解决,有朋友可以帮我看看么? 谢谢大家了!

这时候如果发个红包吸引一下群友,也是不错的(注意红包的大小和人数),试想,如果群友领到的是几毛或者几分,他即使能回答这个问题,但是感觉被侮辱了,然后会保持沉默,甚至回你一个表情包:

当问题解决了, 可以尝试加一下回答者的好友,私发一个红包给他,这样,关系就建立了,并且是精准的,以后有问题解决不了可以优先考虑这位,当然,问问题还是要发个红包啥的,毕竟别人的时间也是很宝贵哒~

还有一种就是加好友提问,当你在群里说了几句回答,就不说话之后,当提问者没有解决问题就会尝试加你好友,加上之后直接粗暴提问,我们可以称之为“伸手党提问”或者“白嫖提问”。

别人上班工作忙,你凭什么没有任何付出就占用他人时间呢? (当然关系好除外,我说的是陌生人)

所以,拜托提问者情商高一些,看完这篇文章好好思考怎么提问吧~

欢迎转发,点在看,让更多朋友学会提问,能更高效找到问题答案!

}

我要回帖

更多关于 编程适合什么人学 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信