我在90年代后期开始学习Web开发和系统管理,当时技术书籍既是初学者的入门书,也是专业人士的综合参考书。
时间太长,不会阅读? Dash应用程序 (及其 Windows 和 Linux 等效版本)使您可以组装电子文档库,以供阅读和搜索,使我想起技术出版的那些美好时光。
前普罗大众技术书店:1984–1996
斯坦福大学校园书店有一个单独的分支机构,专门用于技术书籍。 在楼下,O’Reilly平装书的彩虹刺涵盖了软件主题的范围。 我们会一起去那里(到地毯铺成的地下室,几乎是娱乐室),而我父亲会购买回答他的问题所需的书名。 回到家里,那本书可以放到我父亲学习书架上的一个较小的图书馆里,弥合两个相关主题和标题之间的鸿沟,代表一个已完成的项目或一个值得将来重温的主题。
随着我对软件和系统的了解,我自己的收藏也逐渐增多:用于学习Perl和对Perl 编程的第一批蓝绿色刺; 我想让我的小网页做事,处理输入,响应动作。 Essential System Administration的颜色较深,因为我需要一台服务器来运行这些脚本,而DNS和BIND则要使用 ,因为如果我能够共享自己的工作,则需要一个名称服务器。 在我的生日那天,我父母的朋友(他来“山谷”工作时在我们的沙发上睡觉)给了我一份《 探索Java》副本,以添加到我的收藏中。 每本书,我都感受到了一项新技能的希望。 在每个架子上,我都感到自己的探索已经扎根在不断扩展的知识之中。 对于每个主题,我都可以阅读O’Reilly 学习___ ,毕业于O’Reilly 编程___ ,并且在完成培训后,可以定期使用坚果壳中的O’Reilly ___或O’Reilly ___:权威指南 。
建立图书馆:1996年
但是,尽管对这些回忆充满了喜好,但我不应该忘记其中有多少是理想的收获。 在Perl中,我对字符串的掌握并没有太远。 几乎每次我更新BIND服务器上的DNS记录时,我都会碰坏一件事,而不是打开那本书,而是向下山的邻居寻求帮助(他与另外三个单身男人合住了一栋房子,一个模型铁路,壁橱已满)的SPARC服务器和屋顶上的天线对准山景城中心的一座高大办公大楼,在那里他们与当地的互联网服务提供商成为朋友。 我第一次用Java编写比“ Hello,world”更多的东西是在我大学的计算机科学入门课程中,这本教科书是讲师的主要笔记。
那些架子上堆满了书籍,我的,我的父母的,他们的朋友的,他们的同事的,也许就像律师在装满皮革的书籍前摆姿势拍照。 他们曾经使用那些书吗? 还是在每年的新合作伙伴肖像摄影会上放映的电影背景?
在“ Java的夏天”期间,当Sun Microsystems和Addison-Wesley开始出版有关该新语言的一系列精装本时,技术书籍作为参考和装饰的混合价值在我身上最为明显。 概述,介绍,规范……可以在其中一本书中找到有关这种新编程语言的所有内容。 那年夏天,我碰巧在一个计算机训练营里教书,而这本Java系列丛书的导演恰巧是其中一个训练营的母亲。 每个星期,她都会在另一个装满免费书籍的盒子里停下来分享。 我们所有人都会不分青红皂白地获得更多收益。 我是否需要详细审查一个特定的Java GUI框架? 不,我在我的Exploring Java中添加了一个书签,此后未返回。 再说一次,我正在建造一个图书馆,于是我拿走了它。
技术书香肠工厂内部:1999–2001年
2001。 我妈妈过去两年大部分时间都是每天开车去太平洋海岸的半月湾。 她带来了一张沙滩椅,一堆文件和一台笔记本电脑。 当她开车进入停车场时,她向护林员打招呼,每天他问她书本是怎么来的。 起初,他很顽皮,以为是个玩笑,这是我母亲在海滩上写的一本技术教科书。 随着时间的流逝,他已经习惯了她的到来,并意识到论文是真正的出版商的证明。
最终,她和她的合著者在邮件中收到了“ 支持Web服务器以及分析电子商务和互联网法”的副本。 因为我通过写每章末尾的所有测验和习题集赢得了自己名字的封面,所以对我来说也有一些。 (高中对我的训练非常好,如何写作和回答多项选择题和作文提示。)
这是互联网在其第一个繁荣周期中的高度。 这是电子商务的早期,充满希望的日子。 然而,这两本书都没有太大的不同。 由于出版商推迟了一年而使它们受阻,书籍的技术内容变得陈旧,而发行商的营销部门却不得不接受各种证据。 如果这些材料直接从我妈妈和她在海滩上的笔记本电脑(以及她在全国各地的合著者)直接绕过斯坦福技术书店附件的地下室,而绕过新泽西州北部的市场部门,则该材料将更有价值。大规模推出的计划。
技术书香肠工厂内部:2007–2011年
从技术人员的键盘到读者的书,现在是一些技术出版商的运作方式。 当书店或读者订购副本时,许多O’Reilly较短的书名将按需印刷。 作者的内容保存在源代码控制系统中,每次打印副本时都会获取并渲染最新版本。 作者可以立即进行更改(例如,修正拼写错误或更新示例以使用新版本的软件库),并且读者将获得更新的电子书版本。
此模型解决了我妈妈和她的合著者遇到的两个问题:技术书籍可以在保质期到期之前投放市场,并且出版商的总费用更低,这意味着更少的市场营销和销售决策被委员会。
但是这种模式也破坏了像O’Reilly这样的发行商提供的逻辑进程和结构。 Android SDK于2007年底发布。直到2011年年中,O’Reilly才发布了第一个带有绿色刺的英文标题,当时他们发布了使用Adobe AIR开发Android应用程序,使用Flex 4.5开发Android应用程序 , 学习Android , Android编程和Android平台的应用安全 。 在这几年中,我一直在努力学习开发Android软件。 StackOverflow的问答对我们有所帮助-这是我下坡邻居的即时性,尽管缺乏友情或正在进行的交谈的内容。 面对面的课堂,尽管他们的费用是有帮助的。 (碰巧的是,我的讲师们写下了笔记,这些笔记变成了O’Reilly的Learning Android 。)因此,鉴于我从2007年到2011年一直在追求Android,O’Reilly书籍受到的冲击实在太大了,为时已晚。 较长的标题试图记录每个月变化的API。 较短的标题(每页114页)读起来像长的博客文章,内容涉及过于具体,几乎任意的主题。 我对O’Reilly的作者到打印机的管道充满信心,可以使介绍性标题或“权威性”标题保持最新。 与“ Java的夏天”不同,当软件开发人员和发行商一起工作时,这些不是我想以物理或电子形式添加到我的图书馆的书。
技术书香肠工厂内部:2004-
在oreilly.com上搜索Android,您会注意到列出的147本书中有51本书不是由O’Reilly出版的,而是由一家名为Packt的英国公司出版的(Packet)(O’Reilly发行的众多出版商之一)。 Packt可能已经完善了机枪技术发布的方法。 当新的开源库或框架到来时,Packt迅速招募作者来撰写简短的动手介绍。 示例代码有时包含错误。 解释并不总是很清楚或精心设计。 然而,就在我最想了解一个新技术主题的时候,它们就在Fry’s Electronics的书架上,并作为电子书在线提供。
我最近*担任Packt职称的技术审查员,这次经历证实了我的许多印象。 尽管他们的作者和编辑关注质量和准确性,但速度才是最重要的。 这些不是___:权威指南 ,甚至不是学习____标题。 这些都是扔掉的书(我不是贬义的意思)。 他们更像是杂志,而不是书籍:可访问,及时且值得一读。 我质疑他们的教学法价值(就像我质疑早期机枪技术出版商New Riders的第一个进入市场的垃圾一样) ,但是当它是商店或商店中唯一的一本书时,很难与之争论。有关新主题的网站。 唯一有争议的方法是完全放弃技术书籍。
返回文档基础:2010-
尽管O’Reilly撰写了有关Perl和Addison Wesley的Java系列的青绿色“鼠”书,但到目前为止,这两种编程语言都没有。 我在1998年左右发现了ColdFusion及其结构良好的电子文档,一两年后,我发现PHP及其自己的文档网站上充斥着由读者提供的有用注释和代码示例。 这些文档将“ 学习____”,“编程____”和“ ___:权威指南”方面的最佳知识结合在一起。 鉴于我父母对失去印刷手册和语言规范的评论,全面的ColdFusion和PHP文档既不是新的也不是唯一的; 它们可能只是风俗逐渐淡化的迹象。
然而,这又回到了我现在返回的这些类型的文档。 我选择的模板语言不再是PHP,也不再使用ColdFusion或任何其他商业Web框架。 仍然是我经常使用的由开发人员和发烧友创建的文档。 例如,在Ruby on Rails中,RailsGuides相当于我的Learning ____ ,它是API文档,尤其是API Dock上包含注释的版本,它们相当于我的____:The Definitive Guide 。
但是,网站书签的集合并不构成图书馆。 书的位置,空隙,范围都有含义。
在过去的一年半里,*我一直在笔记本电脑上重建技术库。 使用一个名为Dash的Mac应用程序,我为我使用的每种语言,库和框架下载并组织了“文档集”。 在更系统地阅读时,它们很容易搜索参考并且易于浏览。 我发现按主题对文档集进行分组很有帮助,以使一些组织可以使用多种语言,库,框架和组件,这些是我在“全栈” Web开发中使用的一部分。 这些下载中有一些是我的理想下载,而另一些则是我经常使用的下载。
Dash的创建者Bogdan Popescu一直在稳步添加文档集,他在创建其他文档集的过程中为他人提供了指导。 他为Dash收取20美元的费用,但欢迎其他人为文档集构建自己的查看器(例如Windows的付费Velocity以及Linux和Windows的开源Zeal)。 他的产品给我留下了深刻的印象,我很高兴他同时建立了一个松散的开发人员和文档社区。
实际上,这种将原始文档打包为更易于访问的格式的方法是O’Reilly进入发布的方式。 1984年,技术写作合同商店O’Reilly&Associates开始保留他们制作的Unix手册的权利。 也就是说,他们成为发行商,并在此期间的某个时候将自己更名为O’Reilly Media。 Dash和文档集启用了另一种传播模型,但是到目前为止,我发现它对于学习和参考书与那些带有彩色编码的“动物书”的书架一样有价值。
当今的技术书籍和文档*
是的,我正在为技术书籍和文档这个枯燥的话题苦恼。 但这与我最近一直在想的实际问题有关:当新的初级软件开发人员到达我的办公室时,我应该给他们什么建议? 我应将其指向哪些资源? 是否有值得付费的书籍,课程或会议? 还是软件开发和系统管理技能仅来自动手实验(蒙特梭利学校,那里仅允许使用命令行和StackOverflow访问权限)?
这是我的初步建议:阅读(质量)技术书籍或浏览(维护良好)的文档几乎没有什么害处。 实际上,涉及几本书或文档,可以帮助您缩小一行代码,更充分地理解不同库,语言和组件的上下文。 也就是说,并非所有技术书籍都是高质量的,并非所有文档都维护得很好,并且在书架(物理或电子)环境之外,孤立地使用一种资源可能会受到限制。 在过去的15年中,技术出版商的香肠工厂生产了多种食品。 虽然我仍然定期从O’Reilly和其他传统技术出版商(特别是Ruby的Pragmatic Programmers和iOS的Apress)购买书籍,但我的关注重点已转移到Dash及其文档集。 如果您是开发人员,初级或中级以上,建议您尝试Dash或它的等效版本之一。 看看您可以使用这些屏幕上的文档来完成多少工作,以及少量纸质或平板电脑上可靠的计算机科学和软件工程书籍。
最后,如果您是出版商(例如,O’Reilly Media的资深人士),我建议您尝试与Popescu先生合作,并将您的电子书集成到Dash中。 我敢打赌,如果我能够将那些书名与开放源文档集放在同一虚拟架子上,那么我不是唯一会进行更多雄心勃勃的电子书收购或订阅像Safari这样的电子书服务的人。
书籍,文档,教程,API参考,在线问答:这些都是它们自己的有用资源。 当它们组合并组织在随时间而增长和发展的个人库中时,无论它们是在物理架子上还是在设备上,它们都更加有用。
*注意:在此博客文章中,“最近”和“今天”表示2014年。那是我写这篇文章的时候,将其保存到我的草稿文件夹中,然后忘记了。 现在是4年后。 我仍然使用Dash,但由于我通常的工作日涉及更多的人员和产品管理,因此使用频率有所降低。