`
gstarwd
  • 浏览: 1491094 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

七个建议

阅读更多

作者 Joel Spolsky

[编者按 ] 由于 Joel Spolsky 的双重身份(昔日耶鲁大学计算机系学长,今日 Fog Creek 软件公司的 CEO ),所以听听他的建议,对于当今无数困扰于就业 压力的中国高校计算机专业学子来说,是大有裨益的。你们会发现,大多数建议,都在强调 软实力 的价值。本文转载自《软件随想录》 ( 作者: Joel Spolsky ,译者 : 阮一峰, 2009 12 月出版 ) ,感谢北京图灵文化发展有限公司的支持。

如果你喜欢编程,那么你真是受到了上天的眷顾。你是非常幸运的少数人之一,能够以自己喜欢的事谋生。大多数人没有这么幸运。你 认为理所当然的观念 热爱你的工作 ,其实是一个很现代的概念。通常的看法是,工 作是一种让人很不开心的事,你为了拿工资才不得不去上班。你工作的目的是为了攒下钱去干那些自己真正喜欢干的事,但是前提是你得等到 65 岁退休之后才行,而且还有不少条件。条件一,你的积蓄必须足够多;条件二,你没有老到走不动,你还有 体力去干那些事情;条件三,你喜欢的事情不需要用到脆弱的膝盖、昏花的视力,也不要求你走上一里地不喘气,等等。

我刚才说到哪里了?对了,我要提建议。

毕业前练好写作

如果不是Linus Torvalds 不断地散布福音,请问 Linux 操作系统会成功吗?虽然 他是一个非常聪明的计算机天才,但是 Linux 吸引来全世界一大批志愿者的真正原因却是 Linus Torvalds 的表达能力。他通过电子邮件和邮件列表用书面形式传播自己的想法,最终引起了所有人的注意。

你听说过现在风靡一时的 极限编程 [ ] ” Extreme Programming )吗?我在这个地方不谈我对极限编程的看法,我只说如果你听过这个词,那么原因就是它的倡导者都是一 些非常有才华的作家和演说家。

即使我们缩小范围,将目光局限在任何一个软件开发团体中,你也会发现该团体中最有权势和影响力的程序员正是那些表达能力强的程 序员,他们无论是做书面表达还是做口头表达,都能够清晰、自如、具有说服力地传达观点。此外,长得高也有助于提升影响力,不过这个不取决于你。

一个普通程序员与一个优秀程序员的区别,不在于他们懂得的编程语言谁多谁少,也不在于他们喜欢用Python 语言还是喜欢用 Java 语言,而在于他们能否与他人交流思想。 如果你能说服其他人,你的力量就可以得到放大。如果你能写出清晰的注释和技术规格说明书,其他程序员就能够理解你的代码,因此他们就能在自己的代码中使 用,而不必重写。如果你做不到这一点,你的代码对其他人就没有价值。如果你能为最终用户写出清晰的使用手册,其他人就能明白你的代码是用来干什么的,这是 唯一让别人明白你的代码有何价值的方法 SourceForge[ ]上有许多优美 的、有用的代码,但是它们都像被埋葬了一样,根本没人来用,原因就是它们的作者没有写好使用说明(或者压根就没写)。这样一来就没有人知道他们的成果,他 们杰出的代码就衰亡了。

如果一个程序员不会用英语写作、没有良好的写作能力,我就不会雇他。如果你能写,不管你去哪家公司工作,你很快就会发现写作技 术文档的任务会落到你头上,这意味着你已经开始在放大自己的影响力了,管理层正在注意到你。

大学里有些课程被公认为 写作密集型 writing intensive )课程,这就是说为了拿到学分,你必须写作多得可怕的文字。一定要去上这样的课程!不要管学科,只要 这门课每周甚至每天都要你写东西,你就去上。

你还可以动手写日记或者网志。你写得越多,写作就会变得越容易。写起来越容易,你就会写得越多。这是一个良性循环。

毕业前学好C 语言

第二点我要讲的是C 语言。请注意,我说的是 C 语言,而不是 C++ 。虽然在实际使用中 C 语言已经越来越罕见,但是它仍然是当前程序 员的共同语言。 C 语言让程序员互相沟通,更重要的是,它比你在大学中学到的 现代语言 (比如 ML 语言、 Java 语言、 Python 语言或者其它正在教授的流行垃圾语言)都更 接近机器。你至少需要花一个学期来了解机器原理,否则你永远不可能在高级语言的层次写出高效的代码。你也永远无法开发编译器和操作系统,而它们恰恰属于目 前程序员能够得到的最佳工作之列。别人也永远不会放心将大型项目的架构设计交给你。我不管你懂多少延续( continuation )、闭包( closure )、异常处理( exception handling ),只要你不能解释为什么 while (*s++ = *t++) ;这句代码的作用是复制字符串,或者不觉得这是世界上对你来说再自然不过的事情,那么你就是在盲目无知的情况下编程。在我看来,这就好像一个医 生不懂得最基本的解剖学就在开处方,他看病的根据完全是因为那些娃娃脸的医药厂商销售代表说这种药有用。

毕业前学好微观经济学

如果你没有上过任何经济学课程,那么我首先来做一个超短的评论:经济学是这样的学科之一,刚开始学的时候轰轰烈烈,有许多有用 的、言之有理的理论和可以在真实世界中得到证明的事实,等等;但是,再学下去就每况愈下,有用的东西就不多了。经济学一开始那个有用的部分正是微观经济 学,它是商业领域所有重要理论的基础。跟在微观经济学后面的东西就不行了。你接下来学的是宏观经济学,如果你愿意,尽管跳过去,也不会有什么损失。宏观经 济学开头的部分是利息理论,内容比方说是利率与失业之间的关系,但是怎么说呢,看上去这部分里面还没有被证实的东西多于已经被证实的东西。学完这部分,后 面的内容越来越糟糕,许多经济学专业的学生实际上都变成在搞物理学,因为这样才能在华尔街上找到更好的工作。但是不管怎样,你一定要去学微观经济学,因为 你必须搞懂供给和需求,你必须明白竞争优势,你必须理解什么是净现值(NPV ),什么是贴现,什么是边际效用。只有这样,你才 会懂得为什么生意是现在这种做法。

为什么计算机系的学生也应该学经济学?因为,从经营一家公司的角度来看,比起那些不懂的程序员,一个理解基本商业规则的程序员 将会更有价值。就是这么简单。我无法告诉你有多少次我是那样地充满挫折感,因为我看到了太多的提出一些疯狂的想法的程序员,这些想法在代码上也许可行,但 在资本主义世界中毫无意义。如果你懂得商业规则,你就是一个更有价值的程序员,你会因此得到回报的,但是前提是你要去学习微观经济学。

不要因为枯燥就不选修非计算机专业的课程。

想提高GPA 绩点的一个好方法就是多选修非计算机系的课程。请千万不要低估你的 GPA 的重大意义。千千万万的人事经理和招聘人员在拿到一份简历的时候,第一眼就会去看 GPA ,包括我也是这样。我们不会为这种做法道歉。为什么?因为 GPA 不反映单个的成绩,而是代表了许多个教授在一段很长的时间中,在不同的情况下,对你的表现的一个总的 评估。 SAT 成绩难道不够吗?哈,那只不过是一场几个小时的测试罢了。 GPA 中包括了四年大学期间你的小论文、期中考试和课堂表现,总数有几百次之多。当然, GPA 也有自己的问题,不是百分之百准确。比如,这些年来,老师对学生的打分越来越宽松,学习成绩有通货膨 胀的趋势。再比如, GPA 无法反映课程的难度,没人能够看出你的 GPA 是来自无名社区大学家政系的轻松课程还是来自加州理工学院针对研究生的量子力学课程。渐渐地,我形成 了一套自己的做法,首先我会过滤掉所有来自社区大学、 GPA 低于 2.5 的简历,然后我会要求剩下的人给我寄成绩单和推荐信。我再从中发现那些成绩一贯优秀的人,而不是那些 仅仅在计算机系课程中得到高分的人。

为什么我要关心某人的 欧洲历史 课程成绩呢,毕竟作为雇主我要找的应该是程序员啊? 何况,历史是那么枯燥,不得高分很正常。哦,这么说来,你的意思是我应该雇用你,而不用考虑一旦工作变得枯燥你会不会努力工作?别忘了,在编程工作中也有 很枯燥的东西。每一项工作都有枯燥难耐的时刻。我不想雇用那些只想干有趣事情的人。

选修有大量编程实践的课程

我依然清楚记得我发誓绝不读研究生的那一刻。那是在一门叫做 动态逻辑 的课程上,教师是活力十足的耶鲁大学教授 Lenore Zuck ,她是计算机系那些聪明的老师中 最聪明的人之一。

如今, 由于记忆力糟糕, 我已经差不多把这门课的内容忘光了,但是不管怎么说,在这里我还是想要对付着说一下。大致上,形式 逻辑的意思是说,如果条件成立,你就能证明结论也成立。比如,根据形式逻辑,已知 只要成绩好,就能被雇用 ,然后假定 “Johnny 的成绩好 ,你就可以得到一个崭新的结论 “Johnny 会被雇用 。这完全是经典方法。但是,一个解构主义者( deconstructionist )只需要 10 秒钟就能破坏形式逻辑中所有有用的东西。这样一来, 留给你的只是一些趣味性,而不是实用性。

现在再来说动态逻辑。它与形式逻辑其实是一回事,但是必须再多考虑时间因素。比如, 你打开灯之后,就能看见自己的鞋子 ,已知 灯以前是亮的 ,那么这就意味着 你看见了自己的鞋子

对于像Zuck 教授那样聪明的理论家,动态逻辑充满了吸引力,因为它看上去很有希望让你在形式上证明一些计算机程 序的相关理论问题。这样做说不定很有用。比如,你可以用它在形式上证明,火星漫游车的闪存卡不会发生溢出( overflow )问题,不会因而整天一遍又一遍地重启,耽误了它在那颗赤红色的星球上漫游寻找火星人马文( Marvin the Martian)。

在第一堂课上,Zuck 博士写满了整整两面黑板,甚至黑板旁边的墙上都写上了很多证明步骤。需要证明的问题是,有一个控制 灯泡的开关,现在灯泡没有亮,这时你打开了开关,请证明灯泡将会点亮。

整个证明过程复杂得不可思议,处处都是陷阱,必须十分小心。保证这个证明不出错太困难了,还不如直接相信打开开关灯就会亮。真 的,虽然证明过程写满了许多块黑板,但是还是有许多中间步骤被省略了,因为如果要从形式逻辑上完整证明所有步骤,那就琐碎得无法形容了。许多步骤是用各种 经典的逻辑证明方法推导得到的,包括归纳法、反证法等,甚至有些部分还是由旁听的研究生证明的。

留给我们的课后作业是证明逆命题:如果灯原来是关着的,现在却亮了,那么请证明开关的状态一定同原来相反。

我动手开始证明,我真的去证明了。

我在图书馆里待了很长时间。

我对照着Zuck 博士的原始证明想依样画葫芦。研究了几个小时之后,我在其中发现了一个错误。可能我抄写的时候抄错 了,但是这使得我想通了一件事。如果花费 3 个小时,写满了一块又一块的黑板,每一秒钟都可能出错,最后能够证明的却只是一个很琐碎的结论,那 么这种方式有多大的实用性呢?在活生生、充满趣味的现实世界中,你永远都不会有机会使用它。

但是,动态逻辑的理论家们对这一点不感兴趣。他们看上它不是因为它有用,而是因为它可以为他们带来终身教职。

我放弃了这门课,并且发誓绝不会去读计算机科学的研究生。

这个故事告诉我们,计算机科学与软件开发不是一回事。如果你真的非常幸运,你的学校可能会开设很像样的软件开发课程。但是另一 种可能是,你的学校根本不教你在现实中如何编程,因为精英学校都觉得,教授工作技能最好留给职业技术学校、犯人重返社会的培训项目去做。你到处都能学怎么 写代码。别忘了,我们是耶鲁大学,我们的使命是培养未来的世界领袖。你交了16 万美元的学费,却在学循环语句的写法,这怎么可以? 你以为这是什么地方,难道是机场沿途的酒店里临时拼凑起来不靠谱的 Java 语言培训班?哼哼。

麻烦在于我们没有一种真正教授软件开发的专门学校。你如果想成为一个程序员,你可能只能选择计算机科学专业。这是一个不错的专 业,但是它同软件开发不是一回事。在那些400 等级的课程代号中,去寻找名称中带有 “Practicum” 这个词的课程吧(编者注:指供人实习的课程)。不要被这个拉丁语单词吓倒,这些都是有用的课程,之所 以起这种名字,只是为了让那些文绉绉、装腔作势、满嘴胡说八道的公司经理们觉得高深莫测。

别担心所有工作都被印度人抢走

我首先要说的是,如果你本身就已经在印度了,或者你就是印度人,那么你真的毫无必要去想这件事,根本不用琢磨所有的工作机会是 不是都跑到了印度。那些都是非常好的工作,好好地享受吧,祝你身体健康。

但是,我不断听说计算机系的入学人数下降得很厉害,已经到了危险的程度。根据我听到的说法,其中的一个原因是 学生们不愿去学一个工作机会都流向印度的专业 。这种担心大错特错,有很多理由可以反驳。首先,根据 一时性的商业潮流决定个人的职业选择,这是愚蠢的。其次,即使编程工作无一幸存地都流向了印度和中国,但是学习编程本身依然是一种第一流的素质训练,可以 为各种超级有趣的工作打下基础,比如业务流程工程( business process engineering )。再次,不管是在美国还是在印度,真正优秀的程序员依然是非常非常短缺的,这一点请相信我。不错,确实有相当一批失业的 IT 从业者在那里鼓噪,抱怨他们长时间找不到工作,但是你知道吗?即使冒着触怒这些人的风险,我还是要 说,真正优秀的程序员根本不会失业。最后,你还能找到更好的专业吗?你觉得什么专业好?主修历史学?如果那样,你毕业的时候就会发现,根本没有其他选择, 只能去法学院。不过我倒是知道一件事: 99% 的律师都痛恨他们的工作,痛恨他们当律师的每一分钟。可是,律师每周的工作时间偏偏长达 90 小时。就像我前面说过的:如果你喜欢编程,那么你真是受到了上天的眷顾。你是非常幸运的少数人之一, 能够以自己喜欢的事谋生。

不过说实话,我不觉得学生们真的有上面的想法。近年来,计算机系入学人数的下降只是回到了历史上的正常水平,因为前些年的互联 网狂热使得入学人数出现了大泡沫,抬高了基数。由于这种泡沫,许多并不真的喜欢编程的人也来读计算机系。他们心里想的是,只要进了计算机系,将来就能找到 诱人的高薪工作,就能获得24 岁当上 CEO 、进行 IPO 的机会。谢天谢地,这些人现在都离计算机系远远的了。

找一份好的暑期实习工作

精明的招聘负责人都知道,喜欢编程的人高中时就将牙医的信息输入了数据库,进入大学前就去过三次电脑夏令营,为校报做过内容管 理系统,有过软件公司的夏季实习经历。招聘负责人就是要在你的简历上找这些东西。

如果你喜欢编程, 就不要随便什么工作都答应,否则你会犯下最大的错误。不管是暑期工作,还是兼职或者其他性质的工作,只要与 编程无关,就不要轻易接受。我知道,其他19 岁的孩子都想去购物中心里打工,在那里折叠衬衫。但是你与他们不同,你 19 岁时就已经掌握了一门非常有价值的技能。将时间浪费在折叠衬衫上是很愚蠢的,等到毕业的时候,你的简历上本应该写满了一大堆与编程相关的经 历。就让那些财经类的毕业生去租车公司 帮助人们满足他们租车的需要 吧,你要干的是别的事(在电视中 扮演超人的 Tom Welling 1 除外)。

为了让你的生活变得更容易一些,也为了强调这整篇文章完全是为了满足我的个人目的,我要告诉你,我的公司——Fog Creek 软件公司 —— 提供软件开发方面的暑期实习机会。我们非常看重简 历。 比起其他公司的实习工作,你在 Fog Creek 最有可能学到更 多的编写代码、软件开发、商业运作方面的知识。 这是去年夏天我们的一个实习生 Ben 说的。他会这样说,并不完 全是因为我派了人到他的宿舍让他这样说。我们接受实习申请的截止日期是 2 1 日。一起来吧。

如果你听从了我的建议,你还是有可能落得一个悲惨的下场,比如很早 就卖掉了微软公司的股票,再比如拒绝了谷歌公司的工作机会,原因是你想要一间自己的可以关上门的独立办公室,或者做出了其他生命中愚蠢的决定。但是,这些 可不是我的错。我一开始就告诉过你,不要听我的话。

(注1 T o m W e l l i n g 是一个美国演员, 在电视剧《超人前传》( Smallville )中扮演超人。该电视剧讲述还没有成长为后来超人的克拉克 · 肯特少年时代的故事。)

 

作者简介:

Joel Spolsky,世界最具影响的程序员网志 Joel on Software的主人,软件业一位旗帜鲜明的思想者,一位传统软件管理理念的挑战者。他创办的这个网站被程序员誉 为 反呆伯特宣言书 ,并被翻译为三十多种语言。 Joel 毕业于耶鲁大学,随后即进入微软公司工作,曾任微软公司 E x c e l 开发小组项目经理。现在他在自己创办的 Fog Creek 软件公司任 CEO 。此外,他与人合办的 Stack Overflow 已经成为如今最热门的技术网站。

(本文来自《程序员》杂志2010年1月刊)


<!-- /entry --> <!-- You can start editing here. -->

28 Responses to “我的七个建议”

  1. Ivan 说:

    学习了~谢谢!

  2. Kenneth 说:

    这个是老文章了,不过,对以前没有读过这篇文章的人来说,读一下,还是很有收获的

  3. 徐林 说:

    收货颇丰,醍醐灌顶

  4. 孙伟伟 说:

    拜托,这好像是他四五年前博客的文章了

  5. 受益匪浅,可惜已经毕业啦 说:

    可惜我已经毕业啦

  6. huangxf 说:

    无论过去多少年,C还是很重要。

  7. 王辉 说:

    很受启发,多谢分享。

  8. 赵庆月 说:

    嗯,不错。学习了。
    转走了!

  9. 杨尚辉 说:

    “C语言让程序员互相沟通,更重要的是,它比你在大学中学到的“现代语言”(比如ML语言、Java语言、Python语言或者其它正在教授的 流行垃圾语言)都更接近机器。”
    ……流行的垃圾语言,现在流行的语言都很垃圾吗??比如像java,asp.net等,如果真是你所说的垃圾的话,那我真要非常努力的学习C语言了,实际 上我也正是这样做的。

  10. 李旭阳 说:

    呵呵,一些东西对我挺有用的,至少我会去钻研C语言了…

  11. kevin 说:

    你先看清楚,这七个建议是面向谁的。

  12. ticmy 说:

    一个搞计算机的说出“比如ML语言、Java语言、Python语言或者其它正在教授的流行垃圾语言”这样的话,那么他是没有职业道德的,其人 品肯定不好,一个人品不好的人还在这指手画脚?!

    其次,发表这个言论的人是个自私的家伙,何以见得?我看了七点建议,大部分学生根本做不到,换句话说,也就是不站在学生的角度去想,而只是站在自己 的经验角度去想,我想此人的家庭肯定是不和谐的!

  13. G_cofa 说:

    说得蛮好的,可惜已经毕业了。。。

  14. kougq168 说:

    讲的很好,很受益!

  15. liulei 说:

    “ticmy “这位网友说的很对,我很赞成他的观点! 但是也不要轻易地说别人人品不好! 一个人品不好的人也不会在这里说话了!

  16. schurikeen 说:

    这些建议都是真知灼见。

  17. Bern 说:

    我很庆幸在我毕业一年后看到了这篇文章,我认为还不晚,谢谢您。

  18. 苏红旺 说:

    学习了!

  19. 卢培超 说:

    很好,谢谢了,我正好是10年毕业,谢谢指导!

  20. 任森辉 说:

    看来学习软件还真是不光光要会编程,身为一个初学者,我感到压力很大

  21. mike 说:

    收获良多~

  22. jody 说:

    java 技术群27764923 欢迎高手加入

  23. kouyandong 说:

    IT技术交流(java) 40779137

  24. userpjz 说:

    非常好 转载一下

  25. Jeremiah 说:

    标题说是七个建议,
    最后标黑的标题是6个。我数错了?网站贴错了?作者写错了?

  26. Jeremiah 说:

    应该是排版错了。
    不要因为枯燥就不选修非计算机专业的课程
    这个没有标黑

分享到:
评论

相关推荐

    2021高考冲刺系列-高三一轮复习规划的7个建议.pdf

    2021高考冲刺系列-高三一轮复习规划的7个建议.pdf

    使用HTTP_2提升性能的7个建议1

    前言原文出处: https://www.nginx.com/blog/7-tips-for-faster-http2-performance/历史悠久的超文本传

    CY7C68013 PCB 设计建议

    CYPRESS关于CY7C68013的设计建议,按照这个建议设计的,希望给大家一些帮助

    AngularJS进行性能调优的7个建议

    AnglarJS作为一款优秀的Web框架,可大大简化前端开发的负担。本文给大家介绍AngularJS进行性能调优的7个建议,涉及到angularjs性能调优相关知识,对本文感兴趣的朋友一起学习吧

    写给管理者的7个品牌和营销建议.docx

    写给管理者的7个品牌和营销建议.docx

    编写高质量代码:改善C程序代码的125个建议

    马伟的《编写高质量代码(改善C程序代码的 125个建议)》是华章“编写高质量代码”系列的第7本,之前已经出版C++、C#、Java、Pvthon、 ObjectiVe-c、Javascript相关*作。在通往“C语 言技术殿堂”的路上,本书将为你...

    主管培训之七步法管理团队及带团队的十个小建议.pptx

    主管培训之七步法管理团队及带团队的十个小建议.pptx

    诗歌五象美视角下《我们是七个》两译本赏析

    比较分析《我们是七个》卞译本和杨译本中的五象美,发现两个译本的五象各具特点,多风格地展现了原诗的特质,卞译本富有韵律、饱含生机,杨译本自然朴素、情感真挚,并为英诗的汉译提供美学视角的建议。

    编写高质量代码改善JavaScript程序的188个建议 (成林) 高清PDF扫描版

    第1章 javascript语言基础 / 1 第2章 字符串、正则表达式和数组 / 53 第3章 函数式编程 / 91 ...第7章 数据交互和存储 / 254 第8章 javascript引擎与兼容性 / 300 第9章 javascript编程规范和应用 / 3

    【互联网】互联网用户运营方法论(附书单).docx

    效果评估 四.7个建议 五.推荐书单 【互联网】互联网用户运营方法论(附书单)全文共13页,当前为第2页。如何做好用户运营的系统方法论 【互联网】互联网用户运营方法论(附书单)全文共13页,当前为第2页。 一.什么是...

    MySQL高性能优化规范建议

    MySQL高性能优化规范建议 数据库命令规范 数据库基本设计规范 1. 所有表必须使用 Innodb 存储引擎 2. 数据库和表的字符集统一使用 UTF8 3. 所有表和字段都需要...1. 限制每张表上的索引数量,建议单张表索引不超过 5 个

    《有效软件测试》-软件测试50条建议

    7.是否说明了对每个输入的验证措施,并描述了每个输入的属性,如:度量单位、边界值、时序要求 等 是[ ] 否[ ] NA[ ] 8.是否说明了对每个输入的处理 是[ ] 否[ ] NA[ ] 9.是否说明了对每个输出项是如何输出的,...

    建议购置新服务器请示.docx

    两个一并解决的方案比较经济合理,即采购1台性价比好的服务器,并入虚拟服务器环境,1台顶多台。配套参数为:IBM System x3850 X57143i20 机架式 CPU:8核16线程Xeon E7-4820 2.0GHz*4;内存DDR3 16×16GB PC3-8500;...

    oracle做的华为项目建议书

    最新Oracle压缩包内含oracle做的华为项目建议书(7个pdf)的全套原创资料, oracle做的华为项目建议书(7个pdf)介绍结束

    智慧交通云平台技术方案建议书.doc

    从系统基本组成与构架上来看,该共享平台由7个主要部分组成:历史数据汇总处理系统,上报数据上报系统,实时数据入库系统,交管数据存储系统,交管数据查询分析应用系统,数据管理系统以及系统管理。

    智慧交通云平台方案建议书.doc

    从系统基本组成与构架上来看,该共享平台由7个主要部分组成:历史数据汇总处理系统,上报数据上报系统,实时数据入库系统,交管数据存储系统,交管数据查询分析应用系统,数据管理系统以及系统管理。 在基础设施构架...

    Android七个球游戏源代码

    当你点击某一个球的时候,则该球与和他相对的两个球都改变成为相反的颜色,当七个球都变为红色时获胜。中间的绿色球具有提示功能,当你点击绿球的时候,则系统自动代你走一步。 我的邮箱是532334716@qq.com,如果你...

Global site tag (gtag.js) - Google Analytics