首页 > 快手实习两个月,你一定要看的实习经验神贴
头像
渣渣高不会写Java
编辑于 04-17 18:56
+ 关注

快手实习两个月,你一定要看的实习经验神贴

安利快手

我来提前实习,已经一个半月多了,就感觉这里是非常棒的。特别是自己的部门。

上年面试

上年秋招三面的时候,和大 LD 聊天,大 LD 问我,你对未来工作环境有什么要求?我当前也就大胆的说了。

1. 希望工作和生活有一个明显的界限(啊,实际上就是不喜欢加班多)

2. 希望技术氛围比较浓厚:大 LD 说,可以的。这边有快手中学,可以学些蛮多东西,也有 KStack 技术社区。我们部门内也有技术的分享,每个人都要分享

3. 希望人文氛围比较不错:可能用词不准确。我的意思是,希望同事之间能够有比较好的关系。比如说私下周末也可以出去玩。

技术氛围不错

快手有专门的文轻雀和聊天平台 KIM。然后也有很多自研的平台,用着蛮舒服的。快手中学/KStack 等网站,能学到很多,会有很多内部技术的分享,这些文章真的是太牛逼了。

人文氛围太棒了

我的 MT ,感觉看起来挺老实的,比我大几岁。我代码实战还不是特别强,之前也没有实习过,开发上线部署流程也不太懂。MT 非常愿意去回答我的问题。我之前问过:如果有问题的话,我就多问问 Xxx(我同事,他是去年来的,和我差不多大),然后不行的话再问你。MT 说,没事,直接问我也行的。然后就感觉,哇,太好了。【**就是那种事事有回应的那种**】

我的 LD,也很棒。长得显得很年轻,长得也帅,特别爱笑。也非常站在我的角度去思考以及关注我的情绪。例如,同事和 MT 在讨论我未来接手什么业务线比较合适,LD 就找我了解了解,然后安慰我说,他们在群里说话,感觉没有在意到你的情绪。其实我觉得是没有啥,他们也是正常发表自己的观点,又没有吵起来。【**不 PUA,爱笑,感觉很亲近。站在对方角度思考问题**】

我觉得很震惊的是,我在这里还没有听过任何 PUA 的话,他们只会告诉我,没事你不用压力大。初期有人带你,后期慢慢让你主要负责,同事次要负责,最后交给我。给我的感觉是,他们没有去跟我谈你未来入职之后试用期要怎么做,不然就过不了。他们给我的感觉就好像是已经将我这个实习生,当成一份子的感觉。【**感觉有被当成一份子,给我发任务,也真的是想培养我**】

我蛮喜欢这里的,我其实不是一个比较能抗压的人,我在这里没有感觉到太大压力,很开心。我看同事,每天也没有那种丧丧的感觉,偶尔也会座位上聊天,非常开心。

吃的也可以

最近新开了很多家店,很多还没去尝过。

之前吃的大骨饭,还不错。

也有可以点菜的餐厅

之前和MT说,我有个实习生朋友收到了MT请的奶茶,问他怎么看?

然后他说之后请我吃饭,打算宰他一顿

实习前思想上的准备

明确你的目的

不同人的实习,目的是不同的。【**你要明确自己的目的,基于这个出发点去列举出你的期望和收获计划**】

1. 我是提前实习,我最主要的目的是:

1. 熟悉主要开发流程,熟悉项目结构/原理,希望能在入职之后快速上手。而是明确一点自己的不足,这些不足可以在我入职之前去弥补。

2. 【**充分暴露问题**】:他们知道我之前没实习,我不需要不懂装懂,也不用只低头研究,有问题就问,而且我来提前实习了,展现我好学好问就好了。

2. 如果是转正实习:

1. 【复盘 + 汇报】如果活做完了,要想办法主动去找活干。并且做完之后要及时复盘,找到不足,这也是汇报的时候需要做的。

3. 如果是普通实习:那就多问就完啦,然后多偷点产出。

同事还不错就多问

这一条的基础是,你的同事还不错。

1. 一定要多问,除非你的同事很不好。我在这里,同事都非常不错,问问题都愿意回答我。

2. 【**多表达自己目前的状态和遇到的困难**】: 有些困难和压力可能是自己虚设的,例如我和测试对接的时候,我认为测试的时候,我最好不要再改动了。

我(主动汇报状态):目前有个需要改动的地方,明天就测试了,我得抓紧了。

MT:没事,不着急,测试的时候也可以改,不抓紧也行。

我:哦,那我就不抓紧,正常改就好了。改动之后,同步给测试吧。

