双非硕士的辛酸求职回忆录: 第 3 篇 也谈谈校招项目面试究竟该注意什么及我是如何准备开发项目的

简介: 双非硕士的辛酸求职回忆录: 第 3 篇 也谈谈校招项目面试究竟该注意什么及我是如何准备开发项目的

目录

 

在上一篇文章《双非硕士的辛酸求职之旅–谈谈我是如何同时找到 Java、Python、Go 等开发岗和国企银行的科技岗位Offer》的最后。

如果你还没看,点此处

我最终是拿到了一家小公司的实习 offer,毕竟准备得晚,只能认了。

作为老学长,我的建议是 3、4 月的时候最好是要有知名公司的实习,这样在正式秋招为自己增加很多筹码。可能其他公司一看你的实习经历,可能就愿意给你机会让你进面试了,甚至直接免笔试,毕竟大厂 buffer 加持,人家就很想了解你在大公司的实习情况。

如果你也像我一样小公司实习,甚至说你没找实习。那也不意味着你没有了机会,我认为暑假这段时间一定要好好把握,做两个不错的项目,然后吃透一个!这里强调一下是吃透 1 个项目,为什么呢?

下文再解答…

1.1. 无论我们做什么项目,在面试官眼里都可能是 Low 的?

先说一个可能的残酷现实:无论我们做什么项目,在面试官眼里都可能是 Low 的。

你可能会反驳我,如果想。我承认你对…

比如秒杀系统,这几年都强调高并发的经验,所以大家都做,那些相关技术栈都快成八股文了,网上相关文章也一堆,你会觉得高大上,但是面试官如果问:

  • 你项目上线了吗?真实情况有人用吗?没人用你做成这样干嘛?
  • 为什么选 Redis 不选 Memcache?
  • 为什么消息队列选 RabbitMQ,不是其他?
  • 等等一堆你可能想不到的问题

其他项目就更别说了:博客系统、在线聊天工具、XX 爬虫系统、XX 管理系统…

有些读者可能会问了:我作为一个学生,那我要是能做出微信、头条、淘宝这样的项目,我还用得着来这公司上班?下一个扎克伯格怕不就是我了?

问的好,其实很多企业级项目归根结底,本质也是这些项目。那为什么我们做不太行呢?

总而言之,我说的 “Low” 不是说项目真的不好,而是想表达项目难做。什么叫难做?

1.2. 做项目不是跟着开源代码/视频敲一遍

作为学生,本来大家就不可能做的是企业级项目,所以没办法。大家都会选择一些常见的容易上手的项目来做,这些项目不是不能做,但绝对不会是你跟着开源代码或者看视频跟着敲了一遍,就说你做了这个项目。

好好思考一下。你是真的懂背后的原理吗?比如:

  • 你的项目架构是啥,了解吗?(我记得面试的时候好多面试官喜欢问,还有线下让我画架构图)
  • 为什么要做这个项目?问对业务逻辑的认识?
  • 项目用的什么数据库?问 ORM、MyBatis,或者继续深挖数据库的知识点
  • 上 Spring 的,问 AOP、IOC;问对 servlet 的理解?
  • 上前后端分离的,问如何解决跨域请求?问 session?
  • 上高并发的,问如何优化使得并发量有提升?
  • 上微服务的,问你微服务怎样设计?
  • 项目出现什么,就看你会被问什么?

有时候最怕顾此失彼,为了追最新框架、最新技术,往往忘记了对核心的技术原理的理解。

所以项目难做就在于此,你用旧技术他会觉得 low,你用新技术他会觉得你只是单纯的套用,又不是真正的懂。

所以针对这样的情况,我的看法:虽然事实是我的项目其实做的是有点 low,但是小项目也要展现出它的高大上。

那么,如何展现出高大上?

1.3. 让项目的来源上高大上

项目的来源无非几个:学校;企业(有实习的同学);网上(开源 or 付费)

1.3.1. 学校或企业做的项目

珍惜每一次锻炼的机会,用心做好每一次的项目:

  • 课程设计/毕业设计中:虽然我是小 demo ,但是我拿到优秀的项目哦(展现拿到优秀的点)
  • 比赛项目:ACM、互联网+、挑战杯、蓝桥杯(我这个项目获奖了,专家评审认可的;没获奖也可以高大上,比没有好对吧)
  • 实习项目:如果这是 BAT 的实习项目呢?(大厂实习虽然可能只是简单 CRUD,但至少来源就高大上了。)

在 2017 年本科那会,有门课需要做 Java 课程设计,我们大家都做的管理系统,全班只有一个同学做了坦克大战,然后还可以让老师体验玩一下。

你体会一下,如果是你是那门课的老师,你喜欢哪个项目?

1.3.2. 网上学来的、或开源项目达到高大上的效果

如果你觉得学校的课程设计不够好,免费的项目 GitHub 和 Gitee 上的优秀开源项目很多;付费的牛客和慕课上的针对性项目也挺高大上的。推荐大家学习:

你学了后如何体现你的项目高大上呢?

  • 比如你做的项目开源,得到了2k 以上 star ,高大上吧
  • 你对某个大牛项目有自己的贡献,发现了啥 bug 也挺高大上
  • 你的项目跟着 mou 前阿里/字节架构师/工程师学的(这个 title 的付费项目一大堆,跟着学比自己乱写的的确要高大上吧)

或者大家都是本地项目,你的项目部署上线了,然后面试官可以直接访问,看到你做的项目;比如你做了小程序的项目,打开微信就能体验,哪个项目高大上?

1.3.3. 对项目的思考要多一点,也很高大上

优秀又好做的项目好多人推荐,那么就有可能大家都做同一个项目(比如秒杀),但是你对项目有自己的思考,就很不一样的。

如何展示给面试官你的与众不同?

  • 大家都用 Java 做高并发,你来一个 Go 语言版本的。大家都上框架做 Web 开发,你自己写了一个 MVC 框架, RPC 框架等等。
  • 之前还看到一本书中的一个观点,做一些有工具也很有亮点。比如我们每天在 Linux 中都在用的 cat 命令,你有没有研究过这个命令的实现算法,你来做会怎么做?
  • 代码重构,项目优化也是很多人不会想的点,极少人做那就是高大上
  • 其他可以思考的点,大家多去网上找找。

最后,做“高大上”只是我的一个技巧而已,而且只是提供一个思路,希望大家都要好好准备一个项目,让自己吃透,这一点就足够高大上了。

1.4. 为什么我建议你做两个项目比较好

以我的经历来说,2020 年 6 月之前,简历上只做了 Python 的项目:一个在线教育平台和一个上线的个人博客。

所以只能投 Python 的岗位,根本不敢去找其他如 Java 的工作,而且投了也没有什么回馈。为什么呢?

首先,Python 不是一门企业级应用首选的语言,据说是会有一些坑和性能瓶颈,导致用 Python 做后端开发的公司较少。以前用 Python 的公司也都转 Go 语言了,貌似知乎、字节都是如此。

其次,Python 更多是作为机器学习和数据分析的首先的语言,读研期间会使用到的框架基本都和 Python 联系密切,所以找算法和数据岗可能更好一点,所以我拿着 Python 在后端开发方向( Java 和 Go )的简历中没有一点优势可言。

最后,Python 作为一门简单的解释性语言,入门时大多人都会选 Python。随着学习的深入,个人体会却是 Python 易学难精,但作为第二语言真的不错。

所以在 7 月和 8 月份的时候,每天就是恶补 Java 项目。因为感觉再做秒杀系统,我玩不出新花样了。我选择了校园微商城项目,而且小程序在那会也不算过时,毕竟时至今日,小程序开发还是很有市场的。

人真的是被逼出来的,如果不逼自己一把,就永远不知道自己什么时候可以做好。

1.5. Java 和 Python 双项目真的让我受益颇多

正因为有 Java + Python,我可以投互联网公司,可以投银行,可以投国企。

我还记得有面试官问我对这两门语言的看法?

(我在想这不是正中下怀吗?就等你问了)大概是这样答得:

  • 因为这两门语言都挺火的, Tiobe 排行都是前几名,所以我想都学习一下。
  • 再者,就像好的工程师知道用更适合的工具拧相应的螺丝。开发也是如此,编程语言也是工具,有优有劣,用不同的语言做更适合它的项目罢了。
  • 我本科学的就是 Java 做 Web 开发,Python 是在读研期间学会的。因为机器学习的课程使用,而且好用的机器学习库都离不开  Python,这时候更适合我的工具就是 Python 了。后面在这个基础上接触了 Python 的 Web 开发框架  Django,由此做了我简历上的这个项目。

大概就是这样,吹水还是要会的。

最后我在秋招中,也不限定只投某个具体的编程语言。凭着 Java + Python 的双项目拿到了 Java 开发工程师、Python 开发、C++ 游戏开发、Go 后端开发工程师的 offer…

C++ 开发那个我是说自己本科学过,但是不咋会;Golang 提的也是我正在学;离谱的是也进入了 Erlang 开发的面试,面试官说如果拿到 offer 可以培养的。

所以,这也是为什么校招中很多公司要求至少一门编程语言但不限于 C/C++、Java、Python、C#、javascript… 的原因吧。

1.6. 总结

关于如何做项目的几个点终于说完了,也不知道对大家有没有一点帮助。最后推荐几个我觉得还不错的开源项目吧:

1.6.1. 开发项目类

Java 的项目推荐:

  1. 秒杀系统设计与实现
  2. 若依
  3. mall 项目(40k+star)

Go 的项目推荐:

  1. 基于gin+vue搭建的后台管理系统框架
  2. 7 天用 Go 从零实现系列

1.6.2. 知识复习类

  1. 后端架构师技术图谱
  2. CS-Notes
  3. JavaGuide
  4. JavaFamily
  5. Awesome-interview

如果你还是不知道该做什么,请参考

  1. GitHub 中文排行榜

下一篇讲讲如何准备算法吧,算法不是我的强项。其实我感觉我对面试的体会还是更多一些,后续也写文章讲讲《如何准备面试》

