花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
看完构建之法后的疑问:
- 1、由于我们现阶段能力有限不能去接项目来提高我们的个人能力,那么我们除了造轮子还有什么比较有效的提升自我的方法?
3.1个人能力的衡量与发展中软件工程师如何衡量证明自己的能力的问答部分。 - 2、两人合作结对编程中的两个人技术差距可能比较大,这样的话会不会引起1+1<2的效果?
4.5结对编程 - 3、用户经常不知道自己想要什么,是否有必要在实现用户基本要求的情况下同时提供自己的理解改进版?
8.3获取用户需求-用户调研 - 4、一个团队中不同人擅长不同的方面,我们如何在有限的时间里找到自己擅长的方面?
17.1猪、鸡和鹦鹉的故事中,猪是提供肉的,鹦鹉是提供产品宣传的,在项目团队中,有人适合写代码,有人适合调试,有人适合写文案,除了轮换岗位这种可能对项目进展影响太大的方式,还有没有方法可以找到较为适合的角色。 - 5、我曾经听说过有人在国内为国外公司提供远程支持的案例,这样做是否不要求团队合作?
这本书讲的大多是公司里的多人合作,雅虎曾推出家里办公,也有不少公司有部分海外职员网上办公,这种情况下团队合作怎么处理,在这种情况下团队合作似乎变成了个人单干。
软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
我选择的是基于网页的软件,操作系统和工具软件
- 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
对一个软件从尝试到成为用户最主要的是软件的独特性,基本功能大家基本都能实现,在类型软件中我选择成为某一个软件的用户一般会因为它的操作符合我的习惯,它的外观符合我的审美。软件的目标并不是都为了盈利,大部分软件是为了盈利,毕竟软件贡献者也需要生活,也有一部分是为了个人爱好或者是对自己的锻炼等因素,他们提供免费的软件,靠大家的捐款来维持项目。 - 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
我通常通过下载来获取软件,极个别的稀缺限制资源会通过相互拷贝的方式来获取。 - 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
软件一般会先推出测试版来不断修改bug,大型软件如操作系统会通过补丁的方式修复,基于网页的软件会通过实施维护来处理bug,小型的工具软件会通过快速更新版本来修复hug。 -
- 同一类型的软件之间是如何竞争的?
同一类型的软件主要靠差异化来竞争,通过面向的用户来进行深度优化来抓住核心用户,通过一些让人眼前一亮的小功能来吸引边缘用户,舍弃一些会影响核心用户体验的功能并放弃部分潜在用户。
- 同一类型的软件之间是如何竞争的?
- 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
硬件生产周期长,软件生产周期短,硬件生命周期长,软件生命周期短。软件是改变自己来适应硬件