【游戏·数学】辅导电脑编程 Java/C++,3D图形,iPhone/Android 应用开发。为中小学生开设国际信息学奥林匹克竞赛,加拿大CCC比赛培训课程

给程序员准备的逻辑思维题

【1】假设有一个,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。

1515553743905445.gif


【2】周雯的妈妈是豫林水泥厂的化验员。 一天,周雯来到化验室做作业。做完后想出去玩。 “等等,妈妈还要考你一个题目,”她接着说,”你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你 能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来 吗?” 爱动脑筋的周雯,是学校里有名的”小机灵”,她只想了一会儿就做到了。 请你想想看,”小机灵”是怎样做的?

1515553751615857.gif


【3】三个小伙子同时爱上了一 个,为了决定他们谁能娶这个姑娘,他们决定用手枪进行一次决斗。小李的命中率是30%,小黄比他好些,命中率是50%,最出色的枪手是小林,他从不失 误,命中率是100%。由于这个显而易见的事实,为公平起见,他们决定按这样的顺序:小李先开枪,小黄第二,小林最后。然后这样循环,直到他们只剩下一个 人。那么这三个人中谁活下来的机会最大呢?他们都应该采取什么样的策略?

1515553759858481.gif


【4】一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个 人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。可 是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平。该怎么办呢?

按:心理问题,不是逻辑问题

1515553772369927.gif


【5】在一张长方形的桌面上放了n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与原先某些硬币重叠。请证明整个桌面可以用4n个硬币完全覆盖

1515553779546634.gif


会作2道智商就是正常,会作3道就不是凡人,会作5道就是高智商稀有人才了!
 
最后编辑:
人工智能“网红”编程语言Python进入山东小学课本

除了要学英语外,对于一些高中生,甚至小学生来说,他们未来很可能还要多学一门“
外语”—— Python。近日,山东省在其最新出版的小学信息技术六年级教材中,加入
了Python的内容。
简单来说,Python是一种广泛使用的高级编程语言,属于通用型编程语言,由荷兰人
Guido van Rossum创造。它的第一版发布于1991年。由于可扩展性,适应性和易于学习
,Python成为近年来增长最快的编程语言之一。在ranked.com的排名中,Python是2017
年最受欢迎人工智能编程语言,排名第二的是C++语言。
除了山东在小学教材中加入Python外,在今年浙江省新高中信息技术教材改革项目中,
也提到了Python。从网络上流传的版本看,从2017年9月入学高中新生中开始使用新的
教材,新教材的不同之处在于:编程语言将换用Python。
教材更新是一方面,2017年10月11日,教育部考试中心发布了“关于全国计算机等级考
试(NCRE)体系调整”的通知,决定自2018年3月起,在计算机二级考试中加入 “
Python语言程序设计”科目。
由此来看,世界已经无法阻挡Python往低幼年龄渗透了。
编程语言里的“网红”
在程序员的世界中,有句广为流传的话,叫“人生苦短,快用Python”。这句话非常形
象地说出了Python语言在程序员心目中的地位。
相比C++或Java等语言,Python让开发者用更少的代码来表达想法。作为一种解释型语
言, Python更强调代码的可读性和简洁的语法。不管是小型还是大型程序,该语言都
试图让程序的结构清晰明了。
根据Stack Overflow流量统计,2017年6月,Python第一次成为高收入国家Stack
Overflow访问量最大的标签,照此发展,到了2018年,Python肯定会成为最受欢迎的标
签。
另一个让Python成最受欢迎语言的原因是它的可扩展性。Python虚拟机本身几乎可以在
所有的操作系统中运行。Python可以用于Web程序、GUI开发和操作系统、科学建模。
YouTube、Google、Yahoo!、NASA都在内部大量地使用Python。
另外,在Python语言中,几乎所有的想法都可以通过30-40行代码快速验证。
Python的火爆得益于本身编程语言的优势外,还在于它成为了许多公司开发人工智能程
序的首选编程语言。例如,在今年打败中国棋手柯洁的AlphaGo程序中,就用到了
Python。此外,Facebook开源了人工智能编程工具箱PyTorch后,更是奠定了它作为人
工智能时代的首选语言。国内许多做人脸识别等程序的人工智能公司,也非常推崇
Python作为其编程首选语言。
向低幼阶段渗透的编程教育
那么,在低幼教育中推行Python真的可取吗?毕竟对于普通人来说,这是计算机专业领
域才需要学习的一门课程。
但在前百度首席科学家吴恩达看来,每个人都应该学会编程。尤其是随着人工智能发展
,人类与机器的交流变得越来越重要,编程能力将在可以预见的未来成为人机交流侧基
础。因此,每个人都应该像学会写字一样,学会写程序。
实际上,在美国,编程课程已经开始逐渐深入到低年龄阶段,甚至到婴幼儿阶段。在美
国亚马逊的官网上,你可以轻松地买到给婴儿看的编程教材。
在去年美国一次计算机科学教育周开幕日活动中,时任美国总统的奥巴马还曾亲自上阵
,给中小学生示范计算机编程。白宫认为,计算机科学普及教育是美国未来几十年保持
创新优势的关键举措之一。要知道,微软创始人比尔·盖茨在13岁开始学习编程,
Facebook创始人扎克伯格11岁开始学习编程。

来源:澎湃新闻
 
恶搞程序员的 9个笑话

1516262185149171.jpg


1. 某程序员退休后决定练习书法,于是重金购买文房四宝。一日,饭后突生雅兴,一番研墨拟纸,并点上上好檀香。定神片刻,泼墨挥毫,郑重地写下一行字:hello world!

2. 一个女人让他的程序员丈夫去商店买东西:你去附近的商店买些面包,如果有鸡蛋的话,买6个回来,这个丈夫买了6个面包回来,他的妻子大吃一惊:你为什么买了6个面包?!程序员丈夫回答:因为他们有鸡蛋。

3. “咚咚咚”“谁?”过了很久……“Java”

4. 十个顶尖软件工程师参加培训管理人员的课程。老师提出了这样一个问题:“假如你供职的公司是为航空电子设备提供软件的。有一天你乘飞机出差,当你上了飞机后你发现一个牌子上写着这个飞机用的是你的团队开发的Beta版软件,你会下飞机吗?”九个软件工程师举了手。老师看着第十个问道:“你为什么愿意留在飞机上?”这人回答说:“如果是我的团队写的这个软件,飞机根本无法起飞,根本谈不上坠毁。”

5. 为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25

6. 两个程序员在聊天:“我昨天碰到个辣妹。我把她带回家,马上就开始如饥似渴地亲吻,她就坐在我的键盘上,然后……” “你在家里也有台电脑?CPU是什么型号的?”

7. 一个存放了一半数据的数组:悲观的程序员觉得数组是半空的。乐观的程序员觉得数组是半满的。真正的程序员? 觉得数组占用的空间过大,需要调用realloc。

8. 程序员其实可痛苦的了……需求一做一改,一个月就过去了;嚎~需求再一改一调,一季度就过去了;嚎~

程序员最痛苦的事儿是啥,知道不?就是,程序没做完,需求又改了;
程序员最最痛苦的事儿是啥,知道不?就是,系统好不容易做完了,方案全改了;
程序员最最最痛苦的事儿是啥,知道不?就是,系统做完了,狗日的客户跑了;
程序员最最最最最痛苦的事儿是啥,知道不?就是,狗日的客户又回来了,程序给删没了!

9. 有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他说,“你知道不知道这个东西会危害你的健康?我是说,你有没有注意到香烟盒上的那个警告(Warning)?”小伙子说,“没事儿,我是一个程序员”。那妇女说,“这又怎样?” 程序员说,“我们从来不关心Warning,只关心Error”
 
最后编辑:
雷军:10年编程路,我想给初入行的程序员几点建议!

雷军自述:我并非天生喜 欢写程序,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时好友上大学时选择了计算机系,为了和这个朋友有更多的共同语言,我也选择了计算机系。大学毕业后,分到研究所,不太适应那里的气氛,就在1992年初加入金山软件,开始了职业程序员的生涯。后来成了金山软件研发部门的主管,但我一直都是一线的程序员。

1518156235425577.jpg


做自己最擅长、最喜欢的事

1518156257373970.jpg


我刚接触电脑就发现电脑的妙处,电脑远没有人那么复杂。如果你的程序写得好,你就可以和电脑处好关系,就可以指挥电脑干你想干的事。这个时候你是十足的主宰。每每你坐在电脑面前,你就是在你的王国里巡行,这样的日子简直就是天堂般的日子。电脑里的世界很大,编程人是活在自己想象的王国里。你可以想象到电脑里细微到每一个字节、每一个比特的东西。

开始的时候,我们觉得我们没有什么不能做的(现在还能听到这样的豪言壮语),而且更要命的是好象我们特别聪明,特别适合开发软件,比老外强得多。当我们真正接触那些杰出的开发人员的时候,发现他们太厉害了,都有十多年的开发经验。虽然也有很多年轻人做了很多好东西,但决大多数的产品出自这些有丰富开发经验的程序员的手。刚毕业的时候,编程不仅仅是爱好,而且也成了一辈子的工作。整天不知道写些什么东西,觉得特别没劲,找不到感觉,特别灰心。后来,才明白,只有全身心地投入,程序才会有感觉。

写程序的活特别费脑子,也特别累,但我喜欢,可以肯定我会干上一辈子,虽然我没有打算一生只干这一件事。用一生来编程序是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样的日子太好混了。但如果想全身心地写程序,写十年就不是一件容易的事。现在我不少朋友都洗手了,有时我也想“用什么电脑呀,Windows 外的世界不是也很大吗?”。面对电脑的时候,立刻顿悟:写程序还是自己最擅长的事,也是最喜欢的事。

建议一:不喜欢写程序的人早点转行,不要勉强自己,免得误人误己。

不要被追求的目标束缚自己的抱负

1518156283609360.jpg


有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。

一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序,这时候学得多的人写的好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上。成为一个高级程序员并不是件困难的事。

