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. 唯一的限制往往是自己的妥协
看看本小节的标题,读者可能会觉得本文这下要以“毒鸡汤”收尾了。但其实在这里“妥协”并不是一个贬义词,笔者认为它起码是个中性词。从某种意义上讲,每个人最终都会达到某种“妥协”,而不妥协就意味着背后存在与现状不匹配的野心或者欲望,什么时候野心和欲望跟现实匹配了,也就一定会“妥协”。这就是华山论剑的秘密,每个能站在顶峰的人都必定抱着某种超乎常人的野心或者欲望,当然这里的野心或者欲望是广义的,也同样指对于学术的追求。
最后,“毒鸡汤”不负众望的要出现了,根据笔者的观察,每个人的“妥协点”并不是自己设定的,一般情况下自己也无法影响,所以每个人最终要走到的高度往往是确定的。
但从笔者的角度看来,并不觉得站在华山之巅就一定是好的,真正的“好”是能够坦然接受自己的“妥协点”,并且能够在自己的“妥协点”安安心心、高高兴兴的工作和生活下去,这才是最具智慧的选择。
怎么从自学php到搭建网站?
自学PHP是相对语其他语言是简单的,学习方法就是看手册或看书,跟着写代码,有点基础了还可以看视频。
但是只学习PHP肯定不够,还要掌握很多知识。简单来说,如果想建站,还需要学习CSS、JS、SQL,做前台用js+css,做后台用php、asp或jsp。
下面为你提供一个系统的学习方案:
HTML+CSS+DIV
耗时:一个月
先看书,然后在网上找几个简单的网页,试着做一下,应该可以做出简单的网页。
jQuery
耗时:一个月
可以看书,也可以看手册,对照着写代码。也可以去网上下简单的源码,看懂之后可以试着改点东西,试着写一些简单的特效。目的是将jQuery融入到上个月做好的网页中。
PHP部分:
耗时2个月。
第三阶段学起来会有些吃力,会遇到很多很多的问题,你能做的只有3件事:坚持,敲代码,坚持敲代码。哈哈哈,遇到困难了,可以找一下你认识的做PHP的朋友,相信朋友的指导性建议就能为你指点迷津。
MySql
耗时2个月
装一个MySql数据库,可以看视频,然后在黑窗口里输命令联系基本功,个人认为数据库相对来说简单一些。
最后就是复习一下知识,可以在网上站网页,多练习,多练习,多练习,重要的事情说三遍。
php程序员的php水平最低达到什么水平才能找到工作呢?
楼上说的没错,html css js是基础,mysql和linux是php的好搭档,特别是mysql,一定要掌握.单纯的找工作,其实你只要会一个cms,例如织梦,phpcms和帝国,你就可以找到一份糊口的工作.但是此时你只是一个最低级别的杂工.要想好好发展.你需要继续深入的学习,mysql的扩展和优化.linux基本操作和shell.必须阅读一次php手册,知道有哪些功能的函数(不需要你记下,只要你想到某种功能的时候能知道,php里有函数支持),有面向对象的编程能力.应该学习一下jquery,smarty,thinkphp或者ci/yi/zf等js或者php的框架.掌握这些你就属于中级程序员了,这时候你的工资就已经可以小资一点了.再往上就靠个人天赋,努力和机遇了.只是要找份工作,那么我不建议你做程序员,因为这个要干着行是要靠你自身的天赋,学习能力和最最主要的兴趣来决定的.综上所述,只要你会一款cms并能进行一定的二次开发,那么你就可以找到一份糊口的工作.请记住,这一行,会的越多,挣得越多,能力有大,薪资就有多大,技术这一行,很公平,薪资和技术能力成正比.
新手应该如何学习PHP语言?
这个问题范围很广,已不是几句话能说得清楚的,总的来说建议你跟着一个既定的目标,制定一个学习路线,循序渐进,一步一步学习。在这里给你简单罗列一下从0开始到能够胜任工作的学习课程路线吧。
这个课程主要学习HTML5+CSS3+Javascript+JQuery的前端技术、PHP语法+面向对象+MVC框架的后端技术、WebAPP+微信公众号(小程序)+APP接口的移动技术。
其中一些特色课程如果是自学的话时间关系可以不用考虑学习,例如:Composer以及Yii2框架。Composer是PHP 用来管理依赖(dependency)关系的工具;Yii2是一个高性能的,适用于开发大型Web2.0应用的PHP 框架;阿里云服务快速解决中小企业服务器问题;加强移动APP接口项目;加强微信项目;https安全网络协议ThinkPHP5开发框架;Laravel5.3,WebSocket和PHP Socket。
学习能力差怎么学好PHP?
如今IT互联网行业发展如火如荼,IT技术人才需求有增无减。学习编程的人日渐增多,但是要想学好编程也并非一朝一夕的事,尤其是零基础者,往往一开始就会被突如其来的概念搞的晕头转向。如 Java、PHP、HTML5 等编程语言所涉及到的类、对象、接口、构造函数、方法、继承、多态、各种修饰符等概念扑面而来的时候,脑子里是一片浆糊,瞬间受到一万点伤害,势必要学好编程的决心也很容易动摇,从而直接导致畏惧心理,特别是对于自学者来说,此种情况屡见不鲜。
这时候拥有一副不求甚解的心态显得尤为重要。不管是学习哪种编程语言,对于编程初学者一定要不求甚解,意思就是学习一门新学科、新知识的时候,我们要考虑将所学的知识点如何运用起来,而不只是去搞清楚这些知识点为什么要这么用?搞清楚知识点为什么而用,但不知如何去运用,这就等于只会“纸上谈兵”,而不能去实际操作。所以“学以致用”才是学习的最终目标。刚开始学习编程的时候,可以让自己的思维停留在小孩子的水平,不要问为什么,而是书上怎么说,我们就怎么做,这时候我们只需扮无知即可。在学习过程中,要不断通过实际操作来熟悉巩固学到的知识点,让自己学到的知识落实到技术实践中能够得心应手。还有要想学好编程,得拥有一种好的心态,这样你才能在编程的道路上走得更高更远。
如果能够在上述的心理上、行动上做到位,那么学习编程就会变得相当轻松,入门也非常之快。但是入门并不等于目的,如果想要在这个行业顺利找到满意的工作,站住脚跟,你需要更加深入的理解、学习。然而,这对于零基础者来说将会更难,只有专业的指导和引领,才能更好的踏入编程开发的大门,这时候你可以参加一些培训机构的培训课程,虽然会花费一些金钱,但可以缩短你入门的时间,每个人可以根据自己的情况。如果自学能力很强,现在网上有很多免费的教程,可以先在知乎上搜一下看看过来人的一些学习建议,了解学习PHP所需掌握的知识体系,然后找相关的课程学习即可。