微信号:infoqchina

介绍:有内容的技术社区媒体

IT女神胡宁:程序员如何在职业道路上「投机取巧」?

2016-11-20 09:23 胡宁



大咖说是InfoQ推出的视频直播节目,每周四晚八点半和您见面!

回复:女神,获得直播完整版视频。

戳阅读原文,获得短信提醒,不错过下次直播

关注美女主播66的微博:非著名鼓励师66,各种福利等着你~

本视频时长41分,建议在Wifi环境下观看。


武侠小说里,主人公常因莫名其妙的机缘巧合,得到本武林秘籍,然后就打通任督二脉,当上武林CEO,迎娶白富美,走上人生巅峰了。

但现实中,是否一个IT工程师的职业路径有这样的秘籍或捷径?这里,我想跟大家分享一下我总结的“捷径”,或者往高了说,是“方法论”。

学习高效的方法

如何用一周学会一门技术

互联网IT行业是一个新兴行业,每年的行业变化和技术进步都非常大,稍有懈怠就会“不进则退”。如何能坚持学习,而且是高效学习,是决定自己在职业道路上进步的关键。我认为建立几个学习的方法和习惯,会大大提高学习的效率。

1. 善用工具和网上资源

在计算机技术领域,大多数最新最及时的信息和资料都是英文的,是否会用英语做搜索、能读懂英文资料、甚至英文阅读速度,都会在很大程度上决定学习的效率。

而根据我自己的经验,强大的Google可以找到几乎所有想找到的资料,但这个的前提在于是否会用、善用搜索引擎。有一个小诀窍,建议大家花两分钟读读Google的搜索帮助文档,里面有介绍搜索查询的操作符(search operator)的使用。只需要两分钟而已,就可以大大提高用搜索引擎找到需要资料的效率。

我是在CTO这个位置上,但并不意味着我得是万事通。当我和同事们一起,为解决一个系统问题而努力时,我发现,自己找到解决问题的方向或者关键的速度,通常要比其他人要快。归纳原因,不过是我能用英文和Google在网上迅速找到所需资料而已。

还需要知道并熟悉一些常用的网站或资料来源;例如需要会用、善用工程师常用的网站,Github、stackoverflow等等;如果关心系统、算法、互联网等业界最前沿的发展,还可以关注在相关学术领域的顶级会议上近期发表的论文,例如SIGMOD、AAAI、SIGGRAPH、WWW等等,和一些大公司研究机构发表的论文,如Google、微软、雅虎;

国内一些工业界的大会演讲也有不少干货,例如QCon等,可以关注;还有网上这么多公开课MOOC资源,我学习博弈论用的就是耶鲁大学的公开课材料。对于这些资源的有效利用,是有利于更为系统性的学习的。

2. 目标和最后期限(deadline)明确

以我个人的经验,学习效率最高的时候,是有一个确定的问题需要解决、或者一个明确的项目,需要在最后期限(deadline)之前完成。这样,你可以专注于最需要解决的关键,而不是被细枝末节模糊掉焦点。做一个类比,搜索广告在所有互联网广告类型里,价格是最高的,效果是最好的,就因为搜索是用户主动行为,而与用户即时意愿相关性高的广告的转化率是最高的。

还有一种情况,就是人在有浓厚的兴趣时,学习效率很高。全身心沉浸于要搞清楚某件你感兴趣的事时,时间不知不觉就过去了。因此,我得强调个人的兴趣很重要,不要只为赚钱而工作。

3. 工作是很好的学习途径

建议大家在找最初几份工作时,去以技术为核心的大公司,或者对技术有追求的小公司。如果能跟优秀的同事共事、向他们学习,参与世界领先的系统的研发,对于个人水平的提高是非常大的。

回顾我的职业生涯,在Google工作的几年,对于我个人知识体系的完善和技术及管理水平的提高,帮助极大。除了Google那些著名的系统作为强大的开发支撑及框架学习外,其一系列技术标准,包括代码规范、代码审核、系统上线、设计文档等都非常科学和有效,可以保证研发的高质量。而这些标准和规范,很多都被我应用到自己创业的公司中。

