Sunday, March 20, 2016

How to Stop Sucking and Be Awesome Instead



http://www.jianshu.com/p/dec2bc0dac60

关于探索的态度

比起专业技能或者智商,成功更需要一种探索的态度,它是一种对于可能性和失败后果的执着。那些具备良好潜质的人总是会做出类似的回答“我总是在犯一些作物。昨天刚发生了一件挺严重的事情,前因后果是这样的。。。”。
相反,那些回答“我并没有犯过大错误”或者“我犯过一些严重的错误,但是错误的原因并不在于我”的人是不会成为杰出的外科医生的。
探索的态度对于程序员也是尤为重要的。
不管你在做什么项目,怀揣着学习和锻炼的态度去完成它吧,这是绝对值得的!与项目结果相比,过程才是最大的财富。如果你没能从一个项目的过程中学到一点东西,这才是真正失败的项目。
作为专家,重要的是不是告诉别人你知道什么。而是要清楚你应该问什么样的问题,并且灵活运用你所掌握的知识去解决眼下的具体问题。作为专家,你的作用是提供明确的,可执行的方向。
读到这些,笔者觉得专家理应受到种种质疑,而为了能经得起这些质疑,那么就不应该跟人家说“我读了神马神马著作,精通神马神马技术,你看我的论文,你看我的研究成果等等”,真正证明自己是专家的途径,一般只有帮助非专家人士或者别的专家高效地解决问题。
其实,庞大的知识体系也是对解决问题帮助很大的:因为这些有着庞大知识体系的专家的晶体智力水平很高,很多时候,他们并不需要动脑子(也就是流体智力),直接调出相应知识就能解决。所以说,那些自称专家的人如果连连无法解决问题的话,那么真的是low爆了。

关于优秀和平庸程序员之间的鸿沟

  • 成为更加优秀的程序员的方法是抛开编程。
  • 你的兴趣越广泛,就能越胜任你的工作。
  • 为了真正地成为一名更好的程序员,你必须培养自己对于编程周边所有事情的热情。
  • 单单靠编程,你只能补足或者增强自己已有的变成技能,永远也无法成为一名优秀的程序员。你需要尝试去了解你的客户,你所处的行业以及相关的业务。
  • 聪明的开发者知道,他们的工作远远不止编写代码和发布产品:他们的工作是开发出人们真正想要使用的软件。这当然包括编码,但还有大量全局性的其他事情,比如撰写技术文档,交互设计,培养用户社区,乃至产品愿景,这些对于软件的全貌成功都是至关重要的。

关于修复bug

在对报告数据的广泛分析之后,我们看到:80%的客服问题在修复了用户报得最多的20%的bug之后就得到解决。即使修复用户报的最多的1%的bug,也能解决50%的客服问题。这个分析结果通常对于各家公司都是成立的。
如果你修复了一个真实用户永远也碰不到的bug,那你修复有什么价值呢?
你越快将你的软件推到真实用户面前,就会得到越多的数据来改进你的软件。问题不在于你在发布软件的时候带去了多少bug,而是在于你能多快地修复那些bug。
因此,笔者认为在bug管理的问题上,要注意两点:
  • 不要怕将bug暴露在用户面前,尽早地收集用户的反馈数据是关键。
  • 而且,在收到大量的反馈数据之后,也应遵循二八定律,要以bug的影响程度来划分bug的优先级,不应盲目排列修改bug的顺序。

关于衡量软件的成功

多少用户在真正使用你的软件?这才是衡量成功的终极标准。
而且在一定的技术水准上,如果无法“说服”大量客户使用产品,也同样是让人心痛的。
  • 技术再牛也要从用户体验出发,少做一些中看不中用的东西。想出数百个功能很容易,但是从中挑出几个可以提升用户体验,真正能吸引用户,让用户掏腰包的功能实在不易。
  • 产品做出来了,产品有没有人用,营销和推广同时占有举足轻重的作用。突然想到以前在一本营销书籍看到的:能做出比麦当劳好吃的汉堡包很容易,但是能比麦当劳卖得好却是很难得,众人难以模仿麦当劳整体的营销模式。相同的,像ZARA品牌的生产模式和营销模式之高效,是其他品牌无法超越的,这也是其风靡全球的原因。

