图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 图灵社区的电子书没有采用专有客户 端,您可以在任意设备上,用自己喜 欢的浏览器和PDF阅读器进行阅读。 但您购买的电子书仅供您个人使用, 未经授权,不得进行传播。 我们愿意相信读者具有这样的良知和 觉悟,与我们共同保护知识产权。 如果购买者有侵权行为,我们可能对 该用户实施包括但不限于关闭该帐号 等维权措施,并可能追究法律责任。 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 内 容 提 要 新手程序员在具备了理论基础后,面对实际项目时往往不知道如何解决问题 ; 有经验的程序员在学习了一门新语言后,也会有很多不知道如何使用的特性。针对 程序员的这一普遍困惑,资深软件工程师 Brian P. Hogan 在这本书中总结了 57 道练习 题,帮助他们锤炼技能。这些练习题均取自实践,难度会逐渐增加,使得编程训练 充满挑战又乐趣多多。 本书适合所有程序员阅读。 ◆ 著 译 责任编辑 责任印制 [美] Brian P. Hogan 臧秀涛 岳新欣 彭志环 北京市丰台区成寿寺路11号 ◆ 人民邮电出版社出版发行 邮编 100164 电子邮件 [email protected] 网址 http://www.ptpress.com.cn 北京 印刷 ◆ 开本:880×1230 1/32 印张:4.25 字数:106千字 印数:1 — 3 500册 著作权合同登记号 2017年 2 月第 1 版 2017年 2 月北京第 1 次印刷 图字:01-2015-8282号 定价:39.00元 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广字第 8052 号 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 前 言| 1 第1章 版权声明 Copyright © 2015 The Pragmatic Programmers, LLC. Original English language edition, entitled Exercises for Programmers: 57 Challenges to Develop Your Coding Skills. Simplified Chinese-language edition copyright © 2017 by Posts & Telecom Press. All rights reserved. 本书中文简体字版由 The Pragmatic Programmers, LLC.授权人民 邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或 抄袭本书内容。 版权所有,侵权必究。 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 如何使用本书 | 1 第1章 如何使用本书 宝剑锋从磨砺出。 音乐会钢琴家每天练习数小时,学习音乐,排练技艺,提升技能。他 会反复练习同一段音乐,打磨每一处小细节,确保准确无误,因为等 到登台表演时,面对那些花钱、花时间来的观众,他希望可以为自己 的表现而感到骄傲。 职业足球运动员会在健身房里花费很多时间,练习托举、跑动和跳跃, 并反复训练,直至完全掌握,然后才开始练习足球。他会研究比赛, 观看以前的比赛录像。当然,他也会参加分组对抗和表演赛,确保做 好一切准备,可以随时真正上场比赛。 空手道从业者一生都在练习“形”(kata)——这是模仿实战的动作套 路,学习如何呼吸以及正确发力。他会千万遍地练习同一个套路,通 过一次次重复做到越来越好。 我遇到过的优秀软件开发者,也是这样锤炼其技艺的。他们并不是天 天只利用上班时间练习,而是会用自己的时间学习新编程语言,在其 他方面不断精进自己的技术。当然,在工作中他们也会学习新东西, 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 2 | 挑战编程技能:57 道程序员功力测试题 但因为是工作时间,所以会有预期:公司是希望你有产出的,而不是 花钱请你来练习的。 本书要谈的就是程序员如何锤炼其技能。翻到本书的某一页,打开文 本编辑器,敲出上面的程序。可以自己做些修改。用你从来没用过的 一门语言实现这个程序。随着一次次重复,你要做得越来越好。 目标读者 本书主要面向两类程序员。 首先,本书为刚开始学习编程的人提供了课外练习材料。技能不可 能仅靠做作业就得到提升。未来的雇主会希望你们表现出批判性思 维和解决问题的能力,而这需要通过练习来训练。本书会提供这种 练习,书中的问题都取自实践,是很多开发者都要面对的,但是这 里针对读者的能力做了针对性的设计。每一章都会围绕一项基本的 编程能力展开,而且会比前一章复杂一点,后面的内容构建于前面 所学的知识之上,同时让你为以后的挑战做好准备——不管是课内的 还是课外的。 很多新手程序员习惯于有人清清楚楚地告诉他们如何解决某个问题。 他们往往是跟着可以直接输入示例代码的教程来学习一门语言。这 确实也是开始编写代码的不错途径。但是当面对没有现成答案的开放 性问题时,这些程序员就纠结了。任何有经验的人都可以告诉你, 软件开发中满是开放性问题。本书中的练习可以帮助你培养问题求 解技能,使你有信心攻克更大的问题——或许是从来没有人解决过的 问题。 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 如何使用本书 | 3 不过,本书也适合那些想将手头的事做得更好的有经验的程序员。在 学习 Go 和 Elixir 时,我使用了类似本书中的那些程序。在尝试 iOS 开发时,我也编写了这些程序。每隔一段时间,我都会用一门我了解 的语言实现一下它们。我熟练掌握了 JavaScript 和 Ruby,而看看是否 能以不同的方式、不同的算法或模式实现其中的一个程序,也是极大 的挑战。在我开始全职讲授 Ruby 和 JavaScript 时,这些程序帮我发 现和解释了这两种语言的一些特性,这些特性我知道怎么用,但是并 没有充分理解。所以,如果你是有经验的开发者,我鼓励你也这么做。 比如用 Haskell 试试其中的一个程序;或是试试用你熟悉的每种语言 编写其中的一个,然后比较一下结果。也可以让你的同事每周做其中 的一个练习,并比较你们的方案;或是使用这些程序来指导团队中的 新人。 教育工作者需要注意 如果你是在高中或大学讲授编程入门课程,可能会发现本书 中的练习在课堂上也很有用。不过,我不建议将其用作最终的考 试评估,我鼓励读者彼此分享其解决方案。当然,如果学生可以 共同合作,我也建议将本书中的练习用于课堂。这些练习很适合 问题导向的学习环境。 本书内容 之所以写作本书,首先是希望向编程语言初学者提供一些一开始可能 要面对的、有挑战的问题。因此,大部分问题一开始相对简单,难度 会逐渐增加。书中练习的这种延续性,使得编程基础的训练充满挑战, 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 4 | 挑战编程技能:57 道程序员功力测试题 同时又有很多乐趣,还可以让我们更加快速地上手一门新语言。在第 一部分,程序只是简单地接受一些输入,操作数据得到不同的输出, 让你体验计算机程序如何处理输入和输出操作。这是新手第一周要编 写的程序。 下一步就有些挑战了,要编写进行计算的程序。有些程序就像计算房 屋面积那么简单,但是其他程序可能会涉及金融和医疗方面的计算, 和我们可能在工作中碰到的类似。 然后,通过引入决策逻辑和重复逻辑,我们会增加程序的复杂性,而 且会引入函数。 之后,你会发现有些问题需要使用像数组(array)或映射(map)这 样的数据结构来解决。这些程序还需要你利用之前解决的其他问题。 当然,没有点儿文件输入输出,程序是不完整的。所以我们会练习从 文件中读数据,处理,最后写回。 现代的程序往往要和外部服务交互,因此你会发现一些程序需要使用 第三方 API 的数据。 最后,本书后面有几个比较大的程序,需要读者综合前面所学。 此外,每个练习都有一些在构建程序时必须遵循的约束,还有一些高 于当前程序的挑战。如果你完全没有编程基础,可以跳过这些挑战, 等技能提高之后再回来看看。如果你已经有些经验,并且感觉程序太 过简单,则可以立刻试试。取决于所选择的编程语言,有些挑战可能 非常困难。比如,如果使用 JavaScript 和 HTML 开发这些程序,那实 现一个 GUI 版本会非常容易。如果使用 Java 开发,就要多做大量的 图灵社区会员 shadowmaycry([email protected]) 专享 尊重版权 如何使用本书 | 5 工作。不过对于这些挑战,如果你感觉合适,可以自由修改。 然而,本书不会提供这些程序的解决方案。如果你做了足够深入的思 考,而且使用了所有可以调配的资源,应该能独立想出解决之道,而 这正是本书主旨所在。 最后一件事:本书中没有那些低劣的面试题,也没有 FizzBuzz 之类 的问题。你不需要翻转二叉树,也不需要编写快速排序算法(除非它 作为某种解决方案的一部分而用到)。如果你想找这类内容,应该到 别的地方看看。那类问题有价值,但至于为什么要做,我们并不清楚, 所以实际做起来会更困难。这就使得人们感觉它们不是那么好接近, 因而成了学习的障碍。 本书中的问题是比较简单而且容易涉及的现实问题,可以帮你练习使 用代码解决问题。 读者所需 你需要的就是自己喜爱的开发环境,甚至可以是从来没用过的那种。 本书没有限定于某种具体的编程语言。请选择一门语言,抓起这门语 言的参考指南,深入进去。但是提醒一句,编程语言的选择会影响书 中程序实现的难易。比如,如果选择 Python 或 Ruby 来配合学习本书, 开发图形用户界面就没那么容易。如果选择在浏览器中使用 JavaScript,那么使用外部文件和 Web 服务就会比其他语言复杂。与 面向对象语言相比,如果选择的是函数式语言,则问题的解决方案会 有显著区别。不过这正是这些练习的真正价值所在;它们可以帮你学 习一门语言,并理解它与你之前学过的语言有何差别。 图灵社区会员 shadowmaycry(756979099@qq.

