比尔盖茨2016好书推荐

  dojo和kata的陶冶记录:

     
土豪直接看录像,录像下方是对推荐书籍的详细文字介绍。假期快为止了,看看盖叔二〇一八年读了什么样书(比尔(Bill)盖茨二〇一五年好书推荐请点击),顺便把二零一七年想读二零一八年还没读的书一起补上。新的一年,各位心想事成~

图片 1

1**String Theory**

  进入 http://cyber-dojo.org/

图片 2

图片 3

     
这是一本网球题材的书,小编(已故,原因自己查)为大卫·福斯特(福斯特)·华莱士(大卫(David)Foster
华莱土(Wallace)),伦敦(London)时报评价他为“有史以来,网球题材的特等小编”。

  由一个人开展 setup a default practice,然后创设:
图片 4

     
本书摘选了他最地道的五篇文章,形成了那本随笔集。在文中,小编以竞争对手或网球爱好者的视野,以他诙谐、讥嘲、繁复、热闹的调子描述了网球这一挚爱运动,比如罗吉尔(吉尔(Gill))(罗吉尔(吉尔(Gill)))费德勒那样的一等天才;对崔西·奥斯丁(前世界季军)纪念录的深厚分析;作为一个颇为自律的健儿,迈克尔(Michael)·乔伊(Joy)(莎娃的教练)在命局面前的艺术性抉择;抵制美网的商业化侵蚀;回忆自己的网球职业,自以为自己大致是一个伟人的中低档网球手。

  那里协助各样语言和种种测试框架,那里大家接纳C++和谷歌Test
图片 5

     
盖茨笑称“如果你在列车或飞机上读那本书,外人会认为你最佳聪明,实际上那本书跟物理没有半毛钱关系”。

  那里是选择一个题目进行交换,大家选用“网球记分规则”来磨炼。

2**Shoe Dog**

图片 6

图片 7

  成功以后,他会给种种人都分配一个动物头像,上面的四个圈,黄色表示case执行破产,紫色代表编译败北,青色代表case执行通过。

      近日可以买到中文版,小编是Nike的祖师爷兼老总菲尔·耐特(Phil
Knight)。那是一本坦诚的,引人入胜的回想录,耐特第两次和豪门大饱眼福了合营社中期这几个不敢问津的故事:一个无畏的初创公司,怎么样通过我的前行,成为海内外最具标志性,颠覆性和盈利品牌之一。大家看一下美亚对本书简介:

  第三个创造的人,把变化的url中的http://cyber-dojo.org/kata/edit/52E43B0082?avatar=raccoon
52E43B0082” 提取出即可,那样其余人可以因而enter a practice进入:
图片 8

     
1962年,菲尔·耐特刚刚从商大学结业,揣着从公公那借来的50韩元制造了这家商店,当时设法很单纯:进口东瀛高格调,低本钱的球鞋。菲尔·耐特把鞋放在那辆石灰绿汽车的后备箱里兜售,以那样的办法,第一年赚了八千新币。现在,Nike每年的销售额是三百亿,几乎成为初创集团的标杆。勾号(swoosh)商标也无人不晓,成为当今世界最具革命性,最独一无二的标志之一。但商标背后的娃他爸平昔很神秘。现在,耐特第一次以回忆录的花样,从那多少个关键时刻开端,坦白,谦虚,无畏,诙谐的叙说他的故事。当年,二十四岁的她完结徒步环游世界,决定接纳一条非凡的征程来创建自己的小买卖。他和期待之间,不只是成功的手舞足蹈,还要承受过多高风险和令人悲伤的败诉,耐特会在本书中细小道来。文中谈到他和最初搭档相识的进程,一群不合时宜的乌合之众最终亲如兄弟,在联合职务的呼唤下,凭借对体育精神的笃定,最后成立了Nike那个品牌。

  所有人进入后,我们可以通过首页的见到所有人的一个状态:

3The Myth of the Strong Leader

图片 9

图片 10
图片 11

  每个人进入后,都是之类界面:

      小编是俄亥俄州立高校资深政治学讲师阿奇布朗(布朗(Brown))(Archie
Brown),本书主要琢磨政治领导力。日常领导力会陷入到一个狼狈的无限分裂:强弱之争。然而还能找到很多实惠的法门来施展政治领导力,反之亦是如此。大家责备政客要为经济衰退买单时,又会赞誉他推动了关键的社会改进。很少有人反思,究竟是如何特质让多少领导干部八面玲珑,而其它领导干部却难于呢?小编考察百年来的宏阔资料,落成了这部权威作品,反驳了一个常识:唯有战无不胜的领导者可以支配幕僚,影响政策制定进度,因而更易于得逞并受人着重。