3. 【**不要凭空臆想问题**】,有些时候,你因为不清楚流程,走了错误的步骤,此时你需要停止,而不是走下一步来弥补。所以,你要明确你的目的、你做了什么操作、最后出现了什么结果。

错误提问:算法学不会怎么办 —> 别人给你的答案是,好好学,这个很难。

正确提问:我在学算法,现在在看算法导论,我发现完看不懂,学不会算法怎么办? —-> 别人:初学算法不应该看这个书,应该看 Xxxx 。

也就是说,很多问题是因为你走错方向而提出来的,当你提出这个错误问题,你反而可能继续错,所以你需要体现自己目前状态。

如果你遇到还不错的同事和 MT,或者你是不要求转正的实习。多问问,因为刚入职比较菜的时候,多问问没人觉得你有问题。**相反,如果你第一次实习不多问问,正式工作再问,或者问题积累到以后才问,别人就觉得你这有点差劲了。**

多找同事聊聊天,认识点同事

1. 一个目的是,多认识点人。其次是看看同事之间的关系咋样。**我这边,发现同事关系很好,很多同事周末一起出去玩**

2. 【技术道路上的建议】:你可以问问别人的技术发展之路,看看别人是怎么发展的。如果对方和你不熟,最好别直接问有啥建议。不太熟你可以稍微问问对方的经历和经验哇,对方来了几年啦之类的,联络联络感情,也可以随便问一些问题。

3. 【工作上的建议】:例如,我做完业务需求之后,我想明确产品和测试对我这边的期望是什么,我第一次做,很多点可能没考虑到,你那边有建议的话,可以随时跟我说。

【为什么不要直接问建议】:因为比较突兀

- 不知道大家有没有面试完之后,问面试官意见,面试官很敷衍,然后也不太想说。

- 我在面试的过程中有一般会先问:您觉得我本次面试怎么样,还能凑活吗?如果对方觉得不错,一般都会说蛮多的,因为他欣赏你。

第一次实习 || 实习时间较短

第一次实习,很难去做较难的内容。

1. 如果你还需要找下一次实习:偷学技术,然后写到自己的文档。(虽然不道德,但是都这样)

2. 尝试明白基本的开发流程,这里指的是通用的,例如 Git 以及测试类自测等等,对于代码的部署上线,公司会有自己的文档,跟着文档来就好了。

实现前技术上的准备

第一次实习,往往不会接触到很多很难的内容。但是当你真正入手之后,很多看起来简单的东西,其实之前是没有理解深刻的,所以切莫眼高手低。

git

1. 基本的 git add / commit / push ,注意 push 到自己的分支。

2. git rebase -i: 合并多个提交,这里是看情况,如果你的提交太多也不好。**第一次提交之前,问 MT 是否需要合并 Commit ,合并多条 Commit 显得清爽。*

3. 基本的使用流程:例如,创建分支命名规范 / 创建分支前,拉取 master 代码

4. 合并流程:你知道做什么操作该合并到哪?测试/开发/master?不清楚也没啥,到时候看公司文档,哈哈哈。

目标:在使用 git 的时候,最重要的是了解怎么完成基本操作。你需要串联出一个流程。

TIPS: 可以创建一个 read-code 分支,该分支用于你阅读代码,不提交到代码仓库。

#### Java

1. 需要明白:

1. 代码风格的要求:例如我这里的代码,就不会写很多注释。不会写过于繁琐的注释

2. Stream : 不同公司要求不同,但是最好会。学会基本的一些操作。

我这边,很多方法都没有写方法注释。当然,不同地方不一样。你可以按照如下格式:

```java

/**

* method : 处理并返回格式化数据

* @param :

* @return :

*/

public Object formatUserParams() {

Object inputUserParams = new Object();

// step1 : 处理参数

// step1.1 : 剔除无效数据

// step1.2 : 格式化数据

// step2 : 构建返回值

return formatedUserParams;

}

```

建议:其实我觉得你要做的是,即使不写方法注释,别人也能看得懂。这是最好的,也就是是根据方法名,形参名 / 返回参数,就能明白你在做什么。

MySQL

1. 熟悉基本语句即可。

2. 熟悉基本的表设计,例如一对一、一对多、多对多关系等表的设计,以及字段类型的设计

表结果设计:我看的是一本老书,其中的某些观点其实已经过时了(老书中非常偏爱于外键约束,忽略即可)。

《SQL 反模式》

字段类型设计:网上一搜一大把

Linux

1. Vim 简单用法:也就是说,你能去查看/创建/编写/修改文件。你别不知道 wq/w/q/wq! 这些

2. 查看日志:一般可能是 tail -f 查看日志、tail -f log | grep "内容"

3. greg : 不需要了解太深,至少你要知道怎么搜索关键词即可。以及 grep 和其他命令结合使用

