精华内容
下载资源
问答
  • 我去年参加了武汉的校招,感觉新一代年轻的素质确实都非常好。我昨天就在想,今天应该跟大家分享什么。想了想,先把题目拟出来,把乔布斯的“Stay hungry, Stay foolish”,改成“Stay hungry,...

    在这里插入图片描述

    张一鸣演讲整理:

    为何毕业多年后
    原本水平差不多的同学都拉开了差距?

    大家好!各位都非常年轻,我今天来的时候挺有压力。因为我毕业快11年了,看到你们,真是觉得“长江后浪推前浪”。

    我去年参加了武汉的校招,感觉新一代年轻人的素质确实都非常好。我昨天就在想,今天应该跟大家分享什么。想了想,先把题目拟出来,把乔布斯的“Stay hungry, Stay foolish”,改成“Stay hungry, Stay young”。

    我想跟大家分享一下我自己毕业后的工作经历和体会。另外,我作为面试官,过去10年里,可能面试过小2000个年轻人。有的和我在一家公司,有的去了别家公司,他们发展差别其实非常大。从算法层面上讲,我们把这叫做“正例”和“负例”。我想分享一下:为什么“正例”和“负例”发展差别这么大?

    什么是“Stay hungry, Stay young”?“Stay hungry”,大家都知道,就是好奇心、求知若渴、上进心。但为什么要说“Stay young”?

    我觉得年轻人有很多优点:做事不设条条框框,没有太多自我要维护,经常能打破常规,非常努力、不妥协、不圆滑世故。

    10年过去了,有的年轻人,依然保持着这些很好的特质。我觉得这就算“Stay young”。

    “Stay young”的人基本没有到天花板,一直保持着自我的成长。相反,很多人毕业后提高了技能,但到一个天花板后,就不再成长了。

    在这里插入图片描述
    我先分享我的个人经历
    我是如何在毕业第2年就成了
    管理四五十人团队的主管?

    2005年,我从南开大学毕业,加入了一家公司叫酷讯。我是最早期加入的员工之一,一开始只是一个普通工程师,但在工作第 2 年,我在公司管了四五十个人的团队,负责所有后端技术,同时也负责很多产品相关的工作。

    有人问我:为什么你在第一份工作就成长很快?是不是你在那个公司表现特别突出?

    其实不是。当时公司招聘标准也很高。跟我同期入职的,我记得就有两个清华计算机系的博士。

    那我是不是技术最好?是不是最有经验?我发现都不是。后来我想了想,当时自己有哪些特质。

    1、我工作时,不分哪些是我该做的、哪些不是我该做的。我做完自己的工作后,对于大部分同事的问题,只要我能帮助解决,我都去做。当时,Code Base中大部分代码我都看过了。新人入职时,只要我有时间,我都给他讲解一遍。通过讲解,我自己也能得到成长。

    还有一个特点,工作前两年,我基本上每天都是十二点一点回家,回家以后也编程到挺晚。确实是因为有兴趣,而不是公司有要求。所以我很快从负责一个抽取爬虫的模块,到负责整个后端系统,开始带一个小组,后来带一个小部门,再后来带一个大部门。

    2、我做事从不设边界。当时我负责技术,但遇到产品上有问题,也会积极地参与讨论、想产品的方案。很多人说这个不是我该做的事情。但我想说:你的责任心,你希望把事情做好的动力,会驱动你做更多事情,让你得到很大的锻炼。

    我当时是工程师,但参与产品的经历,对我后来转型做产品有很大帮助。我参与商业的部分,对我现在的工作也有很大帮助。记得在07年底,我跟公司的销售总监一起去见客户。这段经历让我知道:怎样的销售才是好的销售。当我组建头条招人时,这些可供参考的案例,让我在这个领域不会一无所知。

    以上就是我刚毕业时的特点。

    10年观察
    我遇到的优秀的年轻人都有这5大特质!

    后来,我陆续加入到各种创业团队。在这个过程中,我跟很多毕业生共处过,现在还和他们很多人保持联系。跟大家分享一下,我看到的一些好和不好的情况。总结一下,这些优秀年轻人有哪些特质呢?

    第一,有好奇心,能够主动学习新事物、新知识和新技能。今天不太谦虚,我把自己当做正例,然后再说一个负例。我有个前同事,理论基础挺好,但每次都是把自己的工作做完就下班了。他在这家公司呆了一年多,但对网上的新技术、新工具都不去了解。所以他非常依赖别人。当他想要实现一个功能,他就需要有人帮他做后半部分,因为他自己只能做前半部分——如果是有好奇心的人,前端、后端、算法都去掌握、至少有所了解的话,那么很多调试分析,自己一个人就可以做。

    第二,对不确定性保持乐观。比方说头条最开始时,我跟大家讲:我们要做1亿的日启动次数。(当然,现在不止1亿了,我们现在的日启动次数已经差不多5亿。)很多人觉得,你这家小公司怎么可能做得到呢?大公司才能做得好。所以他就不敢努力去尝试。只有乐观的人会相信,会愿意去尝试。其实我加入酷讯时也是这样。那家公司当时想做下一代搜索引擎(最后也没有做成,只做了旅游的垂直搜索)。我不知道其他人怎么想的,我自己觉得很兴奋。我确实没有把握,也不知道怎么做,但当时就去学,就去看所有这些相关东西。我觉得最后也许不一定做成,或者没有完全做到,但这个过程也会很有帮助——只要你对事情的不确定性保持乐观,你会更愿意去尝试。

    第三,不甘于平庸。我们在座各位,在同学中已经非常优秀了。但我想说,其实走向社会后,应该再设定更高的标准。我见到很多大学期间的同学、一起共事的同事中,有很多非常不错的人才,技术、成绩都比我好。但10年过去,很多人没有达到我的预期:我觉得他应该能做得很好,但他却没有做到。

    很多人毕业后,目标设定就不高了。我回顾了一下,发现有同事加入银行IT部门:有的是毕业后就加入,有的是工作一段时间后加入。为什么我把这个跟“不甘于平庸”挂在一起呢?因为他们很多人加入,是为了快点解决北京户口,或者当时有些机构有分房补助,可以购买经济适用房。

    后来我就在想一个问题,如果自己不甘于平庸,希望做得非常好的话,其实不会为这些东西担心:是否有北京户口,是否能买上一套经济适用房?

    如果一个人一毕业,就把目标定在这儿:在北京市五环内买一个小两居、小三居,把精力都花在这上面,那么工作就会受到很大影响。他的行为会发生变化,不愿意冒风险。

    比如我见到以前的朋友,他业余做一些兼职,获取一些收入。那些兼职其实没有什么技术含量,而且对本职工作有影响,既影响他的职业发展,也影响他的精神状态。我问他为什么,他说,哎,快点出钱付个首付。我觉得他看起来是赚了,其实是亏的。

    不甘于平庸很重要。我说不平庸,并不是专门指薪酬要很高或者技术很好,而是你对自己的标准一定要高。也许你前两年变化得慢,但10年后再看,肯定会非常不一样。

    第四,不傲娇,要能延迟满足感。我在这里举个反例:两个我印象比较深刻的年轻人,素质、技术都蛮不错,也都挺有特点。我当时是他们的主管,发现他们在工作中deliver的情况始终不好。他们觉得其他同事比他们做得差,其实不是:他们确实可以算作在当时招的同事里面TOP 20%,但误以为自己是TOP 1%。所以很多基础一点的工作,比如要做一个调试工具,他就不愿意做,或者需要跟同事配合的工作,他就配合得不好。

    本来都是资质非常好的人才,人非常聪明、动手能力也强,但没有控制好自己的傲娇情绪。我觉得这和“不甘于平庸”不矛盾。“不甘于平庸”是你目标要设得很高,“不傲娇”是你对现状要踏实。

    这2000个样本当中,我见到很多我原来觉得很好的,其实没有我想象中的发展好,我原来觉得不好的,其实超出我的预期。这里我也举个例子:

    当时我们有个做产品的同事,也是应届生招进来,当时大家都觉得他不算特别聪明,就让他做一些比较辅助的工作,统计一下数据啊做一下用户反弹啊之类。但现在,他已经是一个十亿美金公司的副总裁。

    后来我想想,他的特点就是肯去做,负责任,从来不推诿,只要他有机会承担的事情,他总尽可能地做好。每次也不算做得特别好,但我们总是给他反馈。他去了那家公司后,从一个用户量不到10万的边缘频道负责起来,把这个频道越做越好。由于这是一个边缘频道,没有配备完整的团队,所以他一个人承担了很多职责,也得到了很多锻炼。

    第五,对重要的事情有判断力。选什么专业、选什么公司、选什么职业、选什么发展路径,自己要有判断力,不要被短期选择而左右。上面一些例子,也都涵盖了这一点。比如当时很多人愿意去外企,不愿意去新兴的公司。06、07年,很多师弟、师妹问我职业选择,我都建议他们去百度,不要去IBM、微软。但实际上,很多人都是出于短期考虑:外企可能名气大、薪酬高一点。

    虽然这个道理,大家都听过很多遍。刚毕业时薪酬差三五千块,真的可以忽略不计。短期薪酬差别并不重要。但实际上,能摆脱这个、能有判断力的人,也不是特别多。

    这些就是我想跟大家分享的。谢谢!

    展开全文
  • 自己一如何去做一个web项目

    万次阅读 多人点赞 2016-12-20 16:23:19
    三思而后行  当你被自己的想法激起心中豪情的时候,一定要按下心情,冷静的思考一下,思考点包括以下几个部分: ... 项目的需求能否清晰描绘,这一点非常重要,因为只有你能细致的把一个项目拆分成一

    三思而后行

      当你被自己的想法激起心中豪情的时候,一定要按下心情,冷静的思考一下,思考点包括以下几个部分:

     

      这个Web项目所需要的知识和能力是否在自己所掌握的范围内,这个是技术前提,如果项目本身技术复杂度过高,那么你在开发的时候所面对的压力就非常大,而且挫败感也很高,项目很容易夭折。

      项目的需求能否清晰描绘,这一点非常重要,因为只有你能细致的把一个项目拆分成一条条需求,你才能对所有的技术实现点有个预估,也才能对项目所需要的时间做个预判。

      项目是否值得做,这个是个预防针,实际上很多时候个人项目都是拍脑袋想出来的,由于刚开始没有想好就一腔热血,一上来就开个项目工程文件开始啪啪啪的写代码,很容易做着做着就没有动力了,最后有一天突然觉得这玩意也没啥意思,于是草草的扔了,虎头蛇尾的情况太常见了。

      技术选型怎么做,是做一个网站还是做一款app或者是多平台的,后端用什么语言来搭建,需要使用什么框架,这些选型需要在心中有底,我建议做项目的时候选用自己最熟悉、生态最丰富的语言和框架,除非你只想练个手,否则不应当用冷门的。

      所以项目未动,思考先行是必须的,通过仔细的思考我们可以判断自己所谓的“灵感”是不是伪灵感,而自己又能否适应开发期的单调枯燥,这些需要慎重对待,不能掉以轻心。

      产品需求清单

      经过仔细的思考之后,依旧觉得项目可行的话,那么就应该进入“产品经理”的角色,作为一个人的项目,产品需求倒未必只能是一个人思考,也可以找朋友等人探讨,征求一下别人的想法之类的。

      产品需求需要确保每一步都能执行,所以理论上越详细越好,在你思索产品的时候,你应该对界面上所需要的具体元素有清晰的认知,而且还对它牵扯到后端的功能如何组织和拆分。

      在产品需求阶段,也是你把项目原型丰富的阶段,这个时候其实至关重要,很多时候你会发现你真正想要的和你原本打算要的已经完全不同了,最开始的打算可能根本行不通,同时你也有可能蹦出新的灵感,这些又会对原有的产品需求做或大或小的更改,说不定还会推翻原有的需求。

      基本上到这个时候,原本的激情已经逐渐平淡,理智重新归位,但对产品未来的期待感还是很强,这时候你需要考虑的情况实际上是非常多的,也是你容易失眠的阶段,所以应当好好调整心态。

      做产品需求的时候,你可能需要几个流程图,依赖图这些对功能的划分,多使用脑图软件来构思自己的产品,也尝试思考流程是否能简化,站在用户的角度下使用是否方便,哪些功能是主要的,哪些是次要的。

      如果觉得文字描绘不清晰的话,你也可以自己做几张原型图出来,注意这不是高保真图,只是让你自己弄明白这个产品的某一页或者某一块,不应当把心力花在细节上。

      总之在这个阶段,应该有大局感,而且也应当仔细打磨自己的想法,如此三番之后要给自己定下个初稿,因为你之后的时间很有可能会蹦出很多个想法,扰乱原有的安排,所以你需要在前期有个原则坚持住,以防心不定而一事无成。

      界面的设计

      Web项目的一个重要部分就是界面,它可能指的是浏览器前端,也可能指的是某个手机平台的UI,我们这个时候需要花些心力在设计方面,包括UI的设计和交互设计。

      由于大部分开发者很难有良好的设计感,如果有设计师朋友的话也可以请他们帮忙,否则的话可以多去一些设计网站(比如dribbble),多收集一些美观大方、符合自己要求的界面,从而形成对自己项目的认识。

      如果有能力做高保真界面的话,那么请一定要做,不要觉得做高保真界面的图片是浪费时间,不要因为你觉得写html/css更省事就直接开敲前端界面了,你在做图的时候所思考的和你敲界面代码所思考的其实并不是一回事,前者会让你更加着重设计感,而后者更偏向于实现。

      在这个期间里需要多观察观察别的网站/应用的界面,找出那些自己喜欢的,然后询问自己哪部分是自己喜欢的,如果放在自己的项目是否可行,能完整表达我们之前的需求元素么?

      很多人在做单独项目的时候,前期花在界面设计上的时间极少,都是脑子有一个大概,然后边写代码边脑补界面样子,写着写着就走了样,最后弄出来的界面是混杂的,看上去很乱。

      我以程序员的角色来分享几条界面设计的建议:

      1、如果自身不是专业设计,就不要采用复杂的界面,那么设计界面的时候请走扁平化,一个web页面/app 页面的颜色请尽量保持两到三个,并维持一个主色调,其他的使用同类色系。

      2、如果是手机app,那么请和平台推荐的设计方向保持一致,比方说如果是iOS app,那么应当参照ios的原生应用来做设计,而如果是Androidapp,那么请使用material design的规则,不要妄图利用相同的设计做不同平台的app,容易变乱。你使用原生的平台设计,就算设计感不强,也不会显得杂乱无章。

      3、Web界面的设计应该有自己的特点,我知道很多做单独web项目的人喜欢用开源的web前端框架,比如bootstrap、amaze UI这些,虽然节省心力,但是做出来的界面大同小异,容易疲劳,浏览器上的界面和手机app不一样,它屏幕更大,可以表现的也更丰富,如果实在要用开源web框架的话,也要尝试换换色系之类的。

      4、心态要好,大多数的时候自己设计的界面,是挺难看的,别因为这事挫败了做项目的积极性,也别想一口气做出来个美轮美奂的UI闪瞎大家的眼,毕竟不是职业的设计师,不要和自己怄气。

      界面实现

      在界面基本定稿的时候,这时候我们可以来正式实现界面了,我们之前技术选型的时候应该考虑到前端需要用到哪些技术,比如说做web界面的时候,是否需要做成one page application,是否需要使用前端库等等。

      web前端现在环境变化非常大,已经由原来的做页面转成应用化了,所以配套的工具也变得多、杂、繁了,选型的时候还是需要注意选自己熟悉的,生态圈好的,在这一点上,框架上有vue、React、angular比较知名,我个人比较喜欢vue,它上手还是蛮快的,如果想做应用式的web产品可以选用。

      android app的客户端如果你以前使用非android studio来编写的话,那么这个新项目就换用android studio吧,它已经足够好用了,在做界面开发的时候,推荐使用那些大热的开源组件,比如说fresco、rxjava、retrofit、gson这些,可以节省大量心力,组织代码的话使用MVP或者MVVM模式也能让新项目变得容易维护,推荐使用,之前我也写过一篇关于MVP应用的文章:Dagger2的应用——MVP+Retrofit+RxJava

      如果你写的是ios app的话,不要在语言上(OC或者Swift)来犹豫,事实上这两门语言都能很好的完成一个app的构建,而且还可以混合编程,同样的,在开发app的时候请大胆使用开源库,比如masonry、reactivecocoa或rxswift,cocoa touch原本的MVC模式也很清晰明了。

      如果自己想实现多平台的Wweb应用,可能会使用React Native这类工具来完成app开发,说实话比起原生语言开发app,它对web开发者来说更友好一些,如果有RN相关经验的可以尽情尝试。

      现在不管web开发还是app开发,都可以把前后端切断,让后端作为数据输出方,不过有时候我们的web项目可能需要对SEO友好,所以可能需要花心力在同构上面,也就是在前端和后端都维护相同的路由和相同的模板渲染,代价也是比较大的,当然也可以像传统开发那样完全由后端render view,具体情况自己考虑。

      后端的接入

      后端开发牵扯非常广,所以我们不太可能是把前端做完了再做后端,一般情况下,做前端和做后端是交叉并行的,这一点其实是在模拟团队合作的情况,只不过身兼多职。

      后端这边我依旧推荐选型的时候选择自己最熟悉的,如果熟悉某款框架的话,那么尽量用框架,后端开发的语言并没有什么限制,可以在下面几种语言里选择:

      传统语言:Java 、C# .Net

      传统脚本语言:PHPPython、ruby

      新兴语言:Node.js、golang

      用来作死的:C/C++

      一般情况下,我推荐脚本语言来开发web应用的后端,前几年ruby on rails框架流行的时候,带来了非常快捷的开发方式,随后其他语言也都相继出现很方便的web框架,其中有大型框架,也有微框架,具体的抉择可以看一下我之前的文章:除夕乱谈web微框架,从koa说起

      一个重点是我们可能要考虑数据库的问题,需要对常见的数据库很熟悉,并且能够合理的抽象出schema,以及合理的建立索引,多表之间如何联合,这些都是和需求紧密相关的,只有深刻理解了自己的需求,才能做好这些事情。

      后端开发的时候建议使用ORM,如果框架自带ORM的话那就用框架自带的,如果不自带可以选用社区开源、生态圈丰富的ORM,需要注意有些ORM本身bug比较多,坑也多,只能多踩踩才知道。

      我们刚开始可能只是简单的增删查改,不过随着加入用户体系、身份验证、权限划分、内容过滤等等需求之后,就可能需要你合理的规划好控制器的代码,我建议大部分情况下做成一条条service,然后做串联调用。

      后端开发要注意网络安全,用户身份的存取,内容数据的插入,文件的上传这些容易出问题的地方都需要格外注意,不要因为自己做的小就图省事,弄个满是安全漏洞的网站,还不如不上线。

      缓存机制其实对于并发高的时候效果很明显,在设计后端的架构时候,也应当考虑到哪些部分可以用缓存代替,我们常用的memcached或者Redis都是缓存利器,非常建议配合使用,不要在意你的网站是个小网站。

      有时候需要考虑定时任务或者异步任务队列,这个时候我们可以选一些好用的工具,比如说用redis、开源MQ或者是专门用来做任务的任务调度器之类的,我之前写过一篇关于任务队列和任务调度器的文章:浅谈任务队列和任务调度
    后端开发注意主次,有的时候增加或者修改一个功能,其实牵扯到不只一块区域,所以尽量保证抽象层次要高一些,代码耦合也要低一些。

      有些页面是用来获取数据的,而有些是用来处理数据的,我们对这些部分要分开出来,也可以采用RESTful这种API 设计的架构,把功能抽象成资源,转而对资源进行增加或者修改。

      简单的总结

      一个人写一个web项目,是很累的,需要你有强大的热爱才能完成它,有些建议可以让你能够顺利的完成独立的web项目:

      1、三思而后行,不理智的项目乘早断了想法。

      2、不要上来就敲代码,做些提前工作,需求和设计。

      3、功能是一步一步来的,不要最开始就弄一大堆,容易打退堂鼓。

      4、用开源框架、库、工具能够节省你的心力,前提是你足够熟练。

      5、不要在写代码的时候就想着优化怎么做,说不定你想的优化其实很渣。

      6、定下来的需求如果要变更,请尽量小,如果要推翻重做需求,说明你最开始就不成熟。

      7、你要相信会有版本迭代,所以有新想法的时候别急,先记下来。

      8、保持爱来抵抗做项目的寂寞和焦躁,碰到坑的时候可以散散心。

      9、一个web项目别拖太久,时间越长越容易腰斩。

      10、心态好点,接收它99%会扑街的事实。

    展开全文
  • 猿学~自己一如何去做一个web项目

    万次阅读 2016-06-22 12:22:54
    三思而后行  当你被自己的想法激起心中豪情的时候,一定要按下心情,冷静的思考一下,思考点包括以下几个部分: ... 项目的需求能否清晰描绘,这一点非常重要,因为只有你能细致的把一个项目拆分成一条条需求,你...

      三思而后行

      当你被自己的想法激起心中豪情的时候,一定要按下心情,冷静的思考一下,思考点包括以下几个部分:

     

      这个Web项目所需要的知识和能力是否在自己所掌握的范围内,这个是技术前提,如果项目本身技术复杂度过高,那么你在开发的时候所面对的压力就非常大,而且挫败感也很高,项目很容易夭折。

      项目的需求能否清晰描绘,这一点非常重要,因为只有你能细致的把一个项目拆分成一条条需求,你才能对所有的技术实现点有个预估,也才能对项目所需要的时间做个预判。

      项目是否值得做,这个是个预防针,实际上很多时候个人项目都是拍脑袋想出来的,由于刚开始没有想好就一腔热血,一上来就开个项目工程文件开始啪啪啪的写代码,很容易做着做着就没有动力了,最后有一天突然觉得这玩意也没啥意思,于是草草的扔了,虎头蛇尾的情况太常见了。

      技术选型怎么做,是做一个网站还是做一款app或者是多平台的,后端用什么语言来搭建,需要使用什么框架,这些选型需要在心中有底,我建议做项目的时候选用自己最熟悉、生态最丰富的语言和框架,除非你只想练个手,否则不应当用冷门的。

      所以项目未动,思考先行是必须的,通过仔细的思考我们可以判断自己所谓的“灵感”是不是伪灵感,而自己又能否适应开发期的单调枯燥,这些需要慎重对待,不能掉以轻心。

      产品需求清单

      经过仔细的思考之后,依旧觉得项目可行的话,那么就应该进入“产品经理”的角色,作为一个人的项目,产品需求倒未必只能是一个人思考,也可以找朋友等人探讨,征求一下别人的想法之类的。

      产品需求需要确保每一步都能执行,所以理论上越详细越好,在你思索产品的时候,你应该对界面上所需要的具体元素有清晰的认知,而且还对它牵扯到后端的功能如何组织和拆分。

      在产品需求阶段,也是你把项目原型丰富的阶段,这个时候其实至关重要,很多时候你会发现你真正想要的和你原本打算要的已经完全不同了,最开始的打算可能根本行不通,同时你也有可能蹦出新的灵感,这些又会对原有的产品需求做或大或小的更改,说不定还会推翻原有的需求。

      基本上到这个时候,原本的激情已经逐渐平淡,理智重新归位,但对产品未来的期待感还是很强,这时候你需要考虑的情况实际上是非常多的,也是你容易失眠的阶段,所以应当好好调整心态。

      做产品需求的时候,你可能需要几个流程图,依赖图这些对功能的划分,多使用脑图软件来构思自己的产品,也尝试思考流程是否能简化,站在用户的角度下使用是否方便,哪些功能是主要的,哪些是次要的。

      如果觉得文字描绘不清晰的话,你也可以自己做几张原型图出来,注意这不是高保真图,只是让你自己弄明白这个产品的某一页或者某一块,不应当把心力花在细节上。

      总之在这个阶段,应该有大局感,而且也应当仔细打磨自己的想法,如此三番之后要给自己定下个初稿,因为你之后的时间很有可能会蹦出很多个想法,扰乱原有的安排,所以你需要在前期有个原则坚持住,以防心不定而一事无成。

      界面的设计

      Web项目的一个重要部分就是界面,它可能指的是浏览器前端,也可能指的是某个手机平台的UI,我们这个时候需要花些心力在设计方面,包括UI的设计和交互设计。

      由于大部分开发者很难有良好的设计感,如果有设计师朋友的话也可以请他们帮忙,否则的话可以多去一些设计网站(比如dribbble),多收集一些美观大方、符合自己要求的界面,从而形成对自己项目的认识。

      如果有能力做高保真界面的话,那么请一定要做,不要觉得做高保真界面的图片是浪费时间,不要因为你觉得写html/css更省事就直接开敲前端界面了,你在做图的时候所思考的和你敲界面代码所思考的其实并不是一回事,前者会让你更加着重设计感,而后者更偏向于实现。

      在这个期间里需要多观察观察别的网站/应用的界面,找出那些自己喜欢的,然后询问自己哪部分是自己喜欢的,如果放在自己的项目是否可行,能完整表达我们之前的需求元素么?

      很多人在做单独项目的时候,前期花在界面设计上的时间极少,都是脑子有一个大概,然后边写代码边脑补界面样子,写着写着就走了样,最后弄出来的界面是混杂的,看上去很乱。

      我以程序员的角色来分享几条界面设计的建议:

      1、如果自身不是专业设计,就不要采用复杂的界面,那么设计界面的时候请走扁平化,一个web页面/app 页面的颜色请尽量保持两到三个,并维持一个主色调,其他的使用同类色系。

      2、如果是手机app,那么请和平台推荐的设计方向保持一致,比方说如果是ios app,那么应当参照ios的原生应用来做设计,而如果是android app,那么请使用material design的规则,不要妄图利用相同的设计做不同平台的app,容易变乱。你使用原生的平台设计,就算设计感不强,也不会显得杂乱无章。

      3、Web界面的设计应该有自己的特点,我知道很多做单独web项目的人喜欢用开源的web前端框架,比如bootstrap、amaze UI这些,虽然节省心力,但是做出来的界面大同小异,容易疲劳,浏览器上的界面和手机app不一样,它屏幕更大,可以表现的也更丰富,如果实在要用开源web框架的话,也要尝试换换色系之类的。

      4、心态要好,大多数的时候自己设计的界面,是挺难看的,别因为这事挫败了做项目的积极性,也别想一口气做出来个美轮美奂的UI闪瞎大家的眼,毕竟不是职业的设计师,不要和自己怄气。

      界面实现

      在界面基本定稿的时候,这时候我们可以来正式实现界面了,我们之前技术选型的时候应该考虑到前端需要用到哪些技术,比如说做web界面的时候,是否需要做成one page application,是否需要使用前端库等等。

      web前端现在环境变化非常大,已经由原来的做页面转成应用化了,所以配套的工具也变得多、杂、繁了,选型的时候还是需要注意选自己熟悉的,生态圈好的,在这一点上,框架上有vue、react、angular比较知名,我个人比较喜欢vue,它上手还是蛮快的,如果想做应用式的web产品可以选用。

      android app的客户端如果你以前使用非android studio来编写的话,那么这个新项目就换用android studio吧,它已经足够好用了,在做界面开发的时候,推荐使用那些大热的开源组件,比如说fresco、rxjava、retrofit、gson这些,可以节省大量心力,组织代码的话使用MVP或者MVVM模式也能让新项目变得容易维护,推荐使用,之前我也写过一篇关于MVP应用的文章:Dagger2的应用——MVP+Retrofit+RxJava

      如果你写的是ios app的话,不要在语言上(OC或者swift)来犹豫,事实上这两门语言都能很好的完成一个app的构建,而且还可以混合编程,同样的,在开发app的时候请大胆使用开源库,比如masonry、reactivecocoa或rxswift,cocoa touch原本的MVC模式也很清晰明了。

      如果自己想实现多平台的Wweb应用,可能会使用react native这类工具来完成app开发,说实话比起原生语言开发app,它对web开发者来说更友好一些,如果有RN相关经验的可以尽情尝试。

      现在不管web开发还是app开发,都可以把前后端切断,让后端作为数据输出方,不过有时候我们的web项目可能需要对SEO友好,所以可能需要花心力在同构上面,也就是在前端和后端都维护相同的路由和相同的模板渲染,代价也是比较大的,当然也可以像传统开发那样完全由后端render view,具体情况自己考虑。

      后端的接入

      后端开发牵扯非常广,所以我们不太可能是把前端做完了再做后端,一般情况下,做前端和做后端是交叉并行的,这一点其实是在模拟团队合作的情况,只不过身兼多职。

      后端这边我依旧推荐选型的时候选择自己最熟悉的,如果熟悉某款框架的话,那么尽量用框架,后端开发的语言并没有什么限制,可以在下面几种语言里选择:

      传统语言:Java 、C# .Net

      传统脚本语言:php、python、ruby

      新兴语言:node.js、golang

      用来作死的:C/C++

      一般情况下,我推荐脚本语言来开发web应用的后端,前几年ruby on rails框架流行的时候,带来了非常快捷的开发方式,随后其他语言也都相继出现很方便的web框架,其中有大型框架,也有微框架,具体的抉择可以看一下我之前的文章:除夕乱谈web微框架,从koa说起

      一个重点是我们可能要考虑数据库的问题,需要对常见的数据库很熟悉,并且能够合理的抽象出schema,以及合理的建立索引,多表之间如何联合,这些都是和需求紧密相关的,只有深刻理解了自己的需求,才能做好这些事情。

      后端开发的时候建议使用ORM,如果框架自带ORM的话那就用框架自带的,如果不自带可以选用社区开源、生态圈丰富的ORM,需要注意有些ORM本身bug比较多,坑也多,只能多踩踩才知道。

      我们刚开始可能只是简单的增删查改,不过随着加入用户体系、身份验证、权限划分、内容过滤等等需求之后,就可能需要你合理的规划好控制器的代码,我建议大部分情况下做成一条条service,然后做串联调用。

      后端开发要注意网络安全,用户身份的存取,内容数据的插入,文件的上传这些容易出问题的地方都需要格外注意,不要因为自己做的小就图省事,弄个满是安全漏洞的网站,还不如不上线。

      缓存机制其实对于并发高的时候效果很明显,在设计后端的架构时候,也应当考虑到哪些部分可以用缓存代替,我们常用的memcached或者redis都是缓存利器,非常建议配合使用,不要在意你的网站是个小网站。

      有时候需要考虑定时任务或者异步任务队列,这个时候我们可以选一些好用的工具,比如说用redis、开源MQ或者是专门用来做任务的任务调度器之类的,我之前写过一篇关于任务队列和任务调度器的文章:浅谈任务队列和任务调度
    后端开发注意主次,有的时候增加或者修改一个功能,其实牵扯到不只一块区域,所以尽量保证抽象层次要高一些,代码耦合也要低一些。

      有些页面是用来获取数据的,而有些是用来处理数据的,我们对这些部分要分开出来,也可以采用RESTful这种API 设计的架构,把功能抽象成资源,转而对资源进行增加或者修改。

      简单的总结

      一个人写一个web项目,是很累的,需要你有强大的热爱才能完成它,有些建议可以让你能够顺利的完成独立的web项目:

      1、三思而后行,不理智的项目乘早断了想法。

      2、不要上来就敲代码,做些提前工作,需求和设计。

      3、功能是一步一步来的,不要最开始就弄一大堆,容易打退堂鼓。

      4、用开源框架、库、工具能够节省你的心力,前提是你足够熟练。

      5、不要在写代码的时候就想着优化怎么做,说不定你想的优化其实很渣。

      6、定下来的需求如果要变更,请尽量小,如果要推翻重做需求,说明你最开始就不成熟。

      7、你要相信会有版本迭代,所以有新想法的时候别急,先记下来。

      8、保持爱来抵抗做项目的寂寞和焦躁,碰到坑的时候可以散散心。

      9、一个web项目别拖太久,时间越长越容易腰斩。

      10、心态好点,接收它99%会扑街的事实。

     

    关注QQ公众号【黑客联盟】学习更多黑客技术!     

    展开全文
  • 1985年出生的他,在OB团队里绝对算是一个“老人”,从研究生毕业加入OB至今已经迈入第八个年头了。 有觉得花这么长时间同一件事会变得“螺丝钉”,用他的话说,底层的同学需要比一般更多一份耐心。除了耐心...
    1985年出生的他,在OB团队里绝对算是一个“老人”,从研究生毕业加入OB至今已经迈入第八个年头了。
    有人觉得花这么长时间做同一件事会变得“螺丝钉”,用他的话说,做底层的同学需要比一般人更多一份耐心。除了耐心以外,驱使他一直“做下去”并且“往深了做下去”的原动力还是基于“兴趣”。
    从P5到P8他完成了职业生涯的三级跳,也完成了三个阶段的成长和蜕变。机会从来都是留给有准备的人,当然,也总是留给那些耐得住寂寞的人。

    元启,蚂蚁金服高级技术专家 

    有时候离成功就差一次机会

    「当时自己就憋着一股劲,就是非常想来 OB,觉得自己说什么也要再试一次。」

    1985 年出生的席华锋(花名:元启)出生于湖北襄阳。

    “我接触计算机算比较晚的,高中的时候有计算机课程,不过那个时候完全没有概念,每次进机房都要套上鞋套,所有设备都被保护的很好。”

    说到报考计算机专业,元启说那个时候想法特别简单,当时他连计算机跟软件工程两个专业都分不清楚,但是他始终坚持的一点就是自己以后是要做研究的。当时他觉得计算机对于搞研究很有帮助,计算机可以用来处理大数据,可以帮助人们去做更深入的研究。

    2004 年,元启顺利考入了华中科技大学,华科是湖北省最好的理工院校。大学期间,他对数据库并没产生特别大的兴趣。大学的数据库课教的都是关系代数、范式之类的内容,觉得特别枯燥。

    后来顺其自然选择了读研,在研究生期间,实验室做的方向是大数据,当时主要做的项目是大数据的 benchmark。相当于是在做一件定标准的事,虽然导师的想法很好,但是由于国内之前没有类似的先例,做起来困难重重。虽然过程很艰难,但是元启对最后的结果还是挺满意的,研究生毕业的时候他拿到了优秀毕业论文。

    就这样顺利的毕业了,找工作的经历却远不如求学顺利。

    “我其实并不是特别自信的那种人。但是当时我有一点特别明确,就是一定要去一家互联网公司。”

    2011 年的时候,外企风头正猛。当时外企的薪资和待遇比互联网公司还要高不少。但是元启相信互联网行业的前景,相信互联网一定是下一个趋势。

    当年基本上所有的互联网公司巨头:BAT、网易、搜狐他都投了简历。有一些过程很顺利,比如腾讯的 offer 就拿的非常快;也有一些没那么顺利的,比如最后拿到阿里的 offer 就经历了不少挫折。

    “第一次投递阿里是因为一个关系不错的同学一毕业就来到了 OceanBase,他特别喜欢这个团队的氛围,就一直鼓励我来 OB 积极帮我内推。但是第一次面试不太顺利,没有过。当时自己就憋着一股劲,就是非常想来 OB,觉得自己说什么也要再试一次。后面自己就花了很多时间做准备,这个同学也特别好后来又帮我内推了一次,让我获得了宝贵的第二次机会,这一次终于拿下了 offer。”

    让元启印象深刻的是,当时最后一面的面试官是时任阿里云 CTO 的章文嵩。虽然元启在研究生期间做的项目更多是偏实验性质,章文嵩觉得通过一个点就能够体现出一个人做事的深度。过五关斩六将,最后元启终于来到了阿里巴巴,来到了 OB 团队。

    跟 OB 一路狂奔的这八年

    「那个时候确实是下了狠劲,基本上 9 点下了班以后,回家继续自学,每天学习到 12 点以后。」

    2011 年,OceanBase 0.3 版本刚开始开发。刚来 OceanBase 的时候人比较少,基本上不论职位高低所有人都在写代码。当时元启进来后,主要做的事情就是跟事务和日志相关。这部分工作虽然不是最难的,但是却很关键。

    2011 到 2012 年间,对于整个 OceanBase 团队而言特别特别困难。当时找不到对 OceanBase 而言特别有价值的业务,甚至整个团队随时面临着解散,活下来成了整个团队的唯一目标。

    2012 年底,OceanBase 从淘宝调到支付宝,当时预估到支付宝在数据库方面所面对的挑战更大,后来证明确实如此。

    这一年多时间对于元启来说,是真的下了狠劲。因为研究生阶段花了很多时间做实验,项目经验比较少,编程基础比较薄弱。当时的主管非常关注他的个人成长,让他每天写一份日报总结除了工作以外自学到的知识。基本上是 9 点下了班以后,回家继续自学,每天学习到 12 点以后。

    2013 年 5 月,支付宝下线了最后一台 IBM 小型机,完成了去 IOE 进程中的一次重要尝试。如何取代最要命的“O”成了横亘在支付宝面前的一道大山。

    OceanBase 0.5 版本应运而生,在次年双十一,0.5 版本就取代 Oracle 支持了支付宝当天 10% 的流量。

    对于整个 OB 团队,或者说对于蚂蚁来说,0.5 版本的上线都是一个里程碑式的存在。它最大的意义在于真正帮助蚂蚁完成了去“O”,也真正让高可用在蚂蚁落地。

    0.5 版本在蚂蚁金服核心交易系统的上线让 OceanBase 真正活了下来,甚至 OceanBase 还有了不少“拥趸”。在当时整个阿里巴巴还没有一款数据库产品能够真正解决高可用的问题,OceanBase 一下子被捧到了一个前从未有的高度。

    对于元启个人而言,他除了持续负责日志部分的工作,另外很大一部分工作就是跟性能相关。那段时间基本上把所有精力都完全扑在 0.5 版本的研发上,整个团队是一种全力以赴的状态。

    这之后,2014 年到 2016 年,整整两年的时间,元启和其他 40 多个 OB 同学一起,再一次投入战斗,全身心投在 OceanBase 1.0 版本的开发上。

    1.0 版本的诞生主要是解决扩展性的问题。“1.0 版本放在当时并不是为了马上解决业务的实际问题研发出来的,而完全是一套面向未来的架构。”

    阳振坤(OceanBase 创始人)曾经提到,其实在交易库还没有完全上线的时候,就已经启动了1.0 版本的开发。1.0 版本的设计初衷就是希望做出一套没有任何限制,完全可扩展,高可用的系统架构。

    1.0 版本的里程碑事件就是 OceanBase 在 2016 年的双十一上线了蚂蚁的账务系统。对于银行系统有一定了解的朋友可能知道,对于银行来说最最核心的其实是账务系统。

    对于元启来说,他的感受更直接更具体。突然觉得那一年数据库的数量飞速增长,同时 OceanBase 上了非常多的业务。这对运维提出了更高的要求。OceanBase 1.0 版本的质量比 0.5 版本提升了整整一个层级,每一个版本发布前都要经过一轮又一轮严密的测试,发布周期也变得长了很多。正因为有质量的保障,才有了 OceanBase 1.0 版本在规模上几何倍数的扩大。

    OceanBase 2.0 版本在 2018 年 9 月正式发布。2.0 版本的重要意义在于真正将 OceanBase 打造成一款通用型的商业数据库产品。2.0 版本在 1.0 版本的质量标准上又提升了一个量级,除了对 MySQL 的兼容,2.0 版本更多的是打磨对 Oracle 的兼容性。

    当时做 Oracle 兼容是有争议的,团队内部都觉得 MySQL 已经做到了 90% 的兼容,为什么还要花这么多时间再去做一套 Oracle 兼容。

    但是元启心里明白,这件事不得不做。OceanBase 正在走向商业化,然而很多金融机构里的核心业务大多还是基于 Oracle。如果不做 Oracle 兼容,就意味着业务改造的工作量变得非常大,更换数据库的成本非常之高。

    “我们在做在 OceanBase 0.5 版本的时候,当时做的系统已经可以算得上是业界领先了。到了 2.0 版本的时候,这个感觉就更明显了,我们遇到的问题都是现有的系统从来没有遇到过的,所有问题都是全新的,充满挑战的。”

    在 OceanBase 2.0 版本的开发中有两个非常大的难点:一个是资源的紧缺,人力不足。Oracle 对外宣称要招聘 1000 个人来做内核开发,实际上 OceanBase 的系统远远比 Oracle 复杂,如果按照他们的标准 OceanBase 可能要招 1000 人还不够。

    另外,还有一点就是技术实现上的困难,也就是如何保证分布式系统中数据的一致性。在事务执行的时候如何让它们看起来好像是独立执行,同时又能完成并发。这些问题在单机环境下已经很难解了,在分布式的环境下实现更是举步维艰。

    三个阶段的蜕变

    「你可以不去考虑自己所处的位置,勇敢的提出来,并且放手去做。做成了以后团队里所有人都能看得到。」

    与 OB 一起狂奔的这八年,他完成了职业生涯的三级跳,也完成了三个阶段的成长和蜕变。

    第一阶段:从自我视角到客户视角

    刚进入团队的时候,最开始主要就是在做技术深度的积累和技术广度的扩展。除了一直在事务层面做更深入的研究外,后面元启也接触了像测试、运维相关的知识。用他的话说,“当你了解的越多,你会发现自己看问题想问题的视角也在变化。”

    当接触的东西越来越多,慢慢的自己会从狭隘的技术上的自我视角转向客户视角,去开始理解客户的痛点,感悟到技术是为了服务业务而存在的。

    第二阶段:往高看,往远看

    在进入团队前面几年的时候,经常有一些技术方案的做法自己不是完全认可。还在第一阶段的自己,一般第一反应就是觉得它不对,会去跟主管辩论。当你接触的越多,思考的越多的时候,其实观念也在变得越来越开放,自己会深入去想主管为什么想这么做,部门老大为什么会这样想,慢慢你就会发现所有选择都是有原因的。

    “你现在如果还是一个 P6。可能没办法去理解 P10,P11 的想法,因为你还没看到他们看到的东西。但是你要开放的去接纳别人的想法,从更高的层面去思考,可能到了未来某一个时刻,你突然就顿悟了。”

    当时 OceanBase 选择走上自研这条路来说,很多人都不认可也不理解。尤其对于刚毕业的同学来说,可能心理会有障碍,他会认为现在已经有一套开源的 MySQL,做一套自研的数据库有什么用,不理解做这件事的价值。

    出现这种认知的偏差可能有两方面的原因,一方面是这个同学可能了解的信息比较少,眼界还不够开放,很多东西他看不到。另外一方面是他了解的不够细致,还认识不到这件事情背后的难度,可能是因为他觉得这件事情太简单,不知道从里面能够玩出什么花样来,所以会变得很浮躁。

    在总结招聘经验的时候,OB 团队里曾经有人总结出这样一句话:“如果一个人在一个看似很无聊的岗位上都能够玩出一些花样儿,这种人就很值得要。”说明这个人能够沉得下心,愿意也能够去发现一些别人看不到的东西。做数据库的人天然需要这样的特质,或者说也只有具备这种特质的人才愿意投入这个行业。

    第三阶段:扩展你的边界

    阳老师说过一句话让元启感触特别深,“企业里的组织架构大多是人带人的模式,并不代表这就是你做事情的边界。如果你愿意做一件事,并且觉得是对团队真正有价值的。你可以不去考虑现在自己所处的位置,勇敢的提出来,并且放手去做。做成了以后团队里所有人都能看得到。”

    元启说特别喜欢 OceanBase 团队开放的氛围。刚进 OB 团队的时候,很多事情都是领导安排你去做。慢慢进入到现在这个阶段,自己会更多的主动去想应该去做哪些事,做哪些事才能发挥自己最大的价值。

    在 OceanBase 的这八年,元启最明显的感觉就是自己做的越多,懂得越少。早期的时候会觉得自己特别牛,越往后越觉得自己身边的人特别牛。这一路还有很多东西要学习,还有很多事情值得去探索。

    一个特别正确的决定

    「如果你选择了这个行业,最重要的就是一定要有耐心,一定要相信自己的选择。」

    谈到选择数据库行业,元启说这是一个特别正确的决定,也是值得选择的一条路。

    首先,数据库离业务最近,不管是在功能上的增强,还是在性能上的提升,数据库的价值都会被放大。比如你写了一段代码,如果这段代码是一个具体的业务逻辑,可能只有几十或者几百个人去访问,它的价值就比较有限。如果你写了一段代码放进数据库,因为数据库拥有海量用户,它的价值就会被放大,给更多的人带来影响。

    另外一点就是数据库行业的技术壁垒很高。技术壁垒一方面指的是技术的门槛高,所以一旦你在这个行业站稳脚跟,就拥有了非常强的核心竞争力。另外一方面是指从工程上来说数据库是一个超大型项目,代码行数在几百万行都算是规模小的,这就使得这个行业必须长期投入,在这一行也必须要沉下心来耐得住寂寞。技术壁垒越高,也就意味着一旦做成了,价值也会越大。

    “如果你选择了这个行业,最重要的就是一定要有耐心,一定要相信自己的选择。还有一点就是保持好奇心,多了解当下和未来,比如现在整个行业有了哪些新硬件或者新业务产生,了解的越多,你就越容易找到自己的突破点。”

    数据库发展的这八年

    「数据库的价值在于它的开放性。」

    元启与 OceanBase 的这八年其实也是数据库行业变迁的一个缩影。对于元启来说,这八年时间感触最直接的变化就是单机的性能和性价比越来越高。SSD 越来越便宜也越来越快,内存变得越来越大,CPU 核数也在变多。而 OceanBase 在最开始其实就是基于 SSD 大内存多核来设计的,这也是 OceanBase 的一个后发优势。

    然后就是从集中式转向分布式的这样一个大浪潮。其实互联网最开始是基于 KV 或者文件系统来做分布式。数据库的分布式主要依赖于业务配合中间件来做,但是 OceanBase 是真正开创了一套在工业上可用的分布式数据库

    亚马逊的 Aurora 做的是数据库的云服务,也可以叫做云原生的数据库。可以说是数据库方向的另外一个趋势,也有很多公司在效仿这个思路。Aurora 它的思路是首先保证数据库功能的完善,然后再去解决它的扩展性。OceanBase 相当于是走了完全不同的一条路,我们一开始的设计就是无限可扩展的,然后再开始持续不断完善功能。虽然过程会难很多,但是 Aurora 最终的扩展性是有限的,OceanBase 却是无限可扩展的。

    谈到数据库未来的发展,元启一直强调“数据库的价值在于它的开放性”。

    提到数据库,大家首先想到的就是 MySQL、Oracle。数据库之所以这么有价值,某种意义上是因为数据库开放的定义。关于什么是数据库其实这个概念一直在发生变化,比如时序数据库、空间信息数据库等等全新的概念层出不穷。

    人工智能的普及化也给数据库带来了新的机会点。现在的人工智能更类似于用数据去训练,得到的更像是一套算法,最后能够进行识别和反馈。未来人工智能跟数据库有更紧密的结合,才能够发挥更大的价值。

    数据库的边界在不断扩展,随着新技术的兴起未来数据库的机会点还会有更多。

    展开全文
  • 无数骂娘的故事告诉你,千万别技术合伙

    万次阅读 多人点赞 2017-05-18 02:15:11
    今天,和几个创业的朋友聊天的时候,其中一个技术合伙的朋友被他们的公司的CEO各种恶心,在我们在群里一直听他在骂娘。是我沟通有问题吗? 和每一个团队都搭配的不错啊! 是技术水平不够吗? BAT背景,拥有百度...
  • 一个人的Scrum之准备工作

    千次阅读 2012-01-10 22:00:16
    在2012年里,我想自己一去实践一下Scrum,所以才有了这么一个开篇。 最近看了《轻松的Scrum之旅》这本书,感觉对我非常有益。书中像讲述故事一样描述了在执行Scrum过程中的点点滴滴, 仿佛我也跟着进行了一次...
  • 阿里10年:一个普通技术的成长之路

    万次阅读 多人点赞 2020-12-09 13:54:13
    作为一个技术,成长不仅是技术上的不断精进,也包括日常工作中的方方面面。本文分享阿里巴巴高级技术专家在阿里10年的成长之路,分享他从一个普通技术开始,在阿里的三个阶段,以及在晋升、转岗、带团队、做事等...
  • 一个正规的网站开发,理论上需要一个团队的配合,各自发挥自己的长处,网站需求分析、原型设计、效果图、切图、前台美工、后台代码、算法设计、数据库设计、服务器配置等等一系列的事情。  一个人想面面俱到这些...
  • 如何做好一个产品

    千次阅读 2014-09-30 22:45:20
    从去年开始到现在做一个关于工控的产品,中途遇到了很多挫折,也遇到了很多挑战,也发现做好一个产品是一件多么困难的事情。经过这一年多时间的产品开发,也在思考如何做好一个产品,怎么样才能做好一个产品经理。这...
  • 我创业的这一年 九月只有两个人

    万次阅读 多人点赞 2013-12-25 08:19:05
    想想,我和飞翔几乎是同时出来创业,的都是一个创业链条上的事情,我们第一个交换的友情链接,在活动中飞翔和她的技术合伙对缘创派(ycpai.com)也非常的支持。这里,也仿照飞翔,把今年的创业经历回顾一下,...
  • 一个人是否靠谱,闭环很重要(有深度)

    万次阅读 多人点赞 2018-07-12 00:24:18
    来源:培训每日谈 (peixunmeiritan)作 者:张立志,专注学习设计和课程开发看了一篇文章,说《一个人靠不靠谱,就看这三件小事》,文中提到:我所理解的靠谱就是你...
  • 《火柴联盟》制作谈如做好动作手游 发布者: justsolo | 发布时间: 2015-1-21 00:20| 评论数: 19 游戏类型:手游游戏/平板游戏 设计类型:【系统/框架/思路/玩法】 【社交/体验/...
  • 千山独行-一个人的创业路(连载四)

    千次阅读 2012-03-11 19:19:23
    我其实很想尝试一种新的模式,设想与院校挂钩,以免费(或低费)的方式培训学生,然后送给企业,向企业收费。这种方式有三个要点,1....我最近的一个班里有个学生是一所偏远的专科院校的计算机专业学生,在培训中自学i
  • 做一个有脑子的程序员

    千次阅读 多人点赞 2019-04-22 09:09:44
    程序员是最理性的一个,除非面对电子产品的时。程序员是一群高智商的群体,唯一的缺点就是发际线总是很难防守。程序员是一群情商比较低的人群,常常看到程序员仅仅因为对技术的理...
  • 优米网王利芬:一个人能否成才取决于四点 http://www.sina.com.cn  2012年02月10日 11:40 中国企业家网 优米网创始王利芬  (编者按)从央视主持华丽转身到优米网创始,年过半百的王利芬觉得这两...
  • 精进:如何成为一个很厉害的--作者:采铜

    万次阅读 多人点赞 2019-12-04 15:12:19
    精进:如何成为一个很厉害的 作者:采铜 文章目录精进:如何成为一个很厉害的序 用更勇敢的方式去生活01 时间之尺 我们应该怎样对待时间活在“全部的现在” 从当下出发,联结过去与未来那么,一个人应该怎样对待...
  • 干系分析分为哪几步骤,每步骤有哪些内容。特别是干系配合的时候怎么办
  • 王昱珩,这名字,在最强大脑播出前,我想不曾有多少认识他,然而他在擂台上展现出的气场、实力以及个人魅力却将完美二字诠释的淋漓尽致。 2015年3月13日,《最强大脑第二季》中日PK赛中,第二轮扇面识别...
  • 动态加载fragment配合TabLayout

    千次阅读 2016-12-18 16:54:29
    这种配合使用TabLayout来控制,获取position比较方便,fragment不需要次性全部加载,而是在第次使用的时候加载。也需要WindowManager和事务进行管理。因为没有用到ViewPager,所以没有滑动效果。比较适合程序...
  • Git与SVN配合使用

    千次阅读 2009-11-03 16:09:00
    Git与SVN配合使用Jingwenlai 2009-11-3版本管理工具对于开发来说很重要,可以保留一些重要的历史记录,在分支比较工具的帮助下,可以有效地帮助多人开发。...因为是一个人写些实验的东西,基本上还是在主
  • 但最后我发现了一个问题,越是想做好,越是很难做好,为了成一件事情需要很多的尝试,事情缺乏正确并有效的方法。 回想我工作的前六年时间里,我一直都是在创业公司里成长,虽然可以快速学到东西,但似乎...
  • 产品研发一家,一定要配合好。
  • 再不然就是和运营聊聊天,写几SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。小B,工作于某国企,虽然能接触到一些中间件技术。然而,...
  • Android APP打开另一个APP完整逻辑实现

    万次阅读 多人点赞 2018-05-09 18:12:03
    一丶概述前段时间配合开发,完成了一个APP拉起另一个APP的需求,负责接收数据跨登录部分。当然整个实现思路挺感兴趣就了解一下。先说说需求拉起另一个APP是为了方便统一使用管理,有些公司APP较多,部分只需要用到...
  • 今天,和几个创业的朋友聊天的时候,其中一个技术合伙的朋友被他们的公司的CEO各种恶心,在我们在群里一直听他在骂娘。 是我沟通有问题吗? 和每一个团队都搭配的不错啊! 是技术水平不够吗? ...
  • 一个华为在华为工作十年的感悟

    万次阅读 2012-10-15 18:30:49
    作者背景:徐家骏是华为数据中心的头,技术超级牛人,一级部门总监,华为副总裁,年收入过千万,数据中心是用火山岩建的深入地下的一个大型建筑。防辐射,可防卫星的电子,雷达等手段的侦察。里面有象卫星发射中心...
  • 如何处理好项目成员不配合的问题

    千次阅读 2016-12-16 15:00:27
    作为名项目经理该如何好项目成员不配合的问题呢?造成项目成员不配合的原因有很多,难以一一罗列。一般可以从这些方面来考虑,项目经理能力不足、公司授予项目经理的权利不大、公司制度问题等等。  下面是一些...
  • 其实现在很多的开发者平台也都提供一两种音色的离线TTS开发SDK,比如科大,云知声等等,我之前也一个百度在线ASR与云知声离线TTS结合实现的一个复读机的小Demo,有兴趣的朋友可以点击看一下 配合最近我上传的gi...
  • 怎样才能做好一个优秀的FAE ?

    千次阅读 2012-08-23 09:54:48
       一个健康而优秀的IC公司,FAE的角色非常重要,他担任着公司...那么怎样才能做好一个优秀的FAE,FAE应该具有什么样的角色呢?  简单的讲,一个优秀的FAE只要具有一个素质即可:“做人”。这两个字看起来简单
  • 在Eclipse的IDE环境下,除了可以搭建STM32的编译环境外,还可以配合jlink仿真器实时仿真调试stm32. Eclipse SDK Version: 3.7.2 Build id: M20120208-0800 首先需要配置下。 在RUN菜单下的debug configration...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 277,475
精华内容 110,990
关键字:

如何做好一个配合人