我是宇宙之一粟,热爱文学和技术,想文理兼修却还在探索的人。希望看到这里的同学,点个赞或关注一下,谢谢。

相关文章
|
6月前
|
缓存 NoSQL Java
校招 Java 面试常见知识点及实战案例全解析
本文全面解析了Java校招面试中的常见知识点,涵盖Java新特性(如Lambda表达式、、Optional类)、集合框架高级应用(线程安全集合、Map性能优化)、多线程与并发编程(线程池配置)、JVM性能调优(内存溢出排查、垃圾回收器选择)、Spring与微服务实战(Spring Boot自动配置)、数据库与ORM框架(MyBatis高级用法、索引优化)、分布式系统(分布式事务、缓存应用)、性能优化(接口优化、高并发限流)、单元测试与代码质量(JUnit 5、Mockito、JaCoCo)以及项目实战案例(电商秒杀系统、社交消息推送)。资源地址: [https://pan.quark.cn/s
196 4
|
6月前
|
算法 Java 关系型数据库
校招 Java 面试基础题目解析及学习指南含新技术实操要点
本指南聚焦校招Java面试,涵盖Java 8+新特性、多线程与并发、集合与泛型改进及实操项目。内容包括Lambda表达式、Stream API、Optional类、CompletableFuture异步编程、ReentrantLock与Condition、局部变量类型推断(var)、文本块、模块化系统等。通过在线书店系统项目,实践Java核心技术,如书籍管理、用户管理和订单管理,结合Lambda、Stream、CompletableFuture等特性。附带资源链接,助你掌握最新技术,应对面试挑战。
147 2
|
6月前
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
235 3
|
6月前
|
SQL Java 数据库连接
阿里腾讯互联网公司校招 Java 面试题总结及答案解析
本文总结了阿里巴巴和腾讯等互联网大厂的Java校招面试题及答案,涵盖Java基础、多线程、集合框架、数据库、Spring与MyBatis框架等内容。从数据类型、面向对象特性到异常处理,从线程安全到SQL优化,再到IOC原理与MyBatis结果封装,全面梳理常见考点。通过详细解析,帮助求职者系统掌握Java核心知识,为校招做好充分准备。资源链接:[点击下载](https://pan.quark.cn/s/14fcf913bae6)。
194 2
|
6月前
|
安全 Java 编译器
Java 校招面试题目合集及答案 120 道详解
这份资料汇总了120道Java校招面试题目及其详细答案,涵盖Java基础、JVM原理、多线程、数据类型、方法重载与覆盖等多个核心知识点。通过实例代码解析,帮助求职者深入理解Java编程精髓,为校招面试做好充分准备。无论是初学者还是进阶开发者,都能从中受益,提升技术实力和面试成功率。附带的资源链接提供了更多学习材料,助力高效备考。
291 3
|
6月前
|
存储 算法 Java
校招 java 面试基础题目及解析
本文围绕Java校招面试基础题目展开,涵盖平台无关性、面向对象特性(封装、继承、多态)、数据类型、关键字(static、final)、方法相关(重载与覆盖)、流程控制语句、数组与集合、异常处理等核心知识点。通过概念阐述和代码示例,帮助求职者深入理解并掌握Java基础知识,为校招面试做好充分准备。文末还提供了专项练习建议及资源链接,助力提升实战能力。
154 0
|
6月前
|
存储 设计模式 算法
校招 Java 面试常见知识点汇总及备考指南
本文全面解析校招Java面试常见知识点,涵盖Java基础、集合框架、多线程并发、JVM等内容。从面向对象特性(封装、继承、多态)到数据类型与包装类,再到字符串处理和关键字用法,逐一剖析。集合框架部分深入讲解List、Set、Map接口及其常用实现类的特性和应用场景。多线程章节探讨线程创建、同步机制及线程池的使用。JVM部分聚焦内存区域、垃圾回收机制和类加载过程。结合实际案例,助你轻松应对校招面试!资源地址:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
148 0
|
9月前
|
人工智能 搜索推荐 数据处理
简历诊断与面试指导:学校用AI开出“数字处方”,生成式人工智能(GAI)认证助力学生求职
本文探讨了人工智能(AI)技术在教育领域的应用,特别是学校如何利用AI进行简历诊断与面试指导,帮助学生提升求职竞争力。同时,生成式人工智能(GAI)认证的引入填补了技能认证空白,为学生职业发展提供权威背书。AI的个性化服务与GAI认证的权威性相辅相成,助力学生在数字化时代更好地应对求职挑战,实现职业目标。文章还展望了AI技术与GAI认证在未来持续推动学生成长的重要作用。
|
8月前
|
人工智能 自然语言处理 算法
通义灵码助力技术求职:如何成为笔试面试冲刺的“超级助手”
在技术岗位竞争日益激烈的当下,求职季的备战已不仅是知识储备的较量,更是效率与实战能力的比拼。面对海量面试题、复杂算法挑战及快速迭代的技术框架,开发者亟需高效工具辅助突破瓶颈。阿里云推出的智能编码工具通义灵码,凭借其代码生成、优化及智能问答等核心能力,正成为开发者备战求职季的“超级助手”。
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?