今天分享 编程导航 里一位鱼友的学习和找工作经历,早早的意识到要去找实习,大二时期开始学 Java 做项目,后续也学习了 Vue 框架,自己做前端页面。
编程学习热情很高,目前已经拿到了好几家面试机会,相信他保持这股学习热情,秋招能取得很不错的结果。
星球原文链接:https://t.zsxq.com/wl7Rz 本文已获原作者授权
我就读于一所双非二本学校,目前大三。
大一的时候,还懵懵懂懂的,没有确定好学习路线,最初接触的编程语言是 C ,但是由于是后端语言,没有让我感受到开发出项目的成就感。
在选修课程中,我体验到了使用前端三件套(HTML、CSS、JS)做出成品的喜悦,所以在大一时,我本想着走前端路线,我不断学习 HTML、CSS、JS 和 JQ 来巩固基础。
大二的时候,学校开设 Java 课程,于是一边学习前端作为主线,一边学习后端 Java 作为支线。直到去年的时候关注到了鱼皮哥,一扇全新的大门打开了,我下定决心加入了 编程导航。
因为自学时,包括在 B 站上的学习,一直处于持续输入的阶段,很难有输出和扩展的场景,做的项目也是学校的管理系统,总是让我感受不到自己的竞争力所在。鱼皮哥的原创项目让我收获很多。
学习经历
加入星球后,从嘉宾提问、看鱼皮哥的文章、球友们的分享,到最后的星球项目实战,都让我受益匪浅。现在想想,有时候做一件事情,方法和规划对了,才真的能够事半功倍。
进入编程导航后,我直接上手 用户中心项目 的开发。为了在项目中收获更多,无论是 Vue 还是 React 的前端框架,我都手敲了一次。每次项目都能给我带来突破性的收获,或许是新鲜感吧,当时做项目的经历真的是感受不到累,更多的是开心,每次项目都能让我学到从未了解的东西。
我学到了分布式 Session、代码的规范写法、项目上线的步骤等知识。
之后,我开始了 API 开放平台,我逐渐了解网关、RPC 框架的 Dubbo、SDK 的开发、签名认证算法等内容。完成后,我又开始了聚合搜索平台 ,学习了设计模式和 ES 等知识。
那段时间真的很开心,因为每一个项目都像是进入了一个从未接触过的梦境。完成这三个项目后,刚好赶上暑假。
暑假里,鱼皮哥又有新的项目 智能BI平台 ,于是 BI 项目成了我的实践项目。在 BI 中,我深刻体会了一把 AI 结合项目和消息队列的内容。当我完成这些项目后,就准备着手简历了。了解到简历中的项目一般有两个最佳,那我做了这么多项目,怎样也得体现一下吧,不然竞争力又小了。
于是,微服务的想法产生了。在暑假的最后一个月,我系统学习了微服务(大二上学期其实已经学习过一部分),例如 Nacos、Gateway、Sentinel 等等。
我利用以前学习前端的基础,花了一段时间学习了 Vue,准备从 0 到 1 再制作一个完整的前端(之前的项目有的是 React,有的是 Vue)。历经两个月,一个全栈的微服务项目就完成了。
当然,只是这样一个项目还是不够的,我花了五天快速完成了 OJ 判题系统。于是,我的简历终于可以投递了,8 个月的学习,真正让我有了一段热血的经历。
投递简历
关于投递,鱼皮哥经典语句“赶早不赶晚”。
所以我大三就开始投递(这其实是正常的事情,只不过因为环境的原因,包括学校环境、生活环境等,在我身边的朋友看来,大四再中规中矩地找工作不就好了吗)。
我投递的渠道主要是 Boss 直聘、实习僧以及鱼皮哥发布的一些官网等。
不过不得不说,除非是去大厂这种明确写着日常实习的,否则投递小厂基本都想要大四的,一听你是大三就直接减分了(至少我经历的面试是这样)。
面试经历
在开始讲述前,给各位分享两个点,是我收获最大的。
第一个是 HR 收到你的简历后,说推给技术人员看,一般会是半个月左右才约面试,所以大家投递了对方回复了,如果没跟你约面试,千万不要灰心,没准什么时候面试就来了。
第二个是,一定要做好准备,对项目吃透,然后面试时尽可能找机会跟面试官说“我想跟您分享一下我简历上的项目”,因为有时候你对项目理解是 A,面试官只是通过简历看,哪怕你上线了他也不一定会去访问。那对他而言你的项目就是 B,如果 A>>B,那你不是很吃亏?所以一定要抓住机会展示你的项目,毕竟项目有东西讲,八股文你不能每题都会。
既然投递了有没有面试机会呢?
只能说行情果然是行情(难)。在 Boss 投递,要么已读不回,要么因为学历的原因,还有一些是线下面试,但因为成本原因,我还是想找一些线上面试的机会。
终于,皇天不负有心人,我迎来了我的第一次面试,是一家深圳的公司,在珠海有分部(小公司)。当时我跟朋友在游乐园玩,突然接到一个电话,说要找我面试,沟通后,我们约在了下午三点。
面试官人不错,加了我的微信,让我自己选一个时间联系他面试,于是第一次面试就这样突然开始了。
第一次面试
第一次面试是我准备最少的。面试一开始是标准的自我介绍,嘟嘟嘟一堆后,面试官说开始问一些基础问题:
1)ES 拼音分词器如何使用?
2)ES 的主从复制?
3)ES 的分片集群?
4)单例模式的使用场景?
5)SpringBoot 和 SpringMVC 的关联?
6)AOP 的使用场景?
7)Spring 的通知类型有哪几种?
8)Bean 的生命周期?
因为当时我刚把 OJ 项目做完,也没想着会有面试,所以八股文这块也没有了解太多。
不过我根据项目中的实践经验,不断往实践这边靠拢,除了背诵类的 Bean 生命周期、ES 分片集群(这还真没了解)答不出来,其他还是说了不少的。最后面试官给了我一个比较肯定的态度。不过,整个面试没有谈到项目,真是遗憾。
最终,HR 给我的回复是综合考虑不合适,但具体原因不清楚。
通过这次经历和复盘,我赶紧着手准备面试题,并每天持续投递。终于第二个面试来了,也是家小厂。
第二次面试
面试官告诉我,因为他们的领导觉得我的微服务项目挺有意思,所以才给了我面试机会。不得不说,鱼皮哥的项目质量还是很高的,不过大家要自己实现扩展点,避免撞车。
问题如下:
1)Java 的 8 种数据类型
2)Java 的引用数据类型
3)MyBatis 的分页查询(用 MyBatis-Plus 多的还是要去了解下,感觉面试一般都问 MyBatis)
4)Java 的创建方式(new、反射、克隆、反序列化等)
5)ArrayList 和 LinkedList 的区别(经典)
6)Redis 的主从复制
7)Redis 的持久化
8)Linux 一些相关命令
9)SQL 防注入的手段有哪些
总结:又没问项目,真是遗憾。
最终结果是通过了,但了解到业务发现是低代码,涉及到 Java 的领域听说不多,而且公司招人很急,让我怀疑是找人做低代码的重复工作,最后决定不去,还是想找一些更有帮助的工作。
第三次面试
通过前两次面试,我感受到一个痛点,就是都不问项目。
面试官一开始问我看项目中用到了 AI,是不是对这方面挺有研究的(因为他们项目组目前就是想做 AI 相关的,以至于技术栈包括 Node.js、Python、Java)。
我说因为 GPT 挺火的,我也在学习 Java 的同时了解这些前沿技术,例如看看博客、进 GPT 相关的圈子,所以对于一些 AI 绘画、视频制作等还是有了解的。
于是,他开始出招了,问一些跟 AI 相关的问题,我哪会呀,于是我说自己主要还是做 Java,对于 AI 是作为支线在了解,然后尽可能结合项目去实践。
他说那问些 Java 基础的问题吧,这是关键点,因为是线上面试,我说能给您展示一下我的项目吗?
他一开始说项目已经有过了解,但我怕他没有真正了解,于是我说我已经打开了项目,要不要看一下?他同意了,我开始展示项目。
问题如下:
1)API 签名认证的流程(从 AK、SK 到时间戳全部讲解完整,加了分)
2)BI 项目的 AI 部分怎么结合实现的(我说是调用国内公司的 API,自己预定义模型的回复,其实他想听到的是自己部署模型的,这块了解不多)
3)JMeter 的测试是你自己做的吗?
之后我介绍了项目上线的情况,面试官开始有点没话题了,我说要不看下我的架构图吧。于是,我展示了架构图,从 Nginx 到 Docker 部署介绍了一下。他问到 K8S 有没有了解,我说有了解过理论,但实践不多,用过 CICD 的微信云托管。
总之,这次面试我们讲项目讲了大概 30 多分钟,是我最舒服的一次面试。最后 5 分钟他让我问问题,我问了一些业务方面的问题。最后看结果吧,但这次面试过程让我觉得很值。
还是那句话,大家有机会多多投递试试。我一直觉得在学校很多时候有种与外界隔离的感觉,哪怕没拿到 Offer,我们也可以有段面试经历。毕竟,第 1 次面试和第 100 次面试的感觉和准备,肯定都是不一样的。
以上,就是今天的分享,希望对大家有帮助。