当我上学的时候,高级程序员也曾是我的目标,我希望我的技术能得到别人的承认。后来发现无论多么高级的程序员都没用,关键是你是否能够出想法出产品,你的劳动是否能被社会承认,能为社会创造财富。成为高级程序员绝对不是追求的目标。

建议二:时刻保持好奇心,不要局限在技术本身,多花点精力关注用户。

计算机技术更新换代非常快,每年都有各种各样的新技术出现。需要时刻保持好奇心,不断学习各种新的东西,才能在未来的几十年职业生涯中不落伍。人的精力有限,高手往往工作压力也比较大,如何在有限的时间内掌握整个行业动态,的确不是简单的事情。我的经验是经常看业内的各种技术杂志,参加各种聚会,可以节约很多时间。最重要的是,交几个博学的技术高手,多和他们交流,一定受益匪浅!

现在的软件研发越来越强调团队协作,不少团队都配置了专门的需求分析工程师、用户界面及用户体验的设计师,软件研发的分工越来越细。很多程序员以为只要把技术搞好,不用管用户需求和用户体验。实际上,需求方案及界面方案不可能写得非常细,具体的实施还是程序员自己来实现的。这个时候,好坏的差距很快就体现出来了。我们写程序的最终目的是满足用户需求,不是简单完成需求规划方案中的功能。所以,程序员一定要认真揣摩用户心理,能明白用户的真实需求。

我强烈建议程序员不要仅仅局限在技术本身,还需要多点精力考虑和用户相关的问题,学会洞察用户的需求,并努力设计好用易用的产品。做到这点的程序高手,就算创业也有很大的成算了。

编程是技术,更是艺术

有人认为编程是一种熟练工种,也有人把编程说成是艺术创作。

我们换个工种来看,石匠应该是熟练工种,属于工人,更和艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财产。现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。一名普通程序员接受编写某一模块的任务后,往往只是写代码,发挥的余地很小。在大项目中,很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事"艺术"创造,更多的时候是感到自己在从事重体力劳动。有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展,操作系统的换代而过时……

编程应该说两种属性都有。编程不仅仅是技术,也还是艺术。编程是技术活,才有可能大规模进行,才会有软件工程和软件工厂。也正是编程是艺术,才会有如此多的好产品,让大家如痴如醉。

建议三:必须像工匠一样写够十万行代码,又须像写诗一样来写代码。

程序员像木工一样,熟能生巧。程序员必须写足够代码量的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。

计算机是一门实践性的科学,没有动手能力做支撑,很难做出好的科研成果。我的一个学长是美国卡内基梅隆大学的博士,卡内基梅隆大学计算机系在全世界都非常出名,他说每个博士生必须写十万行代码才能毕业,卡内基梅隆大学博士生进任何一个大企业基本不用面试。而国内培养的大部分研究生、博士生,动手能力都偏弱。没有写过足够代码量的程序员,想成为高手是不可能的,只能纸上谈兵!

那么,怎样像写诗一样写代码呢?很简单,买几本经典的编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出像书上例程一样的代码,甚至可以比书上写得好。基础扎实后,多看看Linux等系统级的源代码,看看高手是如何写的,就有感觉了。通读一下MSDN中所有的资料,这样就“读书破万卷,下笔如有神”。

还有,一定要牢记软件工程的铁律:可能出错的地方一定会出错。每个变量都做初始化,引用每个参数都要做有效性检查,在可能出错的每个地方都要做边界条件检查,这样开发出来的程序一定会稳固很多,就是出错也很容易修改。野路子出来的高手,一般开发速度很快,但做完后Bug会很多,经常需要很长时间修改。而真正的高手,追求的境界是Bugfree code(零缺陷代码)。
 
厉害了!长沙脑瘫男孩获美国名校计算机专业博士全奖!

据长沙晚报报道,近日,中南大学软件学院软件工程专业研究生莫天池同学终于拿到了美国纽约州立大学石溪分校计算机专业的博士全额奖学金,他在此前还获得新泽西理工学院信息系统专业的博士全额奖学金,以及纽约州立大学水牛城分校英语教育专业的录取通知。

1519875887921446.png


莫天池因出生时遭遇意外患脑瘫,但他从小成绩优秀,获奖无数。2010 年考入中南大学的软件工程专业 ,大二起,他就在国家级核心期刊发表论文,一共完成 3 个科研项目,拿过“2013 年度中国计算机学会优秀大学生”,获得各级各项奖学金多达 9 次

1519875903919434.png


为此,莫天池还受邀参加 2013 中国计算机大会,并获得了唯一一个与谷歌副总裁Vinton G.Cerf 先生交流的机会,2014 年以专业第一被保送本院读研。2018 年 2 月 24 日,他拿到了纽约州立大学石溪分校计算机专业的博士全额奖学金。

1519875916372363.png


与互联网之父 Vinton G. Cerf 合影

其实为了出国留学,莫天池要比常人付出更多的努力,他不完成学习任务就不睡觉,经常熬到夜里两三点。至于为什么选择出国,他说:“我想去美国学习人工智能与医疗系统的融合,用自己的研究成果为更多的残疾人提供生活便利。”

如今,已经几个 Offer 在手的莫天池并没有松懈,他知道录取通知书和奖学金既是对他努力的肯定和回馈,也是对他未来的期许和鞭策。如今,更远、更大的世界已经向他敞开了大门,他已经迫不及待要去领略那更绮丽的风光。
 
如何成为有效学习的高手


1521596911765951.png


本文是许岑得到课程《如何成为有效学习的高手》的学习笔记,去年一次偶然的机会接触到许岑的 Keynote 教程,学完之后完全被他圈粉了,甚至还产生了想买锤子手机的冲动,所以最近也有倾向性的去了解许岑的一些其他教程,《如何成为有效学习的高手》就是其中一个不错的教程,有些观点对学习还是很有指导意义的。

许岑无疑是一位学习能力很强的人,他在几年的时间里,先后掌握了一些技能,并达到了专业水准,比如吉他、英语、幻灯片设计、炒菜等。他为高效学习下了一个定义,高效学习是找到自己的学习方法,在相对短的时间内集中注意力,以解决一个工作或者生活中的难题为目的着手学习。你需要勤加练习,有时候还需要向名师求助。

高效学习含义之中包含七个关键词
  • 适合自己

  • 学习方法

  • 短时间

  • 注意力

  • 解决难题

  • 设定目标

  • 名师
适合自己的学习方法

首先谈到的就是找到适合自己的学习方法,教程中提到两种学习方法,一种是自然主义,它的核心是模仿,比如学习语言、书法、乐器等,遇到什么就学习什么即可,积少成多,以量取胜。比如学习书法,主要是用心去临摹一些笔法,后期积累多少了,就可以写出漂亮的字体啦。另一种是结构主义,它侧重的是对结构和交互关系的认识,需要体系化的学习,以达到举一反三,可以自己创造一些东西的效果。比如学习编程,如果你连数据类型都理解不了,如何写出一个完整的程序呢?

掌握了学习方法,可以保证我们的学习是有效的,但是面对茫茫知识的海洋,一步登天是不太可能了,我们要将目标进行拆解,针对目标细节反复练习,这样可以让我们的学习变得高效。

不谈兴趣,任务驱动

学习方法对了,但是不一定能学得好,为什么这么说呢?可以分两种情况来看,一种是学不会,这种和天赋有关,比如你想要成为篮球运动员,但是你身体素质始终差距太大,可能就与篮球无缘了。另一种是学不好,无法达到比较优秀的水平,这种情况往往是驱动力不够,比如我们大家都在喊着学英语,学习路线也是一大堆,但是我们英语水平还是非常一般。

人的驱动力主要来自两方面,一种是内部驱动,比如兴趣、虚荣心、表现自己的欲望。另一种是外部驱动,比如任务激励。兴趣是很难培养的,我们这一生要做的事情太多了,不可能说每件事都有自己的兴趣,成年人不讲兴趣,应该用任务来驱动自己,任务处处都是,工作中的职业强迫、生活中的形势所迫都可以叫做任务。

倘若你不做饭就没有吃的,那么你肯定在短时间内可以成为一个不错的小厨师,同理工作中老板让你短时间内完成一件事,不然面临炒鱿鱼的风险,你同样可以做得十分不错。我们要不断的为自己创造任务,用任务来驱动自己,这样才能始终高效的学习。

有一种解决任务驱动的好方法,就是可以以教为学,比如我学习许岑的《如何成为有效学习的高手》,就是为了写一篇通俗易懂的文章来帮助大家对常见的学习套路有个基础的认识;再比如你想成为做饭高手,你可以每天把做出的菜写成一套教程,帮助大家的同时也是帮自己树立了目标驱动。个人觉得以教为学可以从两方面驱动我们学习,一方是教的过程就是树立目标的过程,任务驱动自己;再者就是教的过程可以带来粉丝、关注和赞美,人都是想获取赞美的,这种赞美促使我们产生内在的动力,这种内在的动力可以叫做虚荣心,也可以叫做表现自己的欲望。

拖延症的“确诊与治疗”

首先,许岑科学的解释了什么是真正的拖延症,拖延症在医学上叫做注意力缺陷多动障害,患有这种病的人只有很少的人可以完成中学学业,完成大学学业的更是寥寥无几。我们平时觉得自己做事拖拖拉拉,其实并不是注意力缺陷多动障害,而只是自己有拖拉的习惯罢了,是可以通过训练来及时改掉的。

回想一下,是不是有些事情你敢拖拉,有些事绝不敢拖延,假如发生了大地震,你是绝不会把逃跑这件事拖延的,在严峻的任务驱动下,往往可以解决拖延的问题。上一小节讲到了任务驱动可以提高学习的动力,如果你还是存在拖延的问题,你可以把任务的时间设置的更加紧迫,把任务设定的更加严峻。

在衣食住行上训练专注力

