如何在开源项目中学到更多?

作者 | 龙辉

文章来源GitChat,CSDN独家合作发布,查看交流实录:http://gitbook.cn/books/597f36a9662c502c52a8b66f/index.html

当前,开源、开放、协作、分享,已成业界共识,开源软件成为软件交付的主要方式。互联网巨头们都在各自领域打造自己的开源生态系统,Google的Android已经是全球最大智能手机生态系统。它的Kubernetes、TensorFlow也有望成为容器时代和机器学习的Android。Facebook、Amazon、Microsoft、国内的互联网巨头也紧随其后,纷纷布局自己的开源生态系统。这股潮流还将继续下去,对于我们大多数人,如何跟上脚步也就变得异常重要,本期话题就试着从以下几个方面与大家进行探讨:

懂得协作

维基百科,Apache,GNU/Linux,OpenStack基金会的成功经验

维基百科大家应该都比较熟悉,经常查资料,它也是我每天用得最多的服务。

维基百科是一个现象,是互联网大规模协作的先驱。它证实了大规模协作是如何改变一切的,也衍生出一种新的经济形态:维基经济学,它对商业社区产生深远影响。它以四个新法则为基础:开放、对等、共享、全球运作。

最近非常火的共享经济,可以说是维基经济学更大规模的商业实践,GitHub正通过协作方式汇集全球程序员的智慧。

GNU/Linux

自由、开源的代名词,也是有史以来最成功、影响最深远的开源生态系统。大家平时可关注和使用Linux两大类发行版:Debian/Ubuntu和Redhat/CentOS。我个人最喜欢的是Debian,因为它的社群契约和愿景,庞大的生态系统(超过51000个软件包),还因为它的标识。 大家可想想为什么是Debian和炉石传说?

Apache基金会

历史悠久, 因为Apache Web Server而闻名,曾是全球最广泛使用的Web Server。尽管有Nginx和Microsoft的更多选择,但Apache依旧是Web普适性的代表。

表格来自:https://news.netcraft.com/archives/category/web-server-survey/

PS:Google的服务器数量有多少?这一直是个谜。

Doug Cutting 在 1999编写了 Lucene,2001加入Apache Jakarta项目,2005成为Apache顶级项目。 Apache Solr 2010加入Lucene子项目,这个一个著名开源搜索引擎项目。2006,Hadoop从Apache Nutch(lucene子项目)启动并开启Hadoop大数据时代。Yahoo在这两个项目扮演重要角色,是最大的贡献者,可惜现在没有Yahoo了。在过去的这10年,开源搜索引擎和大数据在全球范围内大规模部署和运营,并取得巨大成功。

现在围绕Hadoop大数据生态的Apache开源项目有几十个,非常的丰富。几乎可以这样说,你做大数据,一定绕不过Apache项目。大家可关注两个主要Hadoop发行版,快速体验和了解大数据生态系统:Hortonworks HDP和Cloudera CDH。

OpenStack基金会

2010开源,2017年几乎成为这个星球上发展最快、最大规模的开源项目,仅次于Linux的第二大开源社区。我们都知道云平台在整个互联网和IT工业的重要性,它是基石。OpenStack目前是开源云平台的事实标准,它的发展和想象空间无比巨大。最近与Kubernetes的深度整合,将开启一个全新的时代。

图片来自:http://www.easystack.cn/escontainer/

这几个基金会都发展的异常成功,我们需要多想想和仔细思考,如何将自己的职业、工作与开源生态更好的规划下,下面是一些参考和建议:

  • 《大教堂与集市》是开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。《Apache基金会的运营之道》企业已把自己的开源项目提交Apache并成功孵化升级为顶级项目作为自身开源战略的最佳路线。
  • 一个很核心的原则:ASF不允许企业直接参与Apache项目管理或相关的治理活动。ASF厂商中立,参与仅限于个人,不参杂任何的关系和雇佣状态。

学习编程

C++, Java, Python

对语言的选择,我们没有偏见,选择适合自己的就是最好的。我倾向C++、Java、Python三种语言,其实,我对 Fortran、Lisp、Erlang也独有情钟,对它们充满好奇、敬畏与热爱:)先说说为什么选择C++、Java、Python这三种语言,因为它们最具代表性。

