电子商务网站建设外包服务的企业,制作京东网站建设,邹城网站建设公司,佛山精品网站建设大家好#xff0c;我是老三#xff0c;好久没更新了#xff0c;翻出之前的一篇旧稿#xff0c;是一篇总纲性质的文章——如何准备一场技术面试。这篇文章原本的开头是写给金三银四的#xff0c;转眼就“金九银十”了#xff0c;每一年都是最差的一年#xff0c;又是未来…大家好我是老三好久没更新了翻出之前的一篇旧稿是一篇总纲性质的文章——如何准备一场技术面试。这篇文章原本的开头是写给金三银四的转眼就“金九银十”了每一年都是最差的一年又是未来最好的一年不知道大家今年的面试情况如何希望这篇文章能对大家有所帮助。
1. 了解面试考点
就像我们大学考试之前会尽量求老师划定考试的范围面试也是一样在面试准备之前要尽可能有效地了解意向公司和意向岗位的面试侧重点和面试考点在面试准备时做到有的放矢。
职位要求获取
那么我们可以通过哪些渠道获取这些信息呢
招聘网站大多数公司在发布职位时会详细列出所需的技术技能、工作经验和个人素质等要求。我们可以从这些岗位的JD归纳出一些职位的要求根据自己当前的现状分析不同年限、不同岗位的要求。 官方网站我们也可以直接访问目标公司的招聘官网官网的职位很多都是用人的团队直接发布岗位的JD更加贴近团队的实际需求。
部分公司的官网招聘入口
公司名称官网招聘入口地址阿里巴巴https://job.alibaba.com/zhaopin/腾讯https://careers.tencent.com/百度https://talent.baidu.com/字节跳动https://www.bytedance.com/cn/jobs/美团https://hr.meituan.com/social/小米https://zhiwei.xiaomi.com/social携程https://campus.ctrip.com/external/ctrip/job/list
面经分享在岗位的JD里面通常只会留下岗位的概要要求具体面试考什么可以阅读前辈们的面试经验分享。通过这些面经可以了解他们是如何准备的遇到过哪些问题以及面试官常问的问题。
一些常用的面经获取网站
网站名称网址特点牛客网https://www.nowcoder.com/面经内容最丰富最完整校招面经相对更多。看准网https://www.kanzhun.com/看面经模块提供了很多面经社招面经居多。知识星球https://www.zhihuixingqiu.com/基本需要付费一些大的知识星球有一些不错的面经分享。
去年我准备面试的时候当时整理了大量的面经对我的帮助很大。 算法题库近些年算法也成为面试的重要考点尽管实际工作基本上用不上但是为了面试还是要好好准备。
常见的算法题库网站
网站名称地址特点LeetCodehttps://leetcode.com最大的算法题库题目最完整。LintCodehttps://www.lintcode.com/牛客网https://www.nowcoder.com/CodeTophttps://codetop.cc/home提供企业算法合集
面试考点分析
对于大部分面试一般考察四部分内容 技术知识这部分主要考察候选人对后端技术的基础理解和掌握情况。项目经历这一部分主要考察候选人的实战经验和在实际工作里解决问题的能力。算法编程算法部分是为了测试候选人的逻辑思维能力和编程技巧也许。其他方面这部分包含软技能的评估比如沟通能力、团队协作能力、自我驱动力等等。
不同层级
不同的年限不同的层级对开发人员的要求也不一样准备的侧重点也不一样。
Boss直聘某实习生岗位JDBoss直聘某3-5年后端工程师岗位JDBoss直聘某Java专家岗位
实习生
熟悉常用开源框架如Spring Boot、Mybatis等能够熟练地利用这些框架搭建基本的应用程序。了解中间件例如Redis、RabbitMQ等知道如何在项目中集成这些组件并能理解它们的基本工作原理。基础扎实深入理解Java语言的基础知识如面向对象编程、集合框架、异常处理等。团队协作虽然实践经验可能不多但需要展现出良好的学习能力、团队合作精神以及解决问题的态度。
3-5年高级工程师
熟练掌握后端技术栈不仅要熟悉常用的开发框架还需要了解底层的工作机制例如JVM原理、网络编程等。项目经验有实际项目开发的经历能够分享在项目中遇到的具体问题及其解决方案。问题解决能力面对复杂问题时能够分析问题产生的原因并提出合理可行的解决方案。代码质量编写高质量的代码注重代码的可维护性和扩展性。
5-10年资深/专家工程师
领域专长在某一特定领域有深入研究例如高并发处理、分布式系统设计等。架构设计具备设计大型系统的能力能够从整体上规划系统的架构考虑系统的可扩展性、可用性等问题。技术创新持续关注行业动态和技术发展趋势有能力引入新的技术和理念改进现有的系统。团队领导力作为技术团队的核心成员指导和培养初级工程师带领团队解决技术难题。
不同公司
不同的公司可能也有不同的面试倾向。
比如字节跳动特别看重基础和算法准备字节的面试计算机基础算法之类的一定要着重准备“接雨水”一定要接得明明白白。
比如阿里比较看重项目和一些中间件的原理在问项目的时候经常要求对项目要有一些自己的思考为什么、是什么、该怎么优化。
这一部分可以从前人的面经中归纳整理。接下来我们看看具体如何准备面试。
2. 复习技术知识
面试准备的第一部分就是技术知识对于工程师技术知识是基础也是面试的重头戏。
技术知识考点
为了准备Java相关的技术面试我们需要全面地掌握多个方面的知识那技术知识会考哪些内容呢根据我的总结包括但不限于Java语言特性、常用框架、计算机基础、数据库、中间件、分布式微服务以及系统设计等。 Java语言特性
核心语言特性和API熟悉Java的核心特性比如封装、继承、多态以及集合框架、异常处理、反射、泛型、内部类等。并发编程深入理解并发编程机制包括线程池、锁、同步机制synchronized关键字、ReentrantLock、Semaphore、volatile关键字以及原子类等。JVM理解JVM的内部工作原理如内存区域划分、垃圾回收机制、类加载机制等。
Java框架
Spring框架掌握Spring的核心容器、AOP、事务管理、Spring MVC等掌握一些核心功能如IOC、Bean生命周期的实现。MyBatis熟悉常用的ORM框架掌握基本使用和基本实现原理。
计算机基础
操作系统了解操作系统的基本概念比如进程与线程的区别、内存管理、文件系统等。网络协议熟悉TCP/IP模型理解HTTP/HTTPS协议的工作原理了解DNS解析过程等。数据结构与算法熟练掌握各种数据结构如链表、树、图和算法如排序、查找。
数据库
MySQL能够编写复杂的SQL查询语句能够对SQL进行优化深入理解索引和事务等核心概念掌握不同存储引擎的特性。NoSQL数据库了解Redis等NoSQL数据库的特点和应用场景以及一些实现原理。
中间件
消息队列理解Kafka、RabbitMQ等消息队列的作用及其实现机制。
分布式微服务
微服务架构理解微服务的基本理念知道如何设计微服务架构。服务发现与注册熟悉Eureka、Consul等服务发现工具的使用。负载均衡了解Nginx/Zuul等工具的配置与使用。API网关掌握API网关的功能比如路由转发、限流等。分布式配置中心了解Spring Cloud Config的使用方法知道如何进行分布式配置管理。
软件设计
设计模式掌握常见设计模式如单例模式、工厂模式等知道它们的适用场景。
系统设计
方案设计能够对一些常见的系统比如电商、秒杀等等做出合理的系统设计。
…… 这一部分推荐我本人写的《面渣逆袭手册》基本上涵盖了80%的面试考点关注公众号三分恶后台回复666无套路获取。 技术知识学习
对于技术的知识的学习不太推荐临阵磨枪单纯靠死记硬背一定要去理解它真正地消化吸收并尝试用自己的语言去输出。毕竟面试现场如果只是机械地背诵那么给面试官的体验一定不会太好甚至整个场面都很尴尬。
要想充分理解系统化的学习是必不可少的。建议大家选择一些高质量的书籍和教程来学习这里我也给大家推荐一些。 Java语言特性
核心语言特性和API推荐《Java核心技术》这本书全面覆盖了Java的核心概念和技术是深入学习Java语言特性的优秀教材。 并发编程《Java并发编程的艺术》、《Java并发编程实战》、《Java并发编程之美》以及《王者并发课》都是非常好的选择它们分别从不同的角度讲解并发编程的理论与实践。 JVM《深入理解Java虚拟机》是理解JVM工作原理的必备读物有这一本就够了。
Java框架
Spring框架《Spring实战》主讲Spring框架的使用《Spring揭秘》主讲原理比较老的一本书但是主要的核心原理讲的很好 MyBatis作为一个ORM框架MyBatis大致看一本书《Mybatis技术内幕》基本就够了。 计算机基础
操作系统《操作系统导论》与《深入理解计算机系统》都是比较经典的书籍博主小林的《图解操作系统》也不错更适合面试突击。 计算机网络《计算机网络》、《图解TCP/IP》也都是很经典的图书同样也推荐博主小林的《图解计算机网络》。 数据结构与算法《数据结构与算法分析》经典书籍有多种语言的版本。 数据库
MySQL《高性能MySQL》、《MySQL技术内幕 InnoDB存储引擎》、《MySQL实战45讲》以及《MySQL是怎样运行的从根儿上理解MySQL》等书籍都值得一看。 Redis《Redis开发与运维》、《Redis设计与实现》、以及《Redis5设计与源码分析》都是学习Redis的不错选择。 中间件
消息队列极客时间的《消息队列高手课》整体上还不错。 分布式微服务
分布式基础《从Paxos到Zookeeper分布式一致性原理与实践》可以帮助理解分布式系统中的关键概念。 微服务《SpringCloud微服务实战》、《SpringCloud Alibaba微服务实战与原理》以及《SpringCloud微服务和分布式系统实践》这些都可以看一看。
软件设计
设计模式《设计模式之禅》是一本深入浅出介绍设计模式的书设计模式三本经典著作之一Java语言写的Demo对Javer很友好。 系统设计
方案设计《搞定系统设计面试敲开大厂的门》适合准备面试的工程师书中包含了大量实际案例和设计思路广度还可以深度一般。 架构设计《从零开始学架构》一本架构入门书可以学习一些常见的互联网架构手段。 整理自己的知识库
准备面试还有个非常重要的点就是整理自己的面试知识库尽管有很多非常优秀的面试知识库但归根到底最合适自己的还是要自己去整理。
通过借鉴别人的面经以及从自己的面经出发根据问题去寻找答案利用种种途径——教程、博客包括现在流行的大模型去回答面试的问题梳理自己的答案。
这样一来不仅能深化你对知识点的理解也能加强你的表达能力而且知识库的内容也更加贴合你的技术经历和知识体系这样面试的时候才能更加如鱼得水信手拈来。
比如我自己的《面渣逆袭手册》就是我给自己整理的面试知识库经历了不断的迭代和完善每一次面试、每一次的迭代都能提高我的面试水平。
3. 准备编程题 在现在的面试里编程题基本上成为不可或缺的一个环节编程题以算法为主那么编程题如何准备呢
按照我的经验可以将备战过程分为三个阶段
系统刷题建议投入至少六个月的时间系统地刷题。这一阶段的重点在于理解并掌握常见的算法类型及其解题策略。推荐代码随想录的教程https://programmercarl.com/。因为仅仅记忆解题步骤是不够的更重要的是理解背后的逻辑。很多时候面试官不仅关心你能否解答题目还会询问你的解题思路及是否有更优的解决方案。所以全面的基础还是非常有必要的。 刷高频题接下来的三个月时间应该专注于刷那些在面试中频繁出现的题目。毕竟从面试官的角度出发他也不可能把所有的题都刷完一般人的策略也是出自己熟悉的题目。LeetCode上的高频题库以及Codetop提供的高频题库都是不错的选择。对于这些高频题至少需要刷两到三遍推荐CodeTop或者自己建知识库记录自己的掌握程度直到这些题目能够在没有任何提示的情况下手写出来。 冲刺刷题在面试前的一个月内应该集中精力刷那些已经进入面试环节的公司的题目。比如字节什么接雨水、全排列之类要刷熟比如美团牛客的剑指Offer要多刷。这段时间的冲刺是尽可能保证自己在面试高压的情况下能迅速、准确地解答一些可能会出现的题目。 算法刷多少道才够呢有人说300道有人说100道……我觉得还是根据个人的情况来定如果有条件尽可能多刷。坦白说我觉得算法在工作中基本上用不到——刷了四百道算法题我在项目里用过几道呢但是没办法现在这个内卷的环境下算法是个一键Pass的考点。而且相比较其他难以量化的东西算法算是相对公平的评估方式了卷了是一定能出结果的。
4. 准备项目
面试的第三个重要部分就是你的项目经历了问项目的目的是想看到候选人落地实践的能力和解决问题的能力。
项目选择
准备项目的第一步是选择项目面试官的精力有限一般一份简历上放两个项目足够。不管你是应届生还是老鸟正确的项目选择都能让你在面试里更好地展示自己。
以我为主 与我相关选择的项目应该是你参与过的项目最好是那些直接反映了你的专业领域或工作背景的项目。如果你在一家传统行业的公司你的简历上出现一个秒杀项目那就显得不合时宜。体现亮点挑选那些具有一定挑战性和难度的项目那些项目能体现出你的技术实力和个人优势。尽量不要选一些太简单太普通的项目。 面向岗位 职位要求根据目标职位的具体要求来挑选项目。如果面试一家电商公司那肯定优先选择电商相关的项目但是要确保对项目有深入的理解和准备因为面试官也懂。行业趋势关注行业内的最新发展和技术潮流尝试挑选那些涵盖了前沿技术或顺应当前行业趋势的项目。比如现在大模型很流行如果你做过相关的项目就可以选中它。
项目整理
怎么整理项目呢我觉得其实就像在公司里给老板做汇报他对你的项目可能一无所知你要通过你的汇报让他理解这个项目了解你再项目里做了什么并让他认可你做的东西的价值。
建议大家可以对自己的项目建一个文档或者你要想卷的话也可以做个PPT。那么如何整理你做的项目呢可以通过这几步 明确项目背景描述项目的背景、目的以及它所解决的问题。描述你的角色说明你在项目中的职责是什么担任了什么样的角色比如项目经理、核心开发者等。技术栈选择列出项目使用的主要技术栈并解释为什么选择它们。比如为何选择Spring Boot而非其他框架MySQL数据库的优势在哪里等。面临的挑战与解决方案详述项目过程中遇到的技术难题或其他障碍以及你是如何解决这些问题的。例如如何处理高并发下的事务一致性问题或者如何优化支付系统的延迟。项目成果总结项目最终的成果比如提高了多少交易处理速度增加了哪些新的功能用户体验有何改善等。反思总结分享从项目中学到的经验教训项目里存在的问题以及未来如何改进。
这里可以拿一个电商的支付系统来举例 项目背景 支付系统是为电子商务网站提供安全高效的支付手段简化购物流程提高转化率。 你的角色 在该项目中担任技术负责人负责系统的设计与开发工作。 技术栈选择 后端: 使用Spring Boot框架构建后端服务因其提供了快速开发微服务所需的特性。数据库: 选择了MySQL作为关系型数据库管理系统因为它支持高并发读写操作并且具有较好的事务处理能力。消息队列: 引入了RocketMQ来处理异步任务确保支付过程中的数据同步不会阻塞前端体验。…… 面临的挑战与解决方案 高并发下的幂等: 采用分布式锁机制配合业务幂等键保证业务幂等防止重复支付。支付安全性: 为确保支付过程的安全支付系统单独部署满足PCI认证安全要求。…… 项目成果 系统上线后支付成功率提升了20%转化率提升了10%。 反思与学习 在快速迭代中有些设计的可扩展性不足在后续的项目中将会更加注重系统架构的可扩展性和易维护性以便更好地应对未来的业务增长和技术迭代。 项目常见问题
这里也给大家整理一些关于项目的常问的问题。之前有一场面试我问候选人“你的项目的亮点是什么”他说不知道怎么回答这个问题。项目整理做好了这一部分基本对答如流。
你们的项目是什么背景你在项目里是什么角色项目的亮点是什么项目的难点是什么你遇到的最大的困难你觉得做的最好的点是什么你觉得项目有哪些不足如何改进你们项目的核心指标并发、日活…………
5. 提高软技能
在面试里我们常常说和面试官要有“面缘”“面缘”是什么呢其实就是和面试官气场相合沟通流畅。“面试不是打打杀杀也是人情世故”在面试前提高软技能特别是沟通能力也是非常重要的在基础的要求满足下面试官肯定更倾向于和自己有“面缘”的。
那么看不见摸不着的软技能该怎么提升呢大概可以从这些方面去练习 合作双赢心态面试不仅是面试官评估候选人的过程也是一个双向选择的机会。可以看看面了三十个人说说我的真实感受面试官和你都有自己的目标面试官希望招到合适的人选而你希望找到理想的工作。你和面试官不是对手而是合作共赢的关系。如果你顺利通过面试未来的面试官可能成为你的同事或上司即使没有通过也不必感到沮丧毕竟你们只是彼此生命中的过客。持有这种双赢的心态可以让你面试更加放松表现得更好。准备自我介绍认真准备一段自我介绍大约3至5分钟概述你的工作经验、优势以及为何适合这份工作。这段介绍不仅展示了你的专业素养还决定了面试官对你的初步印象。尽可能让你的自我介绍自然流畅详略得当。可以反复练习听着录音或者看着录像去调整。
eg一段自我介绍的示例 面试官您好我是XXX很高兴有机会参加今天的面试 我毕业于XX大学之前在XX公司担任过支付系统开发工程师的角色期间主要负责电商支付平台的核心模块开发工作包括支付渠道的选择与路由、支付收银台界面设计以及支付风险控制系统的搭建。在此过程中我积累了对接和维护支付宝、微信支付及银联支付等多种支付接口的经验并对常见的支付逻辑和系统解决方案有了深入理解。 在技术栈方面我对Java语言有较深的认识掌握其核心特性和并发编程模型并具备JVM调优的实际经验。此外我也熟练使用Spring、SpringBoot和MyBatis等主流框架能够快速搭建稳定的服务端应用。数据库方面我熟悉MySQL数据库的设计与优化而对于分布式系统中的数据缓存和消息队列我也有一定的实战经验尤其是RocketMQ和Redis的应用。 我对当前的技术趋势保持着高度的关注并积极学习最新的技术动态。近期我对大模型的研究产生了浓厚的兴趣并尝试将其应用于实际项目中以提升系统的智能化水平。 在团队协作上我认为沟通至关重要。曾负责多个跨部门项目的推进深知团队内部及跨团队有效沟通的重要性。通过良好的沟通机制不仅能够确保项目顺利进行还能促进团队成员间的相互理解和信任。 面对技术挑战时我喜欢从不同的角度审视问题并寻找最优解。例如在应对支付高峰期带来的系统压力时我引入了异步处理机制成功缓解了服务器负载保证了支付流程的顺畅。 我非常希望能够加入贵公司因为贵公司在支付领域的深厚积淀和技术实力给我留下了深刻的印象我相信在这里可以更好地发挥我的专业技能并与团队共同成长。 这就是我的自我介绍谢谢 保持友好态度无论面对什么态度的面试官始终保持友好之上的态度。人们的态度可以分为五个层次从最差的恶毒到最好的热情依次是冷淡、礼貌、友好。尽量保持比面试官略好的态度这样的态度恰到好处。友好的态度除了语言也要通过眼神、表情、姿态来传递。 练习回答技巧面试中的问答环节应当是有效而且是目的导向的。为了使回答有条理、简洁明了可以借鉴麦肯锡思考工具里的“5W1H”框架Who何人、What何事、When何时、Where何地、Why何因和How何法。这样既能保持沟通表达的完整也能避免太臃肿。倾听和反馈面试不仅仅是表达自己也要注意聆听面试官的问题和他们的需求。展现你是一个好的倾听者通过适时的点头或简短回应来表示你在听。此外针对对方的观点给出适当的反馈表明你理解并尊重他们的意见。必要的时候也要对对方提出疑问有来有回。另外一个小技巧在面试的最后要表达你对这场面试的认可你从这场面试里学到了一些东西。持续改进保持开放的心态持续学习面试过程可以录音或者录屏面试之后要及时地去复盘分析哪些对方做的好哪些地方还需要改进这样每次面试之后你都会越来越游刃有余。
6. 准备简历
简历是一个求职者的门面很多时候决定了候选人能不能得到一个面试机会。
简历样式
撰写简历要做到内容精简并且突出亮点。校招简历建议控制在2页以内社招简历建议控制在3页以内。当然如果内容是必要而且丰富的也没有必要非要强行压缩。
简历的样式不用刻意追求特别繁杂的设计结构清晰易于阅读即可。随手搜的一些简历模板
https://github.com/billryan/resumehttps://github.com/deedy/Deedy-Resumehttps://github.com/geekcompany/ResumeSample/blob/master/java.mdhttps://github.com/Jayin/resumehttps://github.com/stick-i/markdown-resume-templatehttps://jianli.chinaz.com/
如果有条件可以制作一份在线的简历能给你大大增分。
注意一定要使用 PDF 格式投递不要使用 Word 或者其他格式投递不然格式可能会错乱
简历内容 个人信息⭐⭐⭐
基本信息 姓名、电话、籍贯、联系方式、邮箱地址。要保证准确之前有朋友投了一个月一个面试都没有后来发现电话写错了。加分项有亮点则写 Github 地址、博客地址
求职意向⭐
应聘岗位期望工作地点。
教育经历⭐⭐
要简洁明了地列出学历、专业、毕业院校及时间。
例如 皇家理工大学硕士软件工程2019.09 - 2022.01汉东大学学士应用化学2015.09 - 2019.06 专业技能⭐⭐
结合自己会什么以及目标公司会什么筛选关键词列出一份和岗位相关的专业技能。同时也要注意了解、掌握、熟悉、精通程度的描述尽量客观。
例如 Java语言 熟练掌握Java语言基础及面向对象编程思想熟悉Java常见集合框架能够高效地使用List、Map、Set等数据结构熟悉Java并发编程了解线程安全、锁机制及并发工具类的使用理解JVM原理包括内存模型、垃圾回收机制等并能据此优化程序性能 框架 熟悉Spring框架的核心功能模块包括依赖注入DI和面向切面编程AOP掌握Spring MVC框架熟练进行Web应用开发熟练使用Spring Boot全家桶进行快速服务搭建包括配置文件管理、自动装配等功能熟悉MyBatis等ORM框架具备数据库操作的经验了解微服务架构模式熟悉Spring Cloud、Spring Cloud Alibaba、Dubbo等微服务治理框架 数据库 熟悉MySQL数据库管理系统具有SQL查询优化的能力了解NoSQL数据库如Elasticsearch的基本特性和应用场景 中间件 熟悉Redis缓存中间件能够利用其特性进行数据持久化、高并发场景下的性能优化熟悉RocketMQ消息队列掌握基于消息驱动的应用设计与实现 计算机基础 熟悉计算机网络基本原理包括TCP/IP协议栈、HTTP/HTTPS协议等掌握常用的数据结构与算法能够在实际开发中灵活运用了解操作系统底层原理熟悉Linux环境下基本命令行操作及脚本编写 设计 能够独立完成复杂系统的架构设计具备良好的抽象思维能力和模块化设计思想熟悉常用的设计模式如单例模式、工厂模式、观察者模式等并能在项目中合理应用 业务 能够从全局视角出发结合业务特点进行技术选型和技术方案规划。 大家可以以适当地精简一个简历专业技能写法的技巧是引导式写法也就是面向面试问题的写法比如熟悉TCP三次握手引导面试官去问自己会的问题大家适当参考。
实习经历/工作经历⭐⭐⭐
工作经历针对社招实习经历针对校招。
工作经历建议采用时间倒序的方式来介绍。实习经历和工作经历都需要简单突出介绍自己在职期间主要做了什么结果是什么。
示例 XXX 公司 201X 年 X 月 ~ 201X 年 X 月 职位Java 后端开发工程师工作内容主要负责 XXX完成了XXX提升了XXX 项目经历⭐⭐⭐
项目经历是社招的重点内容要做到清晰有亮点让面试官对你的项目有东西你有东西可答。写项目经历有这么几个建议
精选项目通常情况下保留一到两个你最熟悉或与应聘职位最契合的项目。过多的项目可能会让面试官难以抓住重点太少又没法充分展现你自己。内容负责简历写的每一项你都要很熟悉对细节非常清晰经得起面试官的追问。表述清晰项目职责可以采用STAR法则情境、任务、行动、结果比如font stylecolor:rgb(239, 112, 96);为了解决掉单问题引入消息队列定时任务实现主动轮询掉单率降低到0.01%以下。/font简介精炼项目背景介绍控制在两句话以内保证简洁的同时也能高度概要项目。技术栈精简直接罗列用到的技术名词就好不用再作额外的解释。少谈业务多说技术尽量把重点放在技术实现和解决问题上而不是业务本身体现你用技术解决业务问题的能力。展现软实力可以提一下你是怎么协调团队合作的或者是如何克服困难的这些都能很好地反映你的综合素养。
例如 2019-05 ~ 2023-06 淘X 高级 Java 后端开发工程师 项目描述负责淘x电商平台的核心交易系统支持大规模用户访问和高频交易处理。技术栈Spring Boot MySQL Redis Mybatis Spring Security Oauth2工作内容/个人职责 为应对大量用户数据和高频交易的需求确保数据同步的实时性和准确性整合了 Canal 和 RocketMQ实现了 MySQL 增量数据如商品、订单数据的实时同步至 Elasticsearch成功实现了数据的实时同步提高了数据处理效率和一致性针对扣费模块因线程池配置不当导致的死锁问题通过分析线程堆栈和日志发现扣费父任务和反作弊子任务使用同一个线程池导致了死锁现象重新设计了线程池策略分离了关键任务解决了死锁问题提升了系统的稳定性和响应速度为解决用户统计模块响应时间较长的问题使用 CompletableFuture 并行加载后台用户统计模块的数据信息优化了数据加载流程平均响应时间从 3.5 秒降低到 1 秒显著提升了用户体验针对订单表数据量过大的问题使用 Sharding-JDBC 将订单表按用户 ID 后四位分库分表共 3 个库每个库 2 个订单表并自定义雪花算法生成订单 ID将分片键作为订单 ID 的一部分单表数据量保持在 500 万以下提高了查询性能为了优化热门数据查询速度较慢的问题采用了 RedisCaffeine 两级缓存机制解决了缓存击穿和穿透问题查询速度达到毫秒级QPS 达到 30 万以上为了解决购物车查询模块响应耗时较长的问题采用 CompletableFuture 优化购物车查询模块对获取用户信息、商品详情、优惠券信息等异步 RPC 调用进行编排响应时间从 2 秒降低到 0.2 秒 个人评价⭐
个人评价非必需但是写的时候要注意一定要用简洁的语言来突出自己的特点和优势而且切记不要太空洞和宽泛要和专业能力有关而且要有事实佐证。
关于个人评价可以从这几方面入手
专业技能如文档编写、学习能力、沟通与团队协作等。工作态度包括责任感和对工作的投入程度。抗压能力面对挑战时的态度与方法。技术追求对技术进步的热情及对高质量代码的坚持。实践经验特别是分布式系统或高并发场景下的开发经验。
例如 良好的解决问题能力面对技术难题能够快速定位问题根源并提出有效的解决方案。曾在项目中成功解决数据库性能瓶颈问题提升了系统响应速度30%以上。 两个法则
简历的编写可以借助两种非常实用的法则来提升简历的质量STAR 法则和 FAB 法则。
STAR 法则Situation Task Action Result
STAR 法则是简历撰写和面试沟通中常用的技巧STAR 法则
Situation情景 事情发生的具体背景Task 任务你的职责和目标是什么Action行动你采取了哪些具体措施Result结果最终的结果和影响是什么
FAB 法则Feature Advantage Benefit
FAB 法则通常用于销售领域但在简历中也可以拿来借鉴 FAB法则
Feature特征**** 你的独特技能和特点。Advantage优势**** 你别别人好在哪里。Benefit 益处 如果你被录用公司会获得哪些收益。
定制化
这里格外强调一点很多时候我们是没法“一份简历包打天下”的在投递简历的时候尽可能做到面向JD写简历针对不同的岗位对简历进行定制以便更好地匹配这个职位。
针对对应的JD可以按照这么几个思路来定制自己的简历
研究JD: 仔细阅读JD识别关键词、技能要求、经验和软技能等方面的要求。匹配技能: 在简历中突出与JD中提到的关键技能和经验确保使用相同的术语因为很多筛选的HR都不懂技术。量化成果: 用具体数据来展示你在过往工作中取得的成绩尤其是那些与JD中列出的指标相似的部分。强调相关经验: 突出那些与应聘职位最相关的工作经历和项目经历比如ToC的岗位要强调自己ToC的经验ToB的岗位强调自己ToB的经验。关键词优化: 确保简历中包含了JD中的关键词有时候系统会做自动的筛选。 以这个字节的后端开发工程师岗位为例我们面向JD来定制简历
技术背景 在教育背景部分确保提到你的本科学历——我自己之前面美团学历被系统识别成了专科。在专业技能部分列出自己熟悉的的编程语言强调自己的计算机基础能力。 系统设计能力 强调你在设计系统方面的经验特别是在大型、高并发环境下的设计能力。例如“设计并实现了多个高并发、分布式系统有效解决了大规模用户访问带来的挑战。” 数据库、缓存和消息队列 描述你如何使用这些技术解决实际问题。例如“利用MySQL数据库和Redis缓存系统设计了高效的数据存储和访问方案大幅提高了系统性能。” 责任心与团队协作 在自我评价或工作经历部分体现你的责任心和团队合作精神。例如“在项目中担任核心角色积极主动解决问题与团队成员密切合作确保项目成功上线。” 高可用系统经验 如果你有服务治理、稳定性提升或容量规划的经验一定在简历中突出这一点。例如“负责了多个系统的稳定性建设通过优化报警、监控、容灾和降级策略提高了系统的可用性和健壮性。” 行业经验 如果你有电商、金融或支付行业的经验这是一个比较大的加分项。例如“曾在某电商平台担任核心开发人员参与了支付模块的研发工作积累了丰富的行业经验。”
示例简历片段 教育背景 XX大学 计算机科学与技术 本科 专业技能 熟悉Java语言具备扎实的编程基础对C和Python有一定了解。深刻理解计算机原理包括操作系统、网络、数据结构和算法等。 工作经验 在ABC公司担任高级软件工程师负责高并发系统的设计与开发使用MySQL、Redis、RabbitMQ等技术栈。主导了系统稳定性建设优化了报警系统和容灾方案确保了支付系统在春节、双十一等高峰期的平稳运行。 项目经历 参与了XYZ银行的核心支付系统的研发实现了系统的可扩展性和可维护性推动了平台型系统建设。在项目中担任技术负责人带领团队完成了系统设计和开发工作提升了团队的技术水平。 自我评价 具有强烈的责任心对待产品充满热情注重细节善于沟通协调能够在高压环境中保持冷静与团队成员紧密协作解决问题。 7. 简历投递
写好了简历之后接下来就是投递简历选择正确的渠道和正确的策略非常重要决定了会不会有面试的机会。
投递渠道
简历投递的渠道有很多给大家聊聊我常用的渠道。
招聘网站 Boss直聘https://www.zhipin.com/?kaheader-home-logoBoss直聘的机会最多招聘者也比较活跃投递简历的时候需要先沟通对方同意投递简历之后才能把简历投递过去。脉脉https://maimai.cn/脉脉不仅可以作为一个吃瓜网站同样也是一个招聘网站招聘的很多人都是业务部门的人员非常贴近岗位。拉勾网https://www.lagou.com/wn/老牌的招聘网可以直接投递简历但是最近有些没落岗位数量和活跃度都不够。 公司官网大型公司一般都有自己的招聘官网放出的岗位一般都是有效的缺点是信息比较散。内推最有效的投递途径一定是内推但是要注意内推也有区别如果是内部员工通过内推系统其实和自己投递没什么太大差异。但是如果是组内直推简历能直接给到内推人熟悉的主管那么优势就是非常大了。
投递策略
对于简历的投递策略用个不恰当的比喻既要当“渣男”也要当“舔狗”意思是既要广泛撒网又要重点跟进。 广泛撒网利用上述投递渠道多投简历甚至是海投争取更多的面试机会不要“为了一株树苗而放弃整片森林”。同时如果有更合适的机会也要善于放弃不要死磕。重点跟进对于感兴趣、或者把握比较大的公司或者岗位一定要重点跟进研究岗位要求定制简历投递也要尽可能去找内推。对于社招一般一家公司同时只能推进一个岗位所以一个公司内一定要先去推进高优的高优的流程终止之后再去尝试其它岗位。
持续跟进
在简历的投递过程中一定要保持积极主动的习惯。当你提交了简历或者初步联系了招聘方后如果一段时间内没有得到回复一定要主动去跟进。
建议采取三五法则初次联系后的三到五天进行一次跟进可以通过邮件、信息的方式来咨询对方。
例如Boss直聘上对方已读不回这是一个示例话术 您好我是xxx几天前我向您表达了加入贵司担任[职位名称]的兴趣。看到您已经查阅了我的资料但至今尚未收到回复。我对这个职位非常感兴趣而且我国网的经历和这个岗位也比较匹配相信我的经验和技能能够为贵司带来价值。 请问是否需要我提供更多相关信息或者能否告知我申请的进展情况期待能有加入贵司的机会希望尽快得到您的反馈。 作为工程师可能很多人都有点社恐对方不回复或者不联系就不太好意思继续问要克服这种情绪多问几句最差不过是像现在这样已读不回。再好一点是对方回复为什么觉得你不合适这个岗位可以尝试挽回或者根据对方的反馈继续优化自己的简历。最好就是对方被打动初筛通过。那为什么不主动跟进一下呢
8. 模拟面试
在现在这个环境下每一个面试的机会都是宝贵的为了尽可能提高正式面试的通过率建议在正式面试前进行一些模拟面试找到面试的感觉。
找人模拟面试 尽可能找到行业内的朋友或者同事作为模拟面试官。这些人最好是对你面的职位有所了解的人这样他们的提问和反馈才会更有针对性。如果你认识已经在目标公司工作的人那么他们可能会提供更接近实际情况的模拟面试体验。尝试寻找不同背景的人来进行模拟面试这样可以帮助你适应各种不同的面试风格。 利用在线资源 如果找不到合适的人选可以考虑参加线上模拟面试服务。一些平台提供了一些模拟面试服务或者互相模拟面试的服务。 通过备选职位练习 如果真的很难找到合适的模拟面试对象通过一些不是特别感兴趣的公司和职位的面试来练习也是一个办法。 自我模拟练习 在家里对着镜子练习注意自己的肢体语言和表情管理。录制自己的回答事后观看并反思哪些地方可以改进。准备一些常见的面试问题并尝试给出清晰、简洁的答案。 反馈和改进 在每次模拟面试结束后都要收集来自模拟面试官的反馈并据此调整自己的策略。重点注意那些你觉得表现不佳的问题并且准备更加充分的答案。
9. 正式面试
磨好了枪就该上阵了经历了层层筛选恭喜你终于进入了面试的环节。
面试流程
一般大厂的面试分为四轮三轮技术面一轮HR面。
一面技术面一般是专家工程师或者高级工程师跟进侧重考察候选人的专业技能和基础技术知识。二面主管面一般是由直属负责人跟进侧重考察候选人在具体项目上的实践经验。三面更高领导面一般是更高一级负责人跟进侧重考察候选人的综合素质。HR面HRBP跟进侧重评估候选人是否适合企业文化以及薪资福利方面的讨论。
面试建议
“夫战常决于未战之时”充分准备之后到了正式面试就是要保证临阵发挥
精力管理面试不要安排地太密集确保自己有足够的休息时间和精力来应对面试的每一个环节良好的身体状态是面试发挥好的关键。时间管理如果你当前仍在职需要特别注意面试的时间安排以免与工作时间冲突。面试不要迟到要变更时间一定要提前一天以上通知。了解公司和职位在面试之前花时间了解目标公司的文化、产品、服务在面试过程中要体现出你对公司的了解。调整心态面试时保持冷静、自信的态度。不要过分紧张保持平常心把面试视为一个双向选择的机会面得好或坏心态都不要波动面好了不一定能过面得不好也不是就没有机会。
10. 保持积极心态
面试过程可能很难一帆风顺以我自己为例去年光是美团就经历了四战四战美团终拿Offer
我是个心态不太稳定的人所以知道保持积极心态是一件多么重要的事情不止是面试还有工作和生活。我在年初还写了这么一篇文章年后面试最好不要有这几种心态
有一句话是这么说的“在果上随缘在因上努力”在面试上我们要做的就是好好准备至于结果很多时候我们也难以左右。
面试只是打开你下一份工作的大门不是决定你人生命运的大门。换个地方打工而已放轻松
最后祝各位阿Sir在面试里一番风顺 参考
《软技能代码之外的生存指南》《软技能软件开发者职业生涯指南》https://juejin.cn/post/7289239226024804409?searchId202409081830424969ED8DE9BEA6C1D6A2