专注力决定着你做事和学习的效率,可以从衣食住行这些方面来训练自己的专注力,平常的生活并不会训练我们的专注力,但是营造仪式感可以提升我们的注意力。买昂贵的学习工具、好好吃饭、学习的时候使用射灯都可以营造仪式感,从而提高我们的注意力。当然,要保证睡眠质量的哦,睡眠不够,人很难做到专注。

直奔大师,不必从基础开始

有时候想要实现某一目标,不一定要从基础开始,比如一个家长只是想和孩子的外教进行交流,如果从新概念开始学习,那么可能很难坚持下去,并且不实用,依然无法和外教进行正常交流。倒不如直接学习学校的英文资料,浏览学校的英文网站,选择一个正确的切入点。再比如你想要去弹一首曲子,如果从指法开始学习,可能猴年马月才能出成效,倒不如直接去模仿大师的作品。

其实我觉得这里就和我们平时说的问题式学习类似,直接去解决问题,在解决的过程中其实就是不断学习、不断进步的过程,并且印象会更加深刻。如果拿起书本从头看到尾,反而没什么收获。

给自己制造反馈

有时候我们学完一些东西,依然无法把他融会贯通,比如无法完成相关题目,无法向别人阐述原理等。当觉得自己学会了某样东西的时候,一定要想办法讲出来,或者应用出来,这是自己给自己制造的反馈。

常见的制造反馈的方式有三种。第一种是写,可以写读书笔记,可以写教程,就比如经常写的程序员博客,其实就是很好的输出,一个给自己反馈,同时别人也可以向自己反馈一些问题,得到快速的进步。第二种是录音,给自己录音。第三种是给自己录像。

如何突破学习瓶颈

突破瓶颈其实有三种常用的方法,第一就是保持自信,相信自己可以做到。第二是扩大涉猎的范围,就比如编程,有些思想是互相借鉴的,如果一个问题一直摸不清,当你知识积累到一定成程度的时候,可能就会豁然开朗。第三则是请教名师,名师指点迷津。

总结

首先总结下对我很具有启发的关键词:体系化学习、模仿式学习、问题式学习、目标拆解、任务驱动、任务的严峻性、以教为学、有所输出、自我反馈。希望对你也有所帮助

如何成为一个有效学习的高手?首先是找到适合自己的学习方法,然后基于这套正确的学习方法,通过任务驱动和专注力来提高学习的效率,当你解决一个问题或者掌握一些知识的时候,要自己给自己制造反馈,当你遇到瓶颈的时候,要始终保持自信,通过扩大知识面、请教名师等方法来突破自我。

学点什么都会有用的
 
如何快速成长为技术大牛?阿里资深技术专家的总结亮了

写在前面

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。

然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲shell命令,这不是我想要的运维人生”。

我也是一位程序员,所以我希望通过以下基于程序开发的一些例子,帮助大家解决这些困惑。大道理是相通的,测试、运维都可以借鉴。

几个典型的误区

拜大牛为师

有人认为想成为技术大牛最简单直接、快速有效的方式是“拜团队技术大牛为师”,让他们平时给你开小灶,给你分配一些有难度的任务。

我个人是反对这种方法的,主要的原因有几个:

1.大牛很忙,不太可能单独给你开小灶,更不可能每天都给你开1个小时的小灶;而且一个团队里面,如果大牛平时经常给你开小灶,难免会引起其他团队成员的疑惑,我个人认为如果团队里的大牛如果真正有心的话,多给团队培训是最好的。然而做过培训的都知道,准备一场培训是很耗费时间的,课件和材料至少2个小时(还不能是碎片时间),讲解1个小时,大牛们一个月做一次培训已经是很高频了。

因为第一个原因,所以一般要找大牛,都是带着问题去请教或者探讨。因为回答或者探讨问题无需太多的时间,更多的是靠经验和积累,这种情况下大牛们都是很乐意的,毕竟影响力是大牛的一个重要指标嘛。然而也要特别注意:如果经常问那些书本或者google能够很容易查到的知识,大牛们也会很不耐烦的,毕竟时间宝贵。经常有网友问我诸如“jvm的-Xmn参数如何配置”这类问题,我都是直接回答“请直接去google”,因为这样的问题实在是太多了,如果自己不去系统学习,每个都要问是非常浪费自己和别人的时间的。

2.大牛不多,不太可能每个团队都有技术大牛,只能说团队里面会有比你水平高的人,即使他每天给你开小灶,最终你也只能提升到他的水平;而如果是跨团队的技术大牛,由于工作安排和分配的原因,直接请教和辅导的机会是比较少的,单凭参加几次大牛的培训,是不太可能就成为技术大牛的。

综合上述的几个原因,我认为对于大部分人来说,要想成为技术大牛,首先还是要明白“主要靠自己”这个道理,不要期望有个像武功师傅一样的大牛手把手一步一步地教你。适当的时候可以通过请教大牛或者和大牛探讨来提升自己,但大部分时间还是自己系统性、有针对性的提升。

业务代码一样很牛逼

有人认为写业务代码一样可以很牛逼,理由是业务代码一样可以有各种技巧,例如可以使用封装和抽象使得业务代码更具可扩展性,可以通过和产品多交流以便更好的理解和实现业务,日志记录好了问题定位效率可以提升10倍等等。

业务代码一样有技术含量,这点是肯定的,业务代码中的技术是每个程序员的基础,但只是掌握了这些技巧,并不能成为技术大牛,就像游戏中升级打怪一样,开始打小怪,经验值很高,越到后面经验值越少,打小怪已经不能提升经验值了,这个时候就需要打一些更高级的怪,刷一些有挑战的副本了,没看到哪个游戏只要一直打小怪就能升到顶级的。成为技术大牛的路也是类似的,你要不断的提升自己的水平,然后面临更大的挑战,通过应对这些挑战从而使自己水平更上一级,然后如此往复,最终达到技术大牛甚至业界大牛的境界,写业务代码只是这个打怪升级路上的一个挑战而已,而且我认为是比较初级的一个挑战。

所以我认为:业务代码都写不好的程序员肯定无法成为技术大牛,但只把业务代码写好的程序员也还不能成为技术大牛。

上班太忙没时间自己学习

很多人认为自己没有成为技术大牛并不是自己不聪明,也不是自己不努力,而是中国的这个环境下,技术人员加班都太多了,导致自己没有额外的时间进行学习。

这个理由有一定的客观性,毕竟和欧美相比,我们的加班确实要多一些,但这个因素只是一个需要克服的问题,并不是不可逾越的鸿沟,毕竟我们身边还是有那么多的大牛也是在中国这个环境成长起来的。

我认为有几个误区导致了这种看法的形成:

1)上班做的都是重复工作,要想提升必须自己额外去学习

形成这个误区的主要原因还是在于认为“写业务代码是没有技术含量的”,而我现在上班就是写业务代码,所以我在工作中不能提升。

2)学习需要大段的连续时间

很多人以为要学习就要像学校上课一样,给你一整天时间来上课才算学习,而我们平时加班又比较多,周末累的只想睡懒觉,或者只想去看看电影打打游戏来放松,所以就没有时间学习了。

实际上的做法正好相反:首先我们应该在工作中学习和提升,因为学以致用或者有实例参考,学习的效果是最好的;其次工作后学习不需要大段时间,而是要挤出时间,利用时间碎片来学习。

正确的做法

Do more

做的更多,做的比你主管安排给你的任务更多。

我在HW的时候,负责一个版本的开发,这个版本的工作量大约是2000行左右,但是我除了做完这个功能,还将关联的功能全部掌握清楚了,代码(大约10000行)也全部看了一遍,做完这个版本后,我对这个版本相关的整套业务全部很熟悉了。经过一两次会议后,大家发现我对这块掌握最熟了,接下来就有趣了:产品讨论需求找我、测试有问题也找我、老大对外支撑也找我;后来,不是我负责的功能他们也找我,即使我当时不知道,我也会看代码或者找文档帮他们回答。最后我就成了我这个系统的“专家”了。虽然这个时候我还是做业务的,还是写业务代码,但是我已经对整个业务都很熟悉了。

以上只是一个简单的例子,其实就是想说:要想有机会,首先你得从人群中冒出来,要想冒出来,你就必须做到与众不同,要做到与众不同,你就要做得更多!

怎么做得更多呢?可以从以下几个方面着手:

1)熟悉更多业务,不管是不是你负责的;熟悉更多代码,不管是不是你写的

这样做有很多好处,举几个简单的例子:

需求分析的时候更加准确,能够在需求阶段就识别风险、影响、难点
问题处理的时候更加快速,因为相关的业务和代码都熟悉,能够快速的判断问题可能的原因并进行排查处理
方案设计的时候考虑更加周全,由于有对全局业务的理解,能够设计出更好的方案

2)熟悉端到端

比如说你负责web后台开发,但实际上用户发起一个http请求,要经过很多中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会经过很多处理才到你写的那部分代码(路由、权限等)这整个流程中的很多系统或者步骤,绝大部分人是不可能去参与写代码的,但掌握了这些知识对你的综合水平有很大作用,例如方案设计、线上故障处理这些更加有含金量的技术工作都需要综合技术水平。

“系统性”、“全局性”、“综合性”这些字眼看起来比较虚,但其实都是技术大牛的必备的素质,要达到这样的境界,必须去熟悉更多系统、业务、代码。

3)自学

一般在比较成熟的团队,由于框架或者组件已经进行了大量的封装,写业务代码所用到的技术确实也比较少,但我们要明白“唯一不变的只有变化”,框架有可能要改进,组件可能要替换,或者你换了一家公司,新公司既没有组件也没有框架,要你从头开始来做。这些都是机会,也是挑战,而机会和挑战只会分配给有准备的人,所以这种情况下我们更加需要自学更多东西,因为真正等到要用的时候再来学已经没有时间了。

以java为例,大部分业务代码就是if-else加个数据库操作,但我们完全可以自己学些更多java的知识,例如垃圾回收,调优,网络编程等,这些可能暂时没用,但真要用的时候,不是google一下就可以了,这个时候谁已经掌握了相关知识和技能,机会就是谁的。

