TiKV-Committer-的最快养成方法

—— TiKV 优秀 committer 迟先生(Alex Chi)专访

本文首发于 PingCAP 微信公众号,原文地址是:https://mp.weixin.qq.com/s/-GFlsipDZKNXViwM5yNOMw ,欢迎大家关注哇!

一月末,一位大三的少年登上了知乎热榜,有数百万人浏览了迟先生的“凡尔赛”语录:“即使一周实习3天,我依然拿到了上海交通大学计算机学院第一的绩点。”迟先生是上海交通大学的计算机系学生,同时,他也有着另外一个身份:CNCF TiKV 项目有史以来最快晋升为 committer 的开发者。在一个风和日丽的下午,他接受了我们的专访。

编程学习之路

如果你不爱一件事,你不可能把它做得真正优秀。

Paul Graham《黑客与画家》

从小学三年级开始写代码,迟先生在初三的时候拿了全国青少年信息学奥林匹克联赛提高组的一等奖。
升上高中后的迟先生开始了工程上的实践,学习了前端、后端的大量知识,用 Python、JavaScript 等写了很多好玩的小程序。当被问到,为什么高中不继续打计算机竞赛的时候,他笑着说:“因为我觉得算法比赛没有什么意思,我想做一些更有意思的事情”,就这样他在高中边写代码边升入了上海交通大学的计算机系。
到了大学以后,迟先生就开始学习系统编程。在一年半内学完了MIT 6.828, 6.824, CMU 15-445等硬核课程,并且数据结构、操作系统、计算机系统结构、计算机组成、计算机网络等核心专业课上拿到 A+ 的成绩。
随后,他在大二下学期加入 CNCF 的 TiKV 社区进行开源贡献,在大三加入 PingCAP 实习。

结缘开源世界

冲在开源软件最前沿的人,正是凭借自己的眼光和才华发起项目,然后通过有效的社区合作,将其发扬光大。

Eric Raymond《集市与大教堂》

迟先生在大二下学期参与了 CNCF 基金会主办的 Community Bridge 活动( Community Bridge 是一个为有兴趣参与开源项目的开发者提供带薪实习和指导的活动)。然后在这个活动里他结识了 PingCAP 的导师 breeswish,并且在导师和社区成员的指导下参与到 TiKV 项目的开发中。迟先生进行了 coprocessor 模块的开发,这个模块主要负责的是 TiDB 的下推计算,它通过将 TiDB 的部分算子下推到 TiDB 分布式存储层来做,可以有效提高数据库运行的效率。
这个模块涉及到对TiDB整个的计算框架进行修改,是一项被打上“hard”标签的任务。但是迟先生凭借他扎实的计算机功底和不俗的代码实力,成功地完成了既定目标,同时创下了 TiKV 有史以来最快成为 committer 的记录。TiKV 的官方网站上至今还保存着他结业时写的总结博客

在项目结束后,迟先生顺利地通过了 PingCAP 的面试,成为 TiKV 项目组的实习生。

闪耀的实习经历

创造,不论是肉体方面的或精神方面的,总是脱离躯壳的樊笼,卷入生命的旋风,与神明同寿。

Romain Rolland《约翰·克里斯朵夫》