pdf文档 [图灵程序设计丛书].挑战编程技能:57道程序员功力测试题

专业资料 > IT/计算机 > 互联网 > 文档预览
141 页 0 下载 211 浏览 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
 [图灵程序设计丛书].挑战编程技能:57道程序员功力测试题 第 1 页  [图灵程序设计丛书].挑战编程技能:57道程序员功力测试题 第 2 页  [图灵程序设计丛书].挑战编程技能:57道程序员功力测试题 第 3 页  [图灵程序设计丛书].挑战编程技能:57道程序员功力测试题 第 4 页  [图灵程序设计丛书].挑战编程技能:57道程序员功力测试题 第 5 页
下载文档到电脑,方便使用
还有 136 页可预览,继续阅读
本文档由 lqtest 于 2020-12-05上传分享
相关精品文档
  • 目录 第一章 王强夜谈敌情 /1 第二章 老洪飞车搞机枪 第三章合伙开炭厂 /13 /26 第四章来了管账先生 /37 第五章政委和他的部下 第六章小坡被捕 /63 第七章血染洋行 /74 /47 第八章山里来了紧...
    其它     3.0 分 519 页 | 1.84 MB
  • 目录 第 1 篇 寻求生命的价值 用饱满的热情生活 /2 从容应对生活 /6 追求伟大 /9 让智慧拯救灵魂 /12 在思考中获得力量 /15 追寻美的生活 /19 品味记忆的美好 /22 让思想变得崇高 /27 倾听心灵的声音 /30 ...
    其它     3.0 分 254 页 | 3.22 MB
  • 目 录 第一篇 同情博爱 感恩的心 / 2 此生两依依 / 5 你就是百万富翁 / 8 视力与偏见 / 10 真正的爱心 / 12 用真诚打动别人 言语难诉的爱 最美丽的人 / 14 / 16 / 20 让孩子自己走 ...
    其它     3.0 分 257 页 | 3.26 MB
  • 目录 李 /1 白 蜀道难 /1 将进酒 /6 /9 行路难(其一) 长干行 /10 静夜思 /13 长相思 /14 /15 秋浦歌(其十五) /16 赠汪伦 /17 宣州谢朓楼饯别校书叔云 /19 梦游...
    其它     3.0 分 406 页 | 3.11 MB
  • VMware Site Recovery Manager 安装及功能测试报告 目录 一、 测试背景.......................................................................
    计算机软件及应用     3.0 分 55 页 | 7.92 MB
  • ※仅供学而思网校学员内部使用※ 三年级-第 2 讲-小数的认识 班级:____________ 姓名:____________ 1. 【来源:2015 年陈省身杯竞赛数学解题能力展示活动第 1 题】 在小数“2016012.026”的...
    历史     3.0 分 2 页 | 134.41 KB
  • ※仅供学而思网校学员内部使用※ 四年级-第 7 讲- 鸽巢原理(一) 班级:____________ 姓名:____________ 1、 教室里有 5 名学生正在做作业,现在只有数学、英语、语文、地理四科作业.那么这 5 名学生中,...
    英语     3.0 分 2 页 | 162.02 KB
  • ※仅供学而思网校学员内部使用※ 四年级-第 2 讲-第五种运算 班级:____________ 1. 计算: 姓名:____________ . A. B. C. D. 2. 计算(用幂的形式表示): ; ; . 3. 计算...
    生物     3.0 分 2 页 | 132.97 KB
  • ※仅供学而思网校学员内部使用※ 四年级-第 4 讲-横式的探索 班级:____________ 1.如果 ꢀ 姓名:____________ . t tꢀ,那么 ꢀ等于 2.请将下面的乘法算式补充完整.使得等式成立.并回答算式乘积结...
    科学     3.0 分 2 页 | 172.35 KB
  • ※仅供学而思网校学员内部使用※ 三年级-第 9 讲-数列中的规律初步 班级:____________ 姓名:____________ 1. 在自然数中,第一个数取 77,以后依次每隔 6 个数取一个数,则 2016 在这一列数中 是第...
    物理     3.0 分 2 页 | 149.18 KB
  • ※仅供学而思网校学员内部使用※ 四年级-第 9 讲-如何同时解决两个问题 班级:____________ 1、解方程组 2、解方程组 3、解方程组 4 + 3 = 11 , = 5 −2 =8 3 + 5y = 2x + 3y +...
    物理     3.0 分 2 页 | 1.06 MB
  • ※仅供学而思网校学员内部使用※ 四年级-第 1 讲-小数的简便运算 班级:____________ 姓名:____________ 1.计算:20.14×47+201.4×3.3+10.07×40= 2.计算:2016×0.12+2...
    地理     3.0 分 2 页 | 104.43 KB