Skip to content

Latest commit

 

History

History
116 lines (61 loc) · 7.55 KB

自我提升.md

File metadata and controls

116 lines (61 loc) · 7.55 KB

总述

很高兴大家能看到这篇文章,在此文章中,我将会从如何提升自己,包括开源技能,视野见识,技术前沿方向等方面进行阐述。同时也欢迎大家对此文章进行补充(提 issue 或 pr)!

阅读本仓库中的其他文档以获取其他信息!

基础技能学习

能阅读到这里,相信你已经看完了之前所有的文章,并已经学会了一些编码的技巧。不管是那种语言,什么框架,只是技术的不同,无好坏优劣之分。 对基础技能需要多练习巩固,多敲代码始终是一个好的选择。

开源项目

概述

下面开始从开源项目开始进行:

在这里,你需要知道以下一些概念或者术语:

  • Apache Software Foundation(ASF):开源软件基金会,为社区项目提供服务和法律支持。

  • commiter:对仓库具有写权限的个人开发者。其中以 apache commiter 价值最大。

  • review:审查别人的代码,检查代码错误,并评论使其修改。审查是否具备合并到项目仓库的资格。

  • CI (Continuous Integration):github ci,项目持续集成,在提交 pr 之后,代码仓库会执行预定义的检查和测试,确保代码没问题之后,才有机会合并到代码仓库中。许多 reviewer 在 review 中看的第一个指标,没有单元测试,一律不准合并!

  • PMC (Project Management Committee):负责项目管理、治理并确保项目可以在某一规则下运行。例如:Apache PMC,确保项目在 Apache Way 下运行。

  • TDD(Test-Driven Development):测试驱动开发,在写代码之前先编写测试代码,然后编写能够通过测试的功能代码,通过测试来驱动整个开发过程。

首先,参与开源项目你可以获得以下能力:

  1. 看到许多行业大牛编写的代码;
  2. 熟练使用 git;
  3. 测试驱动开发的能力;
  4. review 别人代码的机会;
  5. 为世界级项目提交代码的机会;
  6. 还算不错的英语交流机会;
  7. 成为 commiter,提升自己的硬实力;
  8. 提升自己在开源的影响力。

其次,我将详细介绍为什么在开源项目中能获得以上所描述的能力:

在 github 中,其主要的代码维护工具是 git,在代码维护过程中,涉及到大量的 git 操作,可以锻炼使用 git 的能力,使你熟练使用 git 这一版本控制工具。github 的主要工作语言是英语,在日常活动中,例如 issue 讨论,pr 提交,review comment 等。这一特点在 apache 项目尤为突出。

下面以 Spring Cloud Alibaba 项目为例,说明其他能力。在提交 pr 时,开源爱好者会先阅读 issues list 然后提出对应的 pr 来解决 issue 中的问题。当然,解决问题的前提是你对 sca 项目足够熟悉,能够断点(debug)出问题所在。你可能需要跑一遍 sca 的 example,并熟练使用 sca,或者去观察其内部的代码逻辑,以上这些都是为了你能够准确定位并解决问题,相信你能熟悉使用 sca 并解决问题的时候,你的代码能力也在逐步提升。在阅读代码过程中,你会看到许多前人写的代码,或是垃圾,或者经典。这和开源项目的影响力有关,项目 star 越多,越是能吸引到足够多的人为其贡献代码,代码质量越高。除了自己找 issue 解决之外,项目的 PMC 可能会直接找你,分配给你一些任务去完成!能进入 PMC 视野中的前提是在社区有足够多的贡献。

当你在一个项目仓库贡献的足够多之后,就会获得 PMC 的提名,提名成为 commiter 乃至 PMC 成员。commiter 的主要职责是 review 开发者提供的代码,处理项目中的 issue,以及参与项目的 feature 计划制定。

最后,在开源影响力方面,通过开源,你可能会结识到一些共同的开源爱好者,一起为项目添砖加瓦,互相 review 代码,参加一些线上或者是线下的峰会,技术沙龙 等等活动。当你在某一方面贡献的足够多时,可能就会被对应的基金会乃至开源项目提名,比如 CNCF 大使,Apache 中国布道者,Apache PMC 主席,理事等等职位。

下面是一些在开源方向具备影响力的开发者:

姜宁:https://github.com/WillemJiang,连续两次当选 apache 董事,Apache 项目孵化器导师,ALC beijing 发起人。

吴晟:https://github.com/wu-sheng,apache 第一位华人董事,SkyWalking 项目发起人

FogDong:https://github.com/FogDong CNCF 中国大使

张晋超:https://github.com/tao12345666333 第一位 k8s 中国 reviewer,Apache APISIX PMC

……

开源之夏活动介绍(含金量极高,推荐参加)

开源之夏活动:旨在鼓励开源开发者积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。

中国开源之夏(OSPP):是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。源之夏联合国内外开源社区,针对重要开源软件的开发与维护提供项目任务,面向全球高校学生开放报名,中选学生将在项目资深开发者(项目导师)的指导下,参与开源贡献,完成开发工作并贡献给开源社区。

谷歌开源之夏(GSOP):Google Summer of Code is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors.

阿里开源之夏:性质同上,23年未举办。

参与 ospp 活动,可以认识项目导师,为世界级项目贡献代码,项目结束之后可能直接成为项目的 commiter。并且项目官方会为参加者提供开源项目的结项奖金(12k ~ 8k)。

开阔见识

学习编程不能固步自封,需要不断的学习,补充新知识提升自己的见识和编程能力。

这里推荐以下途径:

多思考:自我思考提升是学习的动力之一,只有遇到不同的问题,才能引发思考,促进学习。

github:关注开源项目,往往开源项目的更新迭代是最快的。

技术交流:关注技术沙龙,例如美团技术沙龙,关注技术峰会,关注 google,oracle 等大型公司的动作,这些公司往往是新技术的领头羊!

阅读书籍:读书,读书,读书。重要的事情说三遍!

技术前沿

其实这个部分应该算是上面一个章节的内容。在此单路一个章节,为了说明重要性!!!

首先,对自己的定位要准确,你不是一个代码的搬运工,是一个真正的程序员!有想法就去写下来,并且使用代码实现。然后和其他同行交流。

Java:Graalvm。

微服务前沿:service mesh 及其周边生态。

容器技术前沿:K8s 及其周边生态。

网关技术前端:apisix,higress。

关注开源项目:开源项目往往对技术前沿的感知较为敏感,比如 sca 2022 版本对于 graalvm 的适配。

…… 其他自己探索

最好,学英语

综合提升

写博客,搞开源,写文章,多实践,多关注,学英语。