以垃圾回收为例,我自己平时就抽时间学习了这些知识,学了1年都没用上,但后来用上了几次,每次都解决了卡死的大问题,而有的同学,写了几年的java代码,对于stop-the-world是什么概念都不知道,更不用说去优化了。

Do better

要知道这个世界上没有完美的东西,你负责的系统和业务,总有不合理和可以改进的地方,这些“不合理”和“可改进”的地方,都是更高级别的怪物,打完后能够增加更多的经验值。识别出这些地方,并且给出解决方案,然后向主管提出,一次不行两次,多提几次,只要有一次落地了,这就是你的机会。

例如:

重复代码太多,是否可以引入设计模式?
系统性能一般,可否进行优化?
目前是单机,如果做成双机是否更好?
版本开发质量不高,是否引入高效的单元测试和集成测试方案?
目前的系统太庞大,是否可以通过重构和解耦改为3个系统?
阿里中间件有一些系统感觉我们也可以用,是否可以引入 ?

只要你去想,其实总能发现可以改进的地方的;如果你觉得系统哪里都没有改进的地方,那就说明你的水平还不够,可以多学习相关技术,多看看业界其它优秀公司怎么做。

我2013年调配到九游,刚开始接手了一个简单的后台系统,每天就是配合前台做数据增删改查,看起来完全没意思,是吧?如果只做这些确实没意思,但我们接手后做了很多事情:

解耦,将一个后台拆分为2个后台,提升可扩展性和稳定性;
双机,将单机改为双机系统,提高可靠性;
优化,将原来一个耗时5小时的接口优化为耗时5分钟

还有其它很多优化,后来我们这个组承担了更多的系统,后来这个小组5个人,负责了6个系统。

Do exercise

在做职业等级沟通的时候,发现有很多同学确实也在尝试Do more、Do better,但在执行的过程中,几乎每个人都遇到同一个问题:光看不用效果很差,怎么办?

例如:

学习了jvm的垃圾回收,但是线上比较少出现FGC导致的卡顿问题,就算出现了,恢复业务也是第一位的,不太可能线上出现问题然后让每个同学都去练一下手,那怎么去实践这些jvm的知识和技能呢?

Netty我也看了,也了解了Reactor的原理,但是我不可能参与Netty开发,怎么去让自己真正掌握Reactor异步模式呢?

看了《高性能MySQL》,但是线上的数据库都是DBA管理的,测试环境的数据库感觉又是随便配置的,我怎么去验证这些技术呢?

框架封装了DAL层,数据库的访问我们都不需要操心,我们怎么去了解分库分表实现?

诸如此类问题还有很多,我这里分享一下个人的经验,其实就是3个词:learning、trying、teaching!

1)Learning

这个是第一阶段,看书、google、看视频、看别人的博客都可以,但要注意一点是“系统化”,特别是一些基础性的东西,例如JVM原理、Java编程、网络编程,HTTP协议等等,这些基础技术不能只通过google或者博客学习,我的做法一般是先完整的看完一本书全面的了解,然后再通过google、视频、博客去有针对性的查找一些有疑问的地方,或者一些技巧。

2)Trying

这个步骤就是解答前面提到的很多同学的疑惑的关键点,形象来说就是“自己动手丰衣足食”,也就是自己去尝试搭建一些模拟环境,自己写一些测试程序。例如:

Jvm垃圾回收:可以自己写一个简单的测试程序,分配内存不释放,然后调整各种jvm启动参数,再运行的过程中使用jstack、jstat等命令查看jvm的堆内存分布和垃圾回收情况。这样的程序写起来很简单,简单一点的就几行,复杂一点的也就几十行。

Reactor原理:自己真正去尝试写一个Reactor模式的Demo,不要以为这个很难,最简单的Reactor模式代码量(包括注释)不超过200行(可以参考Doug Lee的PPT)。自己写完后,再去看看netty怎么做,一对比理解就更加深刻了。

MySQL:既然有线上的配置可以参考,那可以直接让DBA将线上配置发给我们(注意去掉敏感信息),直接学习;然后自己搭建一个MySQL环境,用线上的配置启动;要知道很多同学用了很多年MySQL,但是连个简单的MySQL环境都搭不起来。

框架封装了DAL层:可以自己用JDBC尝试去写一个分库分表的简单实现,然后与框架的实现进行对比,看看差异在哪里。

用浏览器的工具查看HTTP缓存实现,看看不同种类的网站,不同类型的资源,具体是如何控制缓存的;也可以自己用Python写一个简单的HTTP服务器,模拟返回各种HTTP Headers来观察浏览器的反应。

还有很多方法,这里就不一一列举,简单来说,就是要将学到的东西真正试试,才能理解更加深刻,印第安人有一句谚语:I hear and I forget. I see and I remember. I do and I understand ,而且“试试”其实可以比较简单,很多时候我们都可以自己动手做。

当然,如果能够在实际工作中使用,效果会更好,毕竟实际的线上环境和业务复杂度不是我们写个模拟程序就能够模拟的,但这样的机会可遇不可求,大部分情况我们还真的只能靠自己模拟,然后等到真正业务要用的时候,能够信手拈来。

3)Teaching

一般来说,经过Learning和Trying,能掌握70%左右,但要真正掌握,我觉得一定要做到能够跟别人讲清楚。因为在讲的时候,我们既需要将一个知识点系统化,也需要考虑各种细节,这会促使我们进一步思考和学习。同时,讲出来后看或者听的人可以有不同的理解,或者有新的补充,这相当于继续完善了整个知识技能体系。

这样的例子很多,包括我自己写博客的时候经常遇到,本来我觉得自己已经掌握很全面了,但一写就发现很多点没考虑到;组内培训的时候也经常看到,有的同学写了PPT,但是讲的时候,大家一问,或者一讨论,就会发现很多点还没有讲清楚,或者有的点其实是理解错了。写PPT、讲PPT、讨论PPT,这个流程全部走一遍,基本上对一个知识点掌握就比较全面了。

后记

成为技术大牛梦想虽然很美好,但是要付出很多,不管是Do more还是Do better还是Do exercise,都需要花费时间和精力,这个过程中可能很苦逼,也可能很枯燥,这里我想特别强调一下:前面我讲的都是一些方法论的东西,但真正起决定作用的,其实还是我们对技术的热情和兴趣!

本文作者:李运华
 
做一个快乐的程序员

1524628654114905.jpg


春节假期,与几位友人小聚,大家互道工作顺利、平安健康云云,期间一位驰骋商界多年的老友问:”你现在在华为做什么工作呀?”我很骄傲地说:”系统架构师“,可是他却愣了很久,但当我老婆在旁边补上一句“码农“时,老友瞬间秒懂,却把我受伤的心孤独地留在风中凌乱。

作为与UNIX同年代的人,我当初选择计算机专业仅仅是因为抓到什么就学什么罢了。本科毕业遇到互联网危机,便没有想法地去读了研,研究生毕业找工作,面试官问为什么要做软件开发,答曰“不给钱都喜欢做的事情,何况还给钱”,便从此踏入了编码这一行,只是从来没想到一做就是十几年。

但凡一件事情做久了,无论成功与否,都会有一些真切的体验和心得。以前也读过一些工作中如何成功、快乐,诸如马洛斯理论之类的文章,也许是因为自己领悟能力比较差,唯一的收获是庆幸自己当初选择了编码作为自己的工作,因为编码天生就具有让人愉悦的工作内容和工作氛围,快乐如影随从。

码世界:规则简单有效,粗暴却完美

从事编码,可以锻炼逻辑思维能力,教会你如何思考。就像学习法律一样,学法律的人未必都是为了成为律师,但法律教会了你一种思维方式。同样的,通过编码可以学习到这个世界上最严谨的思维方法。因为在编码的世界里,对错是简单甚至绝对的,只要敲下键盘,计算机就会判定孰是孰非,0或1,规则简单有效,粗暴却完美。

从事编码,可以获得持续的创造力。跟写作、绘画、作曲一样,编码也是一种创造性的工作。只要有一台计算机,掌握了基本技能后,你便拥有了无限的超能,便能随心所欲地创造出新的东西,丰富和美好这个世界,是不是很棒?

更酷的是,编码可以品味孤独。除了跟别人交流、学习,程序员大部分时间都是独自在工作,只要双手触摸到键盘,内心顷刻便会变的宁静,多酷呀!伴随着键盘清脆的低吟,沉浸在一个人的世界里,跟烟雨蒙蒙天,一杯茶,一个人听着淅淅沥沥的雨声品味孤独,简直有异曲同工之妙,多感性呀!

能够选择编码作为工作的人,大部分都是喜欢为人处世简简单单的人:这群人有着天真烂漫的好奇心,虽不苟言笑,但却内心火热,善于分享,乐于助人,甚至有时为了解决问题、宁愿不眠不休,却深以为乐……跟这样一群简单纯粹的人在一起,我觉得世界上最好的工作氛围,也不过如此。

1524628683384054.jpeg


程序员的三个境界

但IT时代的膨胀已经让编码工作如同文艺复兴时的印刷匠一样,编码门槛越来越低,遍地《一周XX速成》、《20天XX精通》,仿佛会写代码就成了程序员,这让很多人认为从事编码工作就是码农。其实,印刷匠很多,成为大师的不多;码农很多,但程序员并不多。程序员不是码农,码农也不是真正的程序员。

1524628714395095.jpeg


程序员在英文里对应有三个单词:Coder、Programmer和Software Engineer,我觉得这三个词,生动形象地描述了程序员所需要经历的三个阶段,或者说三个境界——

Coder:只要求能够熟练使用编程环境,精通几种编程语言、开发框架和开发库,擅长写代码就可以了。这个阶段的程序员能够按照既定的设计完成编码。

Programmer:要求在coder的基础之上,精通设计模式、算法实现和编码技巧,并具备熟练应用的能力,这个阶段的程序员能够独立编码解决现实问题。

