如果您可以时光倒流,并告诉自己在作为开发人员的职业生涯开始时读一本书,那会是哪本书?
我希望这个列表会有所变化,并且涵盖范围广泛。
搜索:使用右上角的搜索框。要搜索当前问题的答案,请使用inquestion:this
。例如:
inquestion:this "Code Complete"
如果您可以时光倒流,并告诉自己在作为开发人员的职业生涯开始时读一本书,那会是哪本书?
我希望这个列表会有所变化,并且涵盖范围广泛。
搜索:使用右上角的搜索框。要搜索当前问题的答案,请使用inquestion:this
。例如:
inquestion:this "Code Complete"
Answers:
尽管这不会教您编程,但它会教您每个程序员都应该知道的基本数学。您可能还记得大学里的这些东西,但实际上,执行谓词逻辑将提高您的编程技能,如果您想使用集合进行编程,则需要学习Set Theory。
这里确实有很多有趣的信息,可以使您以不同的方式思考问题。拥有它很方便,只是偶尔去学习一些新东西。
系统技术:系统如何工作,尤其是系统如何发生故障。便宜地得到它。但是,除非您从事了一些失败的项目,否则您可能不会幽默。
这本书的美在于版权年。
这本书中可能是最深刻的外卖“法律”:
基本故障模式定理(FFT):复杂系统通常以故障模式运行。
这样的想法是,在任何给定的软件中都有失败的部分,这些部分被其他部分的故障或其他部分的验证所掩盖。请参阅Therac-25辐射机上的实际示例,该软件的缺陷已被硬件故障保护所掩盖。移除硬件故障保护装置后,这些年来一直未被发现的软件争用状况导致机器杀死3人。
我个人的最爱之一是Hacker's Delight,因为它既有趣又有教育意义。
希望第二版能尽快发布!
本杰明·皮尔斯(Benjamin C Pierce)编写的《类型和编程语言》,以深入了解编程语言的基础。
数据库系统概念是您了解最佳数据库设计原则时可以阅读的最好的书之一。
编程实践。布莱恩·W·克尼根(Brian W.
此处显示的样式非常好-代码本身就说明了问题,整本书都遵循KISS原则。我个人不是我选择的语言,但仍然对我有影响。
人工智能编程范例:Peter Norvig的Lisp案例研究
我开始阅读它是因为我想学习Common Lisp。中途学习时,我意识到这是迄今为止我读过的最伟大的编程书籍。
绝对的软件工艺
替代文字http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
本书解释了有关软件工程,系统开发的许多内容。了解不同类型的产品开发之间的区别也非常有用:Web VSrinkwrap VS IBM框架。人们在构思瀑布模型时会想到什么?阅读本文,我们将变得更加清晰(希望如此)
托马斯·弗里德曼(Thomas Friedman)的《世界是平坦的》。
卓越的程序设计需要投入精力和与医学或法律专业相当的持续学习。它所支付的费用仅为这些专业的一小部分,远远少于支付给精通数学的精通金融行业的人员的工资。而且,构建代码的工资正在下降,因为在大多数经济体中,这一行业对于聪明和自律的人来说相对容易进入。
编程已经侵蚀到支付的费用少于管道支付的程度。管道不能“离岸”。您不需要每隔两年就参加专业水暖工会议就需支付2395美元,而获得了一套全新的管道技术的特权,这将使您花费一年的时间来学习。
如果您生活在北美或欧洲,年轻且聪明,那么编程并不是一个合理的职业选择。绝对涉及编程的业务。学习业务,对编程有足够的了解以完善您的BS检测器:精采。但是,将您最大的精神精力投入到对库,数据结构和算法的掌握上吗?仅当编程对您而言比经济选择更重要时,才有意义。
如果您热爱编程,并且因此而打算将其发展为职业,那么您就应该对这些力量产生冷淡的理解,而这些力量将并且将继续使之成为越来越难的职业。“世界是平坦的”不会教您如何命名变量,但是它将使您沉迷于已经到达的经济现实中6到8个小时。如果您可以阅读但又不怕它,那就出去买“代码完成”。
去年,我参加了许多课程。我读
创新者的困境(颠覆性技术)
神话人月(管理软件)
跨越鸿沟(启动)
数据库管理系统,COW
编程C#书籍,OSTRICH书籍开始iPhone开发,GRAPEFRUIT
书籍
每本书都很了不起,但克莱顿·克里斯滕森(Clayton Christensen)的《创新者的困境》(Innovator's Dilemma)(1997 !!!)确实是一本奇妙的书,它使我真正地思考了现代软件世界。解决的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的,改变游戏规则的技术所破坏。在考虑可能是最大的“网络”公司的Google时,它提供了一种新的视角。他们为什么要全力以赴?这是因为他们不希望自己的职位受到新事物的干扰。谷歌上的预览有很多想法。阅读!
Python语言对我很有影响力,我希望几年前能读过这些书。Python语言的美观和简单性确实影响了我用其他语言编写代码的方式。
真的很好。对计算机科学的最重要领域具有较高的品味。是的,CS!=编程,但这对于每个程序员仍然有用。
弗雷德·布鲁克斯(Fred Brooks)的《神秘的人月》 http://en.wikipedia.org/wiki/The_Mythical_Man-Month
我认为“ Unix编程的艺术”是一本非常出色的书,由埃里克·雷蒙德(Eric S. Raymond)这样的杰出黑客/精明的头脑所著,他试图使我们理解软件设计的一些原理(主要是简单性)。对于即将在Unix平台下启动项目的所有编程人员来说,这本书都是必不可少的。
Martin Fowler的《重构:改进现有代码的设计》已经列出。但我将详细说明为什么它影响了我。
整本书的精髓是如何组织代码,使其更易于阅读和理解的人。它强烈地告诉我,我编写的代码旨在供我的同事和后继者使用,并可能从中学习一些有益的东西。它激发了我有意识地编程,使人们称赞我的名字,而不是诅咒我永恒。
替代文字http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C ++如何编程对初学者来说是一件好事。这是一本非常好的书,完整地包含了1500页。
这是一本很好的书,没有得到广泛的赞誉,但是充满了深刻的见解:《敏捷软件开发:合作游戏》,作者:Alistair Cockburn。
有什么特别之处?好吧,显然每个人都听说过“敏捷”一词,而如今似乎大多数人都是信徒。但是,不管您是否相信,敏捷运动存在的背后都有一些深层的原则。本书以精确,科学的方式揭示并阐明了这些原理。一些原则是(顺便说一句,这些是我的话,不是阿利斯泰尔的话):
那里还有更多。我现在闭嘴,但我强烈推荐这本书!