前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谁说没实习经历,就不能进大厂了!

谁说没实习经历,就不能进大厂了!

作者头像
程序员鱼皮
发布2022-11-07 15:55:37
8480
发布2022-11-07 15:55:37
举报
文章被收录于专栏:鱼皮客栈鱼皮客栈

大家好,我是鱼皮,前几天有位 星球 的朋友向我发了一连串儿的提问,如下:

鱼友问题

鱼皮你好,我目前的情况是西电研二在读,因为所在实验室不放的原因,没法在研二尝试去找实习。自己的进度是目前力扣用 C++ 和 Java 总共写了 300+ 题;Java 因为实验室项目,SSM 和 Spring Boot 以及 MyBatis Plus 用的还算比较熟练。目前手上只有实验室的两个纯 Java 的开发项目,Redis 和 消息队列课程都看过了但还没有实操,现在正在看黑马的微服务课程,因为里面有关于缓存和消息队列的应用,想着跟着实操一下,之后也会跟着 星球的项目 做下,并发部分还没有了解,C++ 的话目前就只是拿来写题。

我现在有点焦虑,主要在于以下几点,希望鱼皮能为我解惑:

  1. 害怕没有实习经历,想进大厂是不是就难很多?我需要在项目、基础或者哪些方面多下些功夫呢?
  2. 我本科就是计科的,但是基础的东西有些遗忘有些当时学的不深,我需要现在就开始背八股还是可以先看看相关书籍巩固一下呢?
  3. 进度问题,心里关于找工作有一点障碍,总是想着时间不够,我也不知道我这个进度算怎么样了?
  4. Java 和 C++ 需要认定一个么,我现在还是 C++ 写题顺手一些,但是相关的开发没有涉及过,在 Java 很卷的情况下,C++ 是不是一条出路呢?如果这样,现在的时间是不是不太足够?
  5. 对于未来的职业发展来说,是计算机这几样基础更重要还是去掌握语言更重要呢,虽然很多人都说是前者,但就实际情况来看,好像没法将基础融汇到技术上?
  6. 关于大数据计算和数据仓库,在学完微服务后需要去学习么?这方面就业压力如何呢?如果是按照后端路线微服务学完之后的内容应该侧重什么呢?

鱼皮的回答

其中有些问题可以说是非常经典了,如果你也有类似的疑惑,可以在评论区留个言。

说说我自己的看法,大家也可以在评论区帮忙补充:

1)想进大厂,实习经历不是必须的。简历上主要有教育经历、个人技能、学术研究、实际经历、项目经验、荣誉奖项等内容,HR 和面试官在挑选简历时一般是综合评价,虽然你没有实习经历,但只要有其他地方能吸引到面试官,让他觉得 “嗷,这小伙子不错”,那么就有面试机会,之后就是要凭自己的实力通过面试了。

你的学历还是很好的,在教育经历上有一定的加分,所以也不用太担心,尽量用 和求职方向相关的 项目和科研成果来弥补吧。

对于大多数同学,可能学历并没有那么好,这个时候就要尽量争取一些实习经历、或者多做一些项目,机会是要自己努力去争取的。

2)关于项目和基础,要记住 2 点:

  1. 好的项目是需要持续打磨的。在合理的前提下,可以把自己学过的技术尽可能多地运用到项目中。像我之前在星球里说的,一定要有自己的主打项目,而不是所有项目都一个样。
  2. 基础是要持续巩固的。像操作系统和计网这种倒是能面试前突击一下(面试前 1 ~ 2 周狂背题目也来得及);但是数据结构和算法一定要坚持每日刷题,每天的数量可以不多,但重在坚持。(建议是在面试前 2 个月开始刷,时间会更充裕一些)

3)你的进度已经不错了,无论是刷题量还是项目都有,再加上本科是计科的,发展地比较全面了,所以不用担心,时间完全足够。

