众所周知,受疫情影响,互联网迎来了『寒冬』,大厂 HC 骤减,腾讯基本不招人,华为也不再是有手就行,阿里某些部门流传只招 23 所院校,在如此严峻的形势下,上岸大厂变得愈发困难...
大家好,我是一枫。本科末流 211,硕士中流 985,均是电子信息专业,非科班、无实习、无比赛,最终上岸字节跳动,岗位是后端开发。
我是在读研的时候接触到的 Java,在 B 站学习了 Java 基础、MySQL 基础、JavaWeb、SSM、SpringBoot,但是那时候只是懂个皮毛,比如 MySQL 就只会 Insert、Update、Select、Delete,像什么索引、事务、慢查询等都一窍不通。
正式准备秋招是从 2022 年的一月份开始的,经过长达大半年的努力,拿到了字节、美团、携程等 offer,虽然说并不多,但也是很满意了。
在我的面试过程中,基本上技术面都能够通过,很多是在 HR 面或排序中挂掉了,如蚂蚁、OPPO、蔚来等,在这里还是提醒一下大家,如果有机会实习的话,一定要实习,因为现在后端开发比较卷,在大家知识面差不多的情况下,企业肯定还是会倾向于招聘有实习经验的同学,比如我在面京东的时候,面试官就很可惜的说,我虽然基础较好,但是前面的几个竞争者都有美团、华为等公司实习,我这方面比较吃亏,还安慰我说可能还有其他部门捞...
下面是对秋招整个过程的一点小建议,希望有所帮助。
因为我主要准备的是 Java 后端,下面说一下个人的经验。
在一场面试过程中,一般包括三方面的考察:基础知识、项目经历、算法能力,都比较重要!
这方面涉及的内容比较多,我认为以下内容是较为重要的:Java 基础、JVM、Java 并发、MySQL、Redis、计算机网络、操作系统、Spring。一般情况下,我会先看 B 站上的视频入门,然后再看书籍深入,不懂的或者欠缺的知识点再搜博客看。
Java 基础
对于 Java 基础部分,重点是 Java 集合,比如 HashMap,这块我没有看过具体的书籍(《Java 核心技术 卷一》一直在吃灰...),主要是看的博客和源码,也会看一些网上总结的面试指南,如 JavaGuide、CS-Notes、Java 面试小抄等,都是非常全面的。
JVM
这块我以前也没了解过,一直感觉比较难,但后来面过几场试后发现,问得问题都比较固定,比如 Java 运行时的五大数据区域、垃圾收集算法&垃圾收集器、类加载过程等。推荐如下:
视频:黑马程序员JVM完整教程,Java虚拟机快速入门,全程干货不拖沓,讲的挺不错的,简短精悍!
书籍:《深入理解 Java 虚拟机 第 3 版》,必读书籍,基本上面试的东西上面都有!
Java 并发
这块比较重要,面试高频点,比如 synchronized 锁升级、volatile 原理、ThreadLocal 原理、线程池原理等。推荐如下:
MySQL
这块比较重要,作为后端,我们需要经常和数据库打交道,推荐如下:
Redis
这块面试题较为固定,比如 Redis 的数据结构、持久化、哨兵、缓存击穿、缓存穿透、缓存雪崩、Mysql 和 Redis 的数据一致性等,推荐如下:
计算机网络
这块重点需要掌握以下协议:HTTP、HTTPS、DNS、TCP。推荐如下:
操作系统
这块我被问到的很少,基本也就是问一下为什么要有虚拟内存、进程调度有哪些算法等。推荐如下:
Spring
对于 Java 开发而言,Spring 肯定是非常重要的,推荐如下:
其他
因为没有实习,所以这块我是比较匮乏的,大家能去实习还是要去实习!我简历上一共写了两个项目,分别是牛客网的仿牛客论坛项目以及读研期间做的一个导师横向课题。因为做的横向课题与后端关系不大,基本没有被问过,大部分面试官都是问我仿牛客论坛项目。
仿牛客论坛这个项目涉及的内容挺丰富的,而且技术栈比较多,非常适合练手。我是在跟着敲完这个项目后,对项目进行了重构,比如它原先使用的是 Kafka,我换成了自己熟悉的 RabbitMQ,比如使用 SpringSecurity 和 JWT 重构了登录部分,又比如将项目重构出了一个前后端分离的版本(前端找的实验室同学做的)。本来还想着将私信功能用 WebSocket 进行重构,但是时间不够,我也不想再折腾了...
大家在做项目后,也可以想想能不能利用自己的所学知识点对项目进行重构,同时提前想好如果面试官让介绍项目时应该如何说,问项目的亮点和难点时,应该怎么回答(如果实在没有亮点或难点,也可以说一下自己学到了哪些知识,比如如何限流的、用到了 Redis 的哪些数据结构等)。
近些年来,算法是后端面试的重中之重,基本上每场面试都会写至少一道算法题,大家务必重视。
我是先看了《算法 第 4 版》这本书了解了一些基本的知识之后,便开始在力扣刷题了,一共刷了 200 道左右,主要刷的就是 Hot100 和剑指 Offer,期间也看了一遍代码随想录,学习了挺多做题套路。
在刷题过程中,Hot100 是超级重点,很多面试官都会出上面的题目,基本上 Hot100 能吃透,面试题目问题不大,我整个秋招一共刷了 3 遍 Hot100 和 2 遍剑指 Offer,后期刷的速度越来越快,比如写快排基本都不用怎么想,几分钟就完整写出来了。
在准备秋招过程中,我觉得最重要的一件事就是做笔记了,毕竟后端的知识非常多,某个知识点一旦不回顾,可能很快就忘了,整个过程中,我一共记录了超过二十万字的笔记,有三百多页。