Redis && Kafka

不需要你懂太多哇

1. Redis:你明白几种数据类型的使用场景就好了。

2. Kafka:基本使用就行了,如果用的其他 MQ ,也是类似

注意:不要过度准备

有些人可能会准备各种,MySQL 的优化 Kafka 也提前研究很深,然后多线程和高并发。

1. 大多数情况下:你那不会接触这些优化/高并发的地方。当然,如果有,你自己也会明白的,例如在面试的时候,对方会说的业务特点的。

2. 所以说,避免过度准备。准备一些简单的东西就好了,后面慢慢研究业务,看看别人优化的东西,以后你在针对性的学习某方面的优化。

其他软能力

对于实习生的要求,大部分公司对实习生的技术没有多高要求,但是一定要表现自己的一些特性,不要做一个默默无人的实习生。**特别是 INFP 性格的人,别害羞。多表达自己**

汇报能力

每周组内都会进行进度的汇报 review 。所以,你该如何去清晰的表达你当前正在做什么?我给你个简要的模版。

1. 【业务需求】描述一下业务需求是什么。背景是什么,好处是什么。

【文档】PRD 文档 + 技术方案文档(若有)

【进度】当前状态,预计 Xxxx 上线

【阻碍和困难】:汇报的时候也得给出目前的阻碍和进度,需要其他人明白你做的事情的困难。

2. 【技术需求】同上

3. 【TODO】:准备做一个复盘文档

4. 【其他任务】:我做了 Xxxx,**然后主动发现了一个问题并解决了**

重要的是格式吗?**重要的其实不是格式,而是你的思路,你要有一个思路去让别人明白你在做什么**,格式只是你思路的一种文字呈现对于别人来说,其实对你的业务背景/现状是不了解的。所以,首先你得知道你的业务需求为什么要做,原先有没有类似的功能?你这个功能是新功能,还是改进原先的功能。以及你是如何做的,目前进度。

其次,汇报也体现自己的贡献。当你刚入职,你可以去汇报自己的进步,但是以后同时最重要的是体现你的贡献。

交流能力

很多人交流能力其实是有些不足的,例如我和对方研发在群里交流。我提的问题,对方研发很快回复我了,但是测试找他,就一直没有回复。因为我这边的测试提出问题,我自己都不太明白他想要干什么,对方没法提供相应的答复。

1. 明确技术细节时:

【案例】我利用你提供的接口,发现了有部分奇怪的数据,我觉得这部分数据对我没啥用。我能不能屏蔽这些数据,如果可以的话,该如何去屏蔽这部分数据。是否可以这样做,……..?

【对方】:当 Xxx 字段和 Xxx 字段不同的时候,这种数据你去掉就 OK 了。

【总结】:也就是说,提出你的困惑,明确你的目的,表达你的想法,寻求对方方案。

2. 和同事的交流能力:

1. 正常交流即可这个和性格其实相关比较大,一般来说最好别太胆怯,也无需过度礼貌,正常交流中带着一些尊重即可。

3. **不要擅作主张**:

1. 【不要瞎说】比如说问你排期是多久。你如果第一次做,不清楚排期,一定要和 MT 商量不要擅作主。**你没经历的事情,例如问你 DDL,不要直接给结论,先说问问 MT,自己刚来 。**

4. 第一次尝试的任务:

1. 【明确流程,不要模糊】一定要经常汇报和提问,如果是代码部署上线的任务,操作的时候一定要和 MT 明确操作是否正确之后,再去尝试。**不要迷迷糊糊的操作,你一定要清楚当前你在干什么,不够清楚或者忘记了就需要问一下。**

5. **尝试说出自己的理解**:

1. 【提出自己理解】当 MT 或者 LD 给你介绍的时候,不要只盲目接受信息。当他们说到一定程度的时候,或者你觉得不清楚的时候,你要提问或者说出你的理解出来。

6. **明确结论和细节**:

1. 【明确结论】例如当你和同事去开会,开视频去谈论。最好要明确一个文字版本会议结论,这个结论传递给实际参与人员。不然后期甩锅,他说你错了,我说他错了。

7. **注意语句逻辑是否有误和换位思考**:

1. 【检查结论】打完字之后,你要检查一遍,逻辑是否有误。然后要以对方的角度去思考,你说的问题他是否能理解。你们之间是否有 Gap?例如,我是一个实习生,我第一次做需求之前,我不知道具体他要做什么,所以他说的名词我可能是不知道的,这就是一个理解上的 Gap。

8. **提问的智慧**:提问方式只有一种吗?

1. 【提出自己的理解】:当无法确定自己的理解对不对的时候,你提出自己的理解。这也是一种提问。