Software Engineer:要求在掌握业务知识的前提下,理解为什么这么实现,在综合考虑架构实现,权衡开发成本后,为解决业务问题提出最优方案,并能与业务人员顺畅沟通,让业务人员理解方案。编码工作达到这个阶段,才能称得上是真正的程序员,才真正实现了从工作到职业的转变。

不可否认,这个世界上有一些天才的程序员,他们喝着咖啡,哼着歌,便完成了上面三个阶段的修炼。但绝大部分人,都需要为此付出巨大的时间和精力。能否成为职业的程序员,影响因素和方法论很多,各种学习类、技术类的总结遍地都是:主动思考、及时总结、制定规划等。但我认为其中最重要的是能否做到专注。

许多没有达到第三个阶段的程序员,就是因为受到各种因素诱惑,变得心猿意马,不够专注。因为不够专注,他们不在意做好自己本职工作,不在意锤炼自己的技能,不在意学习新兴的技术。慢慢的,他们会认为从事编码没有出路,进而毫无例外地把编程看成是体力劳动,只会粘贴拷贝代码,知其然而不知其所以然,导致技术停滞不前。在这样的状态下工作5年、10年,对于他们来说,没什么区别,程序员真的就是吃青春饭的码农。

1524628743134842.jpeg


程序员VS码农:我们不一样

要避免程序员变成码农,必须对编码保持热情,并持续学习;必须保持好奇心,乐于探求事物本质;必须对所做的工作及时总结,主动优化代码,让系统变得更加有机;必须主动尝试更好的开发方式、更先进的工具,来提升开发效率,并想办法避免重复性的工作;必须不断改进设计,将编程变成创造性的工作。只要通过这样逐步地积累经验和长时间锤炼,知识体系才能构建完备和丰富,才能避免沦落为码农。

几年前,我曾经重构过一个模块,从外部看模块的所在的系统,都是类似这样的,简洁而漂亮:

1524628762918274.jpeg


但从程序员编码实现的层面看,它实际上是这样的:

1524628769380314.jpeg


这个设计在最初的版本没有任何问题,使用继承扩展管理对象的接口能力,但仅仅过了两个版本,项目组PL说实在撑不下去了:增加一个接口,需要修改200多个地方,如果再过一个版本,估计要修改400多个地方了。

后来我把它改成这个样子,使用聚合消除了耦合:

1524628781475195.jpeg


从代码实现层面看,在功能刚开始开发时,这两个设计区别不是很大,但随着系统演进、越来越多的功能加入,继承关系带来的耦合会导致模块之间关系越来越复杂,牵一发而动全身,终究有一天哪怕只做很小的改动,也将成为压死骆驼的最后一根稻草。

这次重构的成果是代码量由43K减少到15K,扩展新的接口能力不再需要修改已有代码。我想,这或许就体现了码农和程序员的区别吧。

CT是一个业务复杂度极高的行业,要想从码农成长为程序员,需要经历更多的煎熬,需要发挥更多的创造力,同时也意味着,我们比以往任何时候都需要越来越多的码农成长为程序员。

既然我们选择了编码作为职业,注定会经历各种心劫:枯燥、沮丧、迷茫,甚至浮躁……然而无论处于哪种心境当中,我相信,只要想起自己曾经满怀惊奇、兴奋与真诚敲下的那个程序——“Hello,World!”我们就会充满了渴望和力量,因为那是程序员最初的梦想:改变世界。
 
C、C++、Java、JavaScript、PHP、Python分别用来开发什么?

首先,我们先普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了。

C和C++

C/C++理论上说可以做任何开发, 只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。除非你的系统中连C/C++编译器都不具备. 某些系统当中C++编译器是不具备的, 但是C一般都具备. 目前而言, C语言主要用来开发底层模块(比如驱动,解码器,算法实现), 服务应用(比如web服务器)和嵌入式应用(比如微波炉里的程序). C++也可以做这些, 不过由于C++的复杂性和标准问题, 人们还是更愿意使用C来做. C++更适合比较复杂但又特别需要高效率的设施,比如大型游戏,一些基础库, 大型桌面应用.

总结:

C: 系统底层, 驱动, 嵌入式开发.

C++: 游戏开发, 大规模, 高性能, 分布式要求的程序开发。

Java

java常常跟”企业”联系在一起, 因为具备一些很好的语言特性, 以及丰富的框架, 在企业应用中最被青睐, 你总可以听到关于J2EE, JSP, Hibernate之类的东西的讨论. 同时, java在手机领域也有一席之地, 在普遍智能化之前, 很多手机就是以支持java应用作为卖点的, 而智能手机爆发之后, java手机主场变成了android, 作为安卓的标准编程语言而存在.

总结:

Java: 网页, 企业级开发, 普通应用软件, 游戏后台。

JavaScript

javascript听起来跟java有关系, 其实并没有任何关系, 只是名字像而已.就好比雷峰塔和雷锋的关系一样,虽然只差一个字。 js最广泛的应用毫无疑问是在web前端. 简单的说, 网站给你传过来的是一堆用各种标签表示格式的文档, 而js负责操纵这些文档实现一些客户端动态效果. js的领地还不仅如此, 现在的Node.js还可以用于服务器端的开发.

总结:

JavaScript是浏览器的脚本语言,一般和Html,CSS这些一起学,主要做网站的前端开发,展现各种酷炫的画面。

PHP

php这三个字你常常会在浏览器地址栏里看到, 所以不意外php是用来开发网站的. 也是web后端的王者语言.无数的网站后端都运行着php代码.

总结:

PHP:主要是网络前端,用于生成网页。也可以整个web服务器都用php,比如很多论坛引擎。

Python

Python由于具有丰富和强大的库,它又叫做作胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。Python是做服务器开发与物联网开发。信息安全,大数据处理,数据可视化机器学习,物联网开发,各大软件的api,桌面应用,都需要python。

总结:

Python:动态解释型,开发效率高,开源,灵活,入门门槛低。
 
为什么创业要从笨事情做起?滴滴和携程做了最好的解释

说起互联网创业,很多人都会认为,就是三两人做出一个APP或者自媒体号,足不出户,就可以打造出“爆款”,吸引几百万粉丝关注,瞬间成了大牛。

好像只有这样,才不会辱没了“互联网创业”这个词。

但是真正有过类似经历的人都知道,打造一个新产品立马就红,这种天上掉馅饼的事是不会发生的,特别是对刚创业的小公司来说。

美国著名的创业孵化基地YC的创始人保罗·格拉姆说过:创业要从“笨”的事情做起。

这位牛人的很多文章都被誉为硅谷的创业圣经,那么什么才是创业要做的笨事情呢?

1532913164885357.jpg


Airbnb的笨招

美国有个网站叫Airbnb,主要业务是在网上为商旅者提供家庭房间的租赁。

一开始创立时,缺少租房子的用户,对于Airbnb来说,是非常焦虑的,这意味着他们没有说服力的数据。

1532913180429565.jpg


创始人就开始琢磨美国人民一般去哪里租房?发现了一个叫Craiglist的网站,类似国内58同城这样的分类信息,其中有一个大类就是寻找别人家里的住宿机会。

创始人就在Craiglist的网站做了一个插件,用户在Airbnb上发布消息之后,就可以同步到Craiglist上,一个步奏可以发布两个平台。

借此,Airbnb获取了不少用户,虽然用户是有了,但要真正成为预订客户,还需要做出其他努力。

每周两位创始人会背上相机飞到纽约,给每一位房东拍照,这听起来很辛苦的举动,却是最管用的。这些真实的照片发到网上之后,原先的用户纷纷从Airbnb上预订房间。

早起的创业就需要这样,通过一个个客户的接触,加深对业务的理解和打磨,才能慢慢创造出自己的核心竞争力。

携程免费发会员卡

携程是目前国内最大的预订酒店网站,而携程早期给业务带来飞跃的方式,也是一种看起来很笨的方法,在飞机场免费发放蓝色会员卡。

1532913202260606.jpg


这个想法是销售总监吴海发明的,当时他听一位做牙膏生意的朋友说,雇佣大量销售人员,挨家挨户上门推销,这种不起眼的方法,换来了一年3000万的利润。

这种方式放到携程身上一样管用,带来30%的转化率。

这使得携程从原来每个月预订数1000增长到每个月2万,最终成为全国最大的酒店分销商。

看起来非常笨的方法,帮助携程成为早期行业的领头羊,并确立优势,一直持续到今天。

滴滴的艰难推广

再来说一家明星公司,现在很多人都离不开的滴滴。

现在的滴滴是打车行业的绝对霸主,但是初创那会,滴滴在推广自己软件的时候,也是下了很多笨功夫。

2012年,北京有189家出租车公司,大约7万辆出租车,10万个司机。

1532913227481073.jpg


当时程维和团队的目标是,在两个月内安装1000个司机端,现在看来并不算事,但在当时是遭遇了很大困难的。

一个多月过去了,跑了一百多家公司,没有一家出租车公司跟他们合作。

每家公司都是一样的问题:你们有没有交委的合同文件?没有凭什么调度出租车?

团队成员都跑得没信心了,程维就鼓励他们,跑完189家公司,如果还是没人愿意接受,我们就认了,放弃。

皇天不负有心人,终于在北京昌平,一家只有200辆出租车的银山出租车公司,成了第一家与滴滴合作的公司。

当时程维在例会上花了15分钟跟司机介绍产品,100个司机在场,只有20人有智能手机,最后安装了8个。

之后程维拿着合同找到其他出租车公司,说人家都做了,你们也可以尝试一下,就这样撬开了第二家、第三家。

到2012年9月上线时 ,滴滴安装了500个司机端。

滴滴一直把这种做法延续下去,到2014年,在北京已经有8个服务站点,地推人员早上7点开始,一直工作到晚上10点,每天15个小时,为六百个司机解决安装滴滴的问题。

这些笨功夫,也为滴滴带来最真实的用户。

笨功夫的背后