PS:我们把C/C++放在一起(常常一同使用),所以这三大类语言是目前编程语言前三甲,也是Google的三大官方语言,选择它们更有保障。

此外,还有很多语言值得关注,刚才说的C++、Java、Python可以理解为服务端语言。那平时我们用得最多的App,大家可多多关注和实践Swift、Kotlin,它们是iOS和Android的官方语言,代表着未来。同时,它们有趣,也很有价值。

对于Java,我更多想表达的是JVM生态:Clojure、Scala、Kotlin、Java ...

关于语言和相关开源项目,可以更多关注GitHub上的:

这是一个优秀、活跃开源项目的大本营,有非常非常多的资源,够你学习一辈子的。

C/C++多开发系统支撑软件和编程语言,如:数据库(MySQL、MongoDB)、编译器、GCC、LLVM、人工智能(TensorFlow、MXNet)、编程语言虚拟机(Swift、OpenJDK HotSpot、HHVM)。

http://wiki.huihoo.com/wiki/C%2B%2B_ecosystem

Java/JVM撑起了大数据整个基础设施,可关注主要发行版:Hortonworks(HDP)、Cloudera(CDP)它们都融合Spark。

http://wiki.huihoo.com/wiki/Java_ecosystem

Python是数据分析的首选语言,也是系统粘合剂。它完成了端到端的开发,从云端到万物互联的终端,Python是全栈开发语言。Python不仅在云平台(OpenStack)、数据分析站稳了脚,也在物联网全栈开发找到了另一片天地,Python也是物联网系统的胶水语言。

参考: http://mp.weixin.qq.com/s/VfZD1N_u_E92vSZn3k6Hyg http://wiki.huihoo.com/wiki/Python_ecosystem

此外,因为JVM和Spark,因为静态类型和函数式编程,Scala具有成为数据科学主导语言的潜力。所以,Python之外,Scala你应该更多关注。

IBM在Spark的发展思路是将Spark视为数据分析的操作系统,Spark发行版可多关注:Databricks。GrowingIO技术栈是 Scala,Play,Spark,Kafka,HBase,Elasticsearch。

这里也产生了一种商业模式:Apache开源项目的分发版,当然这里对团队和开发者有极高的要求。Apache的每一个顶级项目,都可能通过再分发一个商业版本而获得成功。Hortonworks和Cloudera就是这样的成功代表,OpenStack的商业版本也成就了数家公司。

我自己的机器学习和数据挖掘是从Scikit-learn和Weka入手的,我现在虽没有类似GPU和FPGA的设备,做不了Google、Facebook那样的实验,但我可以先从理论和算法入手,Scikit-learn和Weka提供了很便捷的方式。另外Deeplearning4j可多关注,因为JVM是最大的开发者阵营,而DL4J为JVM生态提供了深度学习解决方案,能快速的融合这个生态。而且DL4J的文档也非常棒,可作为深度学习教科书。

最近我们发起了Deep learning on HDP开源项目,它是在HDP大数据平台上开发、部署、运营深度学习基础设施,希望更好融合深度学习和大数据。 ps: 项目思路也适合Cloudera(CDP)等其它Hadoop发行版。

我们基于Apache、OpenStack、GNU/Linux都有很多的实践。之前一次电商创业项目,我们基于Apache OFBiz和OpenStack,打造了一个全开放的O2O电商平台,网上商城 + 20间实体店。这是当时的一份技术分享的资料:百货购OFBiz实践,供大家参考。

最后你可关注我们现在努力推动的三个开源项目(MED),也欢迎大家参与,所有项目都开源开放:

  • M3 营销:市场营销和用户增长:增长用户、增加收入。
  • E3 应用:企业应用和电商平台:理顺企业业务,沉淀业务数据。
  • D3 数据:数据分析和机器学习:洞悉数据,增强智能。

做互联网和IT行业,我们从事的技术工作,主要要解决的就是算法、数据、算力三个核心问题。

  • 算法,这个比较偏重个人,涉及编程和数学等知识和技能,自己可通过长时间的积累和实践逐渐丰富和提升。
  • 数据,在大厂这个问题能很好解决,若没在,就需要自己到处收集数据和爬数据。多添置些硬件、一有空就开启爬虫、收集开放数据。通过这些数据去实践数据挖掘、机器学习等实验。
  • 算力,有了编程语言、算法、数据等软资产外,我们还需要更多更强的硬件设备。在大厂这个问题也迎刃而解,若是个人和小团队,就自己Diy机器、攒设备了。