每个深度参与的复杂系统的研发工作,都会积累珍贵的实践经验。因为我曾在Google负责过移动搜索,搜索的每个环节,从搜索词分析、网页抓取、索引建立、到打分排序、结果渲染,我都亲手做过,即使在Google内部,能有机会对已经非常复杂的搜索引擎的每个模块都深度了解过的,也没有几个人;

而在自己创业的公司,我又负责设计和领导研发互联网精准广告投放系统,包含一个日处理PB级数据的大数据处理挖掘系统,我们广告系统达到的技术水平在业界是获得公认的。做过这些大系统,心里自然就有底了。

因此,我建议在职业早期,不要太过注重当前的薪资待遇,而是更注意岗位的工作内容。如果这个岗位是在研发大规模系统,负责内容也关键,虽然在这样的岗位上,压力很大,但可以学到的东西更是千金难买。

有优秀的同事激励,一起奋斗相互学习,公司内部是否有浓厚的分享和学习的风气,也很重要。我至今还记得听Google大神Jeff Dean做内部分享时,随口就能算出,一个系统back-to-back的微秒级的请求耗时计算,我当时就跪了。

工作优秀的捷径

如何用一天完成一个项目

1. 超出预期,尤其是在新岗位上

我加入Google时,不过是个刚毕业的底层工程师。当时我的领导(tech lead)曾招了一个实习生做一个数据收集处理的项目,但不知怎么搞的,这个实习生花了三个月,还没做出来。有一天,我偶然听到领导在抱怨这件事,了解了前因后果后,我跟领导提出,交给我试试。

第二天,我就把做好的项目交出来了,领导大为吃惊。这个项目当然不难,要不也不会是实习生项目,我也不可能一天就做出来。但那个实习生之所以花了那么多时间都没做出来,应该是没理解问题的关键,做了很多无用功。但对于我来说,抓住了这个机会表现自己,三个月后,我就开始带团队了。

当然,这个一天完成一个项目的例子比较极端少见,我想说明的,就是任何项目,无论大小都有关键点,准确地识别并解决,决定了项目完成的效率和质量。现在,我会要求大点的功能或系统,工程师在着手开发之前,都得先写一个简略的设计文档并通过审核。而我审核时,最着重的,是处理流程是否整理清楚,以及风险(caveats)是否估计充分,这些就是系统设计的关键。

2. 工作需要有点儿完美主义,要靠谱

有个著名的墨菲定律,就是凡事只要可能出错,就会出错。很多互联网IT系统非常复杂,开发或上线时一不小心,就可能造成事故。除了通过制定并严格遵守测试规范、验收及上线流程以避免事故外,还需要执行的人有点儿强迫症,或者说“完美主义”,上线之前多测测在在不同情况下的系统反应是否与预想的一致。宁愿测试多花几分钟,好过上了一个有问题的版本,回滚就得手忙脚乱做半个小时。

管理先进的要素

如何用一年搭建一个团队

1. 团队搭建和管理

搭建一个团队,打磨出像个样子,有执行力质量高,至少要一年以上。对于团队搭建和管理,我的建议是:

  1. 招聘、招聘、招聘!严格按招聘要求招人,不能降低要求;

  2. 花精力在培养骨干、指导他们成长上。与其做一个事无巨细鞠躬尽瘁 (micro management)的领导,不如在前期多花精力把团队的框架搭起来,把关键节点的骨干找到并培养起来。

  3. 保持团队水平和氛围的先进。对于在团队中表现落后的人,如果警告一段时间后(一般是两个季度)仍无法改善,说明这个岗位不适合他/她,需要能下狠心让其离开。一个“心慈手软”、难以下手的领导,是不合格的领导,因为落后的人留在团队里,客观上造成对团队其他人的不公平,会严重影响团队战斗力及氛围,反而会使真正能干的人离开。

