已发布 / Published 2018-04-12T07:00:00+08:00

年轻刚出发,去更远的地方探索吧

《你凭什么做好互联网:从技术思维到商业逻辑》,曹政的书阅读笔记。

图片

unloading-sand-1902




曹政,了解他只是看了几篇很有意思的微公号文章,有人说他出了本书,就在微信读书上搜索买了看完。他的个人标签就是做互联网的,我觉得文章写得不错,书应该也不会让人失望。



他的自我介绍:


1:不是CTO,2:不是技术大牛,3:不是百度商业分析部Boss,更不是商业产品部Boss,4:数据控+淘宝控,5:为老不尊, 曹政微信号:caozsay




大概在网上搜了些他的信息,知乎账号内容全删,微博和微信活跃,2017全球技术领导力峰会(GTLC)这样介绍的他:



曹政,“caoz的梦呓”公众号作者,清华大学毕业,互联网行业从业近二十年,中国互联网最早的见证者及参与者。


先后从事产品、研发、数据分析、架构管理等诸多岗位,见证并参与多家创业公司走向规模化乃至上市路程,如绿盟科技、百度在线、4399网络。


中国互联网免费统计网站系统CNZZ创始人之一,前4399首席架构师、首席信息官,江湖绰号“互联网百晓生”,互联网当之无愧的技术大牛。现任厦门易灵科技 & 新加坡 Gamesky Global PTE LTD 创始人。




我看完了全书,觉得前面写的还可以,共鸣很多,后面的也可能是我自己看的断断续续,加上自己没有工作,启发不多。



看完全书我有三点想分享给你,也算是自己整理一番,加深记忆。




新手的困惑



不知道你们有没有这种类似想法,就是当作为新人,观察或者参与某些操作时,会发现很多漏洞,或者是低效、高成本等问题,然后会开始各种抱怨,觉得应该做什么样的东西来解决这个问题。



比如我以前以为,配个培养基那么基本的东西,应该有机器操作啊,所有的配方都是固定的,完全可以不用人力嘛。还有组织培养转苗子,提取RNA等等,甚至取样,检测植物生长状况都完全可以做到机器操作,不用人天天照看,像我去年跑了三个月,两三天去看一次。



但是仔细想想,真的不对。首先很可能是人力成本相对低廉,其次是只为解决这个小问题去调用其他资源不值得,第三是可能没有系统迭代,但是这样做是可以的,就不再进行改进,因为还有更重要的事情值得去做。



以下摘抄原文,看来前人不仅考虑到了,而且更详细,曹政的视角是在创业公司的代码角度。




    技术演进中的印迹


    一个多年运营的系统,在演进的过程中,会存在大量不同的参与者,每个参与者都会有自己的逻辑、想法,以及处理的方式。那么在代码迭代中,技术的迭代往往是优先考虑最紧迫的任务,优化最耗费资源的模块,在不断迭代中,代码的一致性和结构的一致性可能就无法维持,导致一些本来架构优美的结构可能只剩下两三个模块,新的迭代代码替换了其他模块,但是新人就觉得,这模块做得好复杂,好啰唆,很多没意义的东西塞在里面。请相信我,再优美的技术结构,经过几茬这样的迭代,都会变得面目全非,杂乱无章。然后等待下一个神来做整体的重构。


    侧重点不同的考量问题


    比如说,新人发现一个报表系统效率很低,耗时很长,于是嘲笑,连索引都不会吗,这么烂的结构怎么设计的?但是他不知道的是,这个数据结构首先要满足一个非常巨量的每日数据新增,而后才要满足每周一次的报表生成。那么,如果按照他认为生成报表的优美结构来设计,所增加的索引和数据字段的设计,就会在日常带来大量的i/o开销,数据新增的逻辑就会导致额外几倍十几倍的开销,也就是说需要很多台额外的服务器来支撑,而收效却是,可以每周生成报表的时候从几十分钟缩短到几秒钟,那么如果你是老板,你会同意这样的方案吗?


    资源紧缺的作品


    大公司也会资源紧缺吗?至少人力资源一直是紧缺的,比如有个紧急的活动,有个紧急的任务,时间特别紧,程序员只好急急忙忙从第三方开源软件抓了一段代码,改改塞进去了,反正业务满足了,至于不好那也实在没时间了,结果这个临时活动效果不错,于是慢慢成为常态活动,而这个工程师又去干别的去了,这个代码反正也没出错,那就一直跑着。新人来一看,这啥玩意啊,代码东一榔头西一棒槌,这程序员不会设计系统吗?