图片 12

     
布朗广泛讲演了二十世纪革命家们的功过得失。比如像罗斯福(罗斯福(Roosevelt)),林登·Johnson(第三十六任米利坚管辖),撒切尔那类重新定义领导力的人员,或者像戴高乐,戈尔巴乔夫,曼德拉那类政权更替的经营管理者,文中描述了他们如何在任期内以政治方式落成可行性的顶峰,通过那几个情节,布朗挑战了俺们的对政权有效性和政治能力的常规看法。固然我们认为大学风格过于懦弱,不待见那类领导力,但往往这类首脑更有合营能力,从而具有无可顶牛的影响力。布朗(Brown)的总括新颖而拥有启发,颠覆了千千万万传统观念,让我们再一次评估那么些培训这几个世界的管理者,天公地道新考虑和判断那一个未来快要领导大家的人。

  那就是我们用来陶冶的IDE

4The Grid:The Fraying Wires Between American

   默许会帮你生成一个难倒的case,大家点击上方的test就会破产。

图片 13
图片 14

图片 15

      本书小编是人类文科学家格雷(格雷)琴 巴克(Buck)(Gretchen
Bakke),电网作为二十世纪工程界的标志性成果,很难满意当今一时的要求。那不仅是电网老旧和底蕴设备珍惜的题材。随着我们对新能源(太阳能,风能等)的远大期望,在通往能源将来的康庄大道上,电网成了最大的阻止。若是我们想要完结那么些未来,大家必要依据二十一世界的价值观重新规划电网。那是一个广阔工程,必要多地方的用力,近期而言,这么些极力并不显眼,但改正已经齐刷刷的开始了。

  于是大家须求修改case,让它成为成功景观,变为紫色。

     
小编多地方的介绍了美利坚联邦合众国能源基础结构,电网高峰期和平稳时刻,以及它对私家和国度生存的重中之重功能。她觉得电网是美利坚合作国一项重点的人造产品,它伴随大家的成长,有一部分天才科学和技术和向来的随意创作,偶尔夹杂了一部分幻想的愿景,是分散扩展下的产物。她讲演了现代美利哥改造电网的详情,有时必要进取心和英雄的梦想,有时是立宪仍旧武力示威。本文有趣而持有洞察力,将电网比喻为世界上最大的机器:它可爱的野史,近日的问题,以及美好的前途和地下的效益。

图片 16

5The Gene:: An Intimate History

  这是自家修改成功后,点击test之后,得到了黑色的小球,然后再点击藏蓝色小球的结果,那里可以看来您每一遍的改动。

图片 17

  前边的流程基本就是写一个case,然后再落实一个逻辑的代码,然后在run。如此反复,我第一遍到位的时候的代码:

      本书小编是普利策奖得主,畅销书小说家穆克吉(Siddhartha
Mukherjee),本书介绍了基因的亮丽历史,对一个来源未来的问题提交了和睦的答案:当大家驾驭了读写(编辑)自己基因新闻时,怎么样定义人类呢?

  先看测试代码:

     
穆克吉认为基因是灵巧的,卓绝的,富有启发性的,通过正确,社会历史以及个人叙述的交叉,告诉大家基因这些当代历史中最要害的定义突破之一。本书介绍了人类对遗传的探赜索隐,以及它对大家生存,个性,身份,命局,抉择的惊人影响。他描述了人类在比比皆是年间对遗传的切磋和试验,从亚里士多德(多德),毕达哥拉斯到孟德尔,达尔文(Darwin),从博韦里,摩尔根到克里克,沃森,富兰·克林(Fra·nklin),全方位的变现了这个二十一世纪的立异者革命性的姣好人类基因组的进度。一位纽约客评价,对一个平常读者而言,很难想象市面上会有这么多的科普读物,不仅可以涵盖现代科技的兼具世界,而且浅显易懂又充满豪情,那是一个伟人的成就。对任何人而言,基因知识都是必要求了然的,因为那牵涉到对前途性情的概念,是那么些时代科学界最重要的部分。所以,不妨来听一听大师的视角。

#include "hiker.hpp"
#include <gtest/gtest.h>

using namespace ::testing;

TEST(Hiker, player0_0)
{
    ASSERT_EQ("Love-All", score(0, 0));
}
TEST(Hiker, player1_1)
{
    ASSERT_EQ("Fifteen-All", score(1, 1));
}
TEST(Hiker, player2_2)
{
    ASSERT_EQ("Thirty-All", score(2, 2));
}
TEST(Hiker, player0_1)
{
    ASSERT_EQ("Love-Fifteen", score(0, 1));
}
TEST(Hiker, player1_0)
{
    ASSERT_EQ("Fifteen-Love", score(1, 0));
}
TEST(Hiker, player1_2)
{
    ASSERT_EQ("Fifteen-Thirty", score(1, 2));
}
TEST(Hiker, player3_1)
{
    ASSERT_EQ("Forty-Fifteen", score(3, 1));
}
TEST(Hiker, player0_3)
{
    ASSERT_EQ("Love-Forty", score(0, 3));
}
TEST(Hiker, player4_4)
{
    ASSERT_EQ("Deuce", score(4, 4));
}
TEST(Hiker, player5_4)
{
    ASSERT_EQ("Advantage Player1", score(5, 4));
}
TEST(Hiker, player4_5)
{
   ASSERT_EQ("Advantage Player2", score(4, 5));
}
TEST(Hiker, player6_4)
{
   ASSERT_EQ("Win for Player1", score(6, 4));
}
TEST(Hiker, player4_6)
{
   ASSERT_EQ("Win for Player2", score(4, 6));
}

图片 18

  再看工作代码

#include "hiker.hpp"

string score(int p1, int p2)
{
    string so[4]={"Love","Fifteen","Thirty","Forty"};

    cout<<p1<<p2<<endl;
    if (p1 < 4 && p2 < 4)
    {
        if (p1==0 && p2==0)
        {
            return "Love-All";
        }
        else if (p1==1 && p2==1)
        {
            return "Fifteen-All";
        }
        else
        {
            return so[p1]+"-"+so[p2];
        }
    }
    else
    {
        if (p1==p2)
        {
            return "Deuce";
        }
        int cha = p1-p2;
        if (cha>0 && cha<2)
        {
            return "Advantage Player1";
        }
        else if(cha>1)
        {
            return  "Win for Player1";
        }
        else if(cha<0 && cha>-2)
        {
            return  "Advantage Player2";
        }
        else if(cha<-1)
        {
            return  "Win for Player2";
        }
    }
    return "hello world";
}

  是还是不是看起来逻辑好乱啊。没错我也是如此的觉得,越发想重构,一般说到重构,很多人心有余悸,没提到,我们有测试用例不用操心。 

  重构落成的代码和测试用例:

#include "hiker.hpp"

string score(int p1, int p2)
{
    string s_score[4]={"Love","Fifteen","Thirty","Forty"};
    string s_same[4]={"Love-All","Fifteen-All","Thirty-All","Deuce"};
    map<int,string> m_res;
    m_res.insert(pair<int, string>(1, "Advantage Player1"));
    m_res.insert(pair<int, string>(2, "Win for Player1"));
    m_res.insert(pair<int, string>(-1, "Advantage Player2"));
    m_res.insert(pair<int, string>(-2, "Win for Player2"));

    cout<<p1<<p2<<endl;

    // 处理相等的情况
    if (p1 == p2) 
    {
        if (p1 > 2)
            return s_same[3];
        return s_same[p1];
    }

    // 处理赢球数都在3以下的情况
    if (p1 < 4 && p2 < 4)
    {
        return s_score[p1]+"-"+s_score[p2];
    }

    // 处理赢球数都在3以上的情况
    else
    {
        return m_res[p1-p2];

    }
    return "error";
}

  可以看出本人合计提交了48次
图片 19

  大家的结果 http://cyber-dojo.org/dashboard/show/D9D934A59E:

图片 20

 

  通过这一次Dojo Coding,总括如下:

    1、先写case,再落实代码;

    2、每完毕一个效益,run两遍测试代码;

    3、重构的时候,每个小的单元重构四遍,run几回测试代码。

  那样就足以确保,你在重构落成未来,所有的功效是可以通过的。也就是TDD的思索。