2. 高度决定视野

这句话其实在任何岗位和职能上都适用,但对于管理者来说,格外重要。管理者的格局决定了团队的格局。

我常发现,一些经理很能干,执行力很强,但他们想的都是在当前的限制条件下,怎么做能达到设立的各种指标,但却没有认真想过,如果站在更高层面看,这些限制条件背后的成因是什么,要达到的指标所指向的真正目标。而正是因为角度不同,导致了执行的路径都不一样,最后的结果也就大相径庭。

3. 需要学会“克制”

对比国内公司和国外公司的做事及思考方式,需要指出,国内普遍过于注重短期利益,特别是中层管理人员,片面追求KPI导致动作走形,而伤害了长期利益。其实看国外成功的公司和产品,都恪守了很重要的两字:克制,但国内却少有管理者能做到。因此我特别敬佩张小龙,在国内这样的环境中,还能把“克制”的原则贯穿在做微信产品的过程中,非常难得。

“克制”带来的好处是长期的。近期随着新广告法的颁布,以及互联网广告监管的加强,对搜索广告条数进行了限制,百度等国内大公司叫苦不迭。但我却想起Google曾主动减少广告显示条数,以提高用户体验,虽然短期内收入受到影响,但时间一长,剩下的广告点击率提升,广告主更愿意花钱去抢流量,竞价更为激烈,收入反而上升了。

创业成功的秘诀

如何用若干年做成一件事

我今年曾受邀在QCon北京给了一个演讲,题目是《从“人事钱心”四个方面,讲述跨过技术创业的那些坎儿》,囊括了我创业以来在几个重要方面总结的心得,这里就不赘述了。

但什么时候开始创业呢?创业失败的几率奇高,而这个折腾的过程,对人的心理压力是巨大的。我认识的所有创业的人都很焦虑,压力山大。除了必要的个人能力、知识经验以及物质基础的储备之外,你如果已对可能出现的最坏情况做好了充足的心理准备,并获得亲人的支持,那就去做吧。毕竟时间成本是最宝贵的。

我说的都是错的

如何找最合适自己的路径

以上都是我总结的心得经验,这些都是符合我个人情况的,例如我短时记忆力及理解能力较强,可以在短时间内搞明白一件事,但自控能力较差,需要有最后期限(deadline)限制。我的这些经验可以提供给你参考,却需要你根据自身情况加以选择性的吸收借鉴。条条道路通罗马,我不认为有100%对或100%错的路径。我还是强调以兴趣出发,适合自己的就是最好的。

大咖说直播中奖名单

机械键盘:

张靖,188****5832

坚果手机:

谢植浩,155****4159;杨扬居,155****0508

大鼠标垫:

边鹏江,152****2802;郭泽易,132****2845;张辉,186****7971;遥远,187****8180;崔世祥,155****0373;袁薛圭,187****5015;邹园斌,186****6612;王松林,136****1096;余丹,180****5807;吴毅伟,156****6053

下周一工作人员会联系以上中奖用户,请保持手机畅通!

今日荐文

点击下方图片即可阅读

一篇文了解微信的技术之道:系统、架构、朋友圈……



喜欢我们的会点赞,爱我们的会分享!

 
InfoQ 更多文章 Q新闻丨美国成人网站使用WebSocket绕过广告屏蔽插件;Nginx何时取代Apache?谷歌Dart重返舞台 一篇文了解微信的技术之道:系统、架构、朋友圈…… API平台对比哪家强:Twitter还是Slack? 对Gartner发布2017年十大技术趋势的分析 微信PaxosStore:深入浅出Paxos算法协议
猜您喜欢 学习ASP.NET Core,你必须了解无处不在的“依赖注入” 对不起,又秀了一波恩爱! 一次心惊肉跳的服务器误删文件的恢复过程 树莓派最主要制造商以 8.7 亿美元的身价被收购 App定位和地图的那些坑