我是一名程序员,到最近为止一直从事机器学习,我自认为这是很是有趣的。我最喜欢机器学习的一点是,对于这项工做,真正重要和有趣的是我要真正花时间在机器数据上动手,而且加以理解,而后再以本身的视角去看待一个个机器。html
我记得有一个星期我在想「个人工做应该是创建一个个可以准确地分类百万以上数据的系统,而不是手动地去作这些事情。」不过实际上,最终也没有任何人要雇佣我去手动的处理这些问题。程序员
因此程序员有时候可以得到到很高的工资,我想,这是由于咱们能够创建可以充分运用电脑功能的系统去处理多到不可理喻的工做量的事情。若是你能创建 Gmail 反垃圾邮件系统,你就能够帮助数以百万计的人从收件箱里删除垃圾邮件!这真的是很神奇又惊人的工做,并且它比各类 bug 和电脑问题更值得研究。编程
可是作这些事情是真的要花费不少时间。我作过的有意思的东西基本上,都要花费两至六个月。并且,花费比这更多时间在项目上是很常见的事情。我有一个朋友在一个项目上花费了一年多的时间,最后他创建了一个比谷歌还好的绘制大众运输地图的系统。尽管辛苦,但那真的很酷。网络
以上意味着实际上你能作出来的东西很少,并且若是最终的成果中有哪部分没有获得青睐,那就宣告了你一个季度的工做就这么浪费了。不过这都不要紧,这好歹证实了你作的工做是值得深思熟虑的。机器学习
我在编程上面花的时间越多,实际上我就越能体会往什么项目上付诸精力实在难以取舍。就像我可让一台电脑作十亿份的事情(就是字面意思,那实际上是很是容易的),但我到底要从哪十亿开始呢?哪十亿会产生更多的影响?哪十亿的工做才能让个人公司运营得更好一些?性能
曾经有一次,我在刚开始经手某一项工做时和个人经理说:“嘿,我在想要作点别的什么!”他说,:“好啊,你想作什么事情来替代现有的方案?”因而我创建了这个项目的第一个版本(那是一个方便跟踪机器学习实验的小型系统),两年事后这个系统仍然被使用着,并且有一群人的学习就是创建在这个系统之上的。事实证实,这是一个好主意!学习
在刚开始编程的时候,我觉得个人工做就是人们告诉我写什么代码,而后我就写下来那些代码,那就是所有了。固然我一路上都获得了很多指导,但那不是做为一个程序员应该有的样子。我应该为那些会给工程师们很大自主权的地方工做。测试
因此与之相应的,对我来讲,工做应该是如下的情形:设计
o嗯,咱们这有一个长远的目标,或者有三个,也或许有六个
o也有一堆不一样的须要紧急处理的小问题
o如今你要来找出眼下解决哪一个比较好
o也必须弄清楚如何解决
o还可能存在哪些不可能解决的问题
o和全部致使问题的外部因素
o你去跟那些想过这些问题的人讨论一会而后解决掉它!
o这里是这周 40 小时的工做。预备,开始。日志
那么,你要如何决定作什么呢?
我有一个同事 Cory Watson 在 Monitorama 有一些很酷的言论,他把他作的事称为为建立一份可观测的文化。 culture of observability原文连接
他对本身所作的事描述以下:
换句话说,若是咱们的传感器——想一想指标,日志和跟踪——都不错,那么咱们能够了解咱们的系统工做得是如此高效。
我在 Stripe 的工做就是确保这件事情。和 Cory 一块儿工做的时候,会很明显的发现他正在不懈努力地专一于让你们更容易得知道咱们的软件系统正在作什么。这是很是有帮助的,公司的显示板和指标已经所以好了不少了。它更易于性能改进和检测并理解错误。
和 Cory 一块儿工做的时候,会很明显的发现他正在不懈努力地专一于让你们更容易得知道咱们的软件系统正在作什么。这是很是有帮助的,公司的显示板和指标已经所以好了不少了。它更易于性能改进和检测并理解错误。
我那个作过地图应用程序的朋友 Anton 很是在意如何表示公交信息,并且他老是在想这件事情,因此我并不惊讶于他可以用这么棒的方式去完成好这件事。
我认为这样的工做焦点可以起到难以置信的帮助。——当我没有一个明确的目标的时候,我会发现要去完成或者决定一件事情真的真的很难。我偶尔会模拟“若是我在一个派对上我是否能解释清楚我本身的工做?”的测试。每当我没法经过这项测试的时候(特别是若是我在派对上碰见的人是一个软件工程师的时候)我就会以为很难受。
显然,你并不须要始终专一于一样的事情( Jeff Dean 就像是谷歌一个传奇仍是什么的,我以为他好像作了一吨的不一样的事情),但有一个工做焦点彷佛真的很重要。
在工做中有不少可能发生的事情都要考虑一下!而做为一我的(不是经理),在同一时间只能关注到有限的东西。我看到人们致力于:
因此无论怎样我须要找到一个足够大并且足够重要的工做焦点(我不知道我是否能向个人同事解释清楚我为何作我正在作的事情),可是又小到一我的(或一个小团体)足够推进它发展。而后就能更容易地来编写代码从而实现这一个愿景!
这篇文章本来的题目是“你要如何致力于正确的事情”,我把它改掉了,由于我认为那样说是一种错误(并且有一点点危险)的措辞——没有事情是对每一个人来讲都正确的,就像我还在和不少致力于更重要事情的很棒的人一块儿工做。不是全部事情都是一样具备影响力的(这也是这篇文章的主要内容),可是这篇文章是关于寻找在你能力范围以内的对你来讲有用的事情,而不是找一个对全部人都是最优的东西。
若是我只写了一篇对全部人都是最好的博客文章,我就好像字面上历来没有发表过任何东西。
若是你正在作一件长期或者一项挑战很大的野心勃勃的事业,关于它,有一件事你必须作到——你必须相信你能够作完这个项目。若是你开展了一个很酷的为期一年的项目,一路上大约会有 5000 万事情会出错。那些你觉得不会有问题的东西也会出问题。而若是在又一周或三周过得很糟糕的时候,或者有人不相信你所作的事情是正确的时候就放弃,那你永远不会完成你手头的事情。
我认为这是一个导师或者一个高级别的人能够为比本身低级别的人作的一件很是重要的事情。不少时候你无法分辨什么是有可能完成的,什么是不可能完成的,什么样的障碍对你来讲是有利的,什么样的障碍是不可逾越的。可是,这实际上是能够靠本身努力的!若是有人告诉你:“不要担忧,一切都会正常的!”,而后你就能够开始了,直击问题,而后寻求建议,并坚持下去,最终取得胜利。
一旦你有了足够的胜利经验和失败经验,你就会开始有本身的感受,知道哪些东西会起做用,哪些永远都不会,而后本身可以决定要坚持什么。
人们会常常谈论“ Agile ”和 MVPs ,但我不认为他们可以被称之为一个对问题的完整解答——有些时候你须要构建一个大项目,你要写设计文件构建原型,但最终你要决定那些更操蛋的事情,继续工做,保证投入大量时间构建项目,以及在你有能力的时候展现项目的中期进展。
此外须要你的组织支持你的工做——若是你身边的人不相信你能够作到这件事,那么你将会很是难完成任何事情。
我喜欢作一个数学/ CS 本科生。个人教授会给我一系列的挑战任务,可是它们都始终在个人能力范围以内。我一直在一点点地进步!这些挑战真的太有趣了!我在里面简直如鱼得水!可是,这样的日子仍是结束了。
个人工做更像是——我有一系列的任务,从最琐碎的小事,到我彻底不知道怎么下手的东西。而后我须要搞清楚要如何向他人询问相关问题,而后提高个人能力,从而去啃那些硬骨头。我须要本身判断别人对我说的“挺好的”是否是真的在夸奖我已经决定要作的事情,由于没有人会为我完成它们,真的没有。 Dan Luu 指给我看的 Rebecca Frankel 写的关于这篇帖子(done and gets things smart原文连接)的有趣评论以下:
我十分认同 Steve Yegge 的说法——这是一个对那些在另外一层次上的人极为重要的(小)群体,他们和普通的聪明勤奋的人的确不一样。这里有另外一种方式去解释这种巨大的突破——可能我只是一直在用这些讨论创建了这样的观念:这是两种人的差别,一种是努力在别人设置的测试下一直想要努力作好的人,另外一种是已经认知到本身的能力水平,努力去提高本身对本身的能力评级,他们每每比别人更加更当心仔细,也更加迷恋完美主义。
所以,在某种程度上,着手一件重要的事情,作得好就意味着你必须肯定你的目标是什么,也必须创建本身的内部标准,不管你是否曾经有过这些东西。除此以外,你要知道也许其它人能够帮助你上手,但一切结果最终仍是由你掌握。
- Maggie 谈了“过后推进的发展方法”——去看看那些失败了不少次的东西吧!看你能不能作到让他们不要再失败了!
我以为很奇怪去认可我真的在为此努力奋斗。我并不总能构建好的想法。有时候有些我认为是很好的想法,因而我着手使它们成真,它们确实挺棒的,但有时候我实践了想法却发现它们是...真的并不怎么样。有时候,对本身的工做标准让我没法弄清楚到底如何知足它,这真的很无奈。
有时候别人会有一些想法,我听了以为挺好的而后就会帮着他们构造他们所想的东西,去让这些好东西成真。直到如今,我参与过的最好的的项目就是令我兴奋的别人的点子。
有时候我会几个月都搞不明白别人的一个想法,但是在他们把这些想法真正构建起来后,我就会开始哦!天啊!这真的太棒了!!即便在现实中去发现真正好的东西挺难的。
一些连接:
感谢 Emil Sit , Camille Fournier , Kyle Kingsbury , Laura Lindzey , Lindsey Kuper , Stephen Tu , Dan Luu , Maggie Zhou , SunahSuh , Julia Hansbrough ,还有其余为这些文章做出评论的人。