• 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
  1. 我是用java写的,我的程序链接是:https://git.coding.net/xiaogui01/four_operations.git
  • 在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。
  1. 在现代软件工程这本书的56页,我看了“专与精的关系”这一段文字。作者说全栈工程师让他想到了街头卖艺的单人乐队,什么都会,但不精通任何一样。作者认为只研习某一乐器的乐手比单人乐队强。但是在下一段,作者又把全栈工程师比作了作曲家。作曲家要求要对各个乐器都要有了解,不能只会一种。而这就要求全栈工程师要专业,不能只精通一种。那么,在这一段话在,我们到底应当如何做呢?是精通于一种计算机语言好比只研习某一乐器的乐手,还是要做到面面俱到,专于计算机好比作曲家呢?所谓的全栈工程师到底应当拥有怎样的技术呢?是精还是专?

  2. 在现代软件工程这本书的61页,巴克斯顿说技能的反面是“Problem Solving”——“解决问题”。紧接着这句话的下边举了一个例子,说的是一个大学生说自己精通Visual Studio C#编程,但是让他写程序是他却一直在解决低层次问题。按照我的理解,技能就是一项你能用来解决相关问题的手段,不管是解决低层次的问题还是高层次的问题,总的来说就是在解决问题。但是巴克斯顿却说技能的反面是“Problem Solving”——“解决问题”。那么按照他的说法,技能的正面是什么?只精通知识而不解决问题?还是其他?在这里“解决问题”中的问题是否只说的是解决低层次问题?关于这一句话我还是有些不明白。

  3. 在现代软件工程这本书的140页,作者说了这样一句话。“怎样衡量一个项目的成功?并不是最酷的技术,而是商业的成功。”。我同意他的下一句话“一个项目的商业价值只有在它被成功地发布并运行时才能体现出来”,但是,我认为一个项目的成功不能只看商业上的是否成功。就像是Python,在Python最开始的时候,它相当于一个大项目,许多人都可以对其进行讨论改正。因为他的开源,很多人收益于此,而且直到现在发布其的组织也是非盈利的。它在商业上我想算不上成功吧,但不可否认,这个“大项目”很成功。我们做程序员,是不是在衡量一个项目的成功只能用利益来衡量?我们做出一些很酷的技术,自己获得了满足与自信算不算一种成功呢?

  4. 在现代软件工程这本书的142页,在读到投资质量这一块有一个问题。书上说“投资要讲时机,比如说对于某项技术的培训,最好的方法是在即将需要的时候进行培训,太超前或滞后都不灵”。我们知道,现在的竞争很激烈,如果要在某个方向上突破需要用的某项技术,那么在同一时间很多公司都会对员工进行相关技术的培训,这样的情况下,很难占据比较大的优势。那如果我们对员工提前进行相关技术的培训,那么我们是不是就会在需要用到这项技术的情况下占据很大的优势呢?而且在书本上下面也写到“投资是长期的”,如果提前进行培训,是否会取得更大的回报呢?

  5. 在现代软件工程这本书的296页,书上在说到测试用例这一块我们没有必要繁琐的进行测试,可以用一些典型的有效的案例来测就可以了。但在前面书上说了很多测试的重要性,而且写软件代码我们也需要考虑全面,包括那些发生概率很小的,我们都需要对其进行测试。如果就按书上说的只需要有效的生成一些案例来测量,那我们是否能保证那些我们没有测试到的代码的正确性呢?测试人员是否只需要生成一些有效的案例来测量就可以了呢?

  • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
    • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
    • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
    • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
    • 4) 同一类型的软件之间是如何竞争的?
    1. 游戏软件(魂斗罗手游版):

      1、成为其用户是因为看朋友玩,想起了童年的乐趣。其目的就是为了盈利,通过用户充钱买装备赚钱。

      2、我是通过下载到我手机上的

      3、该软件通过版本更新处理Bug,通过发行安装包更新版本

      4、关于游戏软件的竞争很多,通过提供更加精美酷炫的画面来进行竞争。

    2. 手机应用(腾讯QQ):

      1、成为其用户是因为它的便捷,能提供很好的服务,与朋友亲人随时保持联系,还有就是现在的时代不能没有这个软件。QQ的目的还是为了盈利,通过各式各样的特权让用户充钱赚现。

      2、我是通过下载到我手机上的

      3、该软件通过版本更新处理Bug,通过发行安装包更新版本

      4、关于这个方面的竞争,好像就只有一个微信(在中国),两个还是同属于一个大公司。在这个方面QQ也就是尽可能多的完善和增加各式各样的新功能来进行竞争。

    3. 手机应用(京东):

      1、成为其用户是因为可以足不出户购买到物美价廉的商品符合现在时代的特征。目的当然还是为了盈利,通过在京东上买东西来盈利。

      2、我是通过下载到我手机上的

      3、该软件通过版本更新处理Bug,通过发行安装包更新版本

      4、在网上购物这一领域,京东最大的竞争对手就是淘宝和天猫。京东是有自己的快递公司,可以很快的把用户买的东西送到用户手里,它就是靠快递寄的快来进行竞争的。

    • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
      1. 软件版本经常更新,不同于硬件一出产就不会改变。说明了软件是定制性,灵活性
      2. 软件整个开发是无形的只有在运行起来才可以看到,不同于硬件是物理材料制作,体现软件的逻辑性产品特征
      3. 软件成本主要是人力,不同于硬件来自于材料和工具,体现了软件智慧结晶的特征。

 

posted on 2018-03-22 20:34  小鬼!  阅读(275)  评论(0编辑  收藏  举报