4)其实 C++ 和 Java 的学习路径有很多相似的地方,比如要做后端开发的话,都要学习数据库、缓存、队列、计网、操作系统、接口开发设计、Linux、设计模式、架构设计等通用的后端知识。只不过 C++ 相对更注重基础和对操作系统、Linux 系统的理解;而 Java 可能更侧重业务开发的方法和工具。所以建议你可以把我上面说的那些通用技能作为重点学习,不用在语言上花费过多的时间,这样到时候 C++ 和 Java 后端开发都可以投(你还有 C++ 刷题经验,STL 应该用的也比较熟了)。

都说 Java 卷,那么你可以去网上调研一圈,看看岗位的需求量,很难说 C++ 就不卷。像今年秋招这个情况,更多的是整个行业(行情)的问题,而不是语言需求量的比例有什么大的调整。

所以至于选 C++ 还是 Java,还是要看个人之后要做什么类型的岗位了。后端开发仍然推荐 Java,资源多这点无敌(不信你去搜搜 C++ 微服务的教程);或者就像我上面说的,先把后端通用的技术学好,之后再去做选择也来得及。

Java 和 Go 语言的选择同理,星球 的朋友可以看这篇文章:https://t.zsxq.com/06UbIQJ2R

对于未来的职业发展来说,是计算机这几样基础更重要还是去掌握语言更重要呢,虽然很多人都说是前者,但就实际情况来看,好像没法将基础融汇到技术上?

5)编程思想(思维)和解决问题的能力是最重要的。

何为编程思想?比如你的算法和数据结构、设计模式、或者其他计算机基础学科学得很好,遇到问题时能够想到运用它们来解决,说明你的思维能力也是很不错的,面试会加分。如果给你一个问题,你没有任何的思路、完全想不到用什么知识来解决它,说明编程思想还是不足。

除了看书外,刷算法题目是一个很好的提升编程思想的方式

何为解决问题的能力?如果你做过很多项目,能根据某个需求和业务场景快速设计出架构和程序流程,并且能够快速编码实现,面试会加分。而现在很多同学都是只看教程视频,以为自己会了,但是让你自己写代码时,写不出来,这是肯定不行的。

一名优秀的程序员,他一定是编程思想和解决问题的能力都很强,遇到问题能想到怎么去解决、并且能够真正地解决。所以计算机基础和实际的业务能力都很重要。对大多数同学来说,找到工作前先把计算机基础学习到 “面试水平” 就差不多了,可以先重点提升自己做项目、解决问题的能力;而工作之后具体怎么发展,就是因人而异了,比如你在基础架构部门,那你的基础一定要非常好、甚至对底层有自己的见解;而如果你在业务开发部门,那么你要更多地提升自己对业务的理解,将学到的技术应用于业务、为业务服务。

此外,如果你对一门语言或框架研究的很透彻,甚至每次版本更新迭代你都能给出自己的见解、能给开源项目提供 issues 或代码贡献,面试也是很加分的。本质上你也是解决了某些问题。

所以无论你想重点提升哪个方向都 ok,只要有自己的优势即可;因此也不建议大家什么都学一点,但每个技术都仅是了解而已,对 Java 开发的同学来说,能独立做出项目之后,可以考虑学习某个技术的设计原理和源码。

6)时间足够的话学什么都可以,毕竟学大数据计算的过程中也能帮你学到一些后端开发的思路;但时间来不及的话不如多做项目、参加竞赛,给自己加点能写到简历上的经历。

虽说知识学了就不会亏,但你的时间是有限的呀,如果你学的这些东西写不到简历上,那求职基本没什么用,性价比不高。

不过喜欢就可以去学,合理分配时间就好。比如我大三时只花了 2 个月左右去学大数据,进一步学习什么流式计算都是大四找到工作之后了。

关于大数据的就业压力,我不好说。。。把话筒交给评论区的同学。

像你现在的话,学完微服务后可以接着按照我的 Java 路线学习更多进阶的知识,比如并发编程、JVM、容器等等,星球的第二个置顶帖走一波:https://t.zsxq.com/067U7EqRz

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员鱼皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 鱼友问题
  • 鱼皮的回答
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档