摘要
学习并掌握一门编程语言好的方式是用它去解决问题,而本书正是为想要动手实践的程序员设计的。书中基于日常软件开发中经常遇到的实际问题提炼了57道练习题,以帮助程序员磨练技艺、提升技能。这些练习题由浅入深,首先从简单的程序入手,然后逐步过渡到解决更难的问题。如果你是一名新手,这些练习题可以帮你打开编程的大门。如果你是一位经验丰富的程序员,也可以运用这些练习题来快速地学习一种新语言或新的编程风格。
挑战编程技能 57道程序员功力测试题 内容简介
新手程序员在具备了理论基础后,面对实际项目时往往不知道如何解决问题;有经验的程序员在学习了一门新语言后,也会有很多不知道如何使用的特性。针对程序员的这一普遍困惑,知名软件工程师Brian P. Hogan 在这本书中总结了57 道练习题,帮助他们锤炼技能。这些练习题均取自实践,难度会逐渐增加,使得编程训练充满挑战又乐趣多多。
挑战编程技能 57道程序员功力测试题 目录
第1章 将问题转变成代码
理解问题
发现输入、处理和输出
用测试驱动设计
用伪代码编写算法
编写代码
挑战
前进!
第2章 输入、处理和输出
1 问好
2 计算字符数
3 打印引语
4 疯狂填词
5 简单的数学处理
6 计算退休时间
本章回顾
第3章 计算
7 矩形房间的面积
8 比萨聚会
9 涂料计算程序
10 自助结账
11 货币兑换
12 计算单利
13 确定复利
本章回顾
第4章 作出决策
14 税额计算程序
15 密码验证
16 法定驾驶年龄
17 计算血液中的酒精含量
18 温度转换程序
19 计算身高体重指数
20 多州税收计算程序
21 从数字到名字
22 比较数字
23 定位汽车问题
本章回顾
第5章 函数
24 字母易位词检查程序
25 检查密码强度
26 计算还清信用卡欠款所需的时间
27 验证输入
本章回顾
第6章 重复
28 数字相加
29 处理错误的输入
30 乘法表
31 卡蒙内心率
32 猜数字游戏
本章回顾
第7章 数据结构
33 神奇8号球
34 从员工列表中删除元素
35 选择优胜者
36 计算统计信息
37 密码生成器
38 过滤值
39 排序记录
40 过滤记录
本章回顾
第8章 使用文件
41 姓名排序程序
42 解析数据文件
43 网站生成器
44 产品搜索
45 单词查找
46 词频统计
本章回顾
第9章 使用外部服务
47 谁在太空中?
48 抓取天气
49 Flickr照片搜索
50 电影推荐
51 向Firebase提交笔记
52 创建自己的时间服务
本章回顾
第10章 完整的程序
53 待完成事项清单
54 短网址服务
55 文本分享
56 记录财产
57 多选琐事问答应用
下一步干什么?
挑战编程技能 57道程序员功力测试题 精彩文摘
发现输入、处理和输出
不管是小费计算程序这样的简单应用,还是Facebook那样的复杂应用,每个程序都有输入、处理和输出。事实上,大型应用就是由一系列较小的、相互通信的程序组成的。其中,一个程序的输出会成为另一个程序的输入。
不管程序是大是小,如果能花点时间清晰地阐明输入、处理和输出各是什么,就能确保其工作地很好。如果有比较清晰的问题描述,则有个简单的方法,就是看一下问题描述中的名词和动词。名词最终会成为输入和输出,动词会成为处理。看一下小费计算程序的问题描述:
创建一个简单的小费计算程序。该程序应该提示用户输入账单金额和小费比例。该程序必须计算出小费,并显示小费和总金额。
首先,找找名词。如果你喜欢,可以拿笔圈起来,也可以列个表。下面是我列的表:
账单金额
小费比例
小费
总金额
再来看看动词有哪些呢?
提示
计算
显示
所以我们知道了,必须提示用户输入,做些计算,然后显示输出。通过考虑名词和动词,可以了解要求我们做的是什么。
当然,问题描述未必总是这么清晰。比如,问题描述说需要计算小费,但又说需要显示小费和总金额。这意味着需要把小费和原始的账单金额相加,得到那个输出。这是构建软件的挑战之一。它未必总会被讲清楚。但随着经验越来越丰富,你将能弥合这种差异,领会字里行间的言外之意。
本文来自抚琴绘长歌投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。