大数据平台开发人员的核心竞争力是什么?

理由
举报 取消

做大数据平台开发一般对算法要求不高,但是这些大的框架,每一个都像大的黑盒子,如:spark、hadoop、hive、kafka。我最近在研究kafka,但是仅仅是在会用,会选型的阶段。我觉得只要英语ok,完全没什么门槛。想问的问题是:如果想在这个方向上走得更远,应该怎么做,我觉得把源码都撸一遍好像非常不现实,刚入行半年,我scala也不熟悉,有点迷茫,想问问3-5年的从业人员你们怎么做的?

2017年9月19日 3 条回复 1056 次浏览

发起人:Robot 管理大师

回复 ( 3 )

  1. 桂能
    理由
    举报 取消

    1.测试,测试,测试,写code之前想好怎么测试,分布式的测试是个非常麻烦的问题。

    2.硬抗,kafka的复杂度其实还好,这里面有很多比kafka复杂很多,要习惯一个月读不懂一大坨code,等到一个半月的时候还是要抗下来。

    3.抽象,想想这些人为什么怎么写,如果你可以批判他,不妨大胆批判他。

  2. 王国璋
    理由
    举报 取消

    谢邀。

    如果你现在就是想对一些比较有名的开源项目加深了解的话,这么几个方式可以推荐给你:

    1. 看Web文档:这个我相信可能你已经做过了,但是文档有一个缺点,就是它只会把一个最终的结果拿给你看,而不让你看到中间的设计讨论过程。就像以前有人评价高斯,说他的论文只会给你看一个最终非常漂亮的结果,但是中间的过程都被他小心翼翼的擦掉了,不留任何痕迹。拿我自己来说,写Kafka文档的时候基本都是字斟句酌的,考虑用户在使用的时候会有什么问题,但是不会有太多“我们是如何想到要这样设计的”。

    2. 看Wiki网页:大多数开源项目都有自己的Wiki pages,其实以前很多的讨论,被推翻的那些设计方案,接口的修改,都在里面有存档。比如:

    Kafka Detailed Consumer Coordinator Design

    如果你对Kafka了解的话,你就知道这个设计并不完全是最终在source code里面呈现的,后来又经过一些修改,比如:

    Kafka Client-side Assignment Proposal

    看过这些Wiki pages你就会对整个设计流程有一个大概了解。

    3. 看JavaDocs:以上都是大概了解,具体到每一个class的设计,最好当然是看源代码,但是比较花时间,而自己实现原型也太慢。其实还有一个方法就是看Javadocs。好的开源项目的Javadocs应该是写的是很好的,否则不可能被广泛使用。这里包括每一个function的用处,如何与其他class做对接等等。

    4. 用起来!这是我个人觉得最快的学习方法,因为只有你真正上手用了以后你才会对整个系统,不仅仅是开发方面,还有操作方面有了一个自己的体会。此外就是,不懂就问:)绝大多数开源项目都是有mailing list的,你用的时候碰到exception了可以问,没有看到expected results也可以问,甚至如果你自己有一个use case,你希望知道该怎么deploy这个系统达到你的目标都可以问。社区里面的大多数人都是很友善乐于助人的。

  3. jacksu
    理由
    举报 取消

    多谢你的邀请,我说说自己的看法吧。第一步:对相关开源框架做一下基本了解,可以实现选型。第二步:对自己负责的模块或者自己感兴趣的,可以“正确”使用.第三步:对自己负责的模块或者自己感兴趣的,可以对其实现框架,进行详细的了解,最好可以实现自己可以画其框架图.第四步:如果兴趣特别浓厚可以仔细看其详细实现.但上面都是建立在这些开源有使用场景下,不然学了也就忘了,也不可能深入了解.

    手机打字,暂时就说这么多.

我来回答

Captcha 点击图片更换验证码