互联网计算机技术方面的入门书籍有哪些推荐?

互联网计算机技术方面的入门书籍有哪些推荐?,第1张

1、《编码:隐匿在计算机软硬件背后的语言》 ,这本书真的浅显易懂,从与非门到寄存器,再组成RAM,主要帮助你理解电信号如何转换成二进制!你看完加运算的进位电路设计就会明白“溢出”是怎么一回事了。

2、王爽的《汇编语言》,这本书很精简,没有庞大的概念。一直是边做实验边学,带你用指令 *** 作寄存器,并且跟踪结果,你能清楚观察到内存中每个字节的变化!做完实验你就有体会,数据类型确实挺重要的,因为没准你会覆盖别的数据!这里面直接 *** 作地址,想学好指针的千万别错过!

3、为了深入理解汇编与电路之间的关系,推荐第三本书《Digital Computer Electronics》,是一本解构4位CPU电路的书(刚回去翻,发现找不到了,很可惜,这本书对我的帮助很大!)。反正我记得最清楚的是,一条汇编指令mov ax,cs 存储在内存中,后半部分其实存的是两个寄存器ax,cs 对应的地址,前半部分存的是mov 对应的二进制。前半部分进入解码器进行解码,接着通过控制矩阵找到这两个地址,再进行 *** 作。

4、读完以上三本估计你就能很好理解大部分计算机概念了,现在推荐《C程序设计语言》和《C primer plus》,《征服C指针》,这三本介绍了很多C语言特性,注意必须采用《老码识途》中的方法边写边调试,对比不同的写法在寄存器,内存中每个字节的变化,如此你才算是真正懂的了,光看书是没用的,很快就忘记了!

5、数据结构推荐程杰《大话数据结构》,代码很少,直接用插图形式描绘数据结构执行过程。我看完这本书,再去找c语言算法代码来调试,简直太容易理解了。

6、语言层面差不多了,下面的就要进入 *** 作系统了,推荐hurlex同学的《一个基于x86架构的简单内核实现》和《xv6-book》,另推荐网易公开课李志军老师的《 *** 作系统》课程

7、数据库方面推荐《mysql 必知必会》,入门书!不是原理书,教你数据库语句。

8、编译原理方面推荐网易公开课华保建老师《编译原理》!然后推荐目录 | TIPI: 深入理解PHP内核,因为前面介绍了C语言嘛。懂JAVA的可以看看《两周自制脚本语言》,是从零开始的。

9、网络方面太深奥了,推荐一本新书《网络是怎样连接的》,从你打开浏览器访问页面说起。

10、浏览器方面推荐《how browsers work 》中文 版,也就几十页,看一看有好处的!

11、选择一门高级语言!人生苦短,作为一个新手,入门是最重要的!听说C ++ 很牛逼,要不要学C ++ 呢 ?然而到最后我也没碰过几次C ++ ,又想学JAVA ,被JAVA 虚拟机给难住了。最后我放弃了!反正好久没碰,一次偶然机会获得一份开源PHP WEB程序(可以赚钱的),又不想让别人觉得我这是抄袭的!嘿嘿,我就想起给它换个样子!果然学HTML,CSS,JavaScript就有劲了!

综上所述,看书还真不如直接抄抄改改来得实在,新人直接拿别人的demo修改吧,容易上手.

Brian W.Kernighan, Dennis M.Ritchie,《C程序设计语言》

清华影印版、习题集;机械译文版(新版、老版):习题集

这是迄今为止在所有程序设计语言书籍中最广受尊敬的一部经典,是任何一名C程序员的必读之作。因为出自C语言的设计者Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan之手,它被昵称为“K&R C”。是它首先引入了“Hello World!”程序,这个程序几乎成了后来任何一本入门性程序设计语言书籍中的第一个例子。

如同C语言本身简洁紧凑而极具威力一样,这本书轻薄短小而极富张力。通过简洁的描述和典型的示例,它全面、系统、准确地讲述了C语言的各个特性以及C程序设计的基

法,内容涵盖基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口以及标准库等内容。

简洁清晰是这本书最大的特色。这本小书可以教给你许多比它厚几倍的“大部头”的知识。我认为那些动辄洋洋洒洒拼凑出好几百页乃至上千页的技术作者应该好好向K&R学一学。对于中、高级程序员而言,如果希望迅速获得C语言的严肃知识而又不愿意多花费哪怕一丁点时间,这本书就是首选。

