csapp难吗,csapp怎么样

http://www.itjxue.com  2023-01-20 20:22  来源:未知  点击次数: 

csapp需要什么基础

基础知识:数据结构、程序设计、数据库原理、操作系统。 流行的数据库:Oracle、SQL Server、MySQL,专用数据库DB2等。Oracle的应用占全世界50%,同时学习难度最大。大型企业几乎都采用Oracle,中小型企业SQL Server居多。

C语言要学到上面程度才算基础打好了?

看到楼主这样认真的学习C语言真的很感动。

谭浩强那本书说实话有些误人子弟,里面有很多硬伤。既然楼主已经有一定编程的经验,那么先我推荐三本书:《C程序设计语言》、《C专家编程》和《深入理解计算机系统》。第一本是发明C语言的人写的,在有了一定基础之后再看可以让自己对C语言的理解提高一个层次。《C专家编程》应该是每个人第二本学习C语言的书,它讲了许多C语言的难点和误区。最后一本又名CSAPP,它使用C语言讲解了计算机体系结构,看懂之后你就会觉得C语言几乎没有什么疑惑了。

如果你将来想做一些更有挑战性的工作,而不仅仅是一个码农,建议你看望上面几本书之后去北大的ACM站点上上面做题目(参考资料)。参照讲算法的书,每天在上面做几道题,可以和书本上的知识相互应证,能够大大提高编程的水平。

以上是一种理想的学习方法。实际上很难完全看懂CSAPP,每天到北大ACM上面做题也不太现实,但是只要能大体上照着这一方案来,你的前途不可限量。

PS 只要是学习计算机的,原则上我都会推荐一本书《计算机程序的构造和解释》,这本书是麻省理工学院计算机系的第一门课,能够全方位提高计算机的素养。

没有任何基础的学渣能转行程序员么?要怎样学?怎样学才能学的会学的快,我没有任何程序员基础,22岁

再牛的程序员也是从零基础开始学的,哪有天生自带编程基础的,你现在还年轻,你缺什么就补什么,什么都来得及。就是贵在坚持

所以你的问题的答案是当然是能学能转行,前提是你能把握住自己,坚持下去。找到适合自己的学习方式,通过什么样的方式学习那是因人而异的,不是别人给你做决定的。

想接触C++多线程编程,需要从哪方面入手,有没有

多线程编程的难点不在于锁,正常人看一下操作系统再写几个线程demo就可以基本理解了。对于C++而言,甚至连编写线程安全的类也不是难事。只需要用同步原语来保持对共享资源的访问即可。

我个人觉得最需要的就是实战,写Demo谁都会写。同步原语就那么几个,信号量,互斥量,条件变量等。但是怎么用呢?当你从点击星际争霸到和玩家匹配进行游戏,这当中程序是怎么运行的?

事件驱动是怎么驱动的?

就目前来说,我遇到的困难不是线程的死锁,而是对并发模型的理解。Actor,Reactor模式等。这些东西不实战,个人空想理解起来会吃力。

推荐《Linux多线程服务端编程》,这本书给我的观点是实战性很强,而且涉及面也比较广。后几章提到了分布式系统和作者对C++的思考以及STL algotrithm的运用。如作者所说:“对于面向对象,封装式必须的;但继承和多态耦合性太强,很不划算”我就很赞同

同时展示了一个用C++开发的网络库,不过虽然看了这本书,我还是没找到为什么要用C++的理由。我认为C的确可以很好地解决问题。C++的话就RAII算是真的有益处。

但读之前你需要有一定的C++和操作系统基础。当时买这本书的时候还觉得有点心疼,现在看看物超所值。(我那本CSAPP就翻了一章=-=)

总结:看现代操作系统第二章,同时结合C++11的thread库写经典Demo(生产者消费者问题等)

花两周左右。剩下的就是实战。如果不实战,你还是不知道这些东西在生产环境中是怎么使用的。

可以结合muduo skynet等开源网络框架学习并发模型。

(责任编辑:IT教学网)

更多

推荐鼠标代码文章