精华内容
下载资源
问答
  • 1.零基础,打算自学编程,应具备哪些的知识?...2.学编程应具备哪些条件? 第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,...

     

    1.零基础,打算自学编程,应具备哪些的知识?
    对于入门阶段,对知识水平的要求并不算高,或者说很低,大家都应该听说过xxx小学生编程如何如何这般这般怎么样之类的话题,这里,我们不谈长期发展,只谈
    如何入门。首先,我觉得你应该具备计算机的基本操作能力,


    2.学编程应具备哪些条件?
    第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看,操作系统还是首选windwos。
    第二:有xx语言的入门本书,纸做的,具体xx语言是哪种语言,后面我们再讨论这个问题。虽说现在铺天盖地的都是电子书了(保留这句话的确定性),到处是扫
    描版,还高清呢,但我还是推荐看纸做的书,好处有两点,其一是便于携带,可以随时翻阅;其二是避免眼疲劳,我不信你一直晚盯着显示器看电子书眼睛不会酸;
    还有一点,尊重图书作者的版权。
    第三:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习,在编程这块,我不认为这是在用功学习,零碎时间去背单词?应该是个不错的选择。


    3.你确定要学编程?
    这个问题看起来有点多余,但为什么要提出这个问题?要知道,编程不是一朝一夕的事,如果你只是一时的冲动,或者仅仅是要完成心目中的某个小工具,并没有长期
    写程序的打算,这样的话,编程不学也罢,毕竟编程从入门到能独立写软件会有很长的一段路要走,中途一旦放弃就前功尽弃,并且已经浪费了你大把的宝贵时间,
    实在是得不偿失。不过,你尽管吐槽说是这是你的业余爱好,有个爱好也挺好,那么,继续往下看吧。


    4.如何才能入门?
    到底怎样才能入门?其实,只要你有毅力,慢慢折腾个一年半载,肯定能入门,但写这篇文章的目的就是为了把这个周期缩短些,不是吗?所以,下面我就以个人的观点来谈谈怎么才能更快的入门,这里先笼统的介绍下,对于每点,后面单独介绍。
    –1>.去了解计算机的基本组成,计算机的发展史和编程的发展史,看起来和编程没什么关系,潜在的影响还是十分大的;
    –2>.选择一门简单的语言作为入门语严;
    –3>.学会使用搜索引擎;
    –4>.知道如何看书;
    –5>.要”像”个高手;
    –6.>应具备的学习态度;
    4.1:了解这些历史的意义:
    了解一些编程的实质远比知道如何编程更有意义,不要在编程是怎么回事的情况下就去学习编程,这样对你的学习是十分不利的,作为一个编程爱好者,知道计算机的工作原理,这应该是一件再正常不过的事,你难道不想去知道吗?
    4.2>.选择入门语言:
    这个问题在入门阶段一直是争议十分大的问题,n多语言,n多推荐,到最后搞到新手一会听说这种语言适合新手,于是学习这种语言,一会又有人说xx语言是垃
    圾、弱爆了,学了也没用,之类的话,开始推荐你xxx语言,于是新手们又开始学习这种语言,搞到最后,什么语言都没搞懂,时间大把大把的流失,热情消耗殆
    尽。要解决这个问题,首先要明白一个根本问题,怎样挑选适合入门的编程语言?我推荐从难度这个角度来考虑,这门语言必须简单易学,有趣,而且要有一定的热
    度,有热度才能有更多的人一起交流讨论,一般来说,如果你去论坛提问什么语言适合入门,得到最多的结果应该是C语言,全国大部分的高校的编程课C语言是都有开设的,也可以说是学习
    过C语言的用户基数大,是C语言自身的强大,可谓是口碑好。基数大+口碑好,足以让你得到的结果是C语言居多。
    笔者是C语言入门,接触编程时完全是零基础,现在接触了C、接触了C++、JAVA,Visual Basic
    6,回味了下,如果让我再次选择一门入门语言,我绝对不会后悔选择C语言,
    4.3>.学会使用搜索引擎:
    之所以推荐使用搜索引擎的目的是培养更好的独立解决问题的能力,通常来说,刚学编程时,可能我们有时候连使用什么软件作为编程环境都不知,或者下载安装了编
    程环境却不知如何使用,这时搜索就派上大用场了,跑到搜索引擎里输入”xxx 使用教程”,结果就出来了,简直太方便了。
    而且,新人都喜欢加很多
    xx语言的编程群,而且大都是挑人多的加,一旦编程中出现了一点小错误,就立马到群里提问,这是一个很不好的习惯,假如说群里有人在线,为你解决了这个问
    题,那么你独立解决问题的能力就降低了一分,假如没人在线,你就可能面临着等待,或者把问题放这,不去管它,这样积累的后果你是知道的,最好的方式就是动
    用搜索引擎,不需要等待,还可以锻炼独立解决问题的能力,何乐而不为?还有一点,许多新人反应说许多知识搜索不到,我很负责任的说,不是搜索不到,是你不
    会使用搜索引擎,至少我现在在编程上还没有遇到过搜索不到某个知识点的情况,对于搜索的使用技巧,如果你还不知道,去搜索吧。
    总之,有问题,就要去搜索。
    顺便说句,加很多群不是一个好习惯,群里并不能让你学到太多知识,他的功能在于能找到一群有共同话题的朋友,真实的情况是大多时间都在时一起闲扯一些与编程无关的话题。
    4.4>.知道如何看书:
    无论是电子书还是纸做的书,都会有页码(txt?当我什么都没说过),要做好学习的计划,每天看多少页?这倒不是,不要忽略目录这个好东西,先认真看下一本
    书的前言和目录,了解本书的知识点的分布,这样有利于更快的融入这本书,然后按章节作学习计划,按页来你就不怕把一个知识点切成两半?笔者看书时第一遍喜
    欢浏览,也就是走马观花的看,花一上午或一下午从头把书悠闲的翻一遍,不求记住知识点,只求记住几个名词,知道书里面有这些东西,给大脑一个模糊的印象。
    从第二遍开始认真看,不放过任何一句话,碰到不明白的名词,没关系,搜索解决。看书要及时复习,推荐“看五退三”(笔者自造的词)式看书,也就是说一次看五
    页,下次看书式再向后退回三页,这样可以起到很好的复习效果,遇到确实看不懂的地方,也不要停留太长时间,很有可能当你继续向下看,再返回这个问题时,发
    现你已经可以理解了,这种情况很常见。
    代码是一定要亲手调试一遍的,要亲手输入一个字符一个字符的输入,不是机械的复制粘贴,复制粘贴的后果就是
    你自己感觉学的差不多都理解了,然后到你上机亲手写代码时,要么写不出来,要么一运行报错一堆。所以,书上的每段代码都要亲自调试(再次强调:学编程,就
    必须得要亲手实践,不要想着走捷径,捷径在哪?有捷径我早走了。)
    对于代码报错,作为新手,正常的不能再正常的一件事,这里说两点,注意单词的拼写错误和符号是不是在英文状态下输入的;还有就是坚持自己找出代码错误,坚持,代码报错不求人,自己解决。
    4.5>.要”像”个高手:
    在写这几个字的时候我还是在担心等等这句话会不会造成误解,像个高手,并不是让你打肿脸充胖子,而是一种激励自己学习的一种方法,具体就是,要多帮助其他新
    人,帮助别人可以提高自己的话就不说了,在论坛或群,你可能遇到新人们各种各样的问题,要么代码报错自己检查不出错误,或者想解决某个问题却找不到方法等
    等,诸如此类的问题,如果你能解决,一定要记得解答一下,不断这样下去,你在你的圈子里说话就会越来越有分量,别人也就更信任你的能力,正式由于这种信
    任,也渐渐使你背负上了一种高手的责任感,别人请教问题我能不会?即使出于虚荣心,我们也得不断学习,维护我们在别人心中高手的形象,这样也就达到了刺激
    自己不断学习的目的。
    但是需要记住几点;
    一:不要误导其他新人,自己不确定的知识不要回答;
    二:对于那些弱爆了的问题,你已经回答过很多遍了,如果别人没指明让你回答,那么就把这个机会让给别人吧,确实没必要再在这些弱爆了的问题上浪费时间;
    三:每天冒泡回答问题的时间不要过长,否则会影响到你的正常学习进度;
    四:发现自己错了就要勇敢承认,等高手出来吐槽时只会让你更难堪,不要以为新手好忽悠,当新手有天成为高手时,他会记得当初是谁在挖坑让他跳;
    (悄悄告诉你:假如有人问题你确实不知道的知识,而你觉得这个问题你能解决的时候怎么办?咳咳、有点事,离开一下,一会再回答你。这时候,不用说了,抓紧时间去翻书、上网搜索,高手的形象不能丢哇!)
    4.6>.需要具备的态度:
    恒心?专注?相信自己?每当看到有人告诉新人学习方法讲要有恒心,要学会坚持不懈之类的我就想吐槽,做什么事不需要这样的态度?编程,要有激情,要有想象
    力,不局限于书本上的知识点,大胆实验,尝试把已经学习的话知识点组合成新的知识点,就拿C语言的链表来说,几乎所有的C语言入门书都把链表作为单独的一
    个知识点,如果说所有的书都取消链表这个知识点,当你学完指针、结构体、再告诉你malloc函数的用法,你能想到可以组合成链表这有趣的知识点么?
    学会稳定自己的情绪,当在论坛或群意见不合,或者有人无理取闹时,不要动怒,立即潜水,因为没必要动怒,谁对谁非,旁观者自然能看到,有个词,叫冷暴力。

    如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

    人往高出走,尽量和高手混在一起,尽管在高手眼里你可能会仅仅是个菜鸟,但这样做确实有利于你提高自己,有压力才有动力。需要叮嘱一点:永远不要指望技术大牛经常出现在xx群,高手在哪里?高手多半都在写程序,会有时间泡群?
    笔者的阅历,暂时只能提出这么多建议了,不管建议是好是歹,也算是表达出了心中一直想对新同学们想说的话,所有准备踏入编程这片天空的同学,祝你们学习愉快,早日实现心中的那份梦想。
    最后,引用《黑客防线》上的一句话,作为本篇文章的结束语,这句话我一直记在心中:程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。

    展开全文
  • 学编程看什么书

    万次阅读 2014-07-17 16:46:38
    虽然一直想写点什么,但是感觉自己怎么写肯定都不如上写的,所以到最后感觉还是推荐点比较。 下面列举一些自己感觉还不错的,可能会和以前的有重复,就当做总集篇吧。一般好书都有些难度,而且

    下面列举一些自己感觉还不错的书,可能会和以前的有重复,就当做总集篇吧。一般好书都有些难度,而且看很多书还需要一些铺垫的知识,我只从我自己知道的提一些,不足之处还请见谅

    编程基础




    书名:《C++编程思想》

    推荐理由:虽然很多人推荐《C++ Primer》,而且确实我也觉得那本书写的挺好的,不过如果真觉得哪本书把C++讲的更让我舒服一些,我还是选择它。里面对于虚函数与虚函数表、多态、晚捆绑、模板、多重继承等问题都做了很详细的介绍,甚至还对类方法调用的机器码都做了详细介绍,从原理上弄明白了C++到底算什么。



    书名:《Effective C++》

    推荐理由:在看这本书之前建议还是先看看《C++编程思想》这本书,在没有太多基础的情况直接看《Effective C++》是相当痛苦的一件事情,这本书不针对整个C++体系进行介绍,而是专门针对C++在具体应用过程中非常重要的一些内容,如构造、析构、虚函数、多态、异常、模板、常量等一些我们容易忽略的细节问题中给出了详细的讨论。看这本书不仅是让我们写出给优美的代码,目的更是让我们加深对C++的理解。不知道是不是我个人的原因,感觉看侯大翻译的很诡异,感觉看的时候语句变得很晦涩难懂。



    书名:《More Effective C++》

    推荐理由:这本书算《Effective C++》的一个补充版本,在一些更加深入的细节部分给予的讨论,如果能够把《Effective C++》给看个明白,这本书其实也就没那么难了。不建议上手就开始读它,难度有些高。



    书名:《Java编程思想》

    推荐理由:如果懂C++了,学习Java真心是一件很容易的事情,因为它没有了C++中令人讨厌的指针,不用像C++一样需要自己做堆管理,多了接口、包这样非常适合设计的内容。甚至还有大量的类似Spring、Hibernate这样的开源框架。我们没有理由不喜欢Java编程,它让我们将更多的精力集中在编程,而不是语法的细节上。那这本书的好处就是,给我们详细讲述了Java的语法和基本原理。如果懂C++,这本书可以说就是一本工具书,如果不懂C++,那这本书也很适合作为一本教材。所以没理由不推荐。



    书名:《Effective Java》

    推荐理由:和推荐《Effective C++》的理由一样,Java虽然让我们少了很多对语法细节的关注,但是如何将Java的语言特性发挥出来却不是一件很容易的事情。这本书就在这些细节问题上给出了非常详细的讨论,如类与接口、泛型、注解、方法等很细的内容。



    书名:《STL 源码剖析》

    推荐理由:学习了C++,肯定觉得立面的STL很强大,但是肯定会有很多人说STL一定要根据具体情况而使用,而不能胡乱用,那心里一定忐忑如何才能将这些容器给用正确使用。做法很简单,只要知道它们底层的机制就可以了,所以这本书相当值得推荐,它告诉你为什么vector、list、map、heap、set、queue、dqueue、stack等等各种数据结构底层的实现,它还告诉你什么是迭代器,我们是如何使用模板这一高级特性的。这本书还为以后学习数据结构打下基础,而且学习Java的时候,Java的容器就很容易上手了。这本书难度有些高,最好多用STL解决几个问题后再读。如果对C++懂的比较多,读起来效果更佳。



    书名:《程序员的自我修养——链接、装载与库》

    推荐理由:讲解编译和链接过程的书非常的少,讲编译的书我只知道《编译原理》,讲链接的书我只知道《链接器源加载器》和这本了。这本书难度会比较大,最好懂的Linux内核中关于进程地址空间、页表与内存寻址、进程描述符和中断相关的知识。这样对这本书中一些知识点才比较好理解。另外,最好还需要懂的编译GCC工具链,这样才能对书上的内容进行验证。最后,最好还需要懂一些X86架构体系的知识,或者懂一些汇编,这样里面的一些内容才能看的明白。所以要看这本书,需要的前期准备其实是比较久的,但是如果看懂了这本书,以后再看C++、Java、Ruby这种语言,又完全是另外一番味道了,尤其在看Java虚拟机这样的书的时候,就非常容易理解那些书上说的是什么。如果说之前的几本书是外功的话,这本书就是一本内功书籍,以后很多外功都可以靠它来修炼。



    书名:《深入理解Java虚拟机》

    推荐理由:学了Java,如果还没有学Java虚拟机,那Java真心觉得白学了。弄明白了Java虚拟机的内容,那Java真心就没那么难了。这本书也有一些难度,如果看懂了《链接、装载与库》这本书,那这本书就没什么难度可言,如果没有看懂,那这本书看起来就相对吃力了,其实它里面讲的内容还是编译、链接、加载过程,只是它讲述的是Java是如何做到的,当然这本书还介绍了Java下的堆是如何进行管理的。标记-清理和引用计数是堆管理的两大机制,对以后的学习很有帮助。

     

    书名:《Unix环境高级编程》

    推荐理由:从顶层学习Linux系统绝佳的一本书,Linux系统非常经典的就是它定义了很少的一些经典的系统调用,这本书主要就是通过介绍这些系统调用,告诉我们一个Unix系统应该有什么样的特性,这本书不仅仅是可以当做一本工具书使用,更可以当做一本教科书使用,配合上《Linux系统管理手册》两本书一起看,收获很多。

    书名:《Unix网络编程卷1:套接字编程》《Unix网络编程卷2:进程间通信》

    推荐理由:我原来是学网络工程出生,本科学习的都是《TCP/IP协议族》《局域网与城域网》《接入网技术》《计算机通信网络》《交互网络》这些理论书籍,但是这些书学完以后总感觉自己光有理论知识,但是却没办法将其转换成实际的代码,而让我真正可以开始进行网络编程的入门书籍就是《Unix网络编程卷1》这本书,书中十分详细的介绍了各种套接字,如TCP、UDP、STCP的调用接口,还很详细的比较了各种实现方案:基于信号、阻塞、多路复用、基于线程池情况下如何进行网络编程,在理论的基础上更多了很多系统的知识,可以说是将理论与实际相结合。《Unix网络编程卷2》呢,它十分细致的整理了各种进程与线程间通信和同步的方式,如果希望自己有并发编程的基础,那这本书也可以说是入门的必选教程了。

     

     

    设计基础



    书名:《UML精粹 标准对象建模语言简明指南》

    推荐理由:这本书说起来很鸡肋,它仅仅告诉我们UML该怎么画,偏偏这本书又贵的要死(另外一本我觉得贵的要死,内容又没想象的好的书就是《编写可读代码的艺术》)。当时还是需要推荐这本书,学了那么多C++和Java,或多或少都听过对象建模,那必然需要翻看一些建模类的书籍,但是那些书籍都默认大家懂得UML,这样一来就出现一个落差——看不懂图。这本书的目的就是告诉我们,如何去看别人画的图,如何将代码与图对应起来。可以说它就是我们迈向系统架构的第一步基石(虽然它很鸡肋)。



    书名:《设计模式:可复用面向对象软件基础》

    推荐理由:学习面向对象编程中的基础,虽然这本书已经很久了,里面的模式已经被用烂了,但是我们还是需要学习它,学完它,我们就懂了什么是工厂,以后学习Spring这样的框架就很容易了;学完它,我们就懂了什么是代理,以后学习AOP就显得自然;学完它,我们就懂了什么是观察者,以后什么MVC架构都不会吃力;学完它。。。书中给出了23中设计模式,虽然并不是每种都一样的实用,但是它给了我们如何更加有效、合理的去利用对象、多态这样的特性,如何更好的去做一个内聚的、高可复用的、松耦合的架构的基础,记住:它给的仅仅是基础,真正难的还在后头。



    书名:《敏捷软件开发:原则、模式与实践》

    推荐理由:我才学完《设计模式》的时候,我觉得它很强大,就迫不及待的去应用它,结果在用的时候出现了各种各样的问题。我一直弄不明白如何将这些设计模式和UML结合起来,我不知道如何将设计模式融入到自己平时的代码中。看了这本书以后,我感觉我找到了一些答案,这本书的内容非常丰富。当然,它的要求我感觉也比较高,不懂的人觉得它从头到尾都在贴代码,但是其实不是这样,这本书中隐含着整个代码开发的过程。它告诉我们我们平时设计类的时候的原则有哪些、我们设计包的原则有哪些、我们应该抱着什么样的心态去编码、我们如何与他人合作编写代码、我们该什么时候开始利用设计模式等等。虽然好处非常多,但是我感觉没有切身体会过自己设计、编码、与人合作的痛苦,看这本书的共鸣肯定就会小很多,真的是痛越多,感触就越多。



    书名:《重构:改善既有代码的设计》

    推荐理由:最开始写代码的时候,我那个一个揪心呀,总觉得代码写起来是那么的困难。一会担心效率问题、一会担心命名问题、一会担心代码排版。。。代码删删改改、涂涂写写,老半天憋了十几行代码,结果用的时候还是要出问题。其实,这是一个方法的问题——写代码其实是有一定步骤的,我们需要做到的事情就是——一次只做好一件事情。写代码可以分成添加功能、重构、测试三个过程,看完这本书,我们就懂的了我们应该在重构过程考虑什么问题,这本书不仅仅可以作为一本工具书,也告诉了我们怎么样去编写代码。



    书名:《Junit实战》

    推荐理由:本来是应该推荐《软件测试》这本书,不过那本书我买了还没看,我学习如何利用测试驱动开发是从《JUnit实战》这本书开始的,所以测试相关的书也只能从这本书开始推荐了,感觉看这本书不是为了学习JUnit而看它,更多的是我们要弄明白为什么我们要测试,我们应该什么时候去测试,我们应该如何进行测试,我们应该测试什么,我们应该如何去保证我们的测试是完整的,我们如何在条件不完全的情况下构建测试。而不仅仅是学完以后,知道了一个JUnit怎么用。测试其实是一门非常难的事情,最少我看来它并不是想做就做好的,不是点击几下鼠标就叫做测试。我所知道的写代码就是:测试、重构、实现。每个环节都不是那么容易做到的。




    书名:《程序员修炼之道——从小工到专家》

    推荐理由:很有意思的一本书,讲述了我们平时应该以什么样的心态去面对代码,面对项目,面对团队合作,面对测试。。。这本书感觉没有什么门槛之说,但是更感觉它是写给参与过的项目开发的程序员看的,感觉越是资深的程序员,对这本书的认可度就越高。



    书名:《编程珠玑》

    推荐理由:也是相当有趣的一本书,不过它不是讲述如何去面对团队合作,更多的将尽力放在我们应该如何去面对我们的代码,但是它告诉我们面对代码的心态又和《重构》这种书介绍的不一样。重构更强调的是代码的命名、清晰与减少代码重复度等内容,而这本书更多的是告诉我们应该如何从算法、性能、复杂度等方面去重新考虑代码的编写。但是这本书还是相当值得读的,读了它以后,以后学习算法的时候的心态就会变得更加的坦然了。



    书名:《Linux/Unix设计思想》

    推荐理由:这本书也相当的有趣,没太多的难度,完全可以当做一本科普书来读,但是它讲述的思想死意义深远的。其实到最后,我感觉它的思想就是我们现在项目工程的思想,只是两者用在了两个不同的领域,给出了不同的指导,最后的纲领其实还是一样的。


    很可惜的是我没有做过太多的架构方面的知识,结果这一块内容的书一直都是看的迷迷糊糊,下面会依次介绍一些,我只知道他们是好书,但是没办法做太多介绍。


    书名:《大象:Think in UML》

    推荐理由:这本书个人是感觉写的非常好,它先介绍了UML的各个元素以及RUP的过程,最后再将这些内容整合起来,用一个具体的项目实例告诉我们如何利用UML和RUP进行架构设计。



    书名:《UML和模式应用》

    推荐理由:这本书也是好书,其实内容也和《Think in UML》有些像,不过这种书多看个两本,对UML的理解就更加深刻了。



    书名:《领域驱动设计:软件核心复杂性应对之道》

    推荐理由:这本书关注与领域模型的构建,但是感觉讲的好抽象,看不懂,但是可以肯定,它绝对是一本好书



    书名:《编写有效用例》

    推荐理由:这本书关注于用例模型的构建,但是没有机会接手项目的这个过程,所以看起来还是很抽象,但是我还是可以肯定它绝对是一本好书



    书名:《分析模式:可复用的对象模型》

    推荐理由:针对领域模型的分析过程,这本书也相当的抽象,里面的图都感觉非常难看懂,但是可以肯定它绝对是一本好书



    书名:《企业应用架构模式》

    推荐理由:这本书虽然对表示层、领域层和持久化中间层都做了介绍,不过感觉花费的精力更多的是如何对持久化中间层的设计,我所知道的就是,如果要深入学习Hibernate的机制,那这本书绝对可以提供非常好的指导作用,所以这本书也是一本好书。



    书名:《面向模式的软件架构卷1~5》

    推荐理由:能够出版到卷5的书相信不需要太多理由了,不过这几本书感觉难度还是有些大,反正我看的时候也是看的云里雾里的,没有太多的心得。



    Linux与操作系统

    接下来介绍一些系统原理方面的书:


    书名:《Linux内核设计与实现》

    推荐理由:学习Linux内核很好的一本入门书籍,Linux内核可以说相当的复杂,从任何方面入手都相当的有难度,有的人说先看0.11版的内核比较好。我不完全赞同,在不知道什么是中断、什么是进程、文件抽象、内存管理、内存寻址、文件系统、块I/O与页缓存、虚拟地址空间、模块。。。。等等概念前,看任何Linux内核的书都是很困难的。推荐这本书的理由比较简单,它在介绍内核,但是它又不介绍内核的具体源码;它告诉我们不同子系统下有些什么,但是又不介绍这些子系统的具体实现。所以我觉得它是一本非常好的入门书籍。看完这本书不敢说自己懂内核了,但是我们最少知道了内核有什么东西,后面会慢慢介绍一些讲的更加具体的书籍。



    书名:《Linux内核设计的艺术》

    推荐理由:相信如果只是看了《Linux内核设计与实现》,肯定会觉得内核东西太多,完全搞不明白为什么这些东西怎么组合在一起就可以工作了,那这时候最推荐的一本书就是《Linux内核设计的艺术》,虽然这本书只是讲0.11版的内核,但是它讲的方式很有意思,它是从Linux内核从上电的时候开始的整个系统初始化过程,我们将在书中看到内核启动过程中是如何从实模式转换到保护模式、内核级和用户级是如何调整的、中断向量表是如何重构的、系统内核是如何加载的、中断是如何执行的、内存是如何初始化的、页表是如何构建起来的、文件是如何访问的、进程间通信又是如何实现的。。。不要觉得这本书介绍的内核版本太低,其实现在的内核也是这样做的,只是系统更加复杂而已。还有一本和这本书类似的书叫做《独辟蹊径:从内核源码导入》,只是那本书我没有看过,但是也是一本好书。不过看这本书的时候需要一些铺垫,最少对内核中应该有哪些东西有个大致的概念,还需要对X86的架构有一些了解。



    书名:《Linux内核完全剖析——基于0.12内核》

    推荐理由:这本书我感觉后面2/3的内容可以不看,主要是前面一部分的内容最好看看,因为这部分恰好和《Linux内核设计的艺术》这本书相补充,看完那些内容以后再看《Linux内核设计的艺术》就变得相对容易一些了。




    书名:《深入Linux内核架构》

    推荐理由:它个头很大,当然块头大不能成为推荐它的理由,但这本绝对要比《深入理解Linux内核》这本书要好,《深入理解Linux内核》和《深入理解Linux网络技术内幕》这两本书完全是被国内的翻译者给毁掉的两本书,虽然这两本书都很好,但是翻译的作者太不给力了。这本书比《深入理解Linux内核》更好的一点就是它讲每个模块的内容都讲的比较详细(只是比较详细,因为在一些具体的模块部分可以找到更加详细的书)。但是就是这样都洋洋洒洒上千页。算是我的书柜中最厚的两本书之一了。可以把它当做《Linux内核设计与实现》这本书的增强版就可以了。这本书不推荐入门就看,否则会被他各种细节给绕晕掉的。



    书名:《深入理解Linux虚拟内存管理》

    推荐理由:这本书非常的奇葩,附录居然占据了将近2/3的内容,而且这本书也是被出版社毁掉的一本书,后面代码缩进全部没有了,看起来是蛋疼无比。但是我能找到的讲解Linux虚拟内存的书只有它,而且它讲的还是2.4的内核。但是不可否认这本书在虚拟内存部分做了很深入的解释,在没有出现更好的介绍Linux虚拟内存管理的书籍之前,我们只能看它了。善哉。。。



    书名:《深入理解Linux网络技术内幕》

    推荐理由:虽然这本书被翻译者给毁了,但是不可否认这本书讲的的确非常的好,它认真剖析了帧传输、桥接、ip、icmp、tcp、udp、邻居子系统、路由子系统等等网络协议栈中的具体实现问题,在介绍Linux网络协议栈上,是我看过的最好的一本书了。不过这本书的入门门槛也很高,首先需要对Linux内核有比较多的认识,包括虚拟文件系统、中断、设备驱动、内存管理等相关的知识,此外还需要懂的网络协议栈的知识,包括了TCP、UDP、IP、ICMP、ARP等协议的内容。所以看它需要的准备工作也非常的多。





    书名:《Linux内核源码剖析——TCP/IP实现》

    推荐理由:虽然《深入理解Linux网络技术内幕》这本书讲的很好,但是网络协议栈还是得真枪真刀的看看源码才懂的具体的机制,这本书的好处就是它很详细的介绍了网络协议栈中代码,并且还对《深入理解Linux网络技术内幕》很多没有提到的细节提供了补充。所以这本书完全可以和《深入理解Linux网络技术内幕》一起搭配着具体源码一起看,相信效果会非常的好。



    书名:《存储技术原理分析:基于Linux 2.6内核源码》

    推荐理由:这本书也是一本神书,因为它对内核存储部分的内容可以说做了相当详细的介绍,这在其它的一些书上绝无仅有的,从中你可以深入到虚拟文件系统、块I/O子系统、PCI子系统、SCSI子系统、Multi-Disk、Divice-Mapper模块的最深入部分去一探究竟。这是我最喜欢的几本书之一,虽然其中很大一部分内容我因为不感兴趣而没看,但是我感兴趣的那些内容就已经让我相当的满足了。当然这本书要求也很高,也是需要对内核中的设备驱动、文件系统、虚拟文件系统、内存管理等内容有比较多了解。其中还有一些因为我们都没见过那些设备,导致看不明白的内容。

     


    书名:《深入理解计算机系统》、《现代操作系统》

    推荐理由:这两本书都很喜欢,不过看的更多的还是后者,这种书怎么说呢,理论多于实际,但是我们可以利用实际来验证理论。这种书就在一个很高的角度告诉我们计算机系统(操作系统)为什么应该长这样,还可以有其他的实现方式么,为什么我们不采取其他的实现方式,我们现在使用的方式存在问题么等等问题。

    算法



    书名:《算法:C语言实现》

    推荐理由:虽然不玩ACM,但是感觉还是有必要学习一些算法,最少懂的一些基础是数据结构,算法类的书看的很少(因为太难了),最喜欢的还是这两本(作者说要写3本的,结果多少年了第三本还没出来)。不过最近有一点心得,看这本书最重要的就是理解它里面想要表达给自己的思想,而不是对着书抄一遍,然后运行,发现成功了,再把代码背住就算自己学会了。所以说会算法的人都是神呀,这东西完全就是只可意会不可言传。反正我就一个感觉,什么时候我们看算法能够得出“看山是山,看山不是山”的结论的时候,就算有些明白到底要学什么了。



    书名:《算法导论》

    推荐理由:这本书也是神书(和TAOCP那种超越神的书没法比了),我觉得每隔一段时间看它总有一种新的体悟,不过这本书也不是太好懂。个人的一些心得就是,先到网易公开课找到MIT算法导论的公开课(老师就是这本书的作者),看它一遍,另外,自己动手写代码,这里的写代码不是将书上的伪代码实现了就叫写了,而是去做一些算法的题目,比如《编程之美》上面的题,或者任何一些竞赛入门的题,再看看类似《背包九讲》《男人八题》《微软面试100题》这些的文章。我也说不清那种感觉,反正每隔一段时间,对这些东西就会有一种完全不同的体悟。可能算法的魅力就在于此吧。

     

    接下来的书都是没怎么看,或者看不懂的书了


    书名:《计算机程序设计的艺术》

    推荐理由:神书,不解释,看不懂

    书名:《信息检索导论》

    书名:《数据挖掘导论》

     

    书名:《模式分类》

     




    新入手的一些好书

    下面介绍的书籍都是刚刚入手的好书,虽然没有读过,

     

    书名:《领域特定语言》

    书名:《代码大全2》

    书名:《持续集成:软件质量改进和风险降低之道》

    书名:《离散数学及其应用》

    书名:《组合数学》

    书名:《具体数学》

    书名:《图论》

    书名:《事务处理》

    书名:《HTTP权威指南》

    书名:《Git权威指南》

    书名:《计算机程序的构造与解释》

    书名:《大数据挑战与NoSQL数据库技术》

    书名:《Java虚拟机并发编程》

    书名:《MySQL技术内幕:InnoDB存储引擎》

    书名:《软件调试》

    书名:《DEBUG HACKS》


    转载http://blog.csdn.net/minghe_uestc/article/details/9255621

    展开全文
  • 1java看什么书比较随着互联网的发展,java随之横空崛起,成为了现在的热门编程语言之一,很多看到了这个行业的美好前景,都趋之若鹜奔向这个行业,因此很多人都想要学好这门java语言。那么下面小编给大家说说...

    1

    学java看什么书比较好

    随着互联网的发展,java随之横空崛起,成为了现在的热门编程语言之一,很多看到了这个行业的美好前景,都趋之若鹜奔向这个行业,因此很多人都想要学好这门java语言。那么下面小编给大家说说学java看什么书比较好,希望能对你有些帮助。

    918e8b7105be63e18eb84c55262845ff.gif

    1.《java编程思想》

    本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在BruceEckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。

    2.《java核心技术卷二》

    本书是经典的《Java核心技术,卷II:高级特性》的新修订版,涵盖了Java SE6平台的高级用户界面程序设计和企业特性。与第1卷(涵盖了核心的语言和类库特性)一样,本卷已经更新到了JavaSE6。并且对新内容都作了重点标注。书中所有的示例程序都进行了详细的设计,用来演示新的编程技术。并展示针对专业开发者在现实中所碰到的典型问题的最佳解决方案。本书包含有关StAXAPI、JDBC 4、编译器API、脚本框架、闪屏和托盘API以及其他许多JavaSE6改进特性的新章节。本书聚焦于Java语言中更高级的特性,包括下列内容:流与文件、网络、数据库编程、XML、JNDI与LDAP、国际化、高级GUI组件、Java2D、JavaBeans、安全、RMI与Web服务、高级AWT、注解、本地方法。

    3.《疯狂java讲义》

    本书深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。共覆盖了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下绝大部分类和接口。

    展开全文
  • 学编程看书还是视频

    千次阅读 2020-01-09 12:31:50
    很多朋友问我这个问题,刚学编程,应该买什么书好?是看书还是视频?看书看书更针对有经验的人来学习,因为初学者,一般会遇到各种环境配置的问题,还有一些错误异常等bug,如果你看书的话,是...

    很多朋友问我这个问题,刚学编程,应该买什么书好?是看书还是看视频?

    看书 

    看书更针对有经验的人来学习,因为初学者,一般会遇到各种环境配置的问题,还有一些错误异常等bug,如果你看书的话,是不会有点拨你哪里该着重注意的,我们从小到大,可能也会更习惯听老师讲课,听老师划重点,所以初学还是把看书作为一种辅助手段,当然书的话,也建议买一些新书,书中的知识点是最全的,这点视频就比不了,而且最新出版的书,例子,项目都是更新迭代的,比如爬虫,可能你买几个月前的版本,上面的一些爬虫例子就已经会失效,这点相信有过爬虫开发经验的人都深有体会

    看视频

    看视频它的优势不同于看书,如果你看视频,很多东西是不需要你自己去总结,并且视频里面很多东西都是直接给你实现出来,你只需要跟着敲,实现即可。这样子大大减轻了你自己采坑的压力。 

    它的缺点:可能不系统,毕竟一节课的时间有限,所有知识点不可能面面俱到。一些刚入门的小白,建议可以去网上听一些免费的课,最好带一些项目源码的,再淘宝上买一些视频,其实都是不错的,也减少了很大的经济压力,毕竟知道很多都是一些在校学生,线上的课动不动几千,线下的课更别提了,动不动几万,确实是一笔不小的费用

    最后,对于书,也不是买的越多越好,需要根据情况买适合自己的书,书不方便的一点是书上的案例代码不能复制粘贴,很多重复性、简单的东西都需要自己手动去敲不太方便,浪费时间,而且书毕竟是静态的,不像视频中有老师讲,可以更更清晰的跟着老师的重要思路走,所以初学者建议还是直接看视频(最好包含源码的),这样可以提高效率,但是书上讲的,一般要比视频中讲的更全面,覆盖面更广,只是偶尔翻下,看些自己不知道的东西,当作一个查询手册,作为视频之外的一种辅助

    以上只是自己的一点理解,相信每个人都有自己的学习方法,找到自己的学习方法高效学习才是关键!

    python爬虫与人工智能

    展开全文
  • 原标题:初学Python编程看哪些比较?我推荐你一些学习Python编程适合看的,你可以试着看看是不是可以看懂,是不是感兴趣......中藏着你想要的答案,下面就为大家揭秘学习Python编程看哪些比较?Python是...
  • 随着Python继续占领编程语言主流的趋势,全国各城市的招聘职位和薪资均会大幅度上涨。另外,随着我国在人工智能的投入和规划,对于人工智能人才的需求呈现爆发式增长。Python是人工智能的开发语言,现在学习Python,...
  • 可以把《解析极限编程拥抱变化》、《统一软件开发过程》和《敏捷建 模》这三本放在一起读,XP和UP的不同点,再AM是怎么统一XP和UP的,把这三种理论融为一炉,形成自己的理论体系,那么也可以去写了。...
  • 学校的是C语言上学期过了二级C,也读过java核心技术第一卷,现在想在学学C++然后根兴趣再去认真钻研某一个方面,我该看什么书了? 网上说C++ Primer Plus不错但是我看(第4版)与(第6版)的作者好像不一样,那本...
  • Python是一种通用的解释型编程,主要用于Web开发、机器学习和复杂数据分析。...有的人问学习Python编程能干什么…这些问题的答案是因人而异的,推荐你一些学习Python编程适合。你可以试着看看是不...
  • 不同的方向,就要不同的,有的时候没办法说了一本就能解决所有问题了,从小白到高手都要各种,在不同的环境下编程就要用到不同的。 比如:我最近需要写一个网络程序,那《unix环境高级编程》就...
  • 自学看什么书比较?可以按照这个顺序学习1、《简明python教程》,书不厚,非常适合0基础的人自学入门用。不厚的优点就是上手快,提高自信,适合快速学习,但缺点就是知识点不全,很多细节都没有介绍。2、《Python...
  • Python爬虫入门看什么书好 小编教你Python时间:2018-01-12来源:Python爬虫入门讲解生活在21世纪的互联网时代,各类技术的发展可谓是瞬息万变,这不今天编程界又出现一位"新星”,他的名字叫做Python,目前...
  • 虽然一直想写点什么,但是感觉自己怎么写肯定都不如上写的,所以到最后感觉还是推荐点比较。 下面列举一些自己感觉还不错的,可能会和以前的有重复,就当做总集篇吧。一般好书都有些难度,而且很多还...
  • 下面推荐几本适合新手学习的...无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解...
  • 距离上次推荐有半年了吧,当时推荐的有的也了一些。也发现了一些新书 1、上次推荐的《深入理解Linux网络技术内幕》也啃了一半了,感觉这本书确实写的很。原理讲的很清楚但是有一个不舒服的地方就是,...
  • 果然得多,看着看着人就通了,最近了一些感觉不错的。 推荐的: 1《Linux内核设计的艺术》:这里是我读后的感觉 http://blog.csdn.net/wearenoth/article/details/7881592 2、《Linux内核完全...
  • php程序员Python爬虫,看什么书好?,python爬虫,有1年php编程经验,想有1年php编程经验,想学习Python编写爬虫,请大家推荐本质量高的书,想从0基础开始系统的学习,web方向直接动手开始干,实践来的最快简明python...
  • 1、python入门推荐老齐《从零开始python》,《python简明教程》,这两本很适合小白入门(像我一样长期徘徊在编程门外的人)。2、python进阶推荐《python学习手册》,python学习手册的前半部分与在入门教程中的基础...
  • 今天闲着无事,本想看点视频,结果网速不给力。就大致整理了一些自己的知识结构。 下载地址: http://download.csdn.net/detail/wearenoth/4616071 给个截图:不知道怎么导出清晰图片。
  • 学习编程应该选择什么样的书籍

    千次阅读 2007-12-05 22:54:00
    朱金灿 当我看到公司新来的同事拿着一本诸如VC编程百例之类的作为技术入门,我就劝说他一门技术应该尽可能原理性的,如学习VC,最好去petzold著的《Windows程序设计》、《深入浅出MFC》。为什么要去原...
  • 很多Python大佬都建议去Python官网documentation,觉得那才是最新最有用的,这点小编并不否认,但是对于英语不太的小伙伴们或者尚未接触过编程的小白来说,那就相当于天书一样难啦~一、《Learn Python the ...
  • 目前在线教育、Github学习资源非常丰富,但是我依然认为学习Python过程中需要至少用心去完一本,文末有"惊喜”。因为,很多有关Python的在线教程都是出自个人或者无良的教育机构之手,所以,在质量和严谨性...
  • 网络爬虫示例需要你具有Python语言以及使用pip安装模块的能力。如果你想复习一下这些知识,有一本非常的免费在线书籍可以使用,其书名为Dive ...入门:笨办法Python 3这本书的目的是让你起步编程。虽然书名说...
  • 《Python编程 从入门到实战》本书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有”动手试一试”环节,学编程最佳的方式就是多动手、多动脑。很多初学者之后不知道下一步怎么办,...
  • 目前在线教育、Github学习资源非常丰富,但是我依然认为学习Python过程中需要至少用心去完一本,文末有"惊喜”。因为,很多有关Python的在线教程都是出自个人或者无良的教育机构之手,所以,在质量和严谨性...
  • 原标题:Python爬虫入门看什么书好?生活在21世纪的互联网时代,各类技术的发展可谓是瞬息万变,这不今天编程界又出现一位"新星”,他的名字叫做Python,目前Python已经超过Java而跃居编程排行语言的第五位了。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 820
精华内容 328
关键字:

学编程看什么书好