Answers:
我很惊讶没有人提到The Pragmatic Programmer。如果您对自己的工艺完全感兴趣,这是一本必读的书。
手套
每日WTF的这篇帖子使我走上了正确的道路。我承认,有几次开始开发一些“手套”是合适的解决方案的东西。
阅读Adobe的Alex Stepanov的演讲。在5年末,这将使GREAT和GOOD分开。
我总是在某些博客文章上发现Coding Horror和Joel on Software鼓舞人心。他们也总是让我感觉很好,因为我了解他们在说什么,并使我自以为程序员。
还有一群人,他们的脚步跟着,肩膀站着(不分先后,在我脑海中自由流动时列出来):艾伦·凯,理查德·斯托曼,肯·汤普森,丹尼斯·里奇,布莱恩Kernighan,Theo de Raadt,Linus Torvalds,Eric S.Raymond,Rob Pike,Bill Gates,Steve Jobs,John MacCarthy,John Conway,Martin Odersky,James Gosling,Guy Steele,Donald Knuth,Edsger Dijkstra,John Carmack,Peter Molyneux ...他们自己的语言和作品都是鼓舞人心的,或是别人讲的故事。只要您牢记,他们在某些方面的技能和天才并不能阻止他们对自己在其他方面的信念视而不见。像其他人一样。(上面列出的2本书对于其中的大多数书来说已经相当不错了!)
或远不那么著名但活跃的技术专家,如Neal Gafter,Martin Fowler,Don Syme等。
这些人的工作以及他们为实现(或放弃)他们的项目所做的事情使我深受鼓舞。
读2600作为一个孩子的时候,我的英语是embyonic,故事早盗用电话线路像紧缩船长或PC时代与诞生沃兹尼亚克在苹果和阅读书籍和文章威廉·吉布森和尼尔·斯蒂芬森也启发了我作为一个程序员,尽管它与直接编程无关。从这个意义上讲,即使是Hacker's Manifesto,Agile Manigesto甚至是IEEE道德规范之类的东西,也仍然是鼓舞人心的。
在我学习C时,Kernighan和Plauger 撰写的《编程风格的元素》对我非常有影响力。由于使用PL / I和Fortran示例,因此在我阅读本书时,该书已被视为“过时”。这些技巧超越了两种语言。
在读那本书之前,我坚信“风格”是关于我现在考虑的琐碎问题,例如格式(标签上有多少空格?将小卷发放在哪里?)。但是,样式是您删除格式和命名约定后所拥有的。向后构造一个字符串然后反向构造它更容易吗?然后向后构造它并反转它。
Kernighan和Plauger的另一本书《软件工具》也很有帮助,但效果却不尽如人意。Kernighan和Pike的新作《编程实践》也很有用,但与《编程风格要素》相去甚远。我希望我仍然有我的副本。每个程序员都值得阅读。
在阅读了Glenford Myers 的《软件测试的艺术》之后,我对测试和质量检查变得更加赞赏。它向我展示了测试是一种真正的创造活动,而不仅仅是不喜欢编程的计算机科学专业的学生。随着测试驱动开发的日益普及,也许更多的人会转向迈尔斯的书。
而且,我想不出要比免费提供在线书籍《程序的结构和解释》更好地介绍抽象概念了。它引入了Scheme编程语言,但涉及计算机科学的许多其他主题,包括声明性编程。
在我的学术生涯中,我受到面向方面编程概念的启发。您可以阅读有关AOP的一些早期论文,最后得到半页的想法注释。
我也认为Church and Turing的进步非常鼓舞人心。在1930年代,甚至在制造计算机之前,科学家和数学家就使用一种高级编程语言进行编程:Lambda演算。教会数字和前任功能的构造可能是有史以来最聪明的编程构造之一。它向您展示了如何从零开始制作东西。
不是我读过的东西。1984年,我正在与邻居和他的朋友聊天。我16岁。这位朋友告诉我,基本上,世界是由计算机用户和程序员组成的。他说,只有世界上最聪明的人才能成为程序员。
e!真是挑战!
最初是关于软件的Joel,他的写作方式使我在开始学习该概念时非常容易。
设计模式:Erich Gamma的可重用的面向对象软件的元素
我完全是自学成才的,而且我很幸运,在我的工作中很早就偶然发现了一篇文章(指出我在哪里被遗忘了),指出了这两本书。在我读完这两本书之后,代码的转换是惊人的。我欠那些作者很多。
在许多灵感中,最近的一本书是关于:学徒模式
当我在1995年第一次阅读《设计模式手册》时,对于我作为一名程序员而言,这真是大开眼界。
如今,詹姆斯·肖尔斯(James Shores)的一本关于敏捷开发的书启发了我很多,最近莱西·阿德金斯(Lyssa Adkins)谈到了教练团队,如果您对这样的东西感兴趣的话,强烈推荐这两本书。
我应该每六个月重新阅读一次这篇文章,如果没有任何共享软件专家比您聪明100倍,那么为什么有些人可以获得100倍的结果呢?-史蒂夫·帕夫利纳(Steve Pavlina)
我参加了高中Pascal编程课程。我已经非常了解C64 Basic,并问老师是否所有编程语言都像Basic和Pascal。他借给我他的Little LISPer的副本。在度过了周末的阅读之后,我不相信这种奇怪的语言会存在或行得通。当我看到它在他可以访问的微型拨号上网中运行时,我被打倒了。它确实存在。
在我第二届大学水平的编程课之后;算法和数据结构,我换了专业才可以进入更好的CS计算机实验室。他们拥有带有lisp,scheme,prolog,SmallTalk80和大量其他工具的Unix计算机。
我听过的最鼓舞人心的演讲是Richard Gabriel谈论的写作软件类似于写诗。诗人通常会花费大量的努力来使正确的单词少用-Haikus-我们在编写软件时应该努力追求同样的卓越和优雅。
优雅和简洁在编程中与诗歌和数学一样重要,并且需要大量的努力才能流畅地做到这一点。
正如艾伦·凯(Alan Kay)差不多30年前所说,观点价值80智商。改变我观点的书:
路德维希·维特根斯坦(Ludwig Wittgenstein)的“哲学研究”
有时我们认为我们知道,而实际上我们不知道。W.显示了如何仔细看。
纳尔逊·古德曼(Nelson Goodman)的“事实,小说和预测”
在这里,我了解了analytic这个词的真正含义。另外,“ 实用”这个词的真正含义。
罗伯特·皮尔西格(Robert M. Pirsig)的“禅与摩托车维修艺术”
怎么会有比其他东西更好的东西?为什么在质量方面一切都不一样?IOW,好的电影,好的汽车,好的食物和好的软件有什么共同点,使它们变得更好?
塞思·戈丁(Seth Godin)虽然不完全与编程有关,但作为一名程序员和充满希望的商务人士(除乔尔软件公司外),对我来说有一些鼓舞人心的职位。
妙本武藏的五环书。
一些亮点。
没有最喜欢的工具。学习使用每种工具,学习何时使用合适的工具,学习其弱点和优点。
工作不完美的员工可以在公众视野下工作质量的地方使用。支撑建筑物下方地板的支柱不必具有完美的饰面(它们只需工作即可)。
通过做一件事情,做很多事情。因此,如果在A和B之间可以选择,但是B可以在下周做很多事情,那么如果可以的话,请B进行。