同时我们发起了一个开源项目:Super Compute Project。本项目意在将超级计算平民化,程序员、初创团队都可拥有自己的小型计算集群和桌面超级计算机,拥有自己的算力。

你可尝试搭建一个树莓派超级计算机,子弹(钱)多些的,可搭建一个Mac Mini集群(堆叠个10台Mini,家里的电源应该可以支撑)。

钱再宽裕的,就DIy自己的GPU、FPGA集群。

一些技术参考,大家可访问灰狐百科资源索引:https://github.com/huihoo/wiki,这里不好意思哈,我贴了很多灰狐Wiki地址,最主要是我们都在时时更新它们,希望对大家有帮助,也渴望和大家能一起协作。

学会运营

社交网络、增长黑客、数据挖掘

社交网络、邮件营销、磁力营销等病毒营销相关概念,连同搜索引擎优化、众包、协作等,共同构成了“黑客增长术"的概念。是否懂得运用黑客增长术和如何研发产品服务将同等重要。

图片来自:https://www.biaodianfu.com/growth-hacking.html

类似这样的定义还有很多,简单讲增长黑客是个跨界人才。是游走在产品、运营、研发、设计、用研等环节间的多面手,是介于极客、发明家和广告狂人之间的角色,是个复合型人才。增长黑客要干什么事?增长目标给出了答案:

图片来自:slidemodel.com

AARRR转化漏斗模型:Acquisition(获取用户)、Activation(激发活跃)、Retention(提高留存)、Revenue(增加收入)、Referral(传播推荐)。大家可依照这5个环节,进行一次次实操,逐渐形成自己的最佳实践,创建属于自己的增长模型。

有了这些模型目标,我们需要借助一些工具帮助我们达成目标。因为一切用数据说话,所以增长黑客最核心的就是数据分析工具。工具有很多,这里推荐新媒体运营的“增长黑客”数据分析工具箱:

知乎上数据分析工具的讨论:https://www.zhihu.com/topic/19569775/hot

从我个人的角度来看,NLP是数据挖掘最直接和广泛的应用范畴,也是你进入人工智能领域一个非常好的切入点,它所需要的各类成本也相对较低(如硬件等),而且我们每天接触最多的也是各种媒体内容,当然现在视频内容也非常多,所以计算机视觉你也可更多关注。

参考:《社交网站的数据挖掘与分析》

有了目标和工具,接下来就是开干。我推荐的几个数据分析方向,供大家参考:

  • 开放数据,各类公开的开放数据集:
  • https://github.com/caesar0301/awesome-public-datasets
  • https://github.com/okulbilisim/awesome-datascience#data-sets
  • 社交网络:有大量的社交网路数据可获得,且网络上有大量的实战可供大家参考。
  • 区块链和数字货币:区块链和比特币一直很火,且数据都是公开的,所以做数据挖掘和分析是比较方便和有价值的。
  • 电竞数据:
  • Dota2 https://developer.valvesoftware.com https://github.com/kronusme/dota2-api
  • 英雄联盟的数据分析 https://developer.riotgames.com/ https://github.com/pseudonym117/Riot-Watcher https://github.com/meraki-analytics/cassiopeia https://github.com/simoncos/lola/

除了自己使用和搭建数据分析环境外,也可借助外部的SaaS服务快速切入增长黑客领域。

  • GrowingIO为产品和运营打造的数据分析服务。
  • 网易七鱼以云客服为核心,较为传统。

模仿大牛

自由软件和开源圈是技术大牛们出没的地方, GitHub,技术会议

GitHub和各类开源基金会聚焦了众多的技术大牛,去找找他们,技术会议让你有机会近距离和大牛交流。

知乎这几年发展迅猛,大量牛人、大咖纷纷入驻,直接关注他们。知乎的话题质量很高,是对维基百科的深度补充。