迟先生在实习的时候选择了更加接近计算机底层原理的存储引擎进行研究,他参考了BadgerDB ,使用 Rust 实现了著名论文 WiscKey 的构想 ,开发了一个高性能的存储引擎 AgateDB。现在 AgateDB 正做为TiKV的实验性引擎处于持续的开发阶段,全面开源(项目地址是 https://github.com/tikv/agatedb ,欢迎感兴趣的同学来参与贡献!)。
迟先生说:“我对来 PingCAP 整段实习的经历都是比较满意的。首先我接触到了国内为数不多的做开源软件的公司,并且能够参与到工业界产品开发的一些流程,这让我对 TiKV 的认识更加深入,并且也激发了我之后在存储、数据库这方面的继续深入研究的兴趣。”当问到迟先生来 PingCAP 实习时印象最深刻当事情是什么的时候,他毫不犹豫的回答:“上海 office 曾经组织我们一起去迪士尼乐园团建,这让我觉得非常的快乐。
这个回答出乎了我们的意料,我们都笑了出来。

不平静的大学生活

如果自己就是潮水的一部分,怎么能看见潮流的方向呢?

Paul Graham《黑客与画家》

迟先生在上海交通大学计算机系几乎每年都拿到了满绩的成绩(GPA 4.3 / 4.3 ),我们向他询问了他是如何一边实习一边拿到这么好的成绩的。迟先生笑着说:“我对最后考试拿了多少分,其实兴趣并不是很大,更重要的是我在这个过程中学到了什么事情。

迟先生向我们讲述了他如何对课程进行分类:课程可以分为实践课和理论课。实践课基本上是根据课后项目的完成度来给分数的,而他因为有着丰富的工程经验,所以可以快速的上手,所以这些实践课的分数基本上都比较高(小编补充:满分)。另外一些课程是理论课,比如说计算理论、人工智能这样的课。这些课的分数组成大部分都是考试。对于这些课,迟先生说,他觉得自己课下研究的效率比上课听讲高很多,所以他每周会稍微抽一点时间看书的,然后期末再做几套卷子,基本上成绩也不会太差(小编补充:也是满分)。
当我们问到他对于时间的安排时,迟先生回答道:“我去年的课是我每周是可以空出两天完全没有课的,所以我那两天是在 office 实习。还有一天那门课是听和不听没什么区别的,所以那天我就在学校 remote 。”“所以我的观点一直是分数还是比较难反映一个人真实的水平,”他说,“就像我虽然在很多课上分数是比较高的,但论我到底学到了多少东西,这个东西都是比较难界定的。”
而当谈到周末的安排时,迟先生的回答倒是让我们觉得十分的亲切:“我周末会打游戏、看电影,然后还会去商场吃饭。然后还有因为周末大段时间比较多,我可能会用来去做一些课程的项目,因为这种项目一般都需要周期很长,我一般会拿这个比较整段的时间去做,这样效率会比较高。”
原来天才少年的休闲生活和正常人也没有什么不同,这让我们感到有所放松。

内卷与逃离内卷

数量,即是正义。

Gustave Le Bon《乌合之众》

内卷,本意是指人类社会在一个发展阶段达到某种确定的形式后,停滞不前或无法转化为另一种高级模式的现象。 当社会资源无法满足所有人的需求时,人们通过竞争来获取更多资源。
迟先生提到了一些他生活中见到的的内卷现象,比如有的同学发邮件给老师,想把别人的分数扣掉,希望用这种降低别人分数的方法来提高自己的排名。
“还有一种,”迟先生说,“我们专业的人工智能课的最后一个项目是做 presentation ,有些人通过调整参数,将模型炼到了99.9%的准确率。这些行为的共同点就是:你虽然达到了很高的分数,或者说得到了老师的认可,但是实际上对于自身的水平是没有任何提高的,它纯粹是一种同学之间的内耗。”
我们问到:“那你是如何对待这种行为的?”
迟先生回答:“我完全不参与这类事情。”
他提到,去年有一门课,有的同学写了三四十页的实验报告,而他第一次交了两页,第二次交了五页,最后老师还是给了他满分;包括在 AI 模型训练上,他的小组建立了只需要处理少量数据就能得出很好结果的新模型。他觉得更应该注重的是提高工作的质量,而不是做一些很表面的功夫。
这让我们感到非常的有意思:在内卷环境里胜出的那个人,却是旗帜鲜明反对内卷的人。

挂在嘴边的失败

被别人揭下面具是一种失败,自己揭下面具却是一种胜利。

Victor Hugo《海上劳工》

迟先生在 PingCAP 的 导师 Jay 对迟先生的评论是:“他的产出呈现出一种与年龄不符的成熟度,让人非常震惊。和口头“失败”完全不符的成功表现,有一种反差萌。”
是的,迟先生为人所熟知的,还有他日复一日的卖菜。

当被问及为什么经常说自己很失败时,迟先生是这样解释的,衡量成功有很多维度,而他在很多维度上都是彻底失败的。
他提到,上海交通大学有很多同学,大一就进实验室,之后顺利的发了很多顶会的paper,可是自己在学术上并没有什么建树。同时,有另外一些同学,他们参加了很多学生活动,成为了学生会的主席;还有些人做了许多的公益,登上了电视台……他也很羡慕这样的同学。
我们反问道:“可是你也获得了很多人梦寐以求的东西,比如奖学金、社区的 reputation 等等。”
而迟先生回答道:“我只是在学习方面自认为学习能力还是ok的,并且在像数据库像存储这些领域,找到了一些自己比较喜欢的点。对我来讲,像奖学金、像各种荣誉之类的东西,我自己认为它们并不是很重要,最重要的还是我的能力在什么水平上,然后我能做什么样的事情,或者说我做过什么样的事情,这些是我比较看重的地方。”
我们又问:“你觉得有些事情对你来说并不是很重要,但是恰恰这些事情对他人来说可能是比较重要的,你这样说会不会伤害到他们?”
迟先生是这样回答的:“我觉得这个是不可避免的事情。我高中的语文成绩就永远都在及格线边缘,然后我每天都在背文言文实词、做很多题,但是我的语文成绩就一直上不去。但是我的一些同学,他们不用像我这么努力,就可以拿一个很高的语文分数。那么在这种情况下面,他们确实对我造成了一些影响,让我觉得我特别的失败,我不管怎么努力都没有办法达到他们的水平。
但是等我到了大学后,我感觉当初想法都比较幼稚,就没有必要在这种这种方面上纠结,因为高考过了这个阶段以后,之前的分数都没有什么用了,对吧?感觉其他人有很高的成就或者怎么样,如果你很在意这些事情,确实会对自己造成一定的打击,但是随着时间的流逝,这些感觉就不会特别的深刻,因为它们并不是生命中最重要的东西。”
成功没有单一的批判标准,我们每个人都要找准自己的赛道。

传火开源

开源软件是计算机工业最宝贵的财富。

Tim O'Reilly

迟先生觉得,在开源社区做贡献,最重要的是 motivation 。
他举了自己的例子,他最初去做的 TiKV 的 motivation 是因为他觉得这个开源项目很好玩,然后在参与建设的过程中同时学到了很多知识,结交了许多朋友,因此就一直走了下来。
他觉得,要参与开源社区,首先要做的是找到自己感兴趣的方向,然后选定一个自己稍微努力一点就可以够得着的那种水平的开源社区。选定了这么一个社区之后,我们就可以参与进去。
参与进去的时候,和社区里面的人沟通是非常重要的一件事,比如说社区里面有些什么idea,或者说其他的开发者是怎么想的。这样可以慢慢的找到具体在什么地方可以努力,就可以去做一些比较大的feature,或者做一些比较大的改进,然后这样一来就可以提升自己的能力。
迟先生认为 TiKV 的 coprocessor 可能是整个社区里面最容易参与的一个组,因为这个项目基本上不需要很多的前置的知识,只需要知道 SQL函数是干啥的就可以来实现一些 coprocessor 里面的函数。所以他建议初学者或许可以考虑一下从这个角度来参与TiDB的相关开源活动。
同时,我们也推荐 TiDB 官方出的十分钟成为 Contributor 系列博客,想和迟先生一样成为知名开源项目的 contributor 吗?从发出第一个 pr 开始吧!

梦想是什么

梦想一旦被付诸行动,就会变得神圣。

阿·安·普罗克特

当聊到迟先生的人生梦想时,迟先生讲到,他希望以后可以成为一个出色的工程师,能解决复杂系统里面的一些问题。
我们问到,如果有一天财富自由了,他会想做些什么。他毫不犹豫的回答,他想写一些自己真正想写的一些代码。
“对我自己来讲,我想解决一些其他人没有解决过的问题,”他说,“有些问题感觉就算是学术界也比较难解决,它真的要有经验丰富的工程师才可以去找出那么一种真正可以适用于某一个 workload 的系统的解决方法。我想去写这种优雅、又可以解决痛点的程序,这会让我感到非常的开心。”
我们问迟先生在 PingCAP 的导师 Jay Lee ,有没有什么想告诉他学生的话,他沉默了许久,后打出了这么一句话:

愿他能保持好奇和冲劲,对开源和技术永远热爱

是的,祝愿我们都有光明的未来。

最后在关麦之前,我们请迟先生给我们的读者们推荐一些东西。迟先生想了想,说:“我推荐一个游戏——《塞尔达传说》,我觉得这个游戏非常的好玩,你可以用它来消磨时间,也可以提神醒脑。希望大家在感到无聊或者说觉得人生遇到瓶颈的时候都可以玩一玩游戏,从游戏中获得一些快乐。”
话筒准备递给下一位嘉宾了!至于下一位嘉宾是谁,熟悉社区的小伙伴肯定都知道啦,先卖个关子,敬请期待~

来到无聊的世界

过去十几天我看了不少书,听了很多播客,然后还听了很多的音乐。起初这一切都是出于排解内心的苦闷,后来在这个过程中我开始承认并接受自己的无知,更新自己的认知。
今天来聊聊我发现人生是无聊的这件事。

文章标题其实就是源自 《SSSS.GRIDMAN》 的 OP 的这句:“我来从无聊的日常中拯救你了”。
实习的工资让我的生活费增加了很多,我买到了我之前想买的手机、电脑、游戏机……一切都有了,仿佛在梦里一般。我曾经幻想过一个完美的、幸福的世界,约莫就是现在,金钱在我一个月只有很少的生活费的时候是很重要的,我为此可以忍受非常多的东西。这仿佛一种信仰一般,追寻金钱。
我现在过的就是当年幻想的有钱的生活,但是我一点都不快乐。
于是我信仰崩塌了。
这应该是我第二次经历信仰崩塌,上一次崩塌是在我初中那会,那会我看到了一些被掩盖的历史,心中信仰的某些东西轰然倒塌,开始思考自己做过的无意义的事情。
我是个俗气、无力、弱小的人,我觉得这个世界好像不应该是这样子,但是我又无力去改变。
那应该怎么办呢,这个世界貌似还有一些我蛮喜欢的东西的。但是每天在社交媒体看到各种各样的人追求自己喜欢的东西,这让我感到对自己的厌恶,这是出自内心的嫉妒情绪。这是本真的我。
有一段时间我丧失了表达的欲望。我觉得他人的眼光令我难以忍受,我开始思考人活着的意义,究竟要怎么样才能获得快乐。
Inoki 说,做自己真正想做的事就是有前途的。
我不知道自己想做什么。
我想做的是做一个快乐的人,但是貌似这才是最难的一件事,因为“快乐”其实是一件虚无飘渺的事情,它是没办法被定义的。我或许可以找到一堆纸,上面写着快乐是因为各种激素的分泌导致的大脑的兴奋,但是这当然不是我追求的。
我在内心非常混乱痛苦的时候,问 Claude ,我现在读书,变强,那是不是变强了就能快乐?是不是达到我订下的下一个目标了就能快乐。
Claude 回我,当然不是了。
这个是对的,并没有什么事情可以保证获得快乐。
我卸载了推特,停止了水群,手机 screen time 下降到每天 1 小时。
突然间感觉空余时间多了好多,我感到非常的无聊。
于是乘这段时间把之前拖了很久的托福单词背完了,然后还看了《葡萄酒图鉴》,了解了葡萄酒的产地、生产流程、化学组成等。因为工作需要,还开始学习一些统计学和数据分析相关的知识,看了本数据分析相关的书。还看了唐凤的传记《我所看待的自由與未來》,一窥他人的世界。看了一些算法,一些小说。还看了一部很有意思的番 《SSSS.GRIDMAN》(Tigger 社对感情的描写、静止画面的应用真的是扣人心弦)。然后还去看了中山三院精神科看了下医生,医生开了药给我。这些事情发生在过去的大概10天,但是对我来说好像是过了很久。
这是好的,我想继续下去。获取知识本身是有意思的,表达的欲望也是一种难以抑制的情感,无论想表达的是什么。
医生说,我重度人际关系敏感、重度偏执、有双相,还抑郁,说得仿佛我坏了一般。但是我反而平和了许多,就像是尘埃落地的感觉,它给了我原谅我自己理由,并且提醒我应该改变。

我对你根本没抱幻想。我知道你愚蠢、轻佻、头脑空虚,然而我爱你。我知道你的企图、你的理想,你势利,庸俗,然而我爱你。
我知道你是个二流货色,然而我爱你。为了欣赏你所热衷的那些玩意我竭尽全力,为了向你展示我并非不是无知、庸俗、闲言碎语、愚蠢至极,我煞费苦心。

——毛姆《面纱》

这是一次有意思的经历。我觉得我可能要花好长一段时间去寻找什么是我想做的东西,什么是我的使命。但是在此之前,死亡是不急的。
在这个无聊的世界,我在等待着有什么人可以来拯救我。可是我等啊等,一直等不到。我的世界里没有超人、没有可爱的JK、没有魔法。有的只是平凡平庸的自己。
但是只要可以活得比较久,快乐总是会有的,快乐如果是容易获得的,那它未免太廉价了。而无聊的生活本身也是一种自己对自己内心的拷问,它提示我我如今的生活出了些问题,需要去改变。
《SSSS.GRIDMAN》中,OP 有一幕让我深受震撼:女主无聊的望着窗外,下一秒,电光超人从天而降,击碎了这个无聊的世界。

如果要让我来评价自己是一个什么样的人的话,我会说:我是一个没有找到自己想做什么的一个平凡的人。
平凡的人自然是没有使命的,平凡的人活着就是为了寻求快乐。
我会做各种各样的事情来寻求快乐,同时,没有什么事情是做到了就能保证快乐的。但是不做就肯定不会快乐。
这就是我更新的认知。
映入眼帘的我们的世界是无论什么也无法替代的世界。

因为人生是没有边界的

前言:
今晚和manjusaka老师有了一次非常棒的推特对话,让我忍不住想写一些东西,于是便有了这篇文章。这是一篇关于我如何看待人生的一篇小博客,无比感谢诸君对我的关心和关注! 事情的前因后果在 这条链接 里可以看到 ,为了方便没有推特账号的同学,我同时在文章最后附上了相关的截图。

  我觉得人不应该太早的决定自己的一生,因为人生是没有边界的。
  在我高中的时候,我非常的喜欢生物,我梦想做一个生物学家。我对这个梦想是如此的坚定,以至于我在落选广东省生物竞赛代表队时也未动摇过聊过我的梦想。
  后来我去了一所普通的大学的生物系,开学后便联系教授,去鄙校两间生物实验室打杂。但是做实验和读paper的过程中我开始质疑我的梦想,因为我发现真实的生物科研并不是如同教科书上讲述的那般优雅和工整。
  某天,我对GFW感到好奇,做了相关的调查后了解了原因,自此开始学习一些计算机网络知识。同时,“我必须做一个生物学家”这个想法一直折磨着我,我始终不愿放弃这个梦想,因为我为此付出了我最美好的青春,我为了这个理想失去了许多,放弃让我觉得我的人生就是失败了。
  后来我释然了,原因是我在学习那些计算机知识的时候感受到了欢乐。那种存粹的为了满足自己好奇心的学习获得的快乐仿佛让我回到了16岁,那段自由的时光。
  它解决了我遇到了我遇到的许多问题(比如我用python和正则表达式提取了实验室往常要人工登记的.txt文件里的温度数据),让我对这个世界的了解更加深刻。当我再次变成孤身一人时(具体可以看一下我的 2020年终总结 ),为了排解烦闷,开通了推特号开始发表自己的吐槽和学习CS过程中的一些有趣的知识和坑,慢慢的在评论区和推友互动,结交了许多朋友,这给在生活中过着三点一线(图书馆、食堂、宿舍)的生活的我很大的快乐。
  作为一个资质尚浅的19岁的年轻人,能够收获到各位如此多的关注,实在是令人诚惶诚恐。
  就像我在 推文 中说的,我可能现在还没办法在技术上帮到大家,但是我一直很注意保持友善和礼貌,尊重他人的劳动成果不要口嗨,保持谦虚谨慎的态度。我想Bob或许在技术上或者人生上很成功,但是在友善度上是不够的。对一个自己不熟的人说对方的人生方向是错误的,怎么想都是不友善的。
  说回今晚的聊天,我觉得manjusaka老师说得最赞的是这句话:

社区的 reputation 建立实际上是一个双刃剑,最终怎么使用是取决于自己对于自己的定位。

  上天并没有限定我们今后的道路和人生,并没有唯一一条“正确的道路”。或者说,本来就没有什么“路”。只要一个年轻人不做违法乱纪的行为,一直在学习、前进,那他就是在努力地想要过好自己的人生。
  有些人可能觉得,我的推特上一直“在成功”、在表现自己,那是因为我选择性的发言。我的发言频率是一天至两天发一条推,但是经常我会一两星期不上推,这个时候就是因为我在啃一个难啃的骨头,在做一个难做的任务,只是最后大家只会看到我成功的结果,至于失败的结果,我只会和亲密的朋友吐槽或者自己藏在肚子里。
  我为什么会选择进入PingCAP 的community部门呢?有一位 推友说 ,没想到推友们成了我找工作的工具。其实恰恰相反,是各位让我产生了寻找一份技术运营实习的想法,是各位的友善让内向的我觉得这个领域十分的有趣。
  PingCAP作为国内第一家成功的商业开源公司,开发出了中国最领先的关系型数据库。这里聚集了许多优秀的程序员和同龄人,比如ICPC World Finals选手、交大CS系第一的卖菜专家、许多PLTer等。我入职PingCAP半个月了,我和同事一起吃饭时可以向他们咨询我在学习CS时遇到的问题,了解他们读大学的经历,这些都让我受益匪浅。在对接项目和社区时,我也可以了解到一个成功的开源项目应该怎么样运行,怎么吸引社区的伙伴来参与建设,这也是我觉得很宝贵的知识和经历。
  我最后会做什么工作呢?其实我直到现在也并不是很清晰。正如我一条推文里说的,有些人能够找到他们的“使命”,他们既有天赋又有决心,仿佛他们就是为此而生的。但是大部分人是没有的,比如我。这是蛮令人沮丧的,但是现在我觉得人生的输赢并不只限定在一个维度,甚至当一名翻译也是很有意思。
  并不是说我高中没有进生物省队就代表了人生的失败,并不是说我毕业后没有进大厂当程序员我人生就失败,人生有很多种可能,它并没有为我们限定住边界。我并不想太早给决定今后会干什么,一如计算机系的学生并不就是一定是未来的程序员,生物系的学生并不一定是未来的生物学家一般。下一次时代的浪潮来临之前,我想多多学习,无论是计算机,还是法学,还是金融,我充满了求知欲。学了大半年CS,我清楚我在写代码上并没有什么天赋,但是熟能生巧还是可以的。代码本来也只是一种工具罢了,它最终也会得到它在历史中应有的地位。
  我未来有两条路嘛,一条是出国读一个CS master,目前暂定去日本,已经开始学习日语;如果失败了,就毕业找一家公司干活。
  我并不是一个安逸而甘于平庸的人,我很想出去外面的世界见识一下,外面的世界如何,还是要自己见识过才算数。至于日本,大概率也不会成为我人生的最后一个国家,如果有可能,还是想去游历一遍这个世界。
  最近宿舍熄灯后,我开始重拾我高中时期的习惯:看书。在看《穷查理宝典》时,对里面一句话印象深刻:

上天并没有赐予人类在所有时刻掌握所有事情的本领。但如果人们努力在努力寻找定错价格的赌注,上天有时会让他们找到。

  ”The sky’s the limit”这句话在词典中的意思是:”there are no limits and that anything is possible”。我觉得用在这里十分合适。
  We can achieve anything if you really want to. The sky’s the limit.

Telegram指南

本文旨在向对Telegram感兴趣、或者正在使用Telegram,但是却并不太熟悉Telegram的人们介绍一些Telegram的使用技巧。
对Telegram有一定使用经验的朋友可以直接跳转到后三分之一部分。

什么是Telegram

Telegram(非正式简称TG)是一个跨平台的即时通信软件,其客户端是自由及开放源代码软件。
TG在2013年由杜洛夫兄弟(尼古拉·杜洛夫与保罗·杜洛夫)正式发布。TG的运营公司Telegram Messenger LLP是独立的非营利公司,设立在柏林。
尼古拉·杜洛夫为它设计了一个新的网络传输协议MTProto来保证聊天双方在互联网上传输的消息不会被相关部门知晓。同时,Telegram还支持端对端加密聊天的功能,使用这种功能,聊天双方的内容不会储存在服务器上,只有聊天双方能够收到消息。
用户可以相互交换加密与自毁消息,发送照片、影片等所有类型文件,文件大小上限是2G。

Telegram于2021月1月活跃用户达5亿,现在已经成为这个星球上最流行的通信软件之一。

如何下载

TG官网下载链接:https://telegram.org/
TG的软件全平台覆盖(甚至包含了WP),除了手机、电脑的客户端版本外,还可以使用网页版。

千万不要使用所谓的”Telegram中文版”,Telegram官方从未发布过任何所谓的中文版Telegram,也从未有过任何“VIP”等付费项目。
使用这个软件需要使用代理,tg的SMS码发送有些慢,注册时请耐心稍候片刻。

iPhone、iPad安装

点击官网页面中的”Telegram for iPhone and iPad”,会跳转到App Store的Telegram页面。如果在国内的App Store找不到Telegram,请使用海外版苹果账号登录App Store。
获得软件后即可注册帐号。

注册之后需要做的事情

设置用户名

你可以在 Setting(设置)里右上角的edit设置里填写你的 Username(用户名)。设置后,别人能够在不知道你的电话号码的情况下,通过搜索你的用户名找到你。

  • 用户名可以随时更改或删除(用户名为空)。
  • 用户名不区分大小写。

解除中国手机号码添加好友的限制

目前Telegram官方已将+86手机号新注册用户定义为受限用户,导致国内用户无法私聊非中国手机号码用户,解除方法有两种。

  • 私聊官方的解锁机器人 @SpamBot ,发送消息申请(跟着提示操作点击就行),最后一步手动输入“accident”即可,半小时左右之后即可解除限制。具体操作可以参考Youtube相关视频

  • 更加建议把手机号码换绑到非中国区的手机号码,比如Google Voice,购买的方法通过谷歌搜索相关关键词即可得到,比如“Google Voice 购买”,购买别人注册下来的号码。(如果有需要也可以将其转移到自己的 Google 账号上。)具体操作可以查看 http://www.googlegv.cn/

如何添加好友

在左下角Contacts的搜索框搜索用户名或者公开群组的群组名称。
平时想要告诉别人自己的联系方式时,正确的方法是:你好,我的tg用户名是某某某。这样子既清晰明了,也不必暴露自己注册时使用的手机号。

如何汉化

点击此链接: https://t.me/setlanguage/classic-zh

在PC端设置代理

tg比起诸多墙内IM有一个非常突出的优点,就是可以多平台同时登录并且非端对端加密的消息可以通过云端同步。但是在PC上使用tg时会遇到如果代理不开全局模式,在PAC模式下无法使用的问题,而我们可以通过在设置界面手动指定代理端口的方式进行配置,具体方法如下:

  1. 观察自己的代理软件代理的端口是什么,以Mac上的ShadowsocksX为例,打开代理软件的Advance preferences,我们可以看到代理流量走的是Socks5端口的1086端口,然后监听地址是127.0.0.1。
  2. 我们打开tg,依次点击setting -> proxy -> proxy setting -> Add proxy -> SOCKS5
    然后填入我们之前看到的IP地址和端口号,右上角点击Done就可以了。这样就可以在代理选择pac模式下使用tg了。

隐藏个人信息

我们翻墙在外,要谨言慎行,要注意保证个人隐私安全。我们可以通过以下步骤来调整自己在tg的信息展示程度:
Setting(设置)-> Privacy and Security(隐私和安全)-> Privacy(隐私)
可以参照下图设置

详细步骤可以看这里

添加好友时,tg默认会分享你的电话号码给对方,建议如果对方不是你在现实生活中认识的人,每次添加好友时都要注意把这个分享按钮关掉。

channel与bot推荐

  1. Telegram Geek
    Telegram 使用技巧、重要资讯、常见问答、中文汉化、版本更新等信息。
    https://t.me/TGgeek
  2. 计算机与部分其他种类书籍资源
    收集一些与互联网相关或其他有价值的书籍系列频道
    https://t.me/bookusefor2
  3. 收集偏计算机专业化的书籍
    https://t.me/bookusefor3
  4. Telegram新手指南
    用于解决常出现于 Telegram 中文新用户中的 Telegram 常见问题以及一些日常使用小贴士,以避免各群内的新手重复提问与解答。
    https://t.me/Newbie_Guide
  5. tg创始人的channel
    分享durov关于tg和这个世界的思考
    https://t.me/durov
  6. Stickerdownloadbot
    用于把tg上的表情包下载下来的机器人
    https://t.me/Stickerdownloadbot
  7. 群组搜索机器人
    找到您感兴趣的群组、频道和机器人
    https://t.me/hao1234bot

感慨

Telegram这个充满理想主义的软件不接受外部投资(不需要向任何股东负责),目前也不通过广告盈利,至今没有向第三方披露过一个字节的用户私人数据。Telegram 一直在默默地践行一个理念:这个星球上的每个人都享有自由的权利(Everyone on the planet has a right to be free.)。这在这个充斥着贩卖隐私、充值变强的互联网,显得尤为珍贵。不禁让人再次想起互联网的精神──一个把世界各地的人们联系起来的网络。
感谢那些无私奉献的开发者们,愿他们身体健康,万事顺利~

如果您发现该文章有错误,或者您想和我交朋友,您都可以通过Telegram或者推特与我取得联系,我的tg链接是 https://t.me/PeterYang6 ,我的推特是 https://twitter.com/real_Peter_Yang

扩展阅读

2020年终总结

  2020年是我人生重要的转折点。我走出了温柔乡,开始直面外面的世界。
  我会把完整的我展示给你们看,希望能够给大伙以勇气和信心:原来peter是这样子的。

春季

  2020的春季可以说是我人生的低谷,因为疫情原因,迟迟不开学,我整天在家呆着,起床就刷疫情人数,看各种报道。那个时候我一天吃两顿饭,因为起床时就已经中午了。彼时的我,甚至不知道我起床后应该做什么。
  然后我被前女友甩了,在白色情人节──3月14日,因为性格不合。
  2020夏季我去参加了敝校两个工作室的考核(学校教授开的学生廉价外包机构),都是基于java的。一个考核的是做一个类似闲鱼的购物商场,基于web的,要有聊天功能;一个是做一个比图书馆管理系统更难的景区管理系统,要求用java的那套GUI工具,限期一个月。
  两个同时进行,然后我都挂了。到ddl到时,我只学了点java web的皮毛,和前端的皮毛。当时我在看的还是b站黑马程序员的教程,笑。我根本就不知道什么是设计模式,代码堆在一起,写了堆*山。
  被甩后我个人精神状态极其脆弱,没办法正确的分割应该学习的内容。现在想来,考核内容包括了前端、java web和数据库,再加上点java GUI。我应该选择java web那一套,放弃java GUI的项目。如果我大一上学期就开始学习CS,不是去生物实验室闲逛的话,我应该可以做出来一个demo。但是彼时我真的是没办法,我沉浸于我感情的失败中。

夏季

  我是在2020年四月份加入推特的。我最初是把推特当成一个类似树洞的东西,每天放放自己的代码小demo、美味的小零食等等。让时间一点点修复我的内心。当时我的关注者非常少,每个推只有几个赞,彼时只有cwksc啊柠檬茶啊DGideas啊等几位会和我互动。我每天和大伙们小打小闹的,好像日子就会这样一天天循环……
  然后我开始学习计算机网络和C语言。计算机网络是第一个让我了解到计算机之美的学科。当时我看的是《计算机网络:自顶向下》,书写得非常好。我辅以mooc上的哈工大基于本教材的网课,学得非常开心!《C primer plus》的话我则是看了五百多页,把示例代码敲了一遍,还做了大部分的课后习题。指针当时给我带来了非常大的理解阻碍,我为此看了《C和指针》相关部分的章节,直到我能够理解相关的题目和代码。
  大概是六七月份?我前女友有了新男友。彼时的疫情还没有结束,大家都在家隔离着。之前我还想着,我开学后应该去找她复合,因为我不希望我们之间这么轻易的分开。之后我就删除了彼此所有的联系方式,不管怎么样,我的初恋结束了。
  我最难过的时候,曾经在推特问,“If anyone can save me”。现在想起来真的是黑历史。推上的各位,或许是觉得我很可怜,或许是出于怜悯,大家和我分享他们分手的经历,鼓励我,告诉我一切都会过去。我一直对此非常非常感激,感谢你们陪我度过那段荒唐和痛苦的时光。
  我一直在责备自己,怪自己不够强,不够富有,不够帅气……如果我可以做得更好,或许事情就会有一些变化。我在相当长一段时间内觉得痛苦,不喜欢自己,甚至难过得想要自杀。但是我不得不在父母面前表现出一幅若无其事的样子:因为我不想和父母透露任何关于我的感情生活。

秋季

  彼时ddavid和genres正好开始了一个关于《公主连结Re:Dive》bot的项目,要把他们qq bot上的东西搬到web上。这个项目让我度过了最艰难的一段时光,我捡起了前端,当时用的是Bootstrap和JQuery(现在看来都是落伍的技术了),糊了登录注册界面,写了相关js,搭了网站大体框架,并且从那个时候开始思考我应该走什么的路。
  彼时的我没有能力独立去完成一个网站的前端,即使后来有另一位前端的前辈加入了这个项目,这个项目也是无疾而终的结束了……明明他们是那么好,从来都没有嫌弃菜鸡的我,还给予我指导,我一直因此对ddavid和genres心怀愧疚。
  后来我结束了期末考,彼时已经八月份了。我开始看各种各样的书,每天去咖啡厅敲代码,看网课视频。开始学习JavaScript和Linux运维,想要写一个类似hexo的博客框架,但是后来因为难度太大而搁置。大概就是从那个时候起,我开始以一个CS learner的身份自居。
  时间帮助我慢慢的修复自己破碎的心。我改名为peter,象征着和过去的我决裂。
  曾经的我,觉得我只要待在我ex身边就够了,但是至此我开始改变,走出了我ex身边的温柔乡,暑假给了我一些时间学习计算机相关知识,我开始把我的感悟和收获在推特上和各位分享,借此结交了许多朋友。。
  我觉得让我转变最大的,第一个是被甩,这让我意识到了我不能够继续待在自己的舒适区。第二个是公主连接bot开发项目的失败,它让我意识到,什么样的水平揽什么样的活。
  我意识到如果想变得像样点,第一就是要多和别人沟通,和强者待在一起。第二就是我需要变强,要有我自己的一套技术栈。
  后来的日子渐渐的就变得好一些了。
  迟先生关注我时,我推特当时还只有一两百关注者。迟先生是关注我的第一位大v,虽然迟先生一直卖菜,但是我一直知道他非常强并且是乐于助人的。
  有一天我鼓起勇气私聊了himself65,我至今十分感谢himeself65能够和当时的我聊天,解答我一些困惑。他还拉我进了他的私人群,那是我第一次加入推特中文圈的tg群。我当时问过面包,应该如何从一个普通的前端人员进阶成为node.js的core member,彼时他答应了我要写一篇博客讲讲这件事,但是后来因为发生了种种事情他就一直鸽到现在,笑。

冬季

  漫长的居家日子结束了,我们开学了。在大学有着固定的作息表,学习效率大幅提升了。
  有一天我在推特看到了Alendia发布的她的打算休学的博客文章,想起我高三休学时的经历,便主动私聊Alendia。我当时根本就不知道Alendia是个女孩子!我只是觉得我应该给予参加和我有一样想法的人以建议和提醒。即使Alendia后来没有休学,但是她的勇气给我留下了深刻的印象。
  因为认识Alendia,我认识了千里冰封(英文名是Tesla Zhang,我喜欢称呼他为冰)。
  冰可能是改变我人生的一个人?彼时我完全没办法想象有一天我会和这么强的大佬一起喝酒吃饭,成为朋友。
  冰是搞PLT(programing language theory)的,我对PL领域其实是不太懂的,但是冰让我第一次看到了一个人居然可以对cs领域如此的热爱。我不是计算机科班生,在此之前我只和ex和我高中的几位朋友交流过编程的事情。我一直闭门造车,走了许多的弯路,这是我今后应该警惕的。
  此前,我以为计算机就是前端、后台和运维。和冰聊完我发现了PL、计算机图形学、编译器、分布式计算、操作系统……我知道了设计模式,我知道我以后除了在国内996或许还有其他的活法,那就是:把生命投入在自己喜欢的、伟大的事物上。
  后来冰和面包因为一些事吵架了,我觉得真的是十分遗憾。我真的希望在我的有生之年能和冰和himself65在同一张饭桌吃饭聊天。
  我渐渐的通过各位认识了推特中文CS圈的许多朋友。我认识了全干富二代工程师柠檬、认识了字节蹦哒前端工程师鹅哥、认识了本科毕业两年成为阿里p7的纯爷、认识了磷、阿寒、色扑、认识了学识渊博的麦吃姐姐、认识了可可爱爱的光量子、认识了可怕的硬哥、认识了wayslog老师、认识了一心想读数学的Claude、认识了joly、认识了几个公司的hr。还有许许多多给予我帮助的推友,在此限于时间和空间限制我没办法全部展开,但是我非常喜欢和你们一起度过的时光,今后的日子里还请多多指教。
  彼时我试着学习过计算机图形学,但是我薄弱的数学功底提醒我我不适合这个方向。然后接触了Vue,写了一些网页,非常感激在此过程中柠檬给予我的指导。
  我开始看英文原版的计算机教材,看伯克利、MIT等名校的网课。
  在敝校的一门选修课上,我对GFW如何阻挡我们连接国际互联网产生了强烈的兴趣。于是我收集查找了许多资料,亲自做了一些实验,最后汇集成了一个超过三万字的slide报告。我借此项目和选修课的老师成为了好朋友,一起吃了烧烤哈哈哈。我在里面分析和推测了GFW的规模和它的攻击方法,并且承诺开源。但是由于我现在几近实名上网,所以目前打算等我抵达安全的环境时再对其进行开源。我借此项目结交了一些机场主和网络工作的从业者。在惊叹GFW庞大的规模和耗费资金的巨大之余,我感觉网络方向比较符合我的学习习惯和研究兴趣,或许今后会选择相关方向的研究工作。
  之后我一头扎进了java,给一个开源的java爬虫程序做了个GUI。
  最近是在看伯克利的CS61b,学习数据结构的相关内容。
  12月,我去了深圳一趟参加中国第一届Rust China Conf(再次感谢wayslog老师的赠票)。参会时其实许许多多的内容我是听得一知半解,其实让我收获最大的是和那批70后、80后程序员们的长谈和聊天。他们深厚的代码功底和不停学习的精神让我感慨良多。
  承蒙错爱,居然有四千多位关注者愿意在推特听我的碎碎念,如今GitHub也有了三百多关注者。作为一个学习了一年多计算机的菜鸟,有幸得到诸位关注,实在是不胜感激,诚惶诚恐。希望我的推文和工作能够给诸位带来一点点启发和宽慰,也非常欢迎各位可以和我交朋友,聊技术。

展望

  目前前路也算是比较清晰。我的未来有两条路,一条是毕业后在国内互联网公司做开发工作,996;一条是去外面广阔的世界读一个master或者直接出国工作。由于家境贫寒,我可能没办法选择去美国或者欧洲读授课型的master,所以目前是希望去日本或者加拿大读master。如果我最后失败了,我就去工作。
  2021的打算是,学完CS61b,看一下SICP和相关网课(CS61a或者其他),完成斯坦福的CS144(计算机网络),看编译器和操作系统相关的网课和书。如果还有时间的话再看一下MIT的数据库课程(6.814或者其他)。然后做一些能够拿得出手的side project(感觉把课程lab写简历上感觉怪怪的)。
  嘛,我一直说,我是个理想主义者。因为我现在过得太糟糕了:糟糕的专业、糟糕的环境,所以我把希望都放在未来了。我希望我可以成为更好的人,能够去回报那些曾经帮助过我的人,也希望能够帮助到有需要的各位。
   我希望能够在大二的暑假,也就是2021年的6、7、8月找到一份开发相关的实习。我的邮箱是 Yangxiaomao6@gmail.com,欢迎各位hr和我联系。

我2020看过的编程相关的书

  • 算法图解
  • Html从入门到精通
  • css权威指南
  • 半本 JavaScript高级程序设计
  • 半本 锋利的JQuery
  • 疯狂Java讲义
  • 半本 Java核心技术卷一
  • Java Web从入门到精通
  • Java 8函数式编程
  • MySQL数据库应用从入门到精通
  • 半本 鸟哥的linux私房菜
  • C primer plus
  • 半本 C和指针
  • 计算机网络 自顶向下方法
  • 图解HTTP
  • 半本 Rust the book

  编程非相关的书的话,就是一堆学校要求的生物专业的教科书和巨量的漫画。
  希望2021年能够补齐我在计算机理论知识上的欠缺,多看黑皮书,把Algorithms和CSAPP看完,并且把去年看一半的书补齐。

  如果您对我感兴趣或者想要和我聊天,可以关注我的 twitter 或者 GitHub,也可以通过电子邮件 Yangxiaomao6@gmail.com 和我联系。我很乐意帮助有需要的各位,就像彼时帮助我各位一样。
  我的2020年终总结全部就是这样啦!感谢各位的帮助和关心,也感谢各位能够看到这里。祝大家新年快乐!新的一年,肯定会变得更好的!