php镜像怎么配置,该如何学习大数据知识?
我们身处一个“技术爆炸”和“共享、开源”的时代,先进技术的更新迭代速率超过了历史上任何一个时期,而且这些技术也不再闭塞,人人都可以接触并学习。终身学习已经是我们每个人不得不面对的问题,这一点在大数据/人工智能领域体现的尤为明显:层出不穷的新技术,一方面为我们带来了便利,但同时也使我们面临难以高效学习和选择的窘境。因此,在这样的时代背景下学习大数据知识,需要有相适应的逻辑和方法。
本文试图帮助各位读者用好各类“共享、开源”的学习工具以及学习渠道,躲过各类新手容易误入的“深坑”,以最小时间成本和经济成本,优质地完成目标技术的学习和掌握。
本文首先分析了时代背景,继而对目前大数据领域的人才梯队进行了划分,最后给出了大数据/人工智能人才从菜鸟到高手的进阶指南。
一、背景铺垫
“技术爆炸”以及“共享开源”是这个时代最有特色的标签,笔者认为二者是互为因果且紧密联系的,首先在“技术爆炸”的时代,对于走在技术发展最前沿的研究团队来说,“技术变现”的最好手段就是“共享开源”。反观互联网、移动互联发展成熟之前,信息是十分闭塞的,某项技术创新一旦出现就需要第一时间注册专利,技术需要靠政府来保护,而技术变现的唯一途径就是出卖专利或者组织生产形成产品。
现如今互联网及移动互联已经发展的十分成熟,新的信息会以极低的成本在极短的时间内传遍世界的每个角落,所以处在技术前沿的研究团队仅需要在第一时间将自己的工作成果上传到“arxiv”或者“github”之类中立的共享、开源网站,便会立即得到全球舆论的共同保护,这样的力度要远远强于某个国家的专利保护。
随后,只要新技术确有应用价值或者学术价值,那么各类资本巨头、科技大鳄以及相关的各类组织便会排着队上门送出丰厚的offer,对于前沿团队来说,技术变现的时间点要远远早于技术产品化的时间点。
其次,因为“技术爆炸”总有新的技术等待着前沿团队去研究发现,所以前沿团队保持领先的最好方法不是捂着现有成果不放,而是尽快“共享开源”实现变现,然后投入到新的研究工作中。
最后,“共享开源”也在很大程度上促进了“技术爆炸”,无论任何技术、科技的长足发展都需要一个庞大人才体系来支撑,反观历史上的各个时期,分享知识、培养人才的渠道主要是“学校”,这一渠道不但形式单一而且往往具备相当的门槛,会将相当一部分“有志青年”挡在门外。
而在如今这个时代,知识传播最快速的渠道是互联网,由于“共享开源”,世界上最优质的教育资源以及最先进的学术、技术理念忽然间没有了任何门槛,面向全部个体无差别开放,结果就是只要某一技术、科技领域有了很大的突破并具备广阔的应用前景(如大数据、人工智能),那么相应的人才梯队会在短时间内自动补齐跟上。
站在大数据学术前沿的研究团队只需要一往无前地开拓疆域,其后的人才梯队随即会自动开展“新技术论证”及“技术产品化”等“保障”工作,保障这一技术领域及相关行业的健康发展,来进一步促进资源向金字塔尖的前沿团队汇聚,支撑其开拓工作。
我们将上文提到的人才梯队划分为:菜鸟筑基、初入江湖、登堂入室以及华山论剑四个等级:
菜鸟筑基:本阶段的人才以大数据基础理论的学习为主,尚不能胜任真实的项目或者工作;
初入江湖:本阶段的人才已经具备了初步的大数据实践的能力,建议通过实践(做项目、打比赛等)来更好地带动学习;
登堂入室:本阶段的人才需具备大数据科研论文的调研、阅读和理解能力,能够成功地将论文中的算法进行复现;
华山论剑:本阶段的人才能够独立地开展大数据新技术的研究工作,具有发表原创性论文的能力。
下文将针对处于不同阶段的大数据人才,给出不同的修炼、升级建议。
二、菜鸟筑基
1. 最好的资源往往是公开的
读过背景铺垫后相信已经不需笔者再解释为什么最好的资源往往是公开的,在此直接给出一些获取高质量资源的渠道。首先推荐国外的三个网站,分别是“Coursera”、“Arxiv”以及“Github”。
Coursera是全球顶尖的在线学习网站,由业内极具学术造诣及分享精神的大咖创办。Coursera上的课程相对比较基础,应该是“小白”起飞最好的平台,在这里推荐吴恩达(Andrew Ng)开设的“机器学习”以及“深度学习”。对于国内学生来说最大的问题可能就是英语了,在这里需要明确一点,如果各位想要成为真正的高手,那么英语是永远绕不过去的坎,业内最新、最好的资料无一例外都是英文,即便是来自国内的顶尖高手在发论文时都不会选择用中文。
其实对于绝大多数人,英语并不应该被当作一门“学科”来学习,而应该被当作“工具”来用。具体的做法也没有捷径,就是看到不懂的单词立即查,单词不用刻意去记忆,下次遇到不会就再查一次,一切以快速弄懂句子含义为目标。
Arxiv以及Github是各位读者未来会特别常用的两个网站/工具,Arxiv上有最新最全的共享论文,论文中会对各类算法进行详尽的阐释,Github上有最新最好的开源代码,这些代码往往是对某种算法的实现,具体的使用方法网上有许多教程,在此不做展开。
读者可以简单的理解为Arxiv是修炼内功的地方,而Github是修炼外功的地方。只练内功不练外功是无法解决实际问题的,但只练外功不练内功又往往毫无威力,一定要内外兼修。最后再向大家介绍一个神奇的网站名叫“gitxiv”,会帮助各位找到论文与代码的对应关系。
2. 不要看书、不要看书、不要看书
一门学科怎么入门呢?菜鸟在面对这个问题时,最容易踩入的“深坑”就是找一本权威的书来从头学起,一旦踏入此坑,轻则荒废自己数周时间,重则对某一门学科彻底失望终生。首先好书本来就不多,往往可遇不可求。其次即便遇到好书,为了保证学术性,书中用语往往“严谨”但难懂,且会从学科的早期历史为读者打下“坚实基础”,讲到最近的技术手段时又戛然而止。最后,就算读者倾尽数月之功力,坚持读完了,笔者可以用血淋林的亲身实践告诉你,书中前半部分的内容一般人肯定会忘的。
当然也有特殊情况,如果各位已经确定了自己的研究方向,并且有高人/导师指点,给出了相应领域内必读好书的名录,这一类书还是值得一看的。不过在看的时候也要注意,不要纠结于某些细节问题,看不懂的地方可以先记下来,这类细节往往会在各位后面实践过程中的具体场景下恍然大悟。
正确的做法一句话就可以概括,好书是用来查的而不是用来啃的,什么时候来查呢?下文会逐步解答。
3. 找对好基友,连滚带爬往前走
现在已经不是一个单打独斗,凭着跌落断崖后找到一本秘籍闭关几年就能横扫天下的时代了,无论是像Hinton(推翻了BP算法的BP算法之父)这样的泰斗,还是像何凯明(发best paper像一般人发paper一样容易的神奇学霸)这样的新秀,都处在各自非常靠谱的团队中与小伙伴们共同探索。好基友不需要多,有一两个真正靠谱的就已经足够,至于队友的重要性后文会慢慢阐释。
菜鸟筑基这部分最后要给出的建议就是,千万不要在这个阶段停留太久,不要等“准备好了”再去着手实践,因为这里的“准备好了”往往包含菜鸟的不自信,不去进一步提升自己是永远准备不“好”的。一般情况下,想做“计算机视觉”或者“自然语言处理”等偏AI方向的同学在完成吴恩达的《深度学习》课程后,想做“数据挖掘”的同学在完成吴恩达的《机器学习》课程后,就可以选择相应的实践项目准备进入下一阶段了。
那么我们该选择什么实践手段呢?最佳的情况是有大神带队做真实项目,但是这样的机会往往可遇而不可求,在此不展开讨论。普罗大众型的办法是参加一个大数据比赛项目,现在国内的“阿里天池”以及国外的“Kaggle”都是开放式的大数据比赛平台,平台上会有各种组织发布的各类真实项目供大家实践、比赛。读到这里各位心里可能还存有很大的疑问:“就算学会了基本课程,在没有人带的情况下能上手实践吗?”,下文将陆续回答如何“连滚带爬”的进行实践。
三、初入江湖
1. 找到一个最高的baseline
这里的“baseline”可以理解为前人已经做出成果,当自己恰好需要去做相同工作时的参照。对于上文提到的情况,如果有大神带队进行实践的话,那么带队大神此前的实践经验就成为了全体小队成员的“baseline”。那对于没有“大神”资源的广大读者是否有更通用的解决办法呢?答案是肯定的。如果读者目前对于一类问题无从下手,例如刚刚学完“深度学习”的课程,但是不知道如何去做“自然语言处理”类的项目,最好的办法是利用好国内的“万方”以及“知网”这样的论文查询平台,去查询相关领域国内普通高校的学位论文,这样的论文绝大部分都是中文并且会在论文中介绍大量的基础背景知识,正好满足了我们的需求。
如果是对某一技术方的特定知识点不明所以,例如在做“自然语言处理”方向的项目,但却不太了解“LSTM”,则可以利用好国内的诸如“知乎”、“简书”以及“CSDN”这类的知识分享网站,只要不是太新的理论,都可以找到相应的博文或者解答。使用上述两类渠道的共同技巧是,多搜几篇文章对比着看。同一个概念或者技术,一篇文章很难全面描述清楚,并且由于文章作者不同,解释问题的出发点也不尽相同,所以如果各位遇到看不懂某篇文章的情况时,不用急躁,接着看下一篇文章就好。另外,前文提到的“好书”在这里就可以用来查了,读者会发现原来想记都记不住的知识点,只要“查”完并且“用”过,那么一般想忘都忘不掉。
这里对baseline所谓“高”的定义是,越接近学术前沿,实践效果越好,就认为越“高”。一般情况下,可参照的成果越“高”,中文文献就越少。
文章写到这里不知是否回答了上一章节提出的疑问,上一章节提到的“连滚带爬”指的就是我们在选定某一实践方向后,根据实践的最终成果再回过头来对我们的相关知识进行“查漏补缺”的过程。这样的学习过程,目标性更强,参与者完全有针对性的去学习,学到的东西可以立即实践,从而避免“学过就忘”的尴尬。
2. 合理追求quick win
笔者曾经仔细地研究过为什么女生逛街会“不知疲倦”,得到的答案是,女生每逛一家店铺,看看店铺中的鞋子/衣服/包包就能得到一定的兴奋点,在得到一个兴奋点后就想着直奔下一个兴奋点。类比到我们做项目/打比赛的过程中,我们需要为自己的团队设置这样的“兴奋点”,让团队成员都能够享受到“quick win”的快感,来支持大家继续推进。
而取得“quick win”的关键是要将手中的工作/任务合理划分成若干“稍微努力一下就能达到”的子任务,这中间的细节过于复杂,在此就不展开讨论。一个teamleader需要做的最重要的事,就是帮助团队合理划分任务而不断取得“quick win”,一个人只要具备这样的能力,无论技术高低都能够团结一批志同道合的小伙伴。
3. 你最大的动力往往来自DDL(Deadline)
有那么一句成功学的佳句是“每天叫醒我的不是闹钟而是梦想”,这句话听起来很励志,但对于90%的人来说就是胡扯,我们回首望去发现每天叫醒我们的往往是“上班迟到后被扣的工资”或者是“晚到实验室后老板的杀气”,这就是现实,听起来很残酷但是我们完全可以利用好它。具体到我们的升级以及项目推进中,能让我们不断向前的最大动力往往是“在DDL前无法完成任务后小伙伴们的鄙视”以及“完成quick win后带来的成就感”。
做好这一点除了上一小节提到的要合理划分任务之外,最重要的就是有一个靠谱的teamleader不断的进行推进(push),每到既定节点后雷打不动的推进。最后要啰嗦一句,根据马斯洛需求层次理论,梦想应该属于模型顶层的“自我实现需求”,如果一个人可以被“梦想”叫醒,那么这个人的其他需求应该已经被很好的满足了,所以我在这里真诚的祝福大家终有一天可以在早晨被自己的“梦想”叫醒。
四、登堂入室及华山论剑
如果有一天各位发现自己在工作实践中,需要不断地关注最前沿的论文,并且需要不断地尝试复现论文中的算法来用于实践,那么要恭喜各位已经跨入了大数据/人工智能领域高手的行列了。登堂入室与华山论剑两个阶段的区分不是特别明显,因为论文读得多了,总会有些自己的新想法,这些想法经过实验验证后就可以去发论文。反过来,即便你发表过前沿论文也还是需要继续跟进其他论文。
1. 朋友圈决定了你人生的高度
在这一小节的开始,笔者首先要端出一碗毒鸡汤,即便是在这个“开源、共享”的时代,学术/技术资源的分布还是极度不平均的,并且这样的不平均会越来越明显。究其原因有两个,第一个原因可以援引在清华17级研究生开学典礼上某校领导的一句话来阐释----“最有效果的研究手段就是与相当水平的同行当面交流”,翻译一下就是高手越多的地方就越容易产生高手,这会导致高端人才分布的越发不平均。
另外,做学术前沿研究的经济成本是很高的,国内某顶尖AI公司全球研发工作一个月的电费开销就能达到千万级别。即使是普通的AI项目,服务器、GPU的成本也会导致普通的研究人员根本无法找到充足的经费来支持自己的研究。
喝完毒鸡汤也要来一些正能量,虽然资源分布不平均了,但人才通道仍然是开放的,只不过门槛越来越高而已,我身边就有毕业四五年后,也能够一边工作一边复习考上清华研究生,最终接触到前沿科学研究的例子。数据派就是一个汇聚了清华顶尖大数据/人工智能资源的开放组织,有心的小伙伴可以点击“阅读原文”加入组织~(主编现在可以把刀放下了,这波广告打的笔者自己也有些猝不及防)
2. 选择永远比努力更重要
这个标题听起来又像是一碗“毒鸡汤”,但这就是血淋林的生活带给笔者的经验。笔者见过某个算法团队自己闷头搞了几个月研究毫无进展,经过大神点播后一个月内完工的情况。
下面举一个更戏剧性的例子,自然语言处理曾经在20世纪70年代左右有过界限分明的两个学派之间的激烈交锋,一拨是希望通过语法规则来做语音识别的“规则派”,另一拨是基于统计方法的“统计派”,这两拨从事相同领域研究的学者竟然分别召开自己的学术会议,即便出席同一大会竟然也要分场开小会。
到了20世纪90年代“统计派”的识别率已经达到了90%以上,而“规则派”仅有不到70%,胜负已分(吴军老师的《数学之美》一书中对这段历史进行了详尽有趣的阐述)。但试问如果有一名博士生在20世纪70年代将自己学术方向定为“规则派”,到了20世纪90年代的时候他该做何感想?
到了“登堂入室”这个阶段之后,做好选择显得尤为重要,这样的选择不仅仅限于学术方向,也涵盖例如“做学术”还是“做产业”等等更广义的范围。一个可以参考的经验是,如果人生的重大决策失误,基本要用五年来挽回,大家要考虑清楚自己有几个这样的五年。
3. 唯一的限制往往是自己的妥协
看看本小节的标题,读者可能会觉得本文这下要以“毒鸡汤”收尾了。但其实在这里“妥协”并不是一个贬义词,笔者认为它起码是个中性词。从某种意义上讲,每个人最终都会达到某种“妥协”,而不妥协就意味着背后存在与现状不匹配的野心或者欲望,什么时候野心和欲望跟现实匹配了,也就一定会“妥协”。这就是华山论剑的秘密,每个能站在顶峰的人都必定抱着某种超乎常人的野心或者欲望,当然这里的野心或者欲望是广义的,也同样指对于学术的追求。
最后,“毒鸡汤”不负众望的要出现了,根据笔者的观察,每个人的“妥协点”并不是自己设定的,一般情况下自己也无法影响,所以每个人最终要走到的高度往往是确定的。
但从笔者的角度看来,并不觉得站在华山之巅就一定是好的,真正的“好”是能够坦然接受自己的“妥协点”,并且能够在自己的“妥协点”安安心心、高高兴兴的工作和生活下去,这才是最具智慧的选择。
运维工程师是做什么的?
运维工程师主要是确保网站、软件服务的安全和稳定运行。具体来说,就是当开发项目正式上线后,产品、编程、测试类的工作就正式结束了,接下来维护和管理的工作就会全部移交给运维工程师。(如下图所示)
产品/程序/测试结束后的所有工作都是运维的
此外,运维工程师的工作核心主要是保障产品上线后的稳定运行,对在此期间出现的各种问题进行快速解决,并在日常工作中不断优化系统架构和部署的合理性,以提升系统服务。由此可见,运维工程师工作的重要性并不亚于任何开发类的工程师。
运维工程师没有年龄限制
产品上线后就一直需要运维工程师维护,以保证产品能正常运行。所以对于企业而言,不会有“白养闲人”的感受。同时运维问题的解决方案相对固定,不会像开发一样需要不停学习,即使有软件出现版本更新,也仅仅是按照部署流程,将最新版本软件
运维工程师不用担心会被年龄淘汰,学到的技术,总结工作经验,是可以通过总结反省进行积累和移植的,换句话说就是可以用一辈子。所以运维工程师,不仅没有年龄危机,反倒随着工作年限的增长,工作经验丰富,越老越吃香,就像老中医。是不是这样呢?华为运维专家都快50岁了,但是还是在以“狼性”闻名的华为,稳定的做着安全运维的工作。
运维工程师前景
有软件开发的地方,就需要有软件部署和保证软件正常运行的运维工程师。
08-09年互联网在中国刚开始火的时候,各个公司竞争的关键是要拥有自己的互联网产品,让能搭建起自己互联网平台的开发岗位很重要。
但是随着时间推移,在互联网人口越来越多和互联网产品激烈拼杀大浪淘沙双重作用下,留存的产品负载越来越大,可能早期每日也就几十几百人上线,到后期可能要面临着上百万上千万的访问量(比如小米秒杀,淘宝双十一,春运12306抢票),开发或测试人员已经无法兼职来解决大负载大并发问题,此时就慢慢的诞生了一个新的岗位——运维工程师。
无论是电商平台淘宝、京东,还是媒体平台如新浪、网易;无论是视频网站如优酷
前大中型互联网企业都会配备运维团队,反过来说,以后运维从业绝大部分进入的都将是大中型互联网知名公司,薪资怎么可能低?
同时随着互联网的高速发展,互联网规模越来越大、架构越来越复杂,运维工作在大型互联网公司也越来越重要,对运维工程师的需求也会越来越急迫,薪资这两年也是一路走高,从职友集的数据来看,其平均薪资范围是12350~21520元,和开发不相上下。
是ubuntu好还是centos好?
Ubuntu和Centos都是当下主流的Linux发行版本,核心功能都是一样的,但我个人还是坚持使用Ubuntu,无论是部署在服务器还是自己的个人电脑使用。
在当今市面上数百种Linux发行版本多种,Ubuntu和Centos是其中最受欢迎的两个。由于都是Linux内核,所以在部署到服务器上后两者的核心服务和效率基本无差异。
跟Android的生态类似,不同OS厂家会基于自己的核心优势和用户需求去强化Android某一方面的性能。例如小米的版本会倾向于UI体验,而华为的版本更注重与硬件的兼容优化。
对于Linux发行版来说,Centos更注重业务的稳定性,而Ubuntu则更倾向新功能新特性。所以,在两个版本的不同发展战略下,我们可以对比得出两者的优劣势:
对Centos来说,稳定是一切,所以在升级前会做大量的测试工作,因此Centos的Linux核心一般情况下比Ubuntu的要低,版本也没有Ubuntu的频密。在相同版本核心下,Centos系统的稳定性一般情况下比Ubuntu更好。一般应用在中大型安全性要求极高的企业,常常只应用核心服务。对Ubuntu来说,更倾向于为用户提供新功能,新扩展,新特性,所以:Ubuntu同核心版本的升级周期比Centos更短,扩展包也更多。新扩展和功能往往存在Bug,所以可能会造成系统的不稳定和不安全。大量开发者尝新,所以拥有大量的帮助文档和教程,可以方便的获得帮助。那么,回归到咱们今天的主题,两个版本Ubuntu和Centos到底要如何选择了。不同的用户会有不同的选择标准,下面我分享一下自己坚持用Ubuntu的原因:
Ubuntu提供了体验基建的桌面版插件用惯Windows的用户突然切换至纯代码命令的操作一定会有很多不适应,Ubuntu的Gome及让我们保留Windows桌面操作的习惯,有让我们可以从大方面体现Linux的魅力。
Ubuntu提供了更多的特性和软件支持Ubuntu自带了Python,且已提供很多第三方库的更新包,可以让我快递搭建开发和运营环境,提高工作效率。另外,Ubuntu可以快速适配Docker新版环境,很多Docker上的新玩法可以在Ubuntu系统上更方便体验和学习。
身边大神都在用Ubuntu,方便问题解答术语说“走万里路不如仙人指路”。新事物的学习一定会碰到很多问题,虽然网络上已经有很多参考资料,但难以保证资料的适用性和操作性。如果身边有大神可以请教无疑会大大提升问题的处理效率。正好有同学是Ubuntu得技术大神,受其影响,从一开始就选择Ubuntu操作系统作为我们的开发和运营环境。
php的服务有哪些?
服务器按照功能可以分为:文件服务器、数据库服务器、web服务器、邮件服务器、代理服务器…
而上述所有的服务器,均可以用php做开发,比如说做web服务器,常用的构架是php+Mysql+Apache
文件服务器(File server)
文件服务器(File server),又称档案伺服器,是指在计算机网络环境中,所有用户都可访问的文件存储设备,是一种专供其他电脑检索文件和存储的特殊电脑。
文件服务器通常比一般的个人电脑拥有更大的存储容量,并具有一些其他的功能,如磁盘镜像、多个网络接口卡、热备援多电源供应器。
golang怎么样?
golang的速度是很快,包含它一直优化的gc,目前最新的go gc stw时间在1-2ms以内。golang基于协程的调度方式更加轻量级,协程的数量维持动态平衡,有兴趣可以去了解下go的pmg调度模型。go的网络连接对应的协程只有在有io事件的时候才会被激活,这样相同数量级的网络连接,进程内活跃的协程数不会随着连接数递增,资源占用更少。总之,因为资源占用更少,所以go很高效。