从这些例子里,我们可以看出笨功夫带来的实质:

1、很多创业公司一开始都是在垂直领域,然后慢慢扩张。

创业早期的资金有限,必须把资源放在产品上,创造好的口碑和粘性,获取用户,才能发展和壮大。

2、任何新事物和产品,一开始都只会有少部分人接受。

然后通过反馈去创新和迭代,慢慢获得大众的认同。

所以面对面直接交流非常重要,只有这样才能直接触达用户,赢得用户的信任。

3、很多人不愿去做笨事情,主要还是担心自己无法坚持。

比如每天坚持运动和看书,来锻炼自己的身体和开拓眼界,这需要日积月累才能看到效果,但就是难以坚持。

但真正坚持下来的人会发现,不仅能带来效果,还会推动自己不断持续下去,并从中获得满足感。

1532913265879044.jpg


就像滴滴和携程一样,从笨功夫中不断获取新用户,再困难也会坚持下去。

其实工作也一样,那些做起来很费力不讨好的事情,在积累到一定程度之后就会变成你的财富,点石成金。

能让自己达到目标的秘诀,从来都不是某些捷径,而是扎扎实实把事情做到位。
 
最后编辑:
如何像程序员一样思考——解决问题的经验

如何你对编程感兴趣,你可能见过这句话:

“Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs

你可能还想知道,像程序员一样思考到底意味着什么?怎样才能做到?

从本质上讲,它是一种更有效的解决问题的方法。

在这篇文章中,我的目标是用这种方式教你。

最后,你就会知道怎样才能更好的解决问题。

为什么这很重要?
我们每天都有遇到很多问题,无论大的小的。我们处理这些问题的方式有时候都是随机的。

除非你有个系统,否则用“随机的方式”可能就是你“解决”问题的方法(下面我开始学习编程写代码时候做做的事情):

  • 1、试着解决方案

  • 2、如果不行,再试一次

  • 3、如果没有效果,重复第二步知道你运气好
这样的方法,在你运气不好的时候,就傻了。总之这种方法时候解决问题的最糟糕的方法!也是非常浪费时间的。

最好的方法是:

  • a、有一个框架

  • b、练习它
几乎所有的雇主都把解决问题的能力放在首位!

解决问题的能力已经是雇主们寻找程序员、测试工程师、系统设计师等最看重的一个方面。

计算思维或分解大型复杂问题的能力,与工作所需要的基本技术能力一样有价值 — by Hacker Rank (2018 Developer Skills Report)

一个框架

为了找到正确的框架,我遵循了Tim Ferriss 关于学习的书《the 4-Hour Chef》中的建议, 《The 4-Hour Chef》

这让我采访了两个让我印象深刻的人:

C. Jordan Ball (ranked 1st or 2nd out of 65,000+ users on Coderbyte, and V. Anton Spraul (author of the book “Think Like a Programmer: An Introduction to Creative Problem Solving”.

我问了他们同样的问题,你猜怎么着?他们的回答竟然非常的相似!

接下来,你很快就能认识他们了~~

当然,其实这也并不意味着它们每件事情都是以同样的方式进行,每个人都是不同的,你也会是不同的,但如果你从我们都认同的好的原则开始,你也会走的更远更快。

我看到新程序员犯的最大错误是专注于学习语法,而不是学习如何解决问题。by – V. Anton Spraul (http://vantonspraul.com/)

那么,当你遇到新的问题时,你应该怎么做呢?

步骤如下:

1、理解
非常确切的知道自己被问的是什么问题。大多数难题之所以难,是因为你不理解它们,所以这个是第一步。

如何知道什么时候你理解了一个问题呢?——当你能用简单的、自己的语言解释它的时候。

你可能会记得,当你被困在一个问题上,一旦开始解释它,你就立刻看到逻辑上的漏洞,而且漏洞很可能也是你以前没有看到的。

大多数程序员都知道这种感觉吧!

这就是为什么你应该把你的问题写下来,画个图,或者告诉别人。

“If you can’t explain something in simple terms, you don’t understand it.”  如果你不能用简单的语言来解释某件事,你就无法理解它 — Richard Feynman

2、计划
不要在没有计划的情况下,一头扎进解决问题的过程中(并且希望你能混过去),计划你的解决方案吧!

如果你不能写下计划确切的步骤,什么也都不帮不了你。

在编程中,这意味着不要立即开始进行黑客攻击。给你的大脑一定的时间来分析问题和处理信息。

为了得到一个好计划,回答这个问题: 给定输入 X,返回输入Y所需要的步骤什么? 程序员的世界里面,有一个伟大的工具 来帮助他们实现这个,那就是注释!

3、拆分
这是最重要的一步

不要试图一次就解决一个大问题,不然你可能会哭的。

相反,当你把这个问题进行拆分成一个一个子问题,这些子问题就更加容易解决了。

然后,逐个解决每个子问题,从最简单的开始。最简单意味着,你知道答案(或者更加接近那个答案)。

另外最简单的方法意味着子问题的解决并不依赖与其他问题的解决。

一旦你解决了每个子问题,再把这些点连接起来

连接所有“子解决方案” ,将为你提供的原始问题的解决方法!那么恭喜你,你做到了!

这种技巧呢,是解决所有问题的基石,请记住它(建议你重新再读一遍这个步骤)

如果我能交给每一个初学者一种解决问题的技能,那就是“减少问题这个技能” ,例如:假设你是一个新程序员,你被要求编写一个程序,读取10个数字,然后算出哪个数字是第三高的,对于一个全新的程序员来说,这可能是一项艰巨的任务,尽管它只需要基本的编程语法

如果你陷入困境,你就应该把问题简化。而不是专注在第三个高的数字上。如何在一个整体中先找到最高的那个数呢?还是太难了?那从三个数字中找到最大的那个呢? 还是太难? 那如果是寻找两个较大的那个呢?

将问题简化到你知道如何解决问题,并编写解决方案的程度。然后稍微展开问题,重新解决方案使其匹配,并继续进行,知道你回到你最开始的地方。— V. Anton Spraul

4、卡住了呢?
现在,你可能正坐在那里想,这几个步骤看起来还不错嘛,但如果我卡住了,设置不能解决子问题该怎么办?

首先,深呼吸。因为这个很正常!

别担心,朋友,每个人都会这样子!

不同之处在于,最好的程序员/问题解决者,对bug/错误更加好奇,而不是恼怒!

事实上,当你遭遇不幸时,有三件事情可以尝试:

调试:逐步检查你的解决方案,试图找出哪里出错了。即调试程序。

(调试的艺术在于,找出你真正告诉你的程序去做了什么,而不是你以为你告诉它去做什么)

重新评估:后退一步,从另个一角度来看这个问题,有什么可以抽象成更加一般的方法吗?

(有时候,我们会对问题的细节太过沉迷,以至于忽略了再更一般的层面上解决问题的一般原则!)

经典的例子,求一长串连续整数的总和,1+2+3+4+…+ n , 利用一个简单的消元方法就可以很快的识别出这么一个公式:n(n+1)/2 ,从而避免了不得不做的加分。

(另一种重新评估的方式是重新开始。删除所有的内容,用全新的眼光重新开始。你会惊讶到这是多么有效。)

搜索/研究 :你没看错,就是使用Google,不管你有什么问题,可能有人已经解决了。找到那个人/解决方案。事实上,即使你解决了问题,也要这样做!(你可以从别人的解决方案中学到很多)

(注意:不要寻找解决大问题的方法。只寻找子问题的解决方案,为什么呢? 因为除非你努力,(哪怕是一点点),否则你什么都学不到,如果你什么都没学到,那你就是在浪费时间)

5、实践
不要期望仅仅一个星期就能变的很厉害,如果你想成为一个好的问题的解决者,就应该去解决很多问题!

练习、练习、练习!迟早你会认识到这个问题可以通过很轻松的方式来解决。

那么如何练习呢?其实也有很多选择的!

比如:国家象棋游戏、数学问题、数独、视频游戏、cryptokittiles ,bla bla bla ………

事实上,成功认识的一个普遍模式是他们练习“围观解决问题”的习惯。例如: 彼得.泰尔(Peter Thiel )下棋,埃隆.马斯克 (Elon Musk) 玩电子游戏….

拜伦.里夫斯(Byron Beeves)说,如果你想知道三到五年后商业领导力会是什么样子,那么久看看网络游戏正在发生什么吧

快进到今天 , 埃隆马斯克、雷德.霍夫曼、马克.扎克伯格和其他许多人都表示,游戏是他们称建立公司的基石。——Mary Meeker (2017年互联网趋势报告)

这意味着你应该只玩电子游戏? 也不全是。

但是这个到底跟电子游戏有什么关系呢? 没错,就是问题解决!

所以,你应该做的是,找到一个练习的出口,可以让你解决很多小问题的东西。(理想情况下,还是你喜欢的东西,那就更好了)

例如,我喜欢编程挑战,每天,我都试图解决至少一个挑战(通常在Coderbyte)https://coderbyte.com/

正如我所说,所有的问题都有相似的模式!

6、结论
现在,你知道“像程序员一样思考” 是什么意思了。

你也知道解决问题是一种难以置信的元技能。

如果这还不够,你肯定也知道了如何练习解决问题的技巧。

你看,这是不是看起很酷!

最后,祝你遇到很多问题哈哈。

你没看错,至少现在你知道怎么解决了,同时,你将了解到,每一种解决方案都会使你得到改进!

“Just when you think you’ve successfully navigated one obstacle, another emerges. But that’s what keeps life interesting. 就在你认为已经成功跨域了一个障碍时候,另一个障碍有出现了,但这正是让生活变得有趣的地方。

Life is a process of breaking through these impediments — a series of fortified lines that we must break through. 生活是一个突破这些障碍的过程——一系列我们必须突破的防线。

Each time, you’ll learn something. 每次,你都会学会到一些东西。

Each time, you’ll develop strength, wisdom, and perspective. 每一次,你都将发展你的张力、智慧、和洞察力

Each time, a little more of the competition falls away. Until all that is left is you: the best version of you.” — Ryan Holiday 每次,更多的竞争就会消失。直到你成为最好的自己。——瑞安.霍利迪(障碍就是路)

现在,去解决一些问题吧!
 
2018 PayScale 美国大学计算机科学专业薪资排名

学习计算机科学意味着你将进入现代经济中薪水最高、增长最快的工作类型之一。但是,如果你进入一个期望你能得到高薪的领域,为什么不在一个有着最高收入的校友的学校里接受教育呢?PayScale将对美国大学计算机科学专业毕业生薪酬进行评分排名,列出2018PayScale美国大学计算机科学专业薪资排名。

在2018PayScale美国大学计算机科学专业薪资排名中,计算机科学专业薪资整体都有所增长。斯坦福大学依然排名第一(2017PayScale美国大学计算机科学专业薪资排名也是第一),宾夕法尼亚大学第二(去年前100的排名中没见到,排名变化巨大)、第三是达特茅斯学院(去年前100的排名中没见到,排名变化巨大)。下面是2018PayScale美国大学计算机科学专业薪资排名。

排名 学校名称 英文名称 早期职业薪酬 中等职业薪酬
1 斯坦福大学 Stanford University $101,000 $173,500
2 宾夕法尼亚大学 University of Pennsylvania $90,500 $158,100
3 达特茅斯学院 Dartmouth College $94,700 $157,400
4 普林斯顿大学 Princeton University $93,400 $155,600
5 加州大学伯克利分校 University of California - Berkeley $97,000 $155,500
6 耶鲁大学 Yale University $98,000 $154,300
7 哥伦比亚大学 Columbia University $86,400 $149,200
8 康奈尔大学 - 伊萨卡,纽约 Cornell University - Ithaca, NY $86,500 $148,600
9 卡内基梅隆大学(CMU) Carnegie Mellon University (CMU) $92,200 $148,000
10 杜克大学 Duke University $80,500 $147,000
11 加州大学圣地亚哥分校(UCSD) University of California - San Diego (UCSD) $84,500 $146,700
12 哈佛大学 Harvard University $85,300 $146,500
13 华盛顿大学(UW) - 主校区 University of Washington (UW) - Main Campus $79,600 $146,200
14 麻省理工学院(MIT) Massachusetts Institute of Technology (MIT) $94,100 $145,800
15 布朗大学 Brown University $84,800 $145,500
15 利哈伊大学 Lehigh University $80,700 $145,500
17 加州大学 - 圣巴巴拉分校(UCSB) University of California - Santa Barbara (UCSB) $79,800 $143,000
18 加州大学圣克鲁兹分校(UCSC) University of California - Santa Cruz (UCSC) $77,400 $142,800
19 赖斯大学 Rice University $81,100 $142,200
20 纽约大学(NYU) New York University (NYU) $78,200 $141,000
21 加州大学欧文分校(UCI) University of California - Irvine (UCI) $74,100 $140,900
22 史蒂文斯理工学院 Stevens Institute of Technology $78,800 $140,700
23 加利福尼亚理工州立大学(CalPoly) - 圣路易斯奥比斯波 California Polytechnic State University (CalPoly) - San Luis Obispo $76,600 $139,600
23 圣何塞州立大学(SJSU) San Jose State University (SJSU) $77,000 $139,600
25 弗吉尼亚大学(UVA) - 主校区 University of Virginia (UVA) - Main Campus $78,000 $139,500
26 加州大学洛杉矶分校(UCLA) University of California - Los Angeles (UCLA) $80,600 $139,400
27 塔夫茨大学 Tufts University $79,700 $138,800
28 波士顿学院 Boston College $75,600 $138,700
29 凯斯西储大学 Case Western Reserve University $70,300 $138,600
30 加州大学戴维斯分校 University of California - Davis (UC Davis) $85,100 $138,300
31 伍斯特理工学院(WPI) Worcester Polytechnic Institute (WPI) $79,300 $137,400
32 罗格斯大学 - 新不伦瑞克分校 Rutgers University - New Brunswick Campus $69,300 $136,900
33 纽约州立大学溪分校 State University of New York (SUNY) at Stony Brook $70,400 $136,700
34 布兰代斯大学 Brandeis University $75,400 $136,500
35 特拉华大学 University of Delaware $69,200 $136,100
36 伦斯勒理工学院(RPI) Rensselaer Polytechnic Institute (RPI) $79,000 $135,800
36 弗吉尼亚理工大学 Virginia Polytechnic Institute and State University (Virginia Tech) $77,300 $135,800
38 佐治亚理工学院 Georgia Institute of Technology $77,700 $135,100
39 圣克拉拉大学 Santa Clara University $75,400 $134,900
40 科罗拉多大学 - 博尔德分校(UCB) University of Colorado - Boulder (UCB) $70,200 $134,000
41 威廉和玛丽学院 The College of William and Mary $75,100 $133,900
42 美国军事学院(USMA)在西点军校 United States Military Academy (USMA) at West Point $73,700 $133,700
43 波士顿大学 Boston University $73,800 $133,600
43 巴克内尔大学 Bucknell University $73,200 $133,600
45 布鲁克林学院 Brooklyn College $67,500 $133,500
46 圣三一学院 Trinity College $73,200 $133,400
46 西华盛顿大学 Western Washington University $73,500 $133,400
48 伊利诺伊大学香槟分校(UIUC) University of Illinois at Urbana-Champaign (UIUC) $81,600 $133,300
49 CUNY - 亨特学院 CUNY - Hunter College $69,400 $133,100
50 华盛顿大学圣路易斯分校 Washington University in St. Louis $77,500 $132,100
51 旧金山州立大学(SFSU) San Francisco State University (SFSU) $69,800 $131,700
52 西北大学 Northwestern University $73,900 $130,900
53 詹姆斯·麦迪逊大学(JMU) James Madison University (JMU) $72,300 $130,600
54 圣母大学 University of Notre Dame $74,500 $129,900
55 马萨诸塞大学阿默斯特校区 University of Massachusetts (UMass) - Amherst Campus $74,600 $129,400
56 加州州立大学 - 东湾分校(CSUEB) California State University - East Bay (CSUEB) $71,300 $129,100
56 新墨西哥采矿与科技研究所 New Mexico Institute of Mining and Technology (New Mexico Tech) $71,400 $129,100
58 马里兰大学 - 学院公园 University of Maryland - College Park $75,300 $128,900
59 伊利诺伊理工大学(IIT) Illinois Institute of Technology (IIT) $70,000 $128,600
59 南加州大学(USC) University of Southern California (USC) $78,400 $128,600
61 圣地亚哥州立大学(SDSU) - 主校区 San Diego State University (SDSU) - Main Campus $64,800 $128,400
62 洛约拉马利蒙特大学 Loyola Marymount University $70,100 $128,300
63 福德汉姆大学 Fordham University $63,500 $128,100
64 杨百翰大学(杨百翰大学) Brigham Young University (BYU) $68,900 $127,500
64 罗德岛大学(URI) University of Rhode Island (URI) $68,100 $127,500
66 纽约州立大学宾汉姆顿分校 SUNY - Binghamton University $67,900 $127,400
67 北卡罗来纳大学教堂山分校(UNC) University of North Carolina at Chapel Hill (UNC) $72,800 $127,100
68 加州州立大学 - 北岭(CSUN) California State University - Northridge (CSUN) $62,400 $127,000
69 加州州立理工大学 - 波莫纳 California State Polytechnic University - Pomona $63,100 $126,900
70 马里兰大学,巴尔的摩县(UMBC) University of Maryland, Baltimore County (UMBC) $65,000 $126,800
71 克拉克森大学 - 波茨坦,纽约 Clarkson University - Potsdam, NY $70,000 $126,400
71 范德比尔特大学 Vanderbilt University $70,900 $126,400
73 加州州立大学 - 萨克拉门托(CSUS) California State University - Sacramento (CSUS) $71,000 $126,000
74 宾利大学 Bentley University $71,200 $125,900
75 迈阿密大学 - 牛津,俄亥俄州 Miami University - Oxford, OH $64,500 $125,600
75 加州大学河滨分校(UCR) University of California - Riverside (UCR) $67,500 $125,600
77 加州州立大学奇科分校 California State University - Chico $67,300 $125,400
78 新泽西理工学院(NJIT) New Jersey Institute of Technology (NJIT) $63,700 $125,200
79 曼哈顿学院 Manhattan College $67,200 $125,100
79 德克萨斯大学(UT) - 奥斯汀分校 University of Texas (UT) - Austin $74,900 $125,100
81 北卡罗来纳州立大学(NCSU) North Carolina State University (NCSU) $68,300 $124,900
82 乔治梅森大学 George Mason University $66,100 $124,800
83 明尼苏达大学 - 双子城市 University of Minnesota - Twin Cities $69,200 $124,600
84 玛丽华盛顿大学 University of Mary Washington $70,100 $124,400
85 印第安那大学(IU) - 布卢明顿 Indiana University (IU) - Bloomington $62,400 $123,900
85 洛约拉大学 - 巴尔的摩,MD Loyola University - Baltimore, MD $64,900 $123,900
85 普吉特海湾大学 University of Puget Sound $68,700 $123,900
88 密歇根大学安娜堡分校 University of Michigan - Ann Arbor $74,200 $123,600
89 德克萨斯大学达拉斯分校 University of Texas at Dallas $67,200 $123,400
90 索诺玛州立大学 Sonoma State University $68,600 $123,100
91 芝加哥伊利诺伊大学 University of Illinois at Chicago $67,400 $123,000
92 纽约市立大学皇后学院 CUNY - Queens College $63,900 $122,700
93 密歇根州立大学(MSU) Michigan State University (MSU) $66,000 $122,600
94 蒙大拿州立大学 - 主校区 Montana State University - Main Campus $64,400 $122,300
94 犹他大学 University of Utah $65,600 $122,300
96 密苏里科技大学(S&T) Missouri University of Science and Technology (S&T) $64,700 $122,000
96 罗斯 - 胡尔曼理工学院(RHIT) Rose-Hulman Institute of Technology (RHIT) $76,100 $122,000
98 西顿霍尔大学 - 南奥兰治,新泽西州 Seton Hall University - South Orange, NJ $66,500 $121,900
99 德州基督教大学(TCU) Texas Christian University (TCU) $67,600 $121,800
100 华盛顿州立大学(WSU) Washington State University (WSU) $66,500 $121,700
101 北达科他州立大学(NDSU) North Dakota State University (NDSU) $60,900 $121,600
102 伍斯特州立学院 Worcester State College $62,600 $121,500
103 北伊利诺伊大学(NIU) Northern Illinois University (NIU) $62,200 $121,000
104 西雅图太平洋大学(SPU) Seattle Pacific University (SPU) $68,800 $120,900
105 德州农工大学 - 主校区 Texas A&M University - Main Campus $65,300 $120,800
105 温特沃斯理工学院 Wentworth Institute of Technology $67,600 $120,800
107 新泽西州拉马波学院 Ramapo College of New Jersey $61,200 $120,700
107 马萨诸塞大学 波士顿校区 University of Massachusetts (UMass) - Boston Campus $61,800 $120,700
109 纽约州立大学 - 奥尔巴尼 SUNY - Albany $58,000 $120,600
110 东北大学 Northeastern University $72,100 $120,500
110 威斯康星大学(UWEC) - 欧克莱尔 University of Wisconsin (UWEC) - Eau Claire $63,600 $120,500
112 罗文大学 Rowan University $62,400 $120,400
113 马萨诸塞大学(UMass) - 洛厄尔校区 University of Massachusetts (UMass) - Lowell Campus $61,900 $120,300
114 太平洋路德大学 Pacific Lutheran University $66,100 $120,000
115 三一大学 Trinity University $66,300 $119,900
116 斯克兰顿大学 University of Scranton $57,400 $119,800
116 西切斯特大学 West Chester University $62,100 $119,800
118 佛罗里达大学(UF) University of Florida (UF) $65,300 $119,500
119 德雷克塞尔大学 Drexel University $65,200 $119,300
120 宾夕法尼亚州立大学 主校区 Pennsylvania State University (Penn State) - Main Campus $65,000 $119,200
121 旧金山大学(USF) University of San Francisco (USF) $68,700 $119,100
122 加利福尼亚州立大学 - 富勒顿(CSUF) California State University - Fullerton (CSUF) $58,000 $118,900
122 堪萨斯州立大学( Kansas State University (KSU) $64,700 $118,900
124 俄勒冈州立大学主校区 Oregon State University (OSU) - Main Campus $68,800 $118,800
125 拉马尔大学 Lamar University $60,700 $118,300
126 圣托马斯大学 - 圣保罗,明尼苏达州 University of St. Thomas - St Paul, MN $63,400 $118,200
126 威斯敏斯特学院 - 盐湖城,UT Westminster College - Salt Lake City, UT $61,600 $118,200
128 格鲁吉亚大学(UGA) University of Georgia (UGA) $69,100 $118,000
128 新罕布什尔大学(UNH) - 主校区 University of New Hampshire (UNH) - Main Campus $64,700 $118,000
130 阿拉巴马大学主校区 University of Alabama - Main Campus $63,300 $117,900
130 路易斯安那大学拉斐特分校(UL) University of Louisiana (UL) at Lafayette $59,300 $117,900
132 圣约翰大学 - 纽约州皇后区 St. John's University - Queens, NY $60,400 $117,800
133 德州理工大学 Texas Tech University $64,900 $117,600
134 威廉帕特森大学 William Paterson University $64,000 $117,500
135 亚利桑那州立大学(ASU) Arizona State University (ASU) $65,900 $117,400
136 南卫理公会大学(SMU) Southern Methodist University (SMU) $66,900 $117,300
136 马萨诸塞大学(UMass) - 达特茅斯校区 University of Massachusetts (UMass) - Dartmouth Campus $60,400 $117,300
138 爱荷华州立大学 Iowa State University $66,000 $117,200
138 威斯康星大学(UW) - 麦迪逊分校 University of Wisconsin (UW) - Madison $70,200 $117,200
140 美国大学 - 华盛顿特区 American University - Washington D.C. $62,100 $117,100
141 蒙特克莱尔州立大学 Montclair State University $60,500 $117,000
142 科比大学 Bryant University $63,100 $116,900
142 锡耶纳学院 Siena College $63,300 $116,900
144 加州州立大学长滩分校(CSULB) California State University - Long Beach (CSULB) $64,500 $116,800
144 维拉诺瓦大学 Villanova University $66,500 $116,800
146 科罗拉多州立大学(CSU) Colorado State University (CSU) $65,300 $116,500
147 佩斯大学 - 纽约州纽约市 Pace University - New York, NY $58,900 $116,400
147 康涅狄格大学(UConn) - 主校区 University of Connecticut (UConn) - Main Campus $65,500 $116,400
149 布拉德利大学 Bradley University $60,200 $116,300
149 弗雷明汉州立学院 Framingham State College $58,700 $116,300
151 密歇根理工大学 Michigan Technological University $60,600 $116,200
152 长岛大学 - CW Post Campus Long Island University - C W Post Campus $61,100 $115,900
153 洪堡州立大学 Humboldt State University $61,800 $115,800
154 德雷克大学 Drake University $59,900 $115,700
154 纽约理工学院(纽约理工学院) New York Institute of Technology (NYIT) $61,700 $115,700
154 罗彻斯特理工学院(RIT) Rochester Institute of Technology (RIT) $64,500 $115,700
154 爱荷华大学(UI) University of Iowa (UI) $63,800 $115,700
158 纽约州立大学法罗分校 State University of New York (SUNY) at Buffalo $60,800 $115,500
158 堪萨斯大学 University of Kansas $62,500 $115,500
160 塔尔萨大学 University of Tulsa $64,800 $115,400
161 太平洋大学 University of the Pacific $62,900 $115,300
162 锡拉丘兹大学 Syracuse University $63,300 $115,200
163 密苏里大学哥伦比亚分校 University of Missouri - Columbia $63,500 $115,100
164 欧道明大学 Old Dominion University $57,200 $115,000
164 北佛罗里达大学(UNF) University of North Florida (UNF) $56,300 $115,000
166 俄亥俄州立大学(OSU) - 主校区 Ohio State University (OSU) - Main Campus $62,400 $114,900
166 休斯顿大学(UH) University of Houston (UH) $63,100 $114,900
168 圣克劳德州立大学 St. Cloud State University $61,400 $114,800
168 马里兰大学学院(UMUC) University of Maryland University College (UMUC) $62,600 $114,800
170 辛辛那提大学(UC) University of Cincinnati (UC) $58,100 $114,700
171 坎贝尔大学 Campbell University $57,900 $114,600
171 北亚利桑那大学(NAU) Northern Arizona University (NAU) $59,300 $114,600
171 泽维尔大学 Xavier University $59,100 $114,600
174 贝勒大学 Baylor University $66,800 $114,500
175 加州州立大学弗雷斯诺分校 California State University - Fresno (Fresno State) $59,000 $114,300
175 德保罗大学 DePaul University $62,500 $114,300
175 德克萨斯大学阿灵顿分校(UTA) University of Texas at Arlington (UTA) $61,300 $114,300
178 雷德兰兹大学 University of Redlands $62,100 $114,100
179 夏威夷大学在马诺亚 University of Hawaii at Manoa $58,900 $113,900
180 北卡罗来纳州A&T州立大学 North Carolina A&T State University $64,300 $113,800
180 波特兰州立大学(PSU) Portland State University (PSU) $63,900 $113,800
182 北德克萨斯大学(UNT) University of North Texas (UNT) $58,400 $113,700
183 罗格斯大学 - 卡姆登校区 Rutgers University - Camden Campus $58,600 $113,600
183 南达科他州矿业与技术学院 South Dakota School of Mines & Technology $65,700 $113,600
183 亚利桑那大学 University of Arizona $66,500 $113,600
186 纽约城市学院(CCNY) City College of New York (CCNY) $63,400 $113,500
186 麦肯德里大学 McKendree University $60,700 $113,500
186 佛蒙特大学(UVM) University of Vermont (UVM) $59,000 $113,500
189 克莱姆森大学 Clemson University $64,200 $113,400
189 内布拉斯加大学奥马哈分校 University of Nebraska at Omaha $61,900 $113,400
191 普渡大学 - 主校区 Purdue University - Main Campus $64,000 $113,300
192 怀俄明大学(UW) University of Wyoming (UW) $61,500 $113,200
193 洛克黑文大学 Lock Haven University $59,000 $113,100
194 俄克拉何马州立大学(OSU) - 主校区 Oklahoma State University (OSU) - Main Campus $58,500 $112,900
195 霍夫斯特拉大学 Hofstra University $62,700 $112,800
195 拉萨尔大学 - 宾夕法尼亚州费城 La Salle University - Philadelphia, PA $58,500 $112,800
195 北肯塔基大学(NKU) Northern Kentucky University (NKU) $54,800 $112,800
195 纽约州立大学 - 波茨坦分校 SUNY - College at Potsdam $62,600 $112,800
195 纽约州斯克内克塔迪 Union College - Schenectady, NY $61,300 $112,800
200 路易斯安那州立大学(LSU) Louisiana State University (LSU) $60,400 $112,700
200 马里斯特学院 Marist College $63,700 $112,700
200 马凯特大学 Marquette University $63,200 $112,700
200 德州农工大学 - 商务校区 Texas A&M University - Commerce Campus $56,800 $112,700
200 北卡罗来纳州威尔明顿大学 University of North Carolina at Wilmington (UNCW) $59,800 $112,700
200 西弗吉尼亚大学(WVU) - 主校区 West Virginia University (WVU) - Main Campus $62,300 $112,700
 
后退
顶部