胡圆圆的暑期实习经验分享

背景

实验室一般是在研究生二年级的时候会放实习,在以后的日子就是自己完成毕业+工作要求,基本上不再涉及实验室的活了,目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享,本着不想把这个良好的传统在我们这届丢失,故做本次分享。

自我介绍

本人暑期,秋招战绩在实验室都算不上优秀,主攻的方向是后端开发,截止目前有四段实习经历,从初创到大厂都待过,最后选了蚂蚁作为自己毕业之后的第一份工作,希望自己能保持对技术的初心继续往前走。

经验分享

经验分享网上有很多,大部分都是从八股+算法这两个方面进行入手以找到工作为目标结束,但是我理解的目标不光是找到一份实习或者工作,而是需要把做技术当成自己的职业,找到一份好实习或工作只是职业的开始而不是结束,所以想就对整个过程做一次分享也是自己对暑期和秋招总结。
金字塔结构图

事前

心态

相信这个时候开始找实习的同学心态都比较焦虑,可能存在着两种情况

  1. 实验室有需求,一边准备暑期,一边做着实验室的活。
  2. 实验室没有需求,全力准备暑期实习,但是很担心找不到或者找不好。

当时我就是属于情况一并且心态也是比较差的,白天着急干活,晚上匆忙复习和刷题。但是实习过后回头看其实发现复习八股和刷题固然重要但是习惯更加重要,当然每个人的体会都不同,这是我在第三段实习才懂得的道理。
开发不是赛跑,是一个需要坚持的赛道,如果再给我一次机会,我会选择静下来心来,好好把实验室的活做好,从原本的80分做到90分以及以上,现在就是很后悔当时没有好好地把握实验室的锻炼机会。其实在公司做的工作和实验室其实差不多,如果运气好,到了一个比较锻炼实习生的组那还好,如果运气不好,其实说的不好听就是打杂,锻炼的机会少之又少,发育全靠自己,如果再加上自己急于求成,习惯不好可能并不能有很多的成长。
习惯的养成对于我们就是在实验室里面养成的,比如开发规范,记录习惯,记录wiki,issue等等,也就是解决问题,做事情的习惯,相对于公司来说是很自由的,至少带我开发的老师也是技术很牛,比较开放的。

综上所说就是思考,解决问题的好习惯比背八股,刷算法更重要。做事情不能太功利,要持之以恒。

目标和计划

简单来说就是针对自己的目标去制定计划

目标

目标很简单,即想去的公司,想做的方向等等,因为不同的公司面试的风格都不太一样的,侧重点也不一样,这里分析下来有几个。
目标公司篇
字节偏智力题,算法;阿里偏项目和思考;其他的感觉都差不多;中小厂会有线下手撕算法;按照互联网的要求去准备银行没有问题。

计划

计划部分可以分为短,长计划,按照个人的习惯制定。我个人很喜欢马斯克的按照一天以小时为单位的方式来制定计划,毕竟专注力和DDL才是第一生产力。

事中

简历

简历这部分是找实习,工作的第一部分;对于互联网开发的同学来说不需要有很多的学生工作和学术论文,更加看重的是经历和项目。

结构

简历也有结构,按照总分的结构进行编写。
简历通常都有教育经历,专业技能,实习经历,学术论文,学生工作这个结构来编写。在专业技能中的关键词一定要在实习经历中体现,一是有说服力,二是要有总分的结构。简历技巧

项目

既然项目在简历中很重要,那么项目应该如何编写呢?当然项目也有结构
在描述项目的时候建议以产品内容(是什么)-> 个人工作(为什么+怎么做)-> 用数据证明结果怎么样。这种演绎递推式的方式去写可以突出自己的亮点。
简历-项目部分

埋点

同时在简历结构部分也可以看出,专业技能点需要在项目/实习经历里面有体现,这也是项目中的埋点部分。面试官看到这些关键技术的同时多半会问相关中间件或架构设计的技术细节,这个是需要去着重准备的。例如:使用MQ来让操作异步化,那MQ相关的问题需要去准备,包括但不限于:

  1. 项目中你为什么要使用MQ?
  2. MQ重复消费是怎么避免的,常见的几个MQ分别是怎么解决的?

几个问题一问下来,你的知识水位大概是什么样子就能体现出来了。

八股

八股部分其实很多人都说的是需要背的知识,但我的理解是学八股不光是知道更多的是理解。我把八股分成几个部分(仅针对于后端开发)

基础八股

八股相关
参考左耳朵老师的话,计算机的技术层出不穷但是最根本的东西都大都不会变,比如操作系统,计算机网络等等相关知识,如果说只是应付面试的话,确实只需要把相关的高频面试题背一背就行了,但是做技术人很多时候不能这么功利,更多地需要去考虑如何提升自己,所以这块其实就是仁者见仁,智者见智了。

场景题设计