重点是这里,作为新人,我们看到这些问题,应该怎么处理?




    那么,下面要说,新人就不能提出现有系统的问题吗?就不能提出改进的方案和建议吗?当然可以。你进入一个企业就是干这个的,公司花钱养你就是让你来改进系统提升业务支撑能力的。但是,这需要有一个正确的认识和思路在前面。


    第一,尽可能更完整地了解系统,查看一套代码的时候,了解所谓的不好的起因是什么,历史演进的过程是什么,了解其在业务系统中的地位和价值是什么,有了一些认识和理解后,再来思考所谓好和不好的问题。


    第二,从一个最有把握,结构最简单的地方入手,用你认为正确的方式修改一个最小的结构,先通过测试、发布的流程,然后再通过运维和其他主管人员获得反馈,了解改进是否具备对旧版本的比较优势,以及比较优势究竟有多大,多重要。不重要没关系,但是你要了解是否这个改进是正确的;完成第一个后,努力去完成第二个,当你能够顺利发布完成十个或更多的这样的改进和优化,并确认你的代码比较优势确实明显的时候,再来谈别人的代码的问题,如果你这些都做到了,不需要你来谈,你的主管会看得到的。


    第三,轻易不要谈重构。


    我讲过一个架构悖论,为了满足所谓高扩展性的原因,开发人员做了一个特别复杂的逻辑关系特别庞杂的系统,他们说这个系统多花点时间是值得的,因为以后你有新的需求可以灵活扩展了!于是产品人员和运营耐心等待。
  

  新系统上线后,市场发生了一些变化,新的热点出现。运营人员说,我们能不能增加一些功能。技术人员说,对不起,这个需求在我们设计的初期完全没有考虑到,因为现在架构太复杂了,所以这个版本肯定不能支持,你放心,下次重构的时候我们会考虑的。





如果你发现一个巨头依然存在很多技术上连你都觉得不对的问题,你应该高兴才对,这不是你的机会吗?但是你要明白,哪些是真的问题,哪些是你涉世不深的误会,你一步步解决这些问题,在解决过程中一步步理解系统,到一定程度,你会明白更多,理解更深。只是站出来喊,这些垃圾那些垃圾,只能暴露你的浅薄和无知。





不要轻易给自己定性


    

很多人觉得,我大学学了这个专业,我读了这么多年书,如果做别的行业,是不是就浪费了?是的,的确是浪费了,但是请相信我,就算你读得再好,其实到社会上,专业技能基本上还是白纸,有些基本功当然很重要,但其实跨行业也能用上,其他的那些,也真没那么浪费。




首先我们应明白,学习方法是固定的,学什么都是内容不同而已。一方面是学习要找的兴趣点,另一方面是我们真的不清楚现在学习的什么东西会在未来救自己一命。




    所谓你的对口专业,你的工作经验,你自以为你擅长的那些技能,其实未必有你想象的那么重要,遇到合适的时机,勇敢地清空自己,从零开始,任何时候都可能有巨大的机会等着你。




我觉得,大学不拿奖学金真是亏大了,或者说你做生意也行啊,或者说全国到处逛,或者说所有时间花在读书上,真心是这样想的,就是四年的时间,空闲最多,性格最纯,心思最净,事情最少,也最年轻,那就好好去探索做自己想做的事情,而且坚持到底。当然不同人有不同路,想做什么都是可以的。




先谈是否有资格




很多话通常是最终的成功者说的,失败者都没资格说。是的,很残酷,但这才是真相。失败者的待遇是,你身边各种亲朋好友、同行及评论家都会摆出一副胜利预言的样子跟你说:!@¥%&(&……%¥#@#¥#¥%




无论创业,还是学习,20岁前看成绩,30岁后看财富,后来者们不会听守门员的替补,而是仰望明星期待合照。我们向上的动力使每个人去寻找榜样,因为他们已经取得了我们希冀的成绩,所以有这个资格,而那些Loser,真的没多少人搭理他们。这是事实,无论我们欢不欢喜,无论是不是幸存者偏差,大脑的这种习惯,是群体生存的自然选择智慧。




三年不赚钱的事情,我的女(男)朋友不会离我而去;我的父母家人不会因贫困潦倒而陷入挣扎,我自己不会因为忧郁和烦躁而失去平和的心态,甚至继续前行的勇气。每个创业者,都要问一下自己这个问题。




还有关于创业,买房,旅游,读书,竞选,政治..........等等,很多问题,我慢慢发现,那些两种极端的说法,其实源于不同的价值观,信仰有差异,所以选择不同。大城市还是小山村,勤劳还是懒惰,平等还是筛选,......大多数人的误区在于,自己也弄不清楚,所以就跟着舆论在走,可关键是舆论是个混沌,它不是一个人的,也不是某个群体的,它是所有群体所有价值观的混合。




比如创业,我现在认为的是,这就像买彩票一样,成功很难,还比彩票更辛苦,只是几率更低,但是一旦成功,即可改变人类。前赴后继的创业者,如同革命烈士,我们不能说他们都是非蠢既傻,因为他们也视我们执迷不悟。




所以在没有经济基础四处周游长见识时,还是多读书吧,那时头脑在知识的海洋里航行,去搜集尽可能多的观点,然后找出自己的立场所在。





推荐阅读:天冷了,那就找厚衣服穿上吧


上篇文章:不要想着去死,活着以后就有希望翻盘




图片

2018/4/9 深夜