顺便说一句,这本书的索引制作非常出色,极具实用价值,这可能首先要归功于正文部分的简明扼要。此外,尽管它看上去很像一本教程,但其实更是一本写给专业程序员的指南。如果你不具备任何其他语言程序设计背景或基本的C语言知识,这本书也许并不适合用作你的C语言启蒙读物。

2. Perter Van Der LinDen,《C专家编程》

C专家编程

C语言是严肃的程序员语言,但这并不意味着C语言书籍必须板着面孔说教。在这本被C程序员昵称为“鱼书”(封面上有一条“丑陋的”腔棘鱼)的著作中,作为SUN公司编译器和 *** 作系统核心开发组成员之一,Peter淋漓尽致地展示了其深厚的技术沉淀、丰富的项目经验、高超的写作技巧以及招牌式的幽默。在这部作品中,作者以流畅的文字、诙谐的笔法将逸闻典故、智慧和幽默自然地融入技术描述中,读来宛若一本小说,极富趣味。 本书讲述了C语言的历史、语言特性、声明、数组、指针、连接、运行时以及内存使用等知识,揭示了C语言中许多隐晦之处,尤其深入解析了声明、数组和指针、内存使用等方面的细节。要想成为一名专家级C程序员,这些内容都是必须掌握的。和其他满是抽象例子的C语言书籍不同,这本书充满了大量的来自真实世界的C程序设计实例,它们对C程序员具有很高的参照价值。另外,每一章都以极富趣味的“轻松一下”收尾,而附录A“程序员工作面试的秘密”则是任何语言的程序员在应聘工作前增强自信的好材料。

我怀疑真正的C专家可能用不着看这本书 ——从内容到组织方式到行文风格都决定了这是一本轻松愉快的“从菜鸟到高手”的进阶读本,所以,它理应拥有更广泛的读者群。初级程序员往往更需要热情的鼓励,在阅读这本书的过程中,你定会深深地被作者对编程的激情所感染。

世间并无完美。我认为这本书的缺陷在于,和大多数平庸的C语言书籍一样,它画蛇添足地加入了一章关于C++的描述。在今天看来,这个描述既不全面也有失公允。不过,鉴于作者是在1994年从一名C程序员的角度去观察C++,这一点也就不足为奇了。 3. Samuel P. Harbison, Guy L. Steele,《C语言参考手册(第五版)》

影印版(机械工业出版社)、中文版(机械工业出版社)

在C语言参考手册类书籍里,Samuel P. Harbison 和Guy L. Steele合著的C: A Reference Manual是非常出色的一本。这本手册的第五版新增了对C99标准的介绍,以便满足新时期C语言学习的需要。全书共分为两大部分,第一部分专注于C语言特性,第二部分则全面讨论了C标准库。本书涵盖C99、C89、传统的C、所有版本的C运行库以及编写与C++兼容的C代码等一切知识。

这本手册只是中等厚度,但它比“比它更厚”的其他参考手册更清晰地描述了C语言的现在和过去的方方面面。整本手册技术细节描述精确,组织条理清楚,内容完备详尽而又简明扼要。可以这么说,它在广度、深度和精度方面都是出类拔萃的。对于中、高级C程序员而言,这本手册值得常备案头,它几乎肯定要比K&R的著作使用频率更高。

4. David Hanson,《C语言接口与实现:创建可重用软件的技术》,机械工业出版社

C语言接口与实现:创建可重用软件的技术

C语言能够历经三十多年而不衰,一个重要的原因在于它的适应能力。在这“复用”、“面向对象”、“组件”、“异常处理”等先进机制漫天飞舞的年代,C语言仍然能够凭借它小而优雅的语言特性,在相当程度上满足现代软件体系架构提出的要求。只不过,想要达到这个程度,必须要在C的应用功力上达到最高层次。在嵌入式、系统软件以及对性能要求极高的系统开发中,开发人员必须达到这样的层次,熟练掌握C语言的高级特性,才能够同时满足效率和灵活性、复用性的要求。可惜,虽然C语言技术图书汗牛充栋,但是关注这个峰顶之域的作品却是屈指可数。David Hanson的C Interfaces and Implementations就是个中翘楚。

David Hanson是业内大名鼎鼎的自由编译器lcc的合作者。在这个项目中,他负责提供高度可复用的基础架构。在不断的实践中,他完全使用ANSI C形成了一整套可复用组件库。这套组件库架构清晰,性能优异,而且提供了很多高级的特性,比如类Win32 SEH的异常处理机制、可移植的线程库、高性能的内存池、丰富的可复用数据结构组件。David Hanson把他在创作这些组件的过程中所积累的心得以及对其源码的精致剖析原原本本地写在了这本书里。这样的著作,当然堪称C语言领域里的铭心绝品。难怪已故著名技术作家Richard Stevens对此书赞不绝口,他说:“这本书中的技术,对于大部分C程序员来说,已经遗忘得太久了。”对于希望能在C语言应用上达到最高层次的核心程序员而言,这本书是难得的必读之作。

其他除了以上四本书以外,我还乐意推荐Andrew Koenig的著作《C陷阱和缺陷》(人民邮电出版社)和Deitel父子合著的C How to Program两本书。

C专家编程

Andrew Koenig是世界上屈指可数的C++专家,他的这本书可能是最薄的一本C语言经典。它简明扼要地讲述了C程序设计中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、连接、库函数、预处理器以及可移植性缺陷等,最后一章还给出了关于如何减少程序错误的建议以及前面各章问题的参考答案。尽管这个小册子成书于C89标准制定之前,然而,即使到了C99早已颁布的今天,书中提到的大多数陷阱和缺陷一如十五年前那样使我们警醒。

C程序设计教程

Deitel父子合著的C How to Program一直是非常好的C语言入门教程,我手头的中译本名为《C程序设计教程》(机械工业出版社出版,原书第二版)。除了对技术的正规描述(辅以许多简明扼要的例子)外,每一章后面都带有小结、术语、常见的程序设计错误、良好的程序设计习惯、性能忠告、可移植性忠告、软件工程评述、自我测验练习及答案等。整书内容清晰,组织良好,易于阅读和理解。值得一提的是,有许多入门书读完一遍即可扔掉,而这一本是个例外。

结语以上这几本书很大程度上局限于描述C语言及标准库本身,如果希望学习更专业的、领域相关的C程序设计技术,你可以在选择阅读这几本书的基础上继续查阅专门书籍。此外,在C语言书籍领域,水平不相上下的作品有很多,这几本只是根据我自身的阅读体验

有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,Michael以前用PHP开发的多个项目中就使用了C语言编写的这类接口,然后再编译到php里面,供php脚本直接使用,这方面的话题就不多说了,下面主要说一下在Linux下如何用C语言连接MySQL数据库,并且读取里面的数据返回,同时如何进行编译。if defined(_WIN32) || defined(_WIN64)为了支持windows平台上的编译#include<windows.h#endif#include<stdio.h#include<stdlib.h#includemysql.h我的机器上该文件在/usr/local/include/mysql下定义MySQL数据库 *** 作的宏,也可以不定义留着后面直接写进代码defineSELECT_QUERYselectusernamefromtbb_userwhereuserid=%dintmain(intargc,char**argv)char**argv相当于char*argv[]{MYSQL mysql,*sock定义数据库连接的句柄,它被用于几乎所有的MySQL函数MYSQL_RES *res查询结果集,结构类型MYSQL_FIELD *fd 包含字段信息的结构MYSQL_ROW row 存放一行查询结果的字符串数组char qbuf[160]存放查询sql语句字符串if(argc!=2){//检查输入参数fprintf(stderr,usage:mysql_select<userid\n\n)exit(1)}mysql_init(&mysql)if(!(sock=mysql_real_connect(&mysql,localhost,dbuser,dbpwd,9tmd_bbs_utf8,0,NULL,0))){fprintf(stderr,Couldn'tconnecttoengine!\n%s\n\n,mysql_error(&mysql))perror()exit(1)}sprintf(qbuf,SELECT_QUERY,atoi(argv[1]))if(mysql_query(sock,qbuf)){fprintf(stderr,Queryfailed(%s)\n,mysql_error(sock))exit(1)}if(!(res=mysql_store_result(sock))){fprintf(stderr,Couldn'tgetresultfrom%s\n,mysql_error(sock))exit(1)}printf(numberoffieldsreturned:%d\n,mysql_num_fields(res))while(row=mysql_fetch_row(res)){printf(Theruserid#%d'susernameis:%s\n,atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0])))?NULL:row[0]))puts(queryok!\n)}mysql_free_result(res)mysql_close(sock)exit(0)return0为了兼容大部分的编译器加入此行}编译的时候,使用下面的命令gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 后面两个选项可选,根据您的环境情况运行的时候,执行下面的命令./mysql_select 1将返回如下结果:numberoffieldsreturned:1Theruserid#1'susernameis:Michaelqueryok!上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档源码天空,各个函数都有详细说明,有时间我整理一份常用的API说明出来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7406632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存