场景题设计这块,需要平时去积累,但是常见的几种场景题(高并发场景下常见的优化方式)需要知道。这里感受比较深,在实习过程当中发现其实不是一上来就去设计一些很高大上的架构,而是基于目前的状况去选择合适的架构,因为产品可不会去考虑架构如何设计。前期小步快走迭代,在取得一些成绩了之后,得到产品信任,再去做一些架构上的迭代才是目前互联网选择的方式。

编程

其实编程,因为我个人不是ACMer,编程平时的学习方式也是通过刷LeetCode和少量的OJ去提升自己,最后的刷题数保持在1300左右。leetcode-刷题
暑期/秋招和日常实习不同,存在着笔试的环节(但其实懂得都懂,很多时候都是团队作战),所以我的理解刷题也是因人而异,分Type去刷,每天不去追求题量,而是争取把同一类型的题目搞懂即可,至少现在面试出的题目都写出来了(所以说面试编程不会太为难)。

刷到什么程度合适?

个人的感觉是可以独自完成任何一场公司的笔试,当然如果特别喜欢可以一直刷下去。原因有二:

  1. 团队作战有没有可能佬没有时间?
  2. 每次都靠别人,自己的能力体现在哪里?

推荐可以平时参加一下LeetCode的周赛,一般来说周赛三题笔试应该没啥问题(能过不是AK)。

事后

事后也是我现在需要去学习的阶段,往往会缺少做事情之后的复盘环节。

软实力

一开始我听说这个词的时候,更多的是不屑。但是学习之后才会后知后觉,举两个例子:

  1. 开发不是一个人的游戏(除非巨佬)而是一个团队游戏,不仅需要和技术打交道,还需要和产品,运营等等去打交道,当然别人的事情也是有优先级,那能不能把这个事情推动,需不需要技巧?在与不同的人相处的时候,都会有套路,这需要事后进行复盘。
  2. 不管什么时候,都需要结构化思考(面试表达,毕业答辩,试用期答辩等等)能用逻辑性的语言能让聆听者能够快速地理解你的意思,减少自己的沟通成本,是校招生最缺少的能力。

总结自己做的事情也是软实力的一种表现。

硬实力

硬实力不用多说,都是靠技术吃饭的。还是那句话,开发不是一蹴而就,是一个长期积累,持之以恒的过程,我对自己的要求分三点:

  1. 对面试复盘,面经记录+查漏补缺。
  2. 对需求复盘,用什么样的技术解决了什么样的问题。
  3. 对知识复盘,看技术文章积累知识碎片,并输出笔记/博客。

感谢

感谢研究生期间带我科研,开发的老师们(刘老师,马叔叔,yan老师),对我的耐心培养,给了我很多学习的机会和资源。
感谢实验室师兄师姐们对我的帮助,让我深刻体会到了实验室一家人不是白吹的。
感谢lab-荣哥,mt-超哥,ant-城哥,bytedance-明哥对我的耐心指导也祝愿你们工作顺利,发展的越来越好。

推荐资料

场景设计

海外兔(场景设计题)
凤凰架构
数据密集型应用系统设计
酷壳-左耳朵博客
极客时间

基础八股

小林图解网络
哈工大操作系统
MySQL是怎样运行的
黑马程序员Redis
JVM虚拟机
Java高并发核心编程

刷题

AcWing(刷题网站)
灵茶山艾府

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uView IndexList 索引列表

通过折叠面板收纳内容区域 #平台差异说明 App(vue)App(nvue)H5小程序√√√√ #基本使用 外层包裹一个index-list组件,锚点通过index-anchor组件传入,自定义列表内容通过index-item嵌套使用 nvue需要将…

【Redis】非关系型数据库之Redis的增删改查