1. 例如:MT 给我了个任务,比较抽象,我得研究之前如何实现,但是不确定我研究的是否对不对的,这个时候我提出自己的理解,问问理解对不对。

2. 【描述自己的状态】:描述当前的处境,询问 MT 该如何做。

3. 【给出多个想法】:当问题存在多种可能性的时候,你问是哪一种。

1. 例如:修改 MySQL 表结构,是在公司平台上面修改就好了,还是自己用 Navicat 连接数据库修改。

主动性

我认为的主动性指的是:你做了一些没有要求你做的事情。

1. 技术主动性:不过一般来说就是 MT 发布任务,自己做就好了,所以一般实习中间的技术主动性较少。**你需要注意,做重要操作一定要提前汇报,不要认为不给 MT 操心,自己做好给他看就行。** MT 很担心你操作错,所以重要操作一定要提前和 MT 同步,若因为自己瞎捣鼓导致了线上事故对你的印象就不好了

1. 我实习间的技术主动性:根据一个异常日志,自己提出解决方案。和 MT 讨论之后,MT 认为我可以设计一个通用性的解决方案,排查所有接口并解决问题,让我七月入职以后来做。

2. 沟通主动性:当你遇到问题的时候,一定要主动的和 MT 沟通。

3. 主动提出想法:互联网公司更在意想法和思维的碰撞,如果你有什么想法,可以提出来。**但是做之前最好可以先和 MT 沟通**,明确这个问题是否需要做,如果可以的话,你再做,最后在组会提出。

1. 例如,你想针对于组内自研平台提一些使用意见,你应该汇报给 MT 说:我第一次使用我们的平台,我想在这几天去复盘一下,然后开组会时,讲一下我使用的体验和意见可以吗?

2. **明确是否要做,怎么做**:确认有必要,再去做。也让 MT 知道,你是有想法的人,你是主动的人。

TIPS:主动性,可以体现在平时的话语中。

- 当他给你发布任务的时候,如果遇到不会的就当时说,Xxxx 部分我不太会,这部分操作蛮重要的,到时候我操作的时候找你沟通行吗?**例如代码上线任务**

- 不要认为说自己不会就显得自己菜,反而很多时候能体现你做事靠谱。没教过的东西,如果是代码上线/修改表结构,你敢直接做,就吓死 MT 了。

- 事事有回应 + 说到做到:MT 给你发的任务,你一定要记清楚,别耽搁到最后忘掉了。其次,你自己说的话,一定要做到。例如,你说提意见,一定要提。

Mac 使用建议

1. UTOOLS:双指长安弹框,很方便

1. 悬浮文本:可以列 TODO

2. JSON 渲染:美化 JSON 格式

3. Excalidrwa: 画板

4. 截图 OCR

5. 截图并悬浮:这个蛮好用的

2. IDEA 插件:

1. smartInput

2. sequenceDigram : 时序图,看代码很方便

3. Google Chrome : 一般用这个

4. POSTMAN:

1. 基本使用即可

2. 对于浏览器中的请求,可以复制 curl,然后改 ip 来让请求发到本地,可以 DEBUG

5. 最好不要登陆微信和 QQ:快手可以用。但是其他公司有些不允许,有些可能访问你聊天记录。

文档编写

1. 做任务之前,问问 MT 或者同事有没有类似模版

2. 文档大部分是给别人看的,一定要清晰。你在写一个文档的时候,你要考虑,排版是否清晰,如果让你去演讲,是否能根据你的排版去演讲的流畅?

3. 尝试绘图:时序图 / 类图 / 流程图

4. 写完检查一遍有无错误。

AI 赋能

现 AI 大模型一堆堆,快手内部也有大模型给程序员使用。

所以你可以问问,公司内部能不能使用 GPT ,一般公司内部可能都自己接入 GPT 了

1. 【若允许!!!!】:可以用 GPT 来 CR,例如快手有内部的大模型,不是接入 GPT。所以,可以让他来 CR

2. 【若允许!!!】:用它来生成一些测试用例

3. 处理数据,例如将数据改成 Xxx 格式

其他建议

1. 有事情提前说,避免事情做一半没人接手

2. 最好要有列 TODO 的习惯:当你的 MT 给你说了很多东西你需要学习的时候,又或者提了一些注意点。最好提一个 TODO,然后一个个解决。**MT 给你说的注意点,如果你模糊了,一定要再问**

3. 写文档的时候要明白,大部分文档是写给别人看的。你在写文档的时候,要体现自己的思路,换句话说,你该如何把这些东西说明白?而不是直接读文档。

全部评论

(14) 回帖
加载中...
话题 回帖