zoukankan      html  css  js  c++  java
  • 学习软件开发应该看的书

    1、 C语言提升

    《c和指针》

    《c缺陷和陷阱》

    《c专家编程》

    这三本书是一个初级C程序员必看的三本书,同时也是应届新员工必须好好学习的教材,非常适合刚毕业的大学生学习

    2、  C++语言提升

    《Effective C++:改善程序与设计的55个具体做法》

    《More Effective C++:35个改善编程与设计的有效方法(中文版)》

    《C++沉思录》

    《C++Templates中文版》

    《深度探索 C++ 对象模型》

    《泛型编程与STL》

    我是一个由C转向C++的程序员,所以从来没有系统的学习过C++的语法,往往是用到的什么学习什么。如果要系统入门,《C++ primer》倒是不错。上面的几本书,我正在读的是第一本,打算这两个月可以学完《effective c++》和《more effective c++》,之后再更深一步学习。当然,这里的学完只是把书看完,做个笔记,要完全的理解书中的内容还需要进一步的实践。


    3、 设计类

    《代码大全》:这是我非常喜欢的一本书,非常适合工作2~3年的人精读。我在一篇文章中专门做过推荐。

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

    《代码整洁之道》

    《实现模式》

    《程序员应该知道的97件事》

    这几本书一般讲的是函数以及更低层次的设计。《代码大全》完完整整的读完过,而且做了很多的笔记,获益良多。《重构》就不必说了,其他几本书前面大致看了一下,也非常不错,计划有时间要好好学习一下。


    4、 架构

    《软件体系结构的艺术》

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

    《软件架构师应该知道的97件事》

    《企业应用架构模式》

    《面向模式的软件体系结构卷1:模式系统》

    《软件架构设计》

    《架构师需要知道的97件事》

    我对这一块比较陌生,这也是我今年的学习重点。《软件架构设计》这本书我从头到尾读过,对软件架构也只是建立了一个整体的印象。后面这一块的学习我 会和模式的学习结合起来。首先的学习目标是《面向模式的软件体系结构卷1》,之后是《分析模式》《企业应用架构模式》《领域驱动设计》。


    5、敏捷开发

    《测试驱动开发》

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

    《Scrum敏捷项目管理》

    《硝烟中的Scrum和XP——我们如何实施Scrum》

    《敏捷软件开发》这本书我学习了“原则”这部分,对敏捷软件开发有一个大致的了解。其他的书籍对我更像一个参考书。目前还无法安排出大量时间系统学习。


    6、 模式

    《Java与模式(含盘)》

    《实现模式》

    《企业应用架构模式》

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

    《反模式:危机中软件、架构和项目的重构》

    《设计模式》

    《面向模式的软件体系结构卷1:模式系统》

    上面讲架构的时候说过,模式的学习要和架构结合起来。当然,这是说的更高层次:架构的模式。《实现模式》是面向函数的,《设计模式》是面向对象体系的。《设计模式》我从头到尾看过,但是还需要在看一遍,当时读的时候经验有限,理解的不是很透彻。现在看肯定会有新的收获。


    7、  思想类

    《变革中的思索——张亚勤解码创新》

    《技术领导之路——全面解决问题的途径》

    《创新赢天下:九大商界领袖谈创新》

    《软件随想录:程序员部落酋长Joel谈软件》:这本书里面的文章都非常不错。

    《华为研发》:把它放在这里似乎有些不妥。

    《黑客与画家》

    《UNIX编程艺术》

    《代码之道》

    这些书可以锻炼一下思想力。我比较喜欢的是《软件随想录》和《代码之道》,比较期待的是《黑客与画家》。


    8、之美系列

    《团队之美》

    《架构之美》

    《代码之美》

    这三本书都是选择一个主题,然后找一些世界级专家来按照这个主题写一篇文章,所以这几本书的系统性不强(但并不代表书不好)。可以把它放在手边,有时间就读一章,和大师对对话。


    9、 开发语言

    《PHP 6与MySQL 5基础教程》

    《PHP与MySQL程序设计(第3版)》

    《Ruby for Rails 中文版》

    我的第一工作语言是c/c++,第二工作语言是python,业余时间工作语言是PHP。上面的书还少python相关图书,正在补充,也正在学习。

    10、linux/unix

    《深入理解LINUX内核》

    《深入Linux内核架构》

    《UNIX环境高级编程》

    《Linux内核设计与实现》

    《链接器和加载器》

    《Linux高级程序设计》

    《ARM嵌入式系统开发:软件设计与优化》

    《UNIX编程艺术》

    这些书大多是我的一些参考书,《UNIX编程艺术》除外,它是一本很特别的书,值得好好阅读一下。

    另外,我一直想抽时间研究一下linux内核。


    11、管理类

    《卓有成效的管理者(典藏版)》

    《管理的实践(珍藏版)》

    《高效程序员的45个习惯:敏捷开发修炼之道》

    《卓有成效的管理者(典藏版)》这本书我从头到尾读过,也做过笔记,这是一本非常好的书。


    12、算法

    《算法导论》

    《编程珠玑》

    这可以说是我的软肋。第一本书看不懂,第二本书还没有看。要努力啊。

    上面的分类是我大致的划分,可能不够科学。但是用来组织我的书单应该绰绰有余。

    另外,上面的书,有很多内容可能会重复,这需要读的时候自己根据具体情况取舍了。也可能有些书买不到,不过应该可以找到电子书。

    最后,说一下我对读书的一些看法:

    1、有些书必须要精读,而精读的时候,必须要做笔记。

    2、选择读书的时机也很重要,如果你没有一定的实践和基础,读一些书可能是一件非常痛苦的事情。这个时候,要停下了。如果你对某方面的知识有非常强烈的渴望或需求,这个时候是最好的时机。

    3、开发实践过程中的学习效果最好。

    4、专注。分为两个层面。第一个层面是要在一个大段的时间(比如90分钟)内专注,这样可以提高学习工作效率;第二个层面是长期的专注,及在一个长 的时期内(比如,一个季度,一年)要专注于某一领域,这样才能才能在某一领域内有积累和突破,不至于沦落为事事皆知但事事不精的泛泛之辈。我目前专注学习 的是c++,之后是模式与架构。

    5、在专注的基础上扩大自己的知识面,要了解当前IT技术正在发生哪些变化。

    要做个“T”型IT人:既有深度,又有广度。

  • 相关阅读:
    Python,文件修改
    Python,文件
    driver.find_element_by_xpath.clear()无法清空输入框默认值
    对于隐藏性质的非标准的动态 id 的下拉框,如何定位和选中
    driver.find_element_by_xpath() 带参数时的写法
    不能聚焦元素问题 WebDriverException: Message: unknown error: cannot focus element
    firefox56 版本中的 Selenium IDE 无法导出脚本问题
    元素无法定位问题 NoSuchElementException: Message: no such element: Unable to locate element 解决方法
    selenium python 脚本不支持中文问题
    关于 chromedriver、IEDriverServer、geckodriver 驱动器的几项注意点
  • 原文地址:https://www.cnblogs.com/ubuntuvim/p/4796581.html
Copyright © 2011-2022 走看看