目录 一、Redis的数据类型分类 二、Redis的字符串类型string 三、Redis的列表list 四、Redis的哈希hash 五、Redis的无序集合set 六、Redis的有序集合zset 七、Redis的通用命令 一、Redis的数据类型分类 通常Redis的数据类型有五大基础类型 String(字符串&am…

Beauty algorithm(二)唇妆

实现唇妆过程中首先确定唇部位置,其次对该区域进行渲染。 一、skills 前瞻 1、cv::convexHull 在点集中寻找凸包点 void convexHull( InputArray points, OutputArray hull, bool clockwise = false, bool returnPoints = true ); 参数poi…

安全加固之weblogic屏蔽T3协议

一、前言 开放weblogic控制台的7001端口,默认会开启T3协议服务,T3协议则会触发的Weblogic Server WLS Core Components中存在反序列化漏洞,攻击者可以发送构造的恶意T3协议数据,获取目标服务器权限。 本文介绍通过控制T3协议的访问…

[JavaWeb玩耍日记] 数据库

mysql版本:5.7.24 使用Navicat for MySQL辅助学习(2015年版),这个在粘贴本博客的块引用内容时会有额外的不可见内容导致sql运行出问题,不过有影响的地方笔者已排除 目录 一.数据库创建 二.使用数据库与创建表 三.表内列的数据类型 四.修…

【开源】基于JAVA语言的服装店库存管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…

对Tor的去匿名化攻击的调查

文章信息 论文题目:De-Anonymisation Attacks on Tor: A Survey 期刊(会议): IEEE Communications Surveys & Tutorials 时间:2021 级别:中科院1区(IF:35.6) 文章链…

软件测试|Docker exec命令详细使用指南

简介 Docker exec命令是Docker提供的一个强大工具,用于在正在运行的容器中执行命令。本文将详细介绍Docker exec命令的用法和示例,帮助大家更好地理解和使用这个命令。 Docker是一种流行的容器化平台,允许我们在容器中运行应用程序。有时候…

【DevOps-06】Jenkins实现CI/CD操作

一、简要说明 基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成 基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署 二、准备Springboot工程 1、IDEA新建工程 2、填写项目工程信息 3、选择Springboot版本…

条款18:让接口容易被正确使用,不易被误用

假设正在为一个表示时间日期的类设计构造函数: class Date { public:Date(int month, int day, int year);... }; Date d(30, 3, 1995); // 糟糕! 应该是 “3, 30” , 而不是 "30, 3" Date d(2, 30, 1995); // 糟糕! 应该是 "3, 30" , 而不是 "2, 30…

游戏美术的技与艺

大家好,我是阿赵。   可能很多朋友都知道,我刚进入游戏行业的时候,做的是美术工作,包括了建模、贴图、动画等,都做过。我对各种美术资源制作也都很熟悉,懂得很多制作的技术。但最后,我却没有继…

李沐-《动手学深度学习》-- 01-预备知识

一、线性代数知识 1. 矩阵计算 a. 矩阵求导 ​ 当y和x分别为标量和向量时候,进行求导得到的矩阵形状,矩阵求导就是矩阵A中的每一个元素对矩阵B中的每一个元素求导 ​ 梯度指向的是值变化最大的方向 ​ 分子布局和分母布局: b. 常识 ax…

美格智能5G RedCap模组SRM813Q通过广东联通5G创新实验室测试认证

近日,美格智能5G RedCap轻量化模组SRM813Q正式通过广东联通5G创新实验室端到端的测试验收,获颁测评证书。美格智能已连续通过业内两家权威实验室的测试认证,充分验证SRM813Q系列模组已经具备了成熟的商用能力,将为智慧工业、安防监…

【漏洞复现】润申信息管理系统SQL注入漏洞

漏洞描述 申信息科技企业标准化管理系统 DefaultHandler.ashx SQL注入漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益&#x…

.NET某软件非托管泄露分析

一:背景 遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多了什么鬼都能撞上。 开启了ust并在内存超出预期时抓了一个dump下来,接下来就是分析了。 二:W…

gRCP - 面向未来的第二代 RPC 技术,解析 HTTP2.0 和 Protobuf

目录 一、gRCP - 面向未来的第二代 RPC 技术 1.1、gRPC 简介 1.1.1、gRPC 是个啥? 1.1.2、gRPC 核心设计思路 1.1.3、gRPC 和 ThriftRPC 区别 1.1.4、为什么使用 gRPC?(好处) 1.2、HTTP2.0 协议 1.2.1、回顾 HTTP1.0 和 H…

数据结构-怀化学院期末题

希尔排序 题目&#xff1a; 利用希尔排序算法实现线性表的排序。希尔排序是根据给定的增量序列将线性表分隔成某个“增量”的记录组成一个子序例&#xff0c;在子序列中采用直接插入排序完成。 输入 第一行为元素个数n(1<n<1000)&#xff0c;第二行为n个元素值(整数)&am…

【C++】带你学会使用C++线程库thread、原子库atomic、互斥量库mutex、条件变量库condition_variable

C线程相关知识讲解 前言正式开始C官方为啥要提供线程库thread构造函数代码演示this_threadget_id()yield()sleep_until和sleep_for mutex构造函数lock和unlock上锁全局锁局部锁lambda表达式 try_lock 其他锁时间锁递归版本专用锁recursive_mutex 锁的异常处理lock_guardunique_…

Linux_CentOS_7.9_Oracle11gr2配置数据库及监听服务自启动多方案实操之简易记录

前言: 作为运维保障,都无法准确预估硬件宕机的突发阶段,其生产数据实时在产出,那作为dba数据库服务以及相关Listener的其重要性、必要性就突显而出。这里拿虚拟机试验做个配置记录,便于大家学习参考。 实现方法一: 环境变量值::$ORACLE_HOME= /data/oracle/product/1…

逆向一个Go程序

前奏 事先声明&#xff0c;自导自演&#xff0c;纯属为了演示基本的逆向思维 用Go写一段模拟登录的代码&#xff1a; package mainimport ("fmt" )func main() {pass : ""fmt.Print("input password:")fmt.Scan(&pass)if pass "hel…