我关注的部分技术牛人,供参考:

  • https://github.com/dsyme F#之父
  • https://github.com/jboner Akka之父
  • https://github.com/nathanmarz Apache Storm创始人
  • https://github.com/psyeugenic Erlang开发者
  • https://github.com/tqchen 陈天奇,MXNet开发者
  • https://mli.github.io/ 李沐,MXNet开发者
  • https://github.com/Unknwon Gogs作者,Go语言牛人 ...

另外,有关增长黑客,知乎上可关注他们:

  • 《增长黑客》作者 @范冰XDash
  • Facebook 数据分析专家 @邹昕
  • GrowingIO CEO @张溪梦 Simon 张老师是前 LinkedIn 商业分析部门高级总监。

享受人生

自由、开放、协作、分享

自由、开放、协作、分享——这是灰狐的发展理念,这个理念很多年前就作为我们行事的准则,如何更好达成,我们也在不断实践和探索中。

自由

现实世界,自由不易。对我们来讲,获得自由意味着更多。我们希望自己和更多人都能过上自由的生活。虽然,现实很残酷,但理想不变。我们会不断践行各种自由形态下的自由工作、自由学习、自由生活。

开放

开放心态、开放业务和基础架构、抱团取暖。大家想想看,若没有类似OpenStack云平台和Hadoop大数据这样的开源平台,我们普通人和一般公司是很难切入这些领域的,单独一家公司也是几乎不可能开发出这样规模的软件堆栈的。对人和事,我们都需要保持开放包容的心态,不轻易否定一个人和一件事,去融合平衡好周围的人和事。

协作

这是个协作的时代,我们崇拜天才、英雄,但现在已不再是一个人的时代了。 所有的商业和组织都在寻找高效的协作方式,因为协作正在改变世界。

分享

生命即为分享 Life is for sharing,我们相信人的天性是乐于分享的Share and Enjoy!共享经济其实也可以简单理解为一种分享经济。

作者龙辉,灰狐创始人。

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2017-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

如何在3年内摆脱“普通程序员”标签

很多开发人员日常工作中接到需求直接动手开发,在开发过程中一边开发一边设计,特别是刚入职的程序员,大多数更是只注重功能的实现,接到需求后往往只是在脑中勾画一个大概...

8930
来自专栏即时通讯技术

QQ的成功,远没有你想象的那么顺利和轻松

如果QQ是一个人,看似风光,其实从出生到成长,过程饱经错荡,堪算坎坷。它的人生历程确实也够励志的了。

15720
来自专栏人工智能头条

AI 工程师职业指南 | 《程序员》11 月精彩内容

10710
来自专栏BestSDK

小程序对于微信来说,不只是一个工具

在功能层面,小程序,对微信意味着:工具属性的大大增强。 在“小程序”的微信公开课上,张小龙特意用一大段话来阐明,微信是个工具,微信一直是个工具,微信的产品思路也...

35970
来自专栏云市场·精选汇

小程序分类知多少,八大分类你来找

小程序现在已经成为了互联网圈的热门讨论对象。从 2017 年 1 月登场,到之后被称为鸡肋,再到现在反叛逆袭称为互联网圈的大热点,小程序经历了不小的高低起伏。现...

3.8K1070
来自专栏钱塘大数据

【推荐收藏】这些数据获取网站,帮你工作提质增效!

在这个用数据说话的时代,能够打动人的往往是用数据说话的理性分析,无论是对于混迹职场的小年轻,还是需要数据进行分析和研究的同学,能够找到合适的数据源都是非常重要的...

54190
来自专栏陈树义

6、市场需求文档(MRD)撰写方法与技巧

1、MRD与BRD文档的不同 -BRD 这么做有什么好处,并说明好处在哪里 -MRD 通过BRD明确了这个事情值得一做后,描述应该怎么做,并说明这么做的原因 2...

49270
来自专栏即时通讯技术

QQ的成功,远没有你想象的那么顺利和轻松

如果QQ是一个人,看似风光,其实从出生到成长,过程饱经错荡,堪算坎坷。它的人生历程确实也够励志的了。

13030
来自专栏程序你好

牛逼程序员要知道的16条规则

12420
来自专栏鹅厂网事

腾讯网络变更管理的七种武器

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

26160

扫码关注云+社区

领取腾讯云代金券