本文目录一览:
- 1、过去五年,中国互联网创业有什么变化
- 2、程序员为什么要用Linux环境编程,用windows不可以吗
- 3、请问自学编程,怎么才能做到让自己成功学习顺利,并且一个明确的计划或者方向(包含各个阶段的进级)
- 4、最难的开发语言
过去五年,中国互联网创业有什么变化
过去的五年,我们每天在互联网上花的时间越来越多,手机变成了个人信息中心,软件正在吞噬整个世界。作为一家创业公司,课程格子团队就像沧海中的一艘小船。每天低头干活,偶尔抬头看远方的时候也会惊叹于这几年的变化。但感受最真切的更多是来自身边创业者的行为,与创业者心中的变迁。
信息不对称情况减少,而更趋于透明
当我四年前从硅谷来到北京时,硅谷新闻一般会迟滞一周或更久才能到达国内。如果你是个Hacker News或Tech Crunch的读者,当时可以比其他人先知道很多东西。如今,世界各地的科技新闻第一时间就会出现在各大中国科技媒体上。
除了产品新闻外,最新的投资理念,最新的创业理论,都会第一时间到达中国,然后在朋友圈里扩散。前段时间我听说了一个在美国App Store上线不到一周的社交App。这个App是一个硅谷的朋友投资后第一时间告诉我的,并且在国内无法访问。所以我以为别人不会知道。结果下载后导入通信录时,发现已经有12个北京好友在用了(当然这些人个个都是产品经理和投资人)。
这5年来,信息不对等的现象已大幅度消失。对于很多创业者来说,这也导致了一些心态上的改变。当“所有的事情所有的人都知道”时,大家会花更少的时间寻找秘密与先机,用更多时间把事情做好,靠执行力与团队来拉开距离。
不讲故事,数据更重要
这几年来创投圈对数据的运用能力提高了很多个级别。几年前,大多数公司与投资人都被一些所谓的“虚荣数据”而误导。很多人认为活跃用户或注册量是唯一有意义的数据标准。
仅仅2-3年前,不少公司只靠用钱提升下载就可以画出一个完美“J”曲线,然后用这条曲线去融更多钱,然后去画更高的线。但这类公司里面很多因为长期不关注留存率和核心增长引擎,后来也都遇到了困难。他们的投资人也在失望中学到了很多教训。现在,越来越多公司与投资机构都有自己的分析框架,小部分已经有全职的data scientists(数据科学家)。VC也变得越来越聪明,很少会只看虚荣数据就写支票的。
今天想得到资本的认可,除了要有很好的新增与渠道能力外,还需要一个真正可维持、自然增长引擎。过去很长一度时间,我需要为了融资和PR工作去关注一套虚荣数据,然后转过头来在团队内推动另一套核心增长指标。这是一件很累的事情。让我很欣慰的是,随着行业的变迁,今天我已不需要讲两个故事了。
用心做团队:更注重文化与效率
当我们刚开始做《课程格子》时,考虑到效率与文化的原因选用了一个比较偏门的语言(Ruby)。当时很多人都建议我们选择更主流的语言,否则“肯定招聘不到人”。但我们认为除了效率高之外,偏门语言的最大好处是一个自然的过滤器—— 很多人只为了找工作才学编程,只有真正对编程热爱的hacker才会去碰这些偏门语言。现在在很多一流创业团队里,Ruby和Python,甚至更小众的Golang都已不算出奇。这是一种效率和文化的变迁。
除了语言外,我们几年前在用的一些流程,比如非实时Code Review、OKR和Lean Startup Methodology也都越来越常见。我记得三年前我们试着做Hackathon(黑客马拉松)时,没有任何人愿意参加。但现在很多公司都有自己的Hackathon,并且在全国各地还出现一些职业的Hackathon组织者。几个月前,我跟一个土豪朋友讲到我们在用OKR管理系统时,他说如果我帮他的团队培训OKR,他愿意出一万元一小时的顾问费(我后来因为没时间,就免费把我们内部培训OKR的PPT发给了他)。
这几年来,更多创业者开始用心去把文化和流程做好。
垂直产业:轻应用,重运营
2012年刚做《课程格子》,有些投资人不看好。其中一个人的反馈是:“中国互联网除了游戏和电商都赚不到钱,剩下的东西只能打广告,ARPU值太低了。”但今天因为精准推荐的可能性,广告都变成了用户想要的服务。移动垂直入口也变成了最热门的领域之一。
在移动互联网时代,用户数量和使用时间与场景都比之前大得多。互联网时代也许更多是个流量与面积的游戏。但移动互联网让使用场景更细小,需求更个性化。所以这几年成功的垂直类社区越来越多。很多App表面简单,但后端却有强大的云端与运营支持。这些可以聚集同类人群的入口应用也可以做到非常精准的推荐与商业化。对于巨头来说,抄袭这类应用已经没有投资或并购划算。
更优良的创业与投资环境
我刚回国时,见过不止一个团队刚起步就被某个“天使”拿走了51%以上股份的Case。除了个别像创新工场的李开复和真格基金的徐小平老师那样的投资人外,我们都不敢接触不认识的早期投资者。现在很多顶级VC都更愿意做早期。之前FA可能只关注晚期,但现在Series A甚至早期都有FA服务。资本市场这五年变得越来越透明,越来越公平。创业者今天不用花太大力气就可以找到公平的“市场价”。
除了上文提到的以外,成功的故事已不像之前那么罕见。五年前,大部分创业者都认为在中国创业除了上市就是死路一条。我之前在一次采访也说过,中国创业就是“1个Winner加99个Loser”的游戏。但随着大大小小的并购与套现案例的出现,创业者们也变得越来越乐观。
这几年来,市场变得更大,使研发成本更低、融资更公平、套现更容易。越来越多有才华的人愿意放弃自己在大公司的薪水出来创业,这些都是好事。但从另一个角度来说,创业公司越来越多,竞争越来越激烈,成功门槛也越来越高。无论如何,有更多的人用更低的成本去试图解决用户问题总是好的。吞噬整个世界的可以说是软件,也可以说是软件背后的创业者。创业者心中的变迁是可以改善未来的。
程序员为什么要用Linux环境编程,用windows不可以吗
linux和windows是两个不同的操作系统,不同的操作系统,编译的环境不一样,所以知识不一样,linux因为是开源的,就是免费的,所以有些公司用linux,这样可以节约成本,当然,这知识linux的优点之一。就好比,你选择用谷歌浏览器上网和选择用IE浏览器上网都是可以的,但是这两个浏览器有不同的优点! 所以应用的人群就不一样
请问自学编程,怎么才能做到让自己成功学习顺利,并且一个明确的计划或者方向(包含各个阶段的进级)
如果能重学一次编程,会怎么规划自己的学习路径?
大部分人重新回顾自己的学习编程的经历,往往会发现自己走了很多弯路,踩了很多坑。或许是一本久负盛名的书,花了很多精力看完之后却发现名不符实;或许是追求一些时髦的新技术,却发现竹篮打水,镜花水月;或许是听信了一些一面之词,因傲慢和偏见而固步自封;或许是对某些看上去艰深晦涩的领域心存畏惧,导致无法理解很多问题的本质……
所以本期话题的主题为如果能重回初学编程的时候,会怎么规划自己的学习路径,希望大家分享自己的故事。
为了避免大家出于个人的认同而不是对于内容本身的认同来点赞,所以从本期开始,所有参加话题的参与人的身份将会匿名,直到话题结束后才公开显示ID。请大家也遵守该项规则,不要猜测回复者的身份或是主动暴露自己的身份。
大学的时候,军训结束后开始正式上课了。终于要学编程了,好激动!我也要像传说中的黑客,噼里啪啦敲一顿键盘,世界便尽在掌控之中……上课的前一天,领到了崭新的编程教材,我兴奋地睡不着觉,熬夜用手机的补光灯照着看……
命运给我开了个玩笑,这本书的作者叫谭浩强,据说,这书里面每一页都有错误。等我发现的时候,我只好重新学了一次C语言……因为我对于C语言的理解几乎都是错误的……
顺便一提,我重学选用的书是:C语言程序设计:现代方法。
经过C语言的教训,我发现看一本烂书不如不看。这时来到了大二,开始学习Java了。这次我再也不信国内的那些大学教材了,豆瓣上搜了下,发现评分最高的是Java编程思想,评论都说好。果断买买买,奉为圭臬,每日研读。
这次我的Java确实学的不错了,期末Java大作业的时候,大部分人还在懵逼的时候我脑子里面已经知道该怎么实现了。最后大家发现我很靠谱,于是整个小组把写代码的任务都交给我了(大作业除了写代码还有写文档之类的杂活),我也不负众望,一个通宵搞定,感觉自己强无敌。
然而等我到了工作中的时候发现了两个问题:
第一,Java编程思想成书于2006年,主要讲的还是Java SE 6,然而等我工作的时候,Java SE 8已经推出,并以疾风骤雨之势成为了大部分的公司线上环境。而Java SE 8的引入的诸多新特性以及SE 6和7里面的废弃不用的类和方法,也需要花时间重新学习和整理。语法的特性还好说,在这个技术和思想日新月异的年代,一本十年前的语言入门书,可能里面潜藏着很多初学者不容易发现的过时的思想,这才是真正致命的。
第二,Java编程思想只是帮你入Java SE的门,离工业实战开发还有很长的一段距离。公司中版本控制用的是GIT,包管理用的是Maven,类的命名原则,代码重构,以及流行的Java EE和Spring框架等等知识都没有提及。我毕业的时候根本不知道这些,导致了我找工作的时候吃了很多亏。这些东西只好在工作中一点一点重新学起,当然,还包括重新学习Java SE 8……
实际上,Java编程思想已经过时了,虽然豆瓣上评分一片大好。这里我推荐的是最新版的Java核心技术。
另外我发现,Amazon美国上搜Java排名第一的是一本2014年出版的书(基于 Java SE 8),然而国内的Amazon搜索Java,排名第一的仍然是Java编程思想。可见国内仍然很多人在Java SE 6上浪费时间……
我现在选书的几条原则:
大家的评论,以国外的书评网站为主,评价不好的千万别看
讲的是否技术已经过时,优先选择最新出版的技术书
不要买中文书,除非有特别的理由(国内优质原创技术书,不包括翻译书)
坑2 - 提问和交流
学习和开发总是会遇到问题,遇到问题总是需要请教别人,上哪去请教呢?
单独请教身边的高手:可高手一般懒得理你,如果是查Bug或者非常细节的问题,更是没高手愿意理你。基本上高手只会回答观点性的问题
Q群:大部分都在吹水聊天,提问题基本上没人理,并且Q群里面贴代码的体验很差
CSDN:这下有人理你了,可很多人回答问题都是很不负责任的,并且提问需要积分,然而获取积分又非常麻烦
SegmentFault:比CSDN的体验好很多,提问也不需要积分,国内比较专业技术问答网站
国内差不多就这些方式了,直到后来我发现了StackOverflow。不好意思,上面都是垃圾。然而StackOverflow是用英文交流的,好多编程术语都不知道,怎么玩?后来,我发现问题的本质在于,看的技术书是中文的。
因为看的技术书是中文的,所以只知道这些技术的中文说法,只能和中国人交流,然而编程的世界的语言却是英文。第一,大部分项目的文档和介绍都是用英文写的。第二,GitHub上交流用的也是英文。第三,语言和协议的标准也都是用英文写的……
所以,为了和世界接轨,我开始把我学的东西大部分重新看了一遍英文版的书,不为别的,就为积累技术术语,当然也顺便复习一下。所以后来我选书,基本都是在英文书网站里面挑,很少再看中文书了,避免学习术语的成本。况且中文翻译书,翻译质量参差不齐,指不准就看了一本瞎翻译的书,误入歧途。
那么我现在遇到:
有明确答案的知识性问题(比如程序报错,有小Bug之类的),去StackOverflow问。如果还没有得到解决,考虑:
这个问题是否可以通过查阅相关文档解决?
这个问题是否可以通过查阅相关语言和协议标准解决?
这个问题是否可以通过在邮件组里面提问或者项目讨论区(GitHub Issue)里面提问解决?
这个问题是否可以通过自行阅读代码解决?
绝大部分知识性问题,都可以通过上述方法解决,如果这还解决不了,可见你在使用一个没有开源,没有友好的社区氛围,没有什么人在使用的过气技术,应该思考下你用的这个技术是不是该进博物馆了?
没有明确答案的观点性问题(比如某技术的优势或者未来发展趋势之类的问题),可以考虑:
StackExchange的子站点programmers里面提问
Reddit的Programming区里面发帖
看该技术领域里面明星人物的博客或者书籍
请教身边的技术大牛
关注各种技术会议的视频和讲稿
自己思考
观点性质的问题,本没有标准答案,当然会比知识性的问题更难获取答案,可是这些问题,却比知识性问题更加重要。知识性的问题,只有对或者错两个结果,你违背了知识,你会立即得到错误。而观点性的问题,就比如选书或者如何交流,如果没有自己的一套方法或者错误的方法,就会原地踏步乃至于南辕北辙。
坑3 - 赶时髦
搬业务代码的过程中,学了很多库的用法,比如说HTTP相关的用过Java的HTTPClient和Python的requests库,写并发会用并发的库,写TCP会用Socket相关的库,做Web用过NodeJS和PHP等……发现很多框架也不难学习,于是折腾了更多的新框架和新语言(Go、Rust)……然而一路折腾下来感觉就是不生产代码,只是做了一把框架的搬运工,搭个架子然后吭哧吭哧写业务代码。最后发现追求新技术有两个问题:
第一,用户并不会在乎你用的什么技术,只要他们用着爽就行了。而这往往会意味着,赶时髦的新技术会因为不好招人以及担心有坑而导致不会被公司采用。
第二,搬运框架并不会真正提升你的技术,除非你能理解整个框架的实现,到源码级别的掌控。
所以赶时髦并不会让你升职加薪,也不会真正提升你自己的技术,那么到底该学什么呢?
学习路径
有篇很有名的文章,Teach Yourself Programming in Ten Years,认为编程专家需要10年的学习时间。并且给出了一些学习目标:
学习十来门语言
参与(有技术含量的)项目开发
维护(有技术含量的)项目
对计算机底层的了解
参与制定一门语言的标准
等等。这些学习目标我也认可,但是比较抽象。
有一份比较实际一点的文章,程序员练级攻略(这篇文章有个坑,它推荐了W3School,实际上W3School是一个过时的有很多坑的网站,我比较推荐movethewebforward)。
这里我谈一下我自己的学习规划:
学几门流行的编程语言,当然需要找一本靠谱的英文书来学。学习的目标在于熟练使用大部分语法特性以及相关的库函数,也包括引入第三方包以及调试优化等内容。学了之后也可以适当看下中文的技术书,方便中文技术交流。
学习编程相关的开发工具(IDE,版本控制,文本编辑等),提高自己的开发效率。
成为一名熟练的框架搬运工,比如搬一下Linux+Nginx+Mysql+PHP搭网站,ELK搭一个日志收集查询展示系统之类的。这些技能只需要阅读下官方文档的就行了。
阅读语言和协议的标准,参与一两门技术的发展和讨论
学习操作系统和编译原理,了解语言和协议设计的背后的思路,了解计算机的底层到应用层之间的实现,包括网络并发等领域
目前我只做到第三步……我目前正在看一些语言和协议的标准,以及学习操作系统和编译原理等……
2016-09-12 00:43:45 6条评论
isaacpei, ifelse程序猿
首先说明我讨厌固定的方法
每个人都是不同的,各位大牛也应该有自己的方法,比如教教学生啊,睡前读两章啊,打打炉石啊。。。 所以我所说的,可能有用,也可能是扯淡(当然我就是爱扯淡)
学习路径我认为是一个迭代加深的过程
学习-使用-学习更深入-使用更深入
以下使用入门举例
从入门来讲,语言我还是觉得两个比较好C/Python 。
对于入门书籍的选择,我觉得无所谓,很多人喜欢比较谁的书写的好谁的写的不好,但是不同人有不同的偏好,我觉得意义不大。你能找到的书基本都不会错太多,就算是谭浩强也有无数人看着他的书学会了不少再回来批判他,当然现在他的书已经不多见了。事实上大部分学校的教科书都能达到基本的要求。
入门很简单,C语言看到指针前面,这就够了,我看的是c bible,就是C作者写的那本。
Py也很简单,更加接近自然语言,我是看的learn python the hard way。
甚至某种语言官方文档也是很好的入门资料。
想了想即使到现在这两本也足够入门,简单易懂。
我不理解有人喜欢推荐那种又厚又重,未定义行为都讲一遍的书,这种东西既没啥重要性又不适合入门,看起来真是痛苦。
至于书是中文还是英文,我也觉得无所谓,但是最终要看一遍英文。如果你先看的中文,之后一遍英文的也是十分简单的事情,顶多几个小时。
学习完之后就到了使用阶段
随便选个oj刷10道水题。
课后习题做了
迭代这个过程
再往后我就不讲了,因为我水平就到这里了~
使用工具
书是工具,但是我觉得有点过时(因为我懒得看)。
我觉得现在更好的工具是网络。
个人喜欢直接搜遇到的问题,blog就是很好的地方,stackoverflow也是。
使用工具最重要的问题是选择适合自己的,比如blog搜出来靠前的可能讲的并不是很适合自己的阅读习惯。
正确使用工具是及其重要的能力。
实用主义
我不是理论派,我喜欢讲学以致用,如果没啥用但是好玩也行,去解决问题就是从学到用的过程。
个人认为大部分程序猿都是在这个阶段学到大部分东西的。
比如:
题目tle了,那么可能你会因此学了某种高效算法。
需要做大作业了,那么可能你因此仿写了2048,学会了js里面的动画。
踩坑再爬出来就是提升
总有人喜欢给后面人说自己遇到了多少坑以后别碰。但是我觉得对于学习,踩坑是货真价实的提升。
卧槽我懒得继续写了。。。
学习技术还是上个大学把。。。
最后一句话,证明你能力的最重要的地方是:
你解决了这个问题
你把这个东西用傻逼都懂的方式解释清楚了
天天扯图灵机/P=NP的要么是研究理论的要么是装逼的。
技术的发展是为了简单不是为了复杂。
卧槽我写了这么长?
2016-09-13 12:08:56 0条评论
mickeyandkaka,
我认为字数越多,赞数越高,这样的现象是不好的。
战略性的方向:
读个好点的大学的计算机专业
原因不在于学校,在于你接触了什么样的人,什么样的环境,你就会变成什么样的人。这个甚至比你各种努力还重要。
大学逼自己多写代码多刷题。为进入大公司做准备。
只有规模足够大的工资才有平台,才有可能发挥的机会。代码不是为了自我满足,而是要真正服务于千万用户的。除非你眼光毒,不然你赌不起你的时间。
战术性的意见:
兴趣是最好的老师
大学专业课别挂,有点印象。以后好随时捡起来
了解简单的英语
独立思考,解决问题
若都能做到,几无敌手。
我认为对于不同的时代,介绍不同的术意义不大,c++精通的人,难道不能几周学会java、Python、Golang么;大学高绩点的人,相信对于最新的技术也能有所认知并学习精髓。编程是用于工作,工程中迟早会遇到你完全不会的问题,这个时候能帮你的只有解决问题的能力。
随便聊下,不爽你打我呀。
最难的开发语言
第十名、R语言
R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。
提名词
R语言作者,George Ross Ihaka:在奥克兰大学统计系任副教授,是R语言的最初作者。
2
/10
第九名、Python
颁奖词
Python是一种广泛使用的高级编程语言,属于通用型编程语言。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
提名词
Python语言作者,Guido van Rossum:生于荷兰哈勒姆,计算机程序员,为Python程序设计语言的最初设计者及主要架构师。
3
/10
第八名、C语言
颁奖词
C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点。C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。
提名词
C语言作者,Dennis MacAlistair Ritchie:美国计算机科学家。黑客圈子通常称他为“dmr”。他是C语言的创造者、Unix操作系统的关键开发者,对计算机领域产生了深远影响,并与肯·汤普逊同为1983年图灵奖得主。
4
/10
第七名、Go
颁奖词
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。
提名词
Go语言作者,Robert C. Pike:来自加拿大的程序员,曾经加入贝尔实验室,为 UNIX小组的成员。他与肯·汤普逊共同开发了UTF-8。目前为 google的工程师,参与编程语言 Go与Sawzall的研发工作。
5
/10
第六名、JavaScript
颁奖词
JavaScript,通常缩写为JS,是一种高级的,解释执行的编程语言。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。
提名词
JavaScript语言作者,Brendan Eich:美国程序员与企业家,JavaScript主要创造者与架构师,曾任Mozilla公司的首席技术官,并曾短暂担任首席执行官。
6
/10
第五名、Objective-C
颁奖词
Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,将Smalltalk式的消息传递机制加入到ANSI C中。目前主要支持的编译器有GCC和Clang(采用LLVM作为后端)。
提名词
Objective-C作者,Brad Cox:美国计算机科学家。于傅尔曼大学主修化学与数学,于芝加哥大学取得数学生物学博士学位。Objective-C主要作者。
7
/10
第四名、PHP
颁奖词
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。
提名词
PHP语言作者,Rasmus Lerdorf:出生于格陵兰岛凯凯塔苏瓦克,是一个丹麦程序员,他拥有加拿大国籍。他也是编程语言PHP的创始人,其中PHP的头两个版本是由他编写的,后来他也参与PHP后续版本的开发。
8
/10
第三名、Java
颁奖词
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
提名词
Java语言作者,James Gosling:出生于加拿大,软件专家,Java编程语言的共同创始人之一,一般公认他为“Java之父”。
9
/10
第二名、C++
颁奖词
C++是一种使用广泛的计算机程序设计语言。它是一种通用程序设计语言,支持多重编程模式,例如过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计和设计模式等。
提名词
C++语言作者,Bjarne Stroustrup:生于丹麦奥胡斯郡,计算机科学家。他以创造C++编程语言而闻名,被称为“C++之父”。
10
/10
第一名、Visual Basic .NET
颁奖词
Visual Basic .NET(VB.NET)是.NET Framework框架下的一种多重编程范式高级语言。Visual Basic .NET属Basic系语言,其语法特点是以极具亲和力的英文单词为基础标识,以及与自然语言极其相近的逻辑表达,有时候你会觉得写VB.NET代码就好像在写英文句子一样,从这个角度来说,VB.NET似乎是最高级的一门编程语言,当然在Basic系语言中VB.NET也确实是迄今为止最强大的一门编程语言。
提名词
Visual Basic .NET作者,Alan Cooper:交互设计的提倡者。库珀有些时候被叫做 Visual Basic 之父,虽然大多数的工作是由微软的内部开发团队完成的,但是对于Windows可视化设计工具的创意是来源于库珀的。