如果你的实习能重来一遍,如何让自己的实习利益最大化
本文将以Java后端岗位的实习为案例,跟大家介绍下我认为能够让自己的实习收益最大化的方式/思维。当然本文介绍的大部分内容,其实很多岗位都可以适用。
本文会介绍我遇到的很多人常见的“错误”思维以及我认为正确的思维,这些思维并没有绝对意义上的错与对。但如果你追求的是快速成长、快速进步,或更直接点是更好的工作内容和薪资,有些思维习惯方式可能你进步的绊脚石。
好的,接下来我们来慢慢讨论一些常见的问题,希望你能通过我的一些看法,挑取一些你觉得有价值的东西。
导师没有义务去帮你分析你的缺点和帮助你针对性进步,他的义务是让你能上手做需求
或许很多人认为的成长可能是:
- 我了解的更多框架
- 我做了更多的需求
- 能够完成导师给的任务
这种思想倒也没毛病,你能通过这种方式实现慢慢成长,成为一个熟练开发的实习生。那么此时,你会遇到一个问题,你在写简历的时候,你八成会觉得没什么可写的。简历中其实也就写3-4个功能吧,那为什么你还写不完?写完之后感觉写的平平无奇呢?别人思考的是写哪一个,你想的是怎么凑出3-4个。
> 简历可以参考我之前的文章,已经五百多收藏了,很有价值:https://www.nowcoder.com/discuss/591031032342687744?sourceSSR=users
核心在于:你没有主动去发现问题和解决问题的意识,你认为 MT 交给你啥,你做完啥就可以了。靠着这种意识,如果你学历很好那面试没太大问题,但是相反如果你学历普通,靠这种意识,你不能在万千卷王里面脱引而出。
总结来说,如果你觉得自己成长不够、学不到东西、写简历面试的时候,你的问题是:
实习的成长不够,导致和最终面试的要求存在 GAP
接下来我们拆解这个问题,然后跟大家说有哪些方式
1. 不对自己的职责/领域设局限,探寻业务的不合理处,和导师沟通
你的目标决定你的上限、行为
你思考下你平时的职责,是不是就是MT跟你派活,然后沟通怎么做,做完上线就OK。
这是远远不够的,你的见识太少、太窄,你的输入源只有你手里的任务。
你应该认为你是这个系统的维护者,要有大局观,在这种思维下,你会思考
- 明现状:目前我们的系统是什么样的,你要能描述它用了哪些能力?同时得关注他用到了哪些能力,尤其是各种中间件的监控:例如接口耗时、MySQL慢查询、Redis 慢查询、JVM 监控、MQ 监控
- 知好坏,辩黑白:你们现在业务是健康状态么?他应该是这样状态么?哪个指标是不正常的?
- “颠倒黑白”:这里指的是,如果你发现了问题,且这个问题你和导师有共识,它不应该存在。你要尝试“颠倒黑白”,把问题(黑)解决掉(变白)。
- 深入剖析,分享/记录经验:
案例:
- 应该明白你系统的接口耗时、慢查询、JVM 监控,是不是都是正常状态?如果不是,你怎么排查(Arthas 会用不、explains会用不)、IDEA 调试会用不、如果是大流量场景、批量场景,Jmeter 会用不。该怎么解决?
- 你应该明白,你的系统的架构是什么样?配置是什么(比如说集群的配置):你要和你八股结合咋在一块,为什么是这样?用你的八股解释下
总结:你要拥有的是,发现问题、排查问题、解决问题、复盘解决过程的能力。这是简历中/面试中,应体现的能力,也是很多人实际上没有拥有的(大部分是偷产出,把别人的努力思考变成自己的。我不贬低这个现象,我也有过。但举个例子,你可以抄作业,但是你不能啥也不懂只抄作业)
备注:不要给自己太多理由,无论你的工作形式、工作内容,你总有办法发现问题、解决问题。即使你那就一个单体项目
2. 通过发现问题、解决问题,建立你进步的正反馈
解决问题是很有成就感,如果你认为你的工作内容太枯燥,很可能是你缺少发现问题和解决问题的经历。
如果你有过成就感,那么就再接再厉,这是一种正反馈。
总结:进步最快的方式是重复执行能带来正反馈的行为/学习模式。我上面说的第一步就是
3. 设计方案时,不设边界的思考和拓展,举一反三
大部分人做的工作都是螺丝钉,只有少部分人才能在实习中做一些稍微复杂的功能。那么写简历时/面试时,我该如何编写我的简历呢?接下来还是从结果反推你应该做啥。
面试官看见你的做的工作,他考虑的更多是
- 需求的深入研究和剖析,也就是你思考的过程:对于此类需求,你的方案是 1、2、3、4。但是考虑到目前项目的特点是XXX,所以你才用了一个中等方案 2 ,如果要求更复杂、流量更大,可以采用方案3、4。
- 在开发这个问题的过程中,有没有遇到难点,你通过什么工具,排查出来了
- 如何发现问题,解决问题,解决思路的复盘:前两小句话,之前提及了。现在说一下第三小句
- 场景1:接口优化。
- 基本背景:你如何发现接口慢?怎么排查到关键问题?
- 拓展思考:慢的本质是什么?这一类问题有哪些解决问题?
- 深入本质,解决一类问题,形成 SOP(标准作业流程, 画个思维导图即可):这个接口慢的本质是什么?接口有哪些常见慢的原因?这些问题通常有哪些常见的解决方式,排查方式??
- 总结:触类旁通、举一反三;检验标准:好的复盘和思考,能让你遇到问题时,快速反应出解法
- 逻辑表述能力:这个比较难,很多人面试比较紧张,这个只能慢慢培养。我说几个表达/思考习惯,这些可以快速练成,如果想深入可看《金字塔原理》、结构化表达
- 背景 + 矛盾 + 解法 + 决策:当你解决一个问题,你需要跟其他人表达你做了什么,可以用这种方式。
- 先说结论,在分若干点论述:懒得说,不想越扯越远了。自己体会为啥要这样
- Star 法则和 PREP 法则:也不想多说了,毕竟不是强要求
4. 死皮赖脸的多问、多学习
很多人的项目可能很简单,但是我不认为这个项目中没有任何一个可以学习的功能。多学多了解为什么,这是你必须的。
(上文提及到了:辩黑白)
5. 尽可能的让成长趋势最大,如果慢慢变小,你该走了
简单来说,就是不断的重复上面的过程,发现更多问题并解决。当你发现你在这里的成长快到头了,你要提前走。
如何判断到头了:
- 自己没有发现更多问题了,只剩下维护功能和做脏活了:
- 成长趋势变缓慢,可解的问题越来越少,且之后能学到的知识再下一份实习也能学到
这里多说几句,大部分人会有这种思维
- 我答应了HR要实习6个月;无需太担心,你保留你的工作证据,证明你的实习真实性。在你认为该走的时候,提前跟MT找个理由离开即可(要把你该在的活做完)。
- 什么时候面试?:边实习边面,遇到好的就跑
- 至少实习多久:时间跨度上3个月,实际至少满俩月吧
- 导师待我不薄,不忍心走:他待你好也不代表你能转正,也不代表你要放弃追寻更好的机会
6. 软能力
刚才我们提及了很多东西,基本都是围绕开发的基本素质。但是事实上,以上能力更偏向于基本素质,接下来要说的事情只能慢慢来。不是必须的,但是时迟早得有的。
- 做事的行为风格:
- 发现、解决问题
- 做事要汇报,汇报有闭环,汇报要清晰:你想做什么先大致想想怎么做,然后汇报你要做这个事情,以及为什么要做(做这件事的理由应该是:因为XX,所以得做,而不是你想做就得做哦),做好了要汇报效果
- 技术方案文档编写、汇报能力、沟通能力(本质也是逻辑表达能力)
- 自信:我曾经也是不自信的人,但是我相信,只要你持续做上面我说的行为,你会变得自信
第一部分:大概就到这里了吧,如果你尝试过做了上面的事情。你在面试的时候应该是这
- 自信的表达你在上一份实习中,做过哪些事情,取得了啥成果。你可以自信的说,我拥有 xxx 问题的解决能力,我成功做到了xxx事情
- 明白一个需求的整体开发流程,明确各方职责,能在沟通时提出有效建议和一起思考方案:
- 和面试官有来有回的讨论你做过的事情,进行不设场景边界的思考探讨
工作和面试
1. 逃离舒适圈
合理的体会我上面的话,前提是:你的进步放缓,但是你却因为其他因素而放任你自己待在这个领域。
例如老板给你画饼、导师对你态度不错,这些不是你待在这里的核心原因。
2. 编写简历
如果你尝试做过上面的事情,你的实习肯定是有货的,这个时候如果你不会写简历。参考我的这篇文章,帮你组织你的实习内容
https://www.nowcoder.com/discuss/591031032342687744?sourceSSR=users
3. 背八股
我的看法是,不盲目背八股,针对性的对于常见的基础八股,有自己的看法和思考,然后在面试里面表达出来。维护一个爱学习爱思考的人设。
见我以前的文章:https://www.nowcoder.com/discuss/574271952110551040?sourceSSR=users
4. 面试要求:
我的看法也就是上面我提及的事情。如果要一句话表达:解决问题的能力和思维。
实习阶段,不可能要求面试者有实际解决复杂问题的经验,而是要有解决普通问题的经验和思维,有这类过往的人一般来说是可以经过指导来解决稍复杂的问题的。
之后不知道写啥了,也不清楚你们还关心啥东西,可以在下面聊。我会看你们都有啥问题,然后再补充文章


