本文目录
- Bigtable和MapReduce、GFS之间的关系是什么
- 作为程序员,是什么让你觉得自己与众不同
- DeepMind的联合创始人加入谷歌之后负责什么工作
- 踢球很挣钱吗五大联赛的最高薪球员都是谁
- 如何看待Google下一代人工智能架构Pathways
- 程序员也有做得好的和做得差的,优秀程序员和一般程序员的差别在哪里
- 有谁可以介绍一下谷歌大牛Jeff Dean以及与他相关的事迹么
- 文科生如何成为AI科学家
- 为什么国内IT公司leader以上就不怎么写代码,而据说Google的Jeff Dean还写代码到底哪种情况好呢
- 高级程序员和普通程序员有什么区别
Bigtable和MapReduce、GFS之间的关系是什么
GFS、Bigtable、MapReduce的关系
GFS(Google File System)使Google的分布式文件系统,Bigtable也是构建在GFS之上的,MapReduce也需要利用GFS作为数据的输入和输出。
Bigtable是什么
Bigtable是分布式表格系统,表格由很多行组成,每行通过一个rowkey唯一标识,每行包含很多列,多个列组成列族。列族是访问控制的基本单元。Bigtable构建在GFS之上,并且依赖于Goole的Chubby进行服务器的选举和全局信息的维护。
读写
当有客户端向 发送写操作时,它会先向 tablet log追加一条记录,在日志成功追加之后再向 memtable 中插入该条记录,写比较方便。
当有客户端进行读操作时,会在 memtable 和 SSTable 上进行合并查找。读就比较复杂了,还需要确认数据在哪里,当然这里会使用很多优化的方法,比如缓存数据,使用Bloom lters快速确认数据是不是存在一个SSTable里。
memtable和SSTable中的数据都是有序的,SSTable是由memtable生成的,当memtable达到一定量时,就会被冻结,新的memtable就会被生成,被冻结的memtable就会转化成SSTable,并写入到GFS上。
LevelDB 是对Bigtable 论文中描述的键值存储系统的实现,并且由 Bigtable 的作者 Jeff Dean 和 Sanjay Ghemawat 共同完成,可以参考下LevelDB的实现。
总结
了解Bigtable,需要了解下LSM树,现在的数据存储引擎一般就是哈希、B树、LSM树。像我们使用的mysql的InnoDB存储引擎就是B+树。
希望对你有所帮助,有帮助记得点赞哦!可以关注下,后面持续分享架构和Java的文章,谢谢!作为程序员,是什么让你觉得自己与众不同
作为一名IT行业的从业人员,也是一名老程序员,现在主要在从事产品研发及项目管理工作。所以我来探讨一下这个问题。
程序员也是人
程序员也是人,普通人一个,两个肩膀扛着一个脑袋,走进科技园看到的大部分人都是程序员。再看看我身边的这些程序员,哪个也没长出三头六臂来,正是这么一群普通人却在人们眼中是那么的不一般。
程序员的与众不同
1. 工作习惯及形象
作为程序员由于工作和思维习惯的不同,已经逐步形成了一种生活方法和习惯,这些做事风格让人一眼就可以看出他是一个程序员-格子衫、短裤、双肩包等等。
2. 辑思维推理能力强
程序员的工作性质决定了这个特性。需求、设计、方案、架构、算法、性能、安全、BUG等各环节造就了程序员的思维推理、逻辑严谨、分析问题及解决问题的方式。
3. 学习能力强
因为项目的需要,不同项目不同需求、不同技术架构,对于程序员来说也是不同的挑战。当今新技 术日新月异,解决不同问题用到不同技术方案。新技术层出不穷,具有良好的学习能力,能及时获 取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。
相信自己,作为一名程序员,只要你喜欢你的工作,就坚持下去,每一步都是自己努力的痕迹,你就会与众不同。
DeepMind的联合创始人加入谷歌之后负责什么工作
周二,拉里·佩奇(Larry Page)与谢尔盖·布林(Sergey Brin)双双卸任谷歌母公司Alphabet职务,桑达尔·皮查伊(Sundar Pichai)走马上任,分别从二位元老手中接下了大权,从此,Alphabet的CEO与总裁合二为一。而高层调整并未结束,DeepMind的联合创始人穆斯塔法·苏莱曼(Mustafa Suleyman)在今天发布的推文中,表示他将从DeepMind离职加入Google。
虽然DeepMind和Google两家公司均隶属于Alphabet,但苏莱曼现在是直接加入Google。苏莱曼和Demis Hassabis、Shane Legg共同创立了DeepMind,因AlphaGo打败职业围棋选手李世石而享誉全球。
尽管Suleyman尚未宣布明年1月将加入Google的职位,但该推文显示他将与Google AI负责人Jeff Dean和全球事务高级副总裁Kent Walker一起继续从事人工智能工作。可以预见,本次高层调整将帮助Google朝着人工智能更快向前迈进。
踢球很挣钱吗五大联赛的最高薪球员都是谁
谈收入这种东西,最忌讳的就是盯着几个人不放,比如盯着梅西和C罗的收入,说踢足球赚钱,你可知道,就算是程序员也有张小龙,Jeff Dean这样收入过亿的大神,但是你身边如果有想当程序员的朋友,也不会把这几个人的收入当自己的“榜样”。
了解一样职业是否赚钱,要知道他的平均收入,大多数人的收入,职业发展路线,以及成为从业者的难度。
足球运动员的收入高,主要是一个收入最高的群体比较高,顶级职业联赛的球员平均收入高,但是你要知道,一个国家,最多也就能养500来人的顶级联赛足球运动员,而且每年也就几十人都不到的上下流动。
大多数业余的,或者半职业的球员,收入也就是几千元,甚至没有收入,就不说踢足球消耗多大了。
而且,千万别觉得,踢足球只要踢多年就一定能踢出来,有的是从小就花了几十万踢足球,最后连个相关从业者都混不上的人,你要成为职业球员,付出的努力,以及你本身自带的天赋,就根本不是个可以像成为一个程序员,会计,记者这样的从业者一样,可以按部就班的努力可以达到的。
所以,可千万别看着踢足球的人赚钱,别忘了,他们背后的事情。
至于五大联赛谁的收入最高,列出如下:
英超-桑切斯(曼联)3070万欧元/年
西甲-梅西(巴塞罗那)4000万欧元/年
意甲-C罗(尤文图斯)3100万欧元/年
德甲-莱万多夫斯基(拜仁慕尼黑)23万欧元/周
法甲-内马尔(巴黎圣日耳曼)307万欧元/月
具体收入可能有出入,但是人和数量级应该是没错的。
如何看待Google下一代人工智能架构Pathways
1,减少各个厂尤其是中小厂重复模型建设;
2,共用一套模型架构,相互之间可以拿到一些自己拿不到的关键特征,有利于解决目前信息孤岛的问题;
3,更像人类认知结构,迈向强人工智能的一条路径;
4,真的共享模型了,机构和个人的隐私问题变得重要起来
算法从业者
程序员也有做得好的和做得差的,优秀程序员和一般程序员的差别在哪里
我做程序开发多年,目前也在带移动互联团队和大数据团队,下面我说一说我认为优秀程序员的标准,总结一下大概有以下几点:
第一,代码规范,格式良好。这一点是程序员基本的职业素养,但并不是所有的程序员都能写出格式良好的代码,有的程序员甚至很少写注释。
第二,学习能力强。程序员的知识结构更新相对比较快,像前端框架基本上每一年都会有变化,这就要求程序员能有较强的学习能力。
第三,解决问题能力强。这是判定一个程序员能力的重要环节,有的程序员遇到没见过的问题就会不知所措,而有的程序员则会通过各种途径来解决。
第四,沟通能力强。作为一名程序员是否能理解项目经理的意思,是否能表达清楚自己的思路是非常重要的。
第五,抗压能力强。目前程序员的工作强度比较大,往往项目周期短,任务量大,抗压能力差的程序员注定走不远。
第六,善于带新人。这是我评价一个程序员是否优秀的指标,能通过项目把新人带出来也是程序员的工作任务之一。
优秀的程序员是研发团队的核心财富,大部分科技企业都非常注重程序员的培养,也为程序员的提升提供各种渠道。优秀的程序员不是天生的,大部分优秀的程序员是培养出来的,所以养成良好的编程习惯,培养优秀的职场素养对程序员发展来说非常重要。
我做程序员多年,目前也在做智能诊疗方面的研发,我会陆续在头条上写一些软件开发方面的科普文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有软件开发方面的问题,也可以咨询我。
谢谢!
有谁可以介绍一下谷歌大牛Jeff Dean以及与他相关的事迹么
Jeff Dean身为谷歌的著名工程师,最大的成就应是在人工智能领域的成就,TensorFlow的产生,运用于各种感知和语言理解任务的机器学习。比如语音识别、相册搜索。
而他的事迹有很多,如在谷歌参与面试的时候,Jeff被问及如果P=NP意味着什么。他说“P=0”或“N=1”。然后,所有面试官还没笑完之前,Jeff瞄了一眼谷歌的公共证书然后在白板上写对了谷歌对应的密钥。还有就是编译器从来不给Jeff编译警告,而是Jeff警告编译器。
文科生如何成为AI科学家
可以参考这个案例。谷歌大脑科学家 Sara Hooker 的经历最近被《经济学人》当做典型报道了——但这件事却让她感到非常担忧。这位女科学家有着传奇的经历:出生在非洲,本科在卡尔顿学院学习经济学,没有博士学位,却成为了谷歌大脑的一名研究科学家。
她曾在 fast.ai 上接受过 12 周机器学习兼职课程,这成为了经济学人介绍的重点。不过,Hooker 本人在文章发出之后自己撰文表示:我的成功无法复制。
Jeff Dean 转发了 Hooker 的博客,并表示:「现在我很自豪能够与她共事。」
在最新一期的《经济学人》上,有一篇题为《New schemes teach the masses to learn AI》的文章。该文讲述了 fast.ai 对我所获成功的影响。fast.ai 是旧金山湾区一个非营利性组织,旨在揭露深度学习之谜,让大家能够使用这项技术。我在文中被作为一个成功的案例提及——「fast.ai 的首届毕业生 Sara Hooker 在完成课程后被谷歌录用,加入了竞争激烈的 AI 实习项目(AI Residency Program),她之前从未从事过深度学习。」
该文内容引起了我的极度不适,一方面,我无法否认对 fast.ai 的认可,Rachel 和 Jeremy 都是我钦佩的人,是他们为世界各地成千上万的学生提供了进入这个领域的渠道,这种做法在同行中尚属首次。然而,我又做不到忽视该文引起的不适感,因为它这种简化的叙述会误导其他想要进入这一领域的人。
我的确参加了 fast.ai 的第一期课程,也的确在后来加入了谷歌大脑的 AI 实习项目。但是,将我的成功完全归因于 12 周的晚间课程(part 1 和 part 2)不仅有些牵强,还会给那些想要自学机器学习的人留下一种灰姑娘快速华丽转身的错误印象。而且这种表述将我自身的努力和成长弱化了。
我一度非常清楚自己喜欢做什么。本科期间,我既没有接触过机器学习,也没有接触过计算机科学。在成长过程中,我曾待过非洲、莫桑比克、莱索托、斯威士兰和南非。我的家人现在定居于利比里亚的蒙罗维亚。
我的第一次美国之旅是去明尼苏达州,在那里我拿着奖学金上了一所名为 Carleton College 的小型文科学校。我去参加国际学生定向活动之前,从未见过校园。来自非洲的我甚至不知道明尼苏达州的冬天有多冷。虽然天气很恶劣,但我仍享受了四年学习文科课程和主修经济学的美好校园时光。我曾经的梦想是成为世界银行的经济学家。这与我童年时期接触到的大多数技术人员都是来自国际货币基金组织和世界粮食计划署等组织的经济学家不无关系。
我决定毕业几年后再申请经济学博士学位,因为我当时想和旧金山湾区的经济学博士一起研究反垄断问题。我们将经济建模和统计应用于现实世界的案例和数据集,以评估是否存在价格操纵或公司是否滥用权力欺骗消费者。
2014 年初,Delta Analytics 首次对旧金山湾区的非盈利机构进行展示。
搬到旧金山几个月之后,我和其他几个经济学者(Jonathan Wang、Cecilia Cheng、Asim Manizada、Tom Shannahan 以及 Eytan Schindelhaim)开始在周末会面,充当非营利机构的志愿者。我们并不清楚自己所做的事有何意义,但我们觉得将自己的数据技巧免费提供给非营利机构可能是一种有用的回报方式。我们给旧金山湾区的一些非盈利机构发了邮件,得到的回应之多出乎意料。
我们发现,许多机构有自己的数据,但却不知道如何利用这些数据加速自己的发展。那一年,我们以 Delta Analytics 的名称注册了一家非盈利机构,许多工程师、数据分析员及研究人员加入我们成为志愿者。Delta 仍然完全依靠志愿者运营,没有一名全职员工,大家都免费为非盈利机构提供服务。截止到我申请加入谷歌大脑实习项目时,我们已经完成了 30 余家非盈利机构的项目。
Delta Analytics 第二批志愿者团队(2016)。
Delta 是我人生中的一个转折点,因为合作机构提供的数据通常是杂乱、非结构化的。而我们需要用到的线性模型(比如同方差、无自相关,正态分布)他们却很少提供。我亲历了经济学家最喜欢的工具——线性函数的失败。我决定去了解更多复杂的建模形式。
我加入了一家名为 Udemy 的初创公司,担任数据分析员。这家公司有 150 人,致力于帮助任何人学习任何东西。我的老板将颇具挑战性且影响广泛的项目交给我,有利于提高我技术方面的能力。我入职第一年做的重要项目之一是收集数据,开发、部署 Udemy 的首个垃圾邮件检测算法。
做垃圾邮件检测的项目让我立志在技术工程师的道路上继续成长。我想快速迭代,对手里的模型进行端到端的控制,包括将其部署到生产中。这项工作需要精通编程。在职业生涯早期,我已经学过了 STATA(一个类似 MATLAB 的统计程序)、R 和 SQL。如今,我想玩转 Python。我在 Hackbright 上夜晚补习班,多数时候都是早上 4 点起床,赶在上班之前练习编程。直到现在我还保留着这个习惯,只不过我现在是利用这段时间读与我的研究领域没有直接关联的论文,为我想学的其它领域腾出时间。
半年之后,尽管我的编程能力得到提高,但去应聘工程师还不够熟练。那时候,Udemy 数据科学团队与我的 Analytics 团队是分离的。Udemy 在我身上投资。他们批准我转到工程岗位,成为首个非博士数据科学家。我从推荐算法入手,学习如何在数百万人中大规模部署模型。向工程领域的转变加速了我的技术成长,允许我继续自己的工程师进阶之路。
Udemy 数据团队
在 Udemy 成长的同时,我仍在参与 Delta 项目。其中有两个项目我非常喜欢,首先是(与 Steven Troxler, Kago Kagichiri, Moses Mutuku 一起)在肯尼亚内罗毕与 Eneza Education 公司合作的项目。这是一家科技教育公司,使用非智能手机让 400 多万中小学生通过手机短信参加练习测验。
Eneza 的数据提供了关于肯尼亚手机使用情况以及社区学习实践的精彩见解。我们的工作是找出阻碍学生参与活动的困难测验,并改进针对个人需求与能力的定制方法。第二个是(与 Sean McPherson, Stepan Zapf, Steven Troxler, Cassandra Jacobs, Christopher Kaushaar 一起)和 Rainforest Connection 合作的项目。
这个项目旨在利用来自雨林的流音频(streamed audio)识别非法砍伐森林的行为。我们做出将音频转换成光谱图的设施,并使用卷积神经网络进行分类。我们还研究了一些模型以便更好地对回收手机测验到的声音进行三角测量。
2017 年初,我决定开设一个课程来介绍机器学习的基本原理。我的动机是希望将 Delta 从一个弥补技能差距的非营利性组织转变为一个在世界各地建立技术力量的组织。通过增强当地社区利用其数据的能力,我们鼓励更加可持续发展的长期干预。我离开了 Udemy,开始全心和 Delta 的一群志愿者(Hannah Song, Amanda Su, Jack Pfeiffer, Rosina Norton, Emily Rourke, Kevin Pan, Melissa Fabros)开发包含理论和编码模块课程。
我和 Hannah Song 一起搬到了肯尼亚内罗毕,开始试点授课。我们通过调用 Kiva API 来提取过去 10 年在肯尼亚发放的所有贷款,然后构建了一个本地数据集。Melissa Fabros, Lina Huang and Sydney Wong 目前在摩洛哥的加迪尔教授这个课程,教学团队也随之成长,成员包括 Brian Spiering, Mario Carrillo, Thuongvu Ho and Parikshit Sharm。
在肯尼亚内罗毕举办的 Delta Analytics 试点课程。
总之,上述就是我在参加 fast.ai 课程之前的四年奋斗过程。我不知道能够加入 Google AI residency 计划的原因,但我认为这不仅仅是因为我上过 fast.ai 课程。
这不是说 Rachel 和 Jeremy 做的事没有价值,fast.ai 非常特别:它是可获取、赋能和民主化的一部分。我与 fast.ai 的愿景及其社区有很深的联结。此外,Rachel 和 Jeremy 在我职业生涯每一个拐点都帮助了我。
然而,我担心的是,《经济学人》中的故事不仅取代了我自己的叙述,而且对在这个领域开始工作的所有都设定了不切实际的期望。这篇文章没有突显这条路有多难,如果短期内没有达到目标,学生们可能会质疑自己。
这里有一个令人难以接受的真相,即单凭努力几乎无法取得成就。在这条路上有很多人相信我,将我推出舒适区,给我影响广泛、举足轻重、能让我大展拳脚的项目。我从旧金山的经历中受益良多,那里汇集了许多技术达人,让我可以获得指导、沉浸在有趣的技术中。此外还有运气的因素。谷歌大脑实习项目几年前并不存在。我是该项目历程中的第二批成员。项目的初衷和 fast.ai 的动机一样具有革命性;该项目旨在为来自多领域的人开辟研究领域。从其他顶级研究实验室(Uber、Facebook、Microsoft、OpenAI)宣布的项目数量来看,该项目的成功是显而易见的。
我们的领域需要更高的多样性。必须有更多像我这样的人受到欢迎,同时也能接触到获得成功的工具。不过,人们做好成功准备的一部分在于理解它具有多大挑战性,在进发的道路上会遇到多少失败。《经济学人》认为,在为期 12 周的兼职课程结束之后万事大吉,这是具有误导性的。
谷歌大脑并不是职业的终点:我热爱这个工作,也非常喜欢自己的同事们,但我仍然需要谨慎地强调这一点。在这个世界上仍然有很多人正在解决重要的问题——但却不是在谷歌工作的。如果你正在考虑开始自己的自学之旅,就必须事先问自己一个问题:如果你不加入谷歌,是否还对机器学习充满热情?如果你的答案并不确定,请谨慎行事。
最后,研究永无止境。我在一个自己喜欢的领域里工作,同事们不断激励着我。谷歌大脑让我有机会进行深度神经网络可解释性和模型压缩的重要研究。我也有机会参与加纳阿克拉 Moustapha Cisse 领导的谷歌大脑实验室的一部分。
有意思的是,当你知道的越多,你就越发感觉自己无知。我对很多子领域的接触依然有限。我仍在不断地问问题,在对于概念不明确的时候及时跟进。我不会装作理解自己不懂的东西。不过,我不同寻常的背景为自己带来了一些优势:我有着同事们不常有的见解,而我涉足不同领域的经历也让自己经常找到一些新颖的解决方法。
与谷歌 AI 成员 Jonas Kemp 和 Kathryn Rough 共同庆祝入职一周年。
从 2017 年起,我开始教授机器学习基础知识,我的动机与 Rachel 和 Jeremy 相同。我们并不是孤军奋战,有像 Deep Learning Indaba、AIMS 硕士项目、Data Science Africa、深度学习暑期学校以及 Distill.pub 等旨在面向入门者的课程。我希望通过课程让所有对机器学习感兴趣的人理解这个领域的基本概念。对于一些人来说,机器学习或许会成为一时的兴趣;对于另一些人来说,这可能是他们成为研究者、工程师、数据科学家、分析师的起点。两种结果都非常有意义。机器学习社区需要百家争鸣,以深入讨论技术对于社会的影响。
我们更需要鼓励那些希望对于新方法和应用有所贡献的人。毫无疑问,我们的旅途还在进行中,尽管缓慢,但一直是充实的。
为什么国内IT公司leader以上就不怎么写代码,而据说Google的Jeff Dean还写代码到底哪种情况好呢
国内由技术转领导的,绝大多数不是因为技术能力牛x提升上去的,相反的,是技术能力上不去了,平时也就一般般的那种,把更多时间花在了人事关系上,为转型做铺垫。这样的人到了管理位置上,更不可能写代码了。
希望国人从美国制裁中国,开始限制一些软件使用上能领悟,高端软件并不是一群刚毕业的年轻小伙能沉淀开发得出来的,屏弃所谓的35岁现象,让做研发的安安心心,踏踏实实的做些中国软件出来。
高级程序员和普通程序员有什么区别
关于高级程序员和普通程序员的区别其实主要体现在工作内容和岗位分工上,能力是区分的一个重要方式,但是如果把一个普通程序员放在高级程序员的岗位上也未必会做的很差,也许普通程序员只是差一个机会而已。
关于高级程序员和普通程序员在技术上的区分并没有什么太多可探讨的内容,因为不同的公司技术标准并不统一,单纯从技术角度来描述高级程序员和普通程序员的区别并不全面。通常情况下高级程序员与普通程序员在工作内容上会有以下几个方面的不同:
第一:开发内容不同。通常高级程序员往往做的是顶层实现(设计是架构师的任务)的开发任务,普通程序员做的是功能模块实现的开发任务。通常情况下,高级程序员会把整个开发框架搭建出来,然后把具体的开发任务分配给项目组中的普通程序员。
第二:职责不同。高级程序员往往要对产品的整体质量和开发周期周期负责,整个产品的技术实现通常都要求高级程序员全程把控。而普通程序员往往只对自己开发的功能模块负责,能够按照项目的技术标准按时交付测试就可以了。
第三:高级程序员通常有管理任务。通常情况下,项目组中的高级程序员也有一部分管理任务,简单的说就是负责目组的一些任务安排,另外可能还需要带新人,这也是高级程序员工作内容的一部分。
整体上来说,高级程序员是一个相对的概念,不是一个绝对的概念,不同公司的程序员也有不同的划分标准,通常来说都会有一个清晰的级别进行划分,这也是目前全球软件业的通用做法,通过自己的努力,大部分程序员在工作一段时间以后都会成长为高级程序员。
我做软件开发工作多年,目前也在带软件开发团队,我会陆续在头条写一些关于软件开发方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有软件开发方面的问题,也可以咨询我。
谢谢!