网上总结的知识点笔记一方面可能知识点不全,另一方面可能写的比较难懂,甚至有些错误。而自己整理的笔记,毕竟是写给自己看的,那么肯定是更易于理解的,下次忘了的时候也能够通过看笔记迅速回忆起来。
每隔一段时间,我都会全面复习自己的笔记,甚至『背诵』,而且会经常对自己的笔记进行重新整理,毕竟伴随着学习的深入,很多知识点可能理解的更为透彻。
大家如果需要我的笔记作为参考的话,可以关注或私信『一枫说码』,免费分享哈!
最后,大家要稳住心态,不要放弃任何机会,加油,你一定会找到理想的工作!
几年前,我从一些Rails初学者指南开始学习Ruby/Rails。那时我已经学习了Rails的基础知识,例如模型和路由的一些约定优于配置,以及如何使用helpers等。但是,我并没有坚持多久,因为此后不久我发现了Sinatra,并决定我个人更喜欢它。不过,我最终真的爱上了Ruby,从那以后我写了很多Ruby,几乎没有一个是针对任何Rails项目的。然而,事实证明大部分可用的Ruby工作都是针对Rails应用程序的。所以我现在想再尝试一下Rails。现在,该引用资料很棒并且有很多有用的信息,但我只查看了我需要的特定内容的引用资料,而没有记住。但我不太可能在引用资料中看到像script/c
有很多文档介绍如何构建和创建以Rails作为后端的Ember.js应用程序。流行的解决方案是使用gems作为ember-rails和ember-source或合二为一的ember-appkit-rails。但是我正在尝试创建一个简单的Sinatra应用程序,该应用程序以Ember.js作为前端来处理仅JSON后端。我发现的少数资源似乎有点过时,所以我正在寻找简单的方法来做到这一点。所以我的问题是:我如何将Ember.js与简单的Sinatra后端集成?如何执行此操作的示例将不胜感激。 最佳答案 有一个verysimplerepoon
主要来自.NET背景,我非常喜欢(无论好坏)VisualStudio。不过,我现在要去学校学习软件工程,我的第一个类是使用RubyonRails的XP(极限编程)。大多数情况下,我听说当您使用Ruby进行开发时,您往往会完全跳过整个IDE;我对这种可能性完全开放。不过,那里有IDE,因此似乎至少一些人仍然认为使用IDE是值得的。由于我非常熟悉VS,我只是想知道是否有人使用过RubyInSteel.从网站上看,它确实看起来不错。不过,我真的不知道它对一般RoR开发有多大用处或适用性,这就是为什么我认为我会把这个问题抛在那里。您使用过RubyInSteel吗?你对它的印象如何?它如何与其他
快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目
关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.11个月前关闭。Improvethisquestion我想为我的项目找到一个rubygem,以处理符合以下要求的重复事件:可以处理“每周星期二和星期三”或“每月最后一个星期二”这样的模式可以计算下一次出现可以将模式序列化/反序列化为字符串以存储在数据库中序列化格式稳定(即升级后仍能加载)至少使用以下模式组件:时间、星期几、月份日期、月份中的第n天;可以每天、每周、每月或间隔n天、周或月重复可以用自然的英语语言表示模式可以解析英语模
当我在OSXMavericks上运行“geminstallcocoapods”时出现错误。$geminstallcocoapodsERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:Unabletodownloaddatafromhttps://rubygems.org/-badresponsebackendreaderror503(https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/cocoapods-0.27.1.gemspec.rz)ERROR:Possiblea
Java自学超全干货分享!学不学自己看着办吧!最近收到了很多知友私信我:”0基础有什么推荐的Java学习工具?”★作为ACM金牌选手,这些年在跟很多学员受教的过程中,积累了一些关于新手Java学习的经验和踩过的坑,今天来跟大家分享几点:1.找准学习路径和方法(选择不对,努力白费)2.合理规划学习时间,不在没必要的技术上浪费时间(找重点)3.找一些志同道合的朋友一起学习(相互鞭策)4.找一个前辈指点(方式方法)“还没开始就结束了”,作为java新手小白,最难自然是找对学习路径和方法……于是,本着一颗无私奉献的心,我连夜整理出了8个优质的Java免费学习网站,分享给大家。NO.1菜鸟教程国内小白入
记个笔记以免遗忘,建议还是查看Element-UI提供的官方文档学习,自己摸索比较难受官方文档:Element-UI组件TableElement-UI官网提供了许多Table格式,这里以一个带有筛选器的表格为例表格的官网显示效果:直接将官方提供的示例代码贴入.vue文件中即可使用显示的数据是通过data()方法提供的假数据。方法见下:data(){return{tableData:[{date:'2016-05-02',name:'王小虎',address:'上海市普陀区金沙江路1518弄'},{date:'2016-05-04',name:'王小虎',address:'上海市普陀区金沙江路1
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在寻找Ruby的CodeLikeaPythonista:IdiomaticPython等价物理想的特性:易于阅读涵盖所有主题的单一文档:提示、技巧、指南、注意事项和陷阱比一本书还小惯用语应该在标准发行版中开箱即用(%sudoapt-getinstallrubyirbrdoc)请尽可能为每个答案放一个教程,并附上教程中的示例代码及其含义。更新:这些
目录:1.在数据库中创建表2.使用代码生成功能,生成基础代码2.1修改代码生成器中配置文件generator.yml2.2使用系统工具代码生成3.新建子模块,迁移代码3.1创建grayskyax-assetsmanagement模块3.2在RuoYi整个项目下的`pom.xml`中引入刚刚新建的模块:3.3在ruoyi-admin模块的pom.xml中引入新建的模块3.4在新建的assetsManagement模块中引入ruoyi-common模块3.5将之前解压后的文件放如项目的对应目录下;3.6在数据库中执行生成的sql脚本3.7配置扫描路径application.yml,applicat