关于用户的谎言

  • 我们必须根据用户的实际行为模式来设计产品。
  • 他们会说喜欢你的软件。但是我们应该去观察他们是否使用了软件,以及他们是怎么使用的。基于行为数据去设计软件,而不是靠用户说的“谎言”。
笔者认为,我们很少能从用户言语上得到用户特别真实的感受。那些善良的客户们有时碍于面子,有时想当和事老,凭着“你好我好大家好”的原则,说一些心里没有的,善意的谎言。
所以那些问卷调查什么的,走街串巷访问什么的其实意义不大。真正能“窥视”用户内心的是那些技术埋点。我记得有一次参加一个分享会,触宝科技的CEO跟大家分享了他们的埋点:他们通过埋点的方式,甚至会知道导致用户删掉app的是哪几个界面和动作。这让我感触很大,既然能做到这些,那么如果想知道用户喜欢点击那里,喜欢看哪里,喜欢做那几个动作,岂不是轻而易举?知己知彼,百战岂殆?

https://blog.growingio.com/posts/mai-dian-ji-shu-yi-si
埋点技术通过在代码的关键部位植入统计代码,追踪用户的点击行为;或者植入多段代码,追踪用户的连续行为;并通过建立模型等方法,得出用户操作行为;最终作为建立产品数据系统的一个环节准确的收集数据。
首先,IT人员在埋点的时候,必须先清楚要收集的是什么数据,这些数据用来做什么,在什么地方收集这些数据,未来想用这些数据发挥怎样的价值。如果没有搞明白这几点便直接进行埋点,收集的数据无论质量、有效性或指导作用都是微乎其微的。前期准备时间过长,埋点过程较慢。
其次,一旦数据有问题,想要纠正则需要重新进行埋点,使得之前的工作变成无用功。这两点问题的存在将整个数据收集周期拖到到近三周左右,收集成本很高但效率却不高。

4. 无埋点:挖掘你的坟墓,唾弃你的坟墓点:挖掘你的坟墓,唾弃你的坟墓

所谓无埋点技术,并非完全不用埋点,而是不用在设置代码前先行定义需要采集的事件或功能,不需要工程师不断部署代码,客户加载了一段GrowingIO的JS或SDK代码后,就可以在页面或者是App自动进行埋点,智能抓取关键用户行为,快速收集数据,仅需几分钟就可以建立相关APP和网站数据BI的运营体系。
首先,由于无需工程IT人员手动埋点,大大降低了部署的成本,解放了技术部的生产力,而不必把大量的时间精力消耗在埋点这种对工程部门而言“费力不讨好又没有多少技术含量”的工作中;
再者,无埋点技术不用提前定义需要采集的元素,而是采用了智能抓取的方式。因此一旦发现错误,在进行补救时所需消耗的时间精力会大幅降低,而且智能抓取意味着用户关键行为会被抓取,业务人员所需数据都能实时分析,统计会变得更为全面;
并且,无埋点技术使用门槛极低,简洁的布局操作,一键分析数据,使得技术人员就可以轻松操作获取自己所需的数据,这对部门效率的提高有着很大的帮助;
最后一点也是最重要的一点,无埋点技术的出现最大化的提升了数据收集的速度,大幅缩短了数据收集周期,使得原来不敢想的事情现在敢做了,原来碍于必须有时效性不敢收集的数据也可以迅速进行分析了,在这点上,无埋点技术对传统埋点技术的优势巨大。
https://www.growingio.com/
https://www.zhihu.com/question/36411025



Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts