├── src ├── experience │ ├── system.md │ ├── internet │ │ ├── frontend │ │ │ ├── h5.md │ │ │ ├── css.md │ │ │ ├── react.md │ │ │ ├── vue.md │ │ │ ├── js.md │ │ │ └── ts.md │ │ ├── index.md │ │ ├── backend │ │ │ ├── index.md │ │ │ ├── java.md │ │ │ └── cpp.md │ │ ├── product │ │ │ └── index.md │ │ └── ai │ │ │ └── index.md │ ├── images │ │ ├── cv.png │ │ └── road-show.png │ ├── others │ │ ├── pre.md │ │ ├── group.md │ │ ├── struct.md │ │ └── manager.md │ ├── index.md │ ├── system │ │ ├── civil-servant.md │ │ ├── state-grid.md │ │ └── three-oil.md │ └── finance │ │ ├── quantify.md │ │ ├── data-center.md │ │ └── management-trainee.md ├── guidance │ ├── news.md │ ├── iot.md │ ├── other.md │ ├── state.md │ ├── system.md │ ├── pre.md │ ├── quantify.md │ ├── finance.md │ └── internet.md ├── .DS_Store ├── in-school │ ├── images │ │ └── competition.png │ ├── pre.md │ ├── gpa.md │ ├── synthesized.md │ ├── practice.md │ ├── conference.md │ ├── earn-message.md │ └── competition.md ├── interviews │ ├── pre.md │ ├── 23-s-system.md │ ├── 24-c-java.md │ ├── 20-w-research.md │ ├── 10-l-hospital.md │ ├── 24-rz-finance-manager.md │ ├── 23-c-state.md │ ├── 09-j-entrepreneur.md │ ├── 23-c-hw.md │ ├── 23-z-research.md │ ├── 22-c-ai.md │ ├── 97-b-investment.md │ ├── 23-x-horizon.md │ ├── 20-nvidia.md │ ├── 23-x-ms.md │ ├── 24-jp-entrepreneur.md │ ├── 23-x-music.md │ ├── 08-google.md │ ├── 22-s-sales.md │ ├── 23-p-product.md │ ├── 24-f-ai.md │ └── 03-w-teacher.md └── index.md ├── .gitignore ├── .vitepress ├── cache │ └── deps │ │ ├── package.json │ │ ├── package-lock.json │ │ ├── vue.js.map │ │ ├── _metadata.json │ │ ├── @giscus_vue.js │ │ ├── @giscus_vue.js.map │ │ ├── vue.js │ │ └── giscus-Ci9LqPcC-CCB7DQEP.js ├── .DS_Store ├── theme │ ├── index.ts │ └── components │ │ └── GiscusComment.vue ├── nav.ts ├── config.mts └── sidebar.ts ├── package.json ├── script └── deploy.mjs ├── LICENSE ├── README-zh.md ├── .github └── workflows │ └── deploy.yml └── README.md /src/experience/system.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/experience/internet/frontend/h5.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | id_rsa -------------------------------------------------------------------------------- /src/experience/internet/frontend/css.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/experience/internet/frontend/react.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/experience/internet/frontend/vue.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/experience/internet/index.md: -------------------------------------------------------------------------------- 1 | ## 互联网 2 | -------------------------------------------------------------------------------- /src/guidance/news.md: -------------------------------------------------------------------------------- 1 | # 媒体业 2 | 3 | 建设中... -------------------------------------------------------------------------------- /src/guidance/iot.md: -------------------------------------------------------------------------------- 1 | # 智能制造业 2 | 3 | 建设中... 4 | -------------------------------------------------------------------------------- /src/guidance/other.md: -------------------------------------------------------------------------------- 1 | # 其他 2 | 3 | 建设中... 4 | -------------------------------------------------------------------------------- /src/experience/internet/backend/index.md: -------------------------------------------------------------------------------- 1 | # 后端开发 2 | -------------------------------------------------------------------------------- /src/guidance/state.md: -------------------------------------------------------------------------------- 1 | # 选调公务员和事业单位 2 | 3 | 建设中... 4 | -------------------------------------------------------------------------------- /src/guidance/system.md: -------------------------------------------------------------------------------- 1 | # 选调&公务员&事业单位 2 | 3 | 建设中... 4 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /src/experience/internet/frontend/js.md: -------------------------------------------------------------------------------- 1 | # JavaScript 2 | 3 | ## 建设中 4 | -------------------------------------------------------------------------------- /src/experience/internet/frontend/ts.md: -------------------------------------------------------------------------------- 1 | # TypeScript 2 | 3 | 建设中... 4 | -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karlsbeard/fduer-manual/HEAD/src/.DS_Store -------------------------------------------------------------------------------- /.vitepress/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karlsbeard/fduer-manual/HEAD/.vitepress/.DS_Store -------------------------------------------------------------------------------- /src/experience/images/cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karlsbeard/fduer-manual/HEAD/src/experience/images/cv.png -------------------------------------------------------------------------------- /src/experience/images/road-show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karlsbeard/fduer-manual/HEAD/src/experience/images/road-show.png -------------------------------------------------------------------------------- /src/in-school/images/competition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karlsbeard/fduer-manual/HEAD/src/in-school/images/competition.png -------------------------------------------------------------------------------- /.vitepress/cache/deps/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "deps", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": {} 6 | } 7 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/vue.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /src/in-school/pre.md: -------------------------------------------------------------------------------- 1 | # 写在前面 2 | 3 | 这一章节主要介绍复旦大学在校期间可以利用的就业资源,以及可以为找工作做哪些在校准备。内容由不同学长姐的单篇经验分享文章构成。 4 | 5 | 如果您是想要分享相关经验的校友,并有意愿为本章节撰写经验文章,欢迎您通过邮箱:<21210240339@m.fudan.edu.cn>联系我,或在公众号“破蛋计划Beta”下面留言,非常感谢您的支持! 6 | -------------------------------------------------------------------------------- /src/experience/others/pre.md: -------------------------------------------------------------------------------- 1 | 2 | # 关于非技术类面试 3 | 4 | 我们在校招期间会面临的面试大体可以分为两大类:非技术类和技术类。在泛体制类单位的面试中,不会有大厂那样很刨根问底的技术面试,通常问问简历项目和一些基础问题就结束,甚至有的都干脆不问,更重要的是一些非技术类面试。我定义的非技术类的面试包括泛体制内的结构化面试、无领导小组讨论/辩论赛、普通群面(多对一)、单面(如企业中的HR面、主管面等)。技术类的面试则涵盖算法题、项目考察、技术基础知识(八股文)、业务场景题等。 5 | -------------------------------------------------------------------------------- /src/experience/index.md: -------------------------------------------------------------------------------- 1 | # 校招经验 2 | 3 | 这一章节旨在分享编者们的校招经验。内容将按行业分类,由不同领域的校招经验分享文章构成,希望为读者提供一个较全面的求职经验参考。 4 | 5 | 如果您有计算机类专业相关的校招经验愿意分享,并愿意为本章节撰写经验文章,请通过邮箱 **<21210240339@m.fudan.edu.cn>** 或公众号“破蛋计划Beta”与我们联系。此外,如果您在社交媒体上发布过相关内容,并愿意将其转载到我们的手册中,我们也非常欢迎您联系。我们会在筛选后整理到手册上,同时会注明原作者及原文链接。非常感谢您的支持! 6 | -------------------------------------------------------------------------------- /.vitepress/theme/index.ts: -------------------------------------------------------------------------------- 1 | import { h } from 'vue'; 2 | import Theme from 'vitepress/theme'; 3 | import GiscusComment from './components/GiscusComment.vue'; 4 | 5 | export default { 6 | ...Theme, 7 | Layout() { 8 | return h(Theme.Layout, null, { 9 | 'doc-after': () => h(GiscusComment), 10 | }); 11 | }, 12 | }; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "dev": "vitepress dev", 4 | "build": "vitepress build", 5 | "preview": "vitepress preview", 6 | "dep": "pnpm build && zx ./script/deploy.mjs" 7 | }, 8 | "devDependencies": { 9 | "vitepress": "^1.5.0", 10 | "zx": "^8.3.0" 11 | }, 12 | "dependencies": { 13 | "@giscus/vue": "^3.1.1", 14 | "@vue/theme": "^2.3.0", 15 | "vue": "^3.5.13" 16 | } 17 | } -------------------------------------------------------------------------------- /src/guidance/pre.md: -------------------------------------------------------------------------------- 1 | # 择业指南 2 | 3 | 回顾自己的求职经历,我发现有许多冷门的优质单位以及一些看似与计算机学生无关的行业岗位,实际上都存在计算机专业进入的路径。然而,由于当时信息的局限和对专业的固有认知,这些机会都被错过了。因此,本章旨在为读者介绍计算机专业可以进入的各个行业和岗位,并分享前辈们对这些行业和岗位的见解与看法。内容将按行业划分,每个单元由个人观点的单篇构成,旨在帮助毕业生发掘更广阔的职业路径,并为选岗提供参考。这是我最希望完成的一部分,但目前内容还没怎么填充,现在仅有两篇完成。 4 | 5 | 如果您对某个行业有丰富的经验和独到的见解,并愿意成为编者在册子上撰写文章,欢迎通过邮箱 <21210240339@m.fudan.edu.cn> 或微信公众号“破蛋手册Beta”与我们联系。如果您在社交媒体上发布过相关的文章,并愿意将其转载到我们的册子中,也非常欢迎联系。我们会在筛选后收录,并注明原作者和原文链接。非常感谢您的支持! 6 | -------------------------------------------------------------------------------- /src/interviews/pre.md: -------------------------------------------------------------------------------- 1 | # 访谈录 2 | 3 | 本章节通过采访问答的形式整理了前辈们的工作经验,内容涵盖他们的从业感受、对行业的见解,以及对当前正在求职的同学们的建议。目前,我们共整理了19篇访谈录,其中大部分是通过视频采访记录整理成文,少部分是由受访者直接填写访谈表。 4 | 5 | 目前,绝大多数受访者都是**复旦大学计算机专业毕业的校友**,每篇成稿都根据受访者的要求进行了一些**匿名化的处理**,且最终**都经过了受访者的审阅与确认**。希望能为读者在择业和选岗方面提供一些感性的经验参考。 6 | 7 | 我们想联系到更多元的受访者,特别希望能采访到更多各行各业的**资深从业者**!以及**相关行业的面试官**,或是有**工作经验的计算机专业校友**。 8 | 如果这篇册子有幸与您相遇,并且您愿意接受采访的话,欢迎通过邮箱 <21210240339@m.fudan.edu.cn> 或微信公众号“破蛋手册Beta”与我们联系。非常感谢您的支持! 9 | -------------------------------------------------------------------------------- /src/in-school/gpa.md: -------------------------------------------------------------------------------- 1 | # 本科课程成绩及相关评优 2 | 3 | 课程成绩对于本科生比较重要,专业基础课课程成绩基本跟你在这门课上投入到有效学习时间正比,越是专注越是努力就越能取得好成绩,论文类的课程则和老师胃口挂钩,你写的好老师不一定这样觉得,但你越是合乎老师胃口越容易取得好成绩,而对于老师胃口的判断主要来源于上课认真听讲,仔细琢磨。 4 | 5 | 好成绩对于本科生影响也很多,后面几乎所有评奖评优都和绩点挂钩,很大程度也影响本科的就学体验和个人自尊。同时绩点基本决定你能否保研。但也不必盲目保研,尽可能多跟已经保研的学长学姐多交流。然后在保研时选择也可以大胆一点可以多试试更好的学校,另外提醒,尝试更好学校的前提一方面是绩点够高,一方面是及早在大一大二就参与科研有一定成果。 6 | 7 | 关于荣誉评优,每年有五月评优和十月评优,大四比较重要的是学生标兵、学生干部标兵、书院之星、毕业生之星、复旦/上海市优秀毕业生。这些评选跟一个综合能力有关,但参与这些评选绩点是默认前提,尤其是毕业生之星基本都是每个专业的第一名。 8 | -------------------------------------------------------------------------------- /src/interviews/23-s-system.md: -------------------------------------------------------------------------------- 1 | # 23届硕-苏锐-某省直事业单位软件开发 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 2022年12月签了某运营商省公司,23年1月毕业,23年3月入职。23年3月入职该运营商后发现分到下属子公司,工作卷,工资与HR说的不符,而且没分到省本部机关,遂于23年6月离职。23年9月入职某省直事业单位软件开发岗,一直工作到现在。 6 | 7 | ## 目前薪资待遇和工作强度是怎么样的呢? 8 | 9 | 9月进单位,还在试用期(一年),月到手6k左右,上班的时候事情多,但基本可以准点下班,偶尔开会到六七点。 10 | 11 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 12 | 13 | 主要图稳定,以及老家省会城市房价低,生活成本低,有归属感。 14 | 15 | ## 这个工作/行业有哪些最令人满意的地方? 16 | 17 | 稳定,不卷。 18 | 19 | ## 这个工作/行业有哪些最想吐槽的地方? 20 | 21 | 钱少,只够养活自己。 22 | 23 | ## 这份工作/行业带给您最深感受/影响是什么? 24 | 25 | 每种选择都有利弊。进单位后虽然安逸,但技术荒废了,基本不碰代码。 26 | 27 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 28 | 29 | 走技术职称路线,初级,中级,副高,高级。 30 | -------------------------------------------------------------------------------- /.vitepress/nav.ts: -------------------------------------------------------------------------------- 1 | import type { Config as ThemeConfig } from '@vue/theme' 2 | 3 | export const nav: ThemeConfig['nav'] = [ 4 | { 5 | text: "在校准备", link: "/in-school/pre", 6 | }, 7 | { 8 | text: "校招经验", 9 | items: [ 10 | { 11 | text: "互联网", link: "/experience/internet/backend/java", 12 | }, 13 | { 14 | text: "泛体制", link: "/experience/system/three-oil", 15 | }, 16 | { 17 | text: "银行", link: "/experience/finance/management-trainee", 18 | }, 19 | { 20 | text: "杂谈", link: "/experience/others/pre", 21 | }, 22 | ] 23 | 24 | }, 25 | { text: "择业指南", link: "/guidance/pre" }, 26 | { text: "校友访谈", link: "/interviews/pre" }, 27 | ]; -------------------------------------------------------------------------------- /script/deploy.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zx 2 | 3 | import { $, cd, echo } from "zx"; 4 | 5 | const secret_key = './secret/id_rsa' 6 | 7 | const { stdout } = await $`test -f ${secret_key} && echo true || echo false` 8 | if (stdout.trim() === 'false') { 9 | echo('Secret key not found') 10 | $`exit` 11 | } 12 | 13 | function exec_remote_cmd(cmd) { 14 | return $`ssh -i ${secret_key} ubuntu@150.158.12.202 '${cmd}'` 15 | } 16 | 17 | function upload_file(file_path){ 18 | return $`scp -i ${secret_key} ${file_path} ubuntu@150.158.12.202:/home/ubuntu/jobs_ci` 19 | } 20 | 21 | echo('Deploying...') 22 | cd('.vitepress/dist') 23 | await $`zip -r dist.zip .` 24 | cd('../..') 25 | await upload_file('./.vitepress/dist/dist.zip') 26 | await $`rm ./.vitepress/dist/dist.zip` 27 | await exec_remote_cmd(`sudo bash /home/ubuntu/jobs_ci/ci.sh`) 28 | echo('Deployed!') 29 | -------------------------------------------------------------------------------- /.vitepress/theme/components/GiscusComment.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | -------------------------------------------------------------------------------- /src/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # https://vitepress.dev/reference/default-theme-home-page 3 | layout: home 4 | 5 | hero: 6 | name: "复旦大学生就业手册" 7 | text: "为复旦学子提供全面的指南和经验分享" 8 | tagline: "从在校准备到行业大牛,助你一路成长" 9 | actions: 10 | - theme: brand 11 | text: 开始阅读 12 | link: /in-school/pre 13 | 14 | features: 15 | - title: 在校准备 16 | details: 提供在校期间的学习、实习、科研、竞赛等方面的指导,帮助你全面发展。 17 | link: /in-school/pre 18 | - title: 校招经验 19 | details: 分享互联网、国央企、银行等行业的校招经验,助你顺利求职。 20 | link: /experience/internet/backend/java 21 | - title: 择业指南 22 | details: 提供各行业的择业建议,帮助你找到最适合自己的职业方向。 23 | link: /guidance/pre 24 | - title: 校友访谈 25 | details: 通过校友访谈,了解不同职业的发展路径和经验分享。 26 | link: /interviews/pre 27 | 28 | --- 29 | 30 |
31 |

主编:王世聪

32 |

编委成员:曲玥,保昱冰,郑岚一,张昊,郑天伦,彭佳汉,黄丙晨,李争彦,徐瑞泽,于康,袁一帆,陈嵘,蒋雨宸,栗子

33 |
34 | -------------------------------------------------------------------------------- /src/experience/system/civil-servant.md: -------------------------------------------------------------------------------- 1 | # 公务员考试 2 | 3 | ## 报考 4 | 5 | ## 笔试 6 | 7 | ### **行测部分:** 8 | 9 | 常识判断:注重日常积累,广泛涉猎政治、经济、法律、文化、科技等方面的知识。建议每天阅读官方媒体发布的新闻报道、重要文件和政策解读,增加知识面。这个模块短时间提升有些难度,需要日积月累。 10 | 言语理解与表达:通过大量练习题提高阅读理解能力和语言表达能力。特别注意积累词汇和成语,掌握常见语法结构和修辞手法。 11 | 数量关系:掌握基本的数学运算公式和解题方法,如等差数列、等比数列、工程问题、行程问题等。通过大量练习真题,总结解题技巧,提高解题速度。 12 | 判断推理:熟悉各种推理规则和逻辑关系,如图形推理、定义判断、类比推理、逻辑判断等。判断推理可以通过大量训练进行提高,可以多训练学习相应模块。 13 | 资料分析:学习统计术语和基本的计算方法,提高对数据的分析和处理能力。建议每天进行限时训练,提高计算速度和准确性。资料分析是可以通过训练有效提分的模块。建议多训练学习,学一些速算技巧,做到可以迅速解答。 14 | 15 | ### **申论复习:** 16 | 17 | 申论最重要的是多进行训练,多进行复盘。练习一下书写,字迹工整可以给人更好的阅卷体验,正楷字体也需要多提升书写速度,申论的时间把握也非常重要。 18 | 阅读理解:多读申论材料,提高阅读速度和理解能力。学会抓住材料的关键信息和主旨,为后续的答题做好准备。 19 | 写作训练:多写申论文章,提高文字表达能力和逻辑思维能力。注意文章的结构、层次和语言表达,要符合申论的写作要求。建议每周至少完成一篇申论写作练习。 20 | 关注时事热点:关注社会热点问题、国家政策和法律法规的变化,了解相关的背景知识和政策导向。将这些内容融入到申论写作中,使文章更具时代性和针对性。 21 | 22 | ### **答题技巧** 23 | 24 | 合理安排时间:根据考试时间和题型难度,合理分配答题时间。对于难度较大或分值较低的题目,可以适当缩短答题时间,优先保证能够拿到的分数。 25 | 学会取舍:如果遇到不会的题目或难以在短时间内解决的问题,不要过于纠结,要学会取舍,先跳过该题目,继续做后面的题目,以免浪费时间。多做几次模拟套题,提前把握时间节点,在考试中能更好的感觉自己的写题速度。 26 | 27 | ## 面试 28 | -------------------------------------------------------------------------------- /src/interviews/24-c-java.md: -------------------------------------------------------------------------------- 1 | # 24届硕-陈学长-java后端工程师 2 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 3 | 我面试的都是计算机后端岗位,公司是国企和私企为主,主要聊这个方面。 4 | 主要的遗憾: 5 | 1.没有参与中长期(3-6月)的实习,掌握实际的工作流程。(迭代,发版,线上问题排查) 6 | 2.个人没有实际对客的项目经验,导致面试很难走过技术终面。 7 | ## 您在校招时的收获有哪些呢? 8 | 1.中大厂的面试要求不太一样,不同公司的要求也不同。 9 | 2.优秀的实战项目是加分项,但是没有很好的项目不代表找不到工作。 10 | 3.可以适当的润色经历,但是不能和真实工作场景的解决方案不同。 11 | 4.微服务不是那么重要,考察重点还是在你简历上描述的项目和个人学习的知识点上。你简历上提到的知识点和个人兴趣都可能被问到,要做好准备。 12 | 5.个人认为java后端考察的重点是:线上debug能力,数据库调优,消息队列底层原理,HTTP与TCP,语言的底层调优等(golang与java的复习范畴不太一样) 13 | 6.面试是长期的拉锯战,很多身边的同学7-10月都没有offer,11月才开始有收获,放宽心。当然还是需要尽早投递,过了时间就没有补录了。 14 | 7.面试时,自信的心态和流畅的沟通也很重要。对于校招生,更关注沟通能力和思考能力。 15 | 8.实习转正需谨慎,建议实习转正的时候,不要放弃面试的准备。 16 | 9.国企更看重你的项目经验,沟通能力、个人兴趣等综合素质。 17 | 10.找好搭子,及时交流信息,也有助于保持良好的面试节奏。 18 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 19 | 国企招聘渠道: 20 | 推荐国聘(app,微博,b站),国资央企招聘平台 21 | https://xiaoyuan.iguopin.com/ 22 | https://cujiuye.iguopin.com/job 23 | 还有一些在牛客付费卖表格的,可以用,但是表格的信息一般会晚5-10天,凑合能用。 24 | ## 可以推荐一些对找工作有帮助的公众号和up主吗? 25 | 1.万诺coding(看笔试的答案) 26 | 2.小林coding,javaGuide,代码随想录等公众号及知识星球(项目可以用,但很难加分,太通用了) 27 | 3.极海Channel,鱼皮,校招vip等b站up 28 | -------------------------------------------------------------------------------- /src/experience/others/group.md: -------------------------------------------------------------------------------- 1 | # 无领导小组讨论/辩论赛 2 | 3 | 无领导小组讨论或辩论赛形式的面试经常出现在国企以及部分省份的选调考试中,一些大厂的非技术岗位也会采用这种形式,有些甚至将两者结合,讨论过程中穿插辩论环节,最后还会要求进行总结。这类面试形式其实我们在校园中已有过一定的接触和体验。面对这样的求职面试,有以下几点经验可以参考: 4 | 5 | ## **1.切记克制情绪** 6 | 7 | 这种面试不是为了吵赢其他的面试者,而是要把好的一面展示给旁听者,在和其他面试者们一起讨论。辩论的过程中肯定会有不同意见的碰撞,保持耐心倾听和礼貌表达,注意千万不要带着情绪,表现得过于强势,你一上头,旁观者就很下头,结果就是被挂。 8 | 9 | ## **2.注意时间限制** 10 | 11 | 很多学长姐反馈的经验中都提到,如果自己的发言环节有时间限制,一定不要超时,尤其是在一些选调面试中。如果时间到了,就算没说完也要停下来,千万千万不要超时。 12 | 13 | ## **3.争取有效输出** 14 | 15 | 有效输出是指能够给面试官留下深刻好印象的表现。在无领导小组讨论中,虽然会有领导者(leader)、计时员(timekeeper)等角色,但校招面试中,面试官通常不会特别在意这些角色标签。一场面试下来,讨论的质量可能并不高。在这种情况下,有两个动作会特别出彩: 16 | 17 | 1)总结:这是最有用的动作,总结也包括两部分,一个是面试的最后会要求选出一个人做总结汇报,这是一个备受关注的环节。如果能够争取到做总结的机会,并做好总结,会非常加分。即使无法担任最后的总结人,也要主动推举一个合适的人选,并给出充分的理由,避免在这个环节变成小透明。 18 | 另一个重要的部分是进行阶段性总结。当讨论变得混乱、大家提出许多不同角度的阐述时时,能够及时对内容进行概括和归纳,并向其他人确认,是非常有价值的。这种阶段性总结不仅可以使讨论更加清晰明了,还能引导大家进入下一个讨论环节。当面试官对讨论内容感到困惑时,他们往往会期待有人能够清晰地总结当前的讨论进展。这样的总结会让你很自然的成为推动讨论进程的人,并有效地掌控讨论的节奏。 19 | 20 | 2)观点靠近业务:提出与应聘单位和岗位的业务内容相关的观点,能给面试官留下深刻印象。在面试前,多准备一些关于应聘单位和岗位的信息。在表达观点时,尽量结合这些要素,让人感受到你对这个单位或者这个岗位的充分了解和重视,会有意想不到的收获哦。 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025, EggCampus 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/experience/finance/quantify.md: -------------------------------------------------------------------------------- 1 | # 量化金融 2 | 3 | 同学们对量化金融行业的普遍印象是门槛高、难度大,从而将量化移出了目标。其实量化金融对有志于精进于某一方面的研究,并乐见于产物在金融市场上发挥作用的同学,那么量化是一个非常理想的职业。本部分将为同学们介绍如何作为校招生,开启在量化金融领域的职业生涯。 4 | 5 | ## 投递 6 | 7 | 量化金融行业招聘人才方式非常多元: 8 | 9 | 1. 通过猎头与猎头公司猎头推荐制度对于除量化行业外的校招生招聘是比较稀少的,普遍的猎头是为传统领域的公司物色资深人才。由于量化公司对顶尖人才的需求,猎头会通过领英、脉脉等渠道联络在研究、工程上初露头角的同学。之后将同学推荐至匹配的量化公司。 10 | 2. 通过量化公司举办的竞赛类似于一些互联网公司举办的开发或算法挑战赛,一些量化公司会将开发研究等过程中遇到的经典问题、有挑战性的问题抽象,举办竞赛吸引同学参与。在竞赛中获取好的名次,一般不单单能够获得丰厚的奖金和奖品,更能够获得直通面试的机会。 11 | 3. 通过量化公司举办的实习营有部分量化公司会在暑寒假举办夏冬令营的方式吸引校招生投报。其投报流程类似于日常实习,同时具有更多的入选名额,也因有更为精心的设计,实习体验会优于日常实习。 12 | 4. 自主投递根据公司公开的联系方式投递简历,公司 HR 会在简历筛选后进行联络开启后面的笔试面试流程。 13 | 14 | ## 实习 15 | 16 | 根据投递职位的不同,实习通常会由专业知识学习、相关平台使用熟悉,一些简单的上手项目,以及最终的一项较大型的开发或算法项目组成。 17 | 18 | ## 笔试与面试 19 | 20 | 研究员与开发的笔试内容一般是区分开来的。研究员的笔试一般包含概率统计、连续过程、线性代数、非凸优化、神经网络等方面,具体与岗位需求相关。本质上需要应试者有数学各个分支、计算机科学、人工智能有较高的理解和应用能力,并且能够表现出基本的代码能力。开发的笔试与互联网中对应岗位的笔试需求更相类似,但要求的知识水平会更上一层楼,甚至有一些与最新的标准与技术相关的问题。 21 | 顺利通过面试后,按照不同公司的设置,一般有平均在3轮的面试,其中第一面可能会通过网络面试或电话面试等线上方式。问题包含的类型与上面笔试部分类似,在面试过程中更注重候选人的思考过程与学习能力,在此过程中要注重与面试官的交互。面试的最后一部分会包含一道 medium 或 hard 级别的算法题需要写出伪代码并分享思路。 22 | 最后一轮或两轮面试会在线下进行,面试官可能是未来的领导与合伙人,在这个阶段面试考量的不单单是已经在前面验证过的专业技术水平,也会包含对人才相性、对技术和行业的观点、对未来的期望等更加开放的话题。 23 | -------------------------------------------------------------------------------- /src/experience/others/struct.md: -------------------------------------------------------------------------------- 1 | # 结构化面试 2 | 3 | 结构化面试通常出现在公务员选调及一些国企事业单位的面试中。这类面试通常给出一个开放性的问题,提供一定的思考时间,让应试者展开回答。题型通常包括组织规划类、观点明晰类、人际交往类等。 4 | 5 | 针对结构化面试的应试策略可以分为两种: 6 | 7 | 一种我称之为**素材梳理式**,适合绝大多数没有接触过行政话语的同学,因为按照往年各机构整理出的参考答案,可以发现,其实每一类题型都可以整理出对应的模板,里面嵌入的内容也有共性,比如组织规划类,经常出现事前要充分调研,事后要分析反馈,事中要维持秩序,做好应急预案等,那这些一个个通用的举措,就是我们要积累(背下来)的素材,再根据具体的题目情景进行细化的表述,就形成了一个各个环节紧密耦合,非常细致且全面的回答。这种方式需要通过大量的针对例题的实战练习,逐渐打磨出一套适合自己的答题模板,并积累内容素材和套话。练的特别熟悉之后,在正式面试时,通过快速反应、流畅表达和全面的内容输出给面试官留下深刻印象。这种方式的重点是练习时要掐时间脱稿,尽可能模拟面试现场情景,以克服紧张情绪,改掉不良口癖和动作,找到适合自己的表达方式。这样准备面试的同学,可以关注复旦大学的基层就业协会,它们每年都会在秋招期组建各个省的复旦官方选调群,复试期间里面会有复旦的同学们一起约线下对练,可以找一些同省考试的同学一起面对面练习,这样能听到对方给你的反馈意见,相互纠错。 8 | 9 | 另外一种我称之为**观点爆破式**,适合平时关注时政议题、拥有大量观点积累并具有一定思辨和表达能力的同学。这种方式需要我们突出重点,输出一个漂亮的观点,展示我们思考的深度。 10 | 试想一下,在面你之前面试官可能都听了一天的模板,那些相同的套话和素材可能都听麻了,而这个时候你出场,从一个新颖的角度,细致阐述了一个有思考的论点,就会让面试官眼前一亮。 11 | 例如,回答组织规划类题型时,可以从活动的关键环节入手,指出最需要关注的地方(比如说虽然组织这个活动需要xxx,xxx等诸多环节,但是在这个活动里最关键/最核心问题/最需要把握的环节其实是要做好紧急预案),然后分析活动特点(如户外活动容易中暑、人员密集容易踩踏、线上直播易引发舆情等),并结合实例进行说明(比如曾经就有类似的活动因为没有注重这类隐患而出现了严重的问题),接下来再介绍举措并解释理由,最后几句话带过其他不重要的环节。 12 | 这类策略在准备上要求同学们关注报考省份近一年来的相关议题,形成自己的观点,并且记录下来。之后有新想法,或者在网上遇到了相关的案例,就不断更新之前的观点和案例库,以备面试时灵活应对。 13 | 14 | 总的来说,梳理式类似广度优先搜索(BFS),强调熟练的、完整的且结构化的素材罗列,可以短时间内速成;爆破式则类似深度优先搜索(DFS),着重深入阐述某一环节或观点,需要一些基础能力和日常积累。根据自身特点选择合适的应试策略,才能在面试中脱颖而出。 15 | -------------------------------------------------------------------------------- /.vitepress/config.mts: -------------------------------------------------------------------------------- 1 | import { defineConfigWithTheme } from "vitepress"; 2 | import baseConfig from '@vue/theme/config' 3 | import { nav } from "./nav"; 4 | import { sidebar } from "./sidebar"; 5 | // https://vitepress.dev/reference/site-config 6 | export default defineConfigWithTheme({ 7 | extends: baseConfig, 8 | title: "一个很有知识的网站", 9 | srcDir: "./src", 10 | description: "A site of manual for fduers", 11 | themeConfig: { 12 | // https://vitepress.dev/reference/default-theme-config 13 | nav, 14 | sidebar, 15 | 16 | socialLinks: [ 17 | { icon: "github", link: "https://github.com/karlsbeard/fduer-manual" }, 18 | ], 19 | 20 | footer: { 21 | // @ts-ignore 22 | message: ` 23 | 本站总访问量Loading次 总访客数Loading人 24 |
25 | MIT License © 2025 EggCampus 26 | `, 27 | copyright: '沪ICP备2022029133号-1', 28 | } 29 | }, 30 | head: [ 31 | ['script', { defer: '', async: '', src: 'https://cn.vercount.one/js' }] 32 | ], 33 | vite: { 34 | server: { 35 | port: 3000, 36 | } 37 | } 38 | }); 39 | -------------------------------------------------------------------------------- /src/guidance/quantify.md: -------------------------------------------------------------------------------- 1 | # 初窥量化金融 2 | 3 | 2025年初,随着 DeepSeek 与其创始人在量化金融行业成功创业的故事被放入公众视野,越来越多的人了解并关注到量化金融行业。 4 | 量化金融,又称量化投资、量化私募,在计算机同学眼中是无法触及的彼岸花——收入理想但难以入行,存在金融行业知识的阻碍。然而计算机专业学生往往是量化公司开发和研究校招生的最大来源之一,计算机学生的知识栈、技能栈也与量化金融行业匹配。 5 | 由于行业敏感性,以下行文中将不包含某个公司的具体名称或对某公司生产经营内容的具体陈述,而以行业普遍情况展开讨论。 6 | 7 | ## 量化怎么赚钱 8 | 9 | 2024年年中,正值中国股票市场处于低迷,监管在此时对高频交易推出一系列的监管意见。公众对量化的好奇与疑问也越发强烈。量化是怎么赚钱的,赚的是谁的钱?这一问题成为包括受过优良教育的同学内的普罗大众的集体疑问。 10 | 彼时,行业领头企业之一发布了《关于量化投资若干问题的解答》一文,答疑了许多大众的困惑,此亦为一篇科普量化金融的好文章。参考上文内容,概括量化的盈利方式包含: 11 | 12 | - 企业自身的价值和成长。量化在其投资标的需要建立基本至满仓的仓位,于是市场整体估值的变化将影响量化基金的盈利。 13 | - 股票价格的非理性波动。通过对平抑不合理交易行为的逆向交易,使市场价值回归合理状态,在此过程赚取价差。 14 | - 为市场提供更准确的定价。凭借更精准的模型、更快的计算,以及更加全面的消息来源,当标的价格随着外部环境变动与内部共识不统一产生波动时,量化在此时能够给出更精准的定价从而获得其中震荡释放的能量。 15 | 16 | ## 岗位种类 17 | 18 | 以下为量化金融公司中常见设立的职位,注意由于各个公司的体系结构区别较大,此处只讨论各个职位的常见职责。 19 | 20 | 1. 研究员 (Quant)量化研究员负责交易过程中的交易什么(因子),怎么交易(策略)等问题。因为这些工作需要统计学、经济学和人工智能等学科的基础知识与前沿研究,故职称被称为“研究”员。根据负责的方面可以分为因子挖掘、组合优化、交易模型与策略等方向。 21 | 2. 开发 (Tech)量化开发贯穿交易过程中的数据、平台支持。常见的方面有交易系统、行情数据构建、计算优化、高性能计算和存储等。 22 | 3. 交易员 (Trader)交易员负责交易策略的安全与正确地实施。在大部分公司中,交易员在交易时间监视预先设定的策略正常运行,在市场或策略出现意外情况时进行干预。 23 | 24 | ## 量化公司的梯队 25 | 26 | 根据资金来源,量化公司分为资管和自营两类,一般具有资管的量化公司具有自营部分,自营资金的情况不向外披露。按照资管规模,粗糙地可以分为大于百亿与小于百亿的量化公司。总规模在五百亿以上可属于第一梯队。 27 | 28 | ## 量化公司的标的 29 | 30 | - 股市:中国A股、亚太股票市场、欧美股票市场等。 31 | - 期货:大宗商品、贵金属等。 32 | - 外汇 33 | - 加密货币 34 | -------------------------------------------------------------------------------- /src/interviews/20-w-research.md: -------------------------------------------------------------------------------- 1 | # 20届硕-王先生-某头部券商程序化研究员 2 | ## 可以介绍下您毕业后的工作经历吗? 3 | 刚工作一年,一开始是协助高级研究员进行市场趋势分析、因子分析或初步的量化策略开发,后续进行独立开发量化交易策略,涵盖股票、期货、期权等多种金融工具。 4 | ## 目前薪资待遇和工作强度是怎么样的呢? 5 | 目前薪资水平高于同行,没有固定加班,加班算调休但是一般调休不了。强度的话随时待命吧 6 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 7 | 本科就是学习的金融,但是不希望直接从事金融行业,因为这个行业是随着整个金融市场的周期进行波动的,随着疫情,战乱等出现,世界局势不明朗,这个行业的前景也不明朗,所以考虑做技术和金融结合的方面。 8 | ## 这个工作/行业有哪些最令人满意的地方? 9 | 薪资比较满意,周围厉害的人比较多。 10 | ## 这个工作/行业有哪些最想吐槽的地方? 11 | 越来越对钱的多少敏感,周围奇葩的人际关系和事情还是挺多的,感受到世界的多元化和阶级的固化。 12 | ## 这份工作/行业带给您最深感受/影响是什么? 13 | 不要做投机的事情,不要炒股,不要炒股,不要炒股。 14 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 15 | 路径的话就是初级,中级,高级研究员,后续就是部门负责人和首席。障碍的话身体可能需要注意,之前同事心脏骤停差点没救回来,对我的影响挺大的,保重身体就是最大的职业财富。 16 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 17 | 趋势是AI和人工的结合吧。国内正式步入大通胀时代,CPI数据持续不明朗,伴随着经济下行,金融行业其实在风口浪尖上。从未来回顾历史,可能在去年Signature Bank倒闭之后,就代表着2023的金融危机已经开始。在美联储不断加息,国内内需不振的今日,这个行业的首要目的应该是活下去。 18 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 19 | 看看有没有金融背景,没有的话,金融知识,数据分析知识要多看看,其他的,先从Quantopian、Interactive Brokers 等基础的东西开始练手吧,最好能在实习的时候进来,毕竟在学校学习的和实际用到的差别挺大的 20 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 21 | 我是直接熟人推荐的 22 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 23 | 因为论文的硬性要求,所以找工作的时间比较紧,基本就是没熟人推荐的话多刷刷题,重视项目而非代码细节,注重实现流程而非实现结果。有熟人推荐的话就是早一点熟悉,融入团队,好的沟通能力比编程能力要重要很多。 24 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 25 | 一切事情在解决之后进行回顾都会发现它微不足道,保持好心态,同时沉下心来,做事不要心向大海,因为涛声有望而不可及。 26 | -------------------------------------------------------------------------------- /src/interviews/10-l-hospital.md: -------------------------------------------------------------------------------- 1 | # 10届硕-李同学-某三甲医院 2 | ## 可以介绍下您毕业后的工作经历吗? 3 | 最初工作在某三甲医院信息处,后因工作需要,岗位调整至人力资源处。 4 | ## 目前薪资待遇和工作强度是怎么样的呢? 5 | 目前薪资待遇为三甲医院行政人员工资,执行事业单位基本工资与绩效工资标准。 6 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 7 | 选择医院行业,是因为择业时,个人认为计算机专业在医院信息化过程中将发挥十分重要的作用,特别是医院信息系统项目应用方面。 8 | ## 这个工作/行业有哪些最令人满意的地方? 9 | 最令人满意的地方是行业的稳定性。 10 | ## 这个工作/行业有哪些最想吐槽的地方? 11 | 医院在计算机技术应用方面需求很大,但医院信息部门工作人员相对较少,无法完成自行开发,从而会选择软件服务商进行项目外包,计算机技术专业入职后,成为信息系统的问题解决协调者,专业发展受限。 12 | ## 这份工作/行业带给您最深感受/影响是什么? 13 | 选择专业,应当以专业选择专业,专注于做专业的事情。无论是什么时候,人力资源部门首先会问你是学什么专业的,然后才能匹配什么样的岗位,提供相应的专业类别工资水平。 14 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 15 | 就事业单位来讲,职业晋升的通常路径遵循专业技术系列,如助理工程师、工程师、高级工程师、正高级工程师。晋升过程中,会要求一定的年限和承担项目,并在项目完成过程中在国内外核心期刊上发表专业论文。软件工程专业可以通过软件工程与技术考试,取得助理工程师、工程师、高级工程师、正高级工程师等职称。 16 | 企业类,除团队的MANAGER、CTO等职务系列外,建议也参照事业单位,参评专业技术系列职称。 17 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 18 | 信息已经深入在每个行业的社会经济生活中,无论选择哪个行业或者公司,只要在这个公司能够坚持工作5-10年,都可以形成产品优势和技术优势,在竞争与学习中保持核心竞争力。 19 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 20 | 参加国家、上海市科委、经信委,各级科委、信息委举办的信息发展大会或论坛,根据所学专业及导师研究方向,了解各类行业需求,找到自身的努力兴趣点,在查阅行业发展与趋势文献报告后,与导师一起探讨深入研究与应用。 21 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 22 | 各高校招聘会、各就业网站、目标企业网站等。 23 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 24 | 按照所学专业,选择并坚持专业方向。 25 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 26 | 迷茫是因为对未来事物的无知,多听、多看、多参与,常思、常研究、常交流。将他人走过的路,变成自己前进的方向,别人披荆斩棘,咱也继承发展,坚持学习并输出,终会走向成功。 27 | -------------------------------------------------------------------------------- /README-zh.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | [English][readme-en-link]| **简体中文**
4 | 5 | [readme-en-link]: ./README.md 6 | 7 |
8 | 9 | ## 写在前面 10 | 11 | 距离2024届秋招已经一年了,去年这个时候,专硕的同学正值两年半学制的尾声,许多应届生不仅要准备毕业论文,还要在焦虑中忙碌地寻找工作。我自己的校招从那个时候开始,一直持续到第二年的四月。整个过程从最初的紧张不安,到中期的自我怀疑,再到最后选择工作时的迷茫,经历了很多情绪起伏。当一切尘埃落定时,真的有好多话想说。再加上自己身处学生生涯末期,离开复旦时,总想着能留下点什么。于是,在今年四月份,心血来潮,萌生了制作这本手册的想法。在大家的共同努力下,如今有了初步的内容。 12 | 13 | 距离这个目标越来越近,心里也有很多话要说。希望通过这本手册,能够帮助正在面临校招的学弟学妹们,带来一些心灵上的慰藉与支持。 14 | 15 | ## 手册结构 / Handbook Structure 16 | 17 | 目前,这本手册分为四个章节: 18 | 19 | - 第一章:复旦校内可利用的资源及校招准备工作; 20 | - 第二章:编者的秋春招经验分享; 21 | - 第三章:择业与选岗指南; 22 | - 第四章:对学长学姐们的采访。 23 | 24 | 目前,手册包含18篇经验分享和19篇访谈,内容主要集中在第二章和第四章。这一版之所以叫Beta版,是因为部分内容还有待填充,尤其是第三章择业指南,这部分涉及对不同行业的见解和分析。由于编者多为刚毕业的大学生,很难仅凭个人经验提供足够深度的观点,后续还需要通过更多采访信息来做这一章节的内容,敬请期待。 25 | 26 | 目前,发布Beta版,目的是让今年的学弟妹们能在秋招结束前看到已有的内容,希望能为他们提供更多的参考信息。同时,也希望通过手册的传播,能够接触到更多愿意分享经验的校友和前辈们。如果这本手册有幸与您相遇,且您愿意参与采访或协助编辑,请联系我的邮箱<21210240339@m.fudan.edu.cn>,或通过微信公众号“破蛋计划Beta”与我们联系。 27 | 28 | ## 结束语 29 | 30 | 最后希望这本手册不仅能在信息上为读者提供帮助,更希望能在心态上为秋招暂时不顺的学弟妹们带来些许鼓舞。其实工作了以后才发现,找工作这件事,无论事前做了多充分的准备,搜集了多全面的信息,最后的结果很大程度上还是看缘分。没有亲身经历过一段工作,在事前也很难判断它对于自己的影响和意义。所以,就算最后校招的结果,暂时不如人意,也没有什么大不了。在这个充满不确定性的时代,也很难说它不会成为一场塞翁失马。 31 | 32 | 就像在采访过程中,一位学长说:“人生是场马拉松”,从长远来看,春秋招不过是又一座横亘在人生路上的小山丘,而这一次我们面前有着不止一条正确的路。作为经历者,我们都曾体验过这段难熬的日子,面对过相似的困境和情绪。回望这段路程时,真的很想对那些正在努力摸索的学弟妹们说一句:“加油,别担心,尽管过程痛苦,但终会越过山丘!” 33 | 34 | 王世聪 2024.09.08 35 | -------------------------------------------------------------------------------- /src/in-school/synthesized.md: -------------------------------------------------------------------------------- 1 | 2 | # 本科生综合发展 3 | 4 | 信息是取得综合发展的前提,多关注校园内公众号,多认识不同专业同学,会有机会了解到更多综合发展的机会,比如一些含金量较高的活动比赛等等。多认识好的老师,参与他们组织的活动,他们会为你提供更多高质量机会。 5 | 6 | ## 入党 7 | 8 | 如果想要入党,大一提交入党申请书,经过积极分子考试和发展对象考试,大概需要四年时间。每个班级入党名额都很有限供不应求,相对来说会优先考虑团总支书、班长、团支书等岗位的同学,其次就是参与志愿服务较多的同学,另外也跟你在积极分子评选大会上的发言质量、你平时跟同学的关系有关。想要入党及早准备即可,同时考试前认真复习(如果挂科就需要下学期补考),其他没有太多需要注意的问题。 9 | 10 | ## 学生工作 11 | 12 | 学生工作的意义见仁见智。如果是要考虑选调工作等,学生干部会有加分。整体来说学校里面的学生工作可大致分为分为校学生会、校团委、院系分团委学生会、书院以及社团、团艺等,校级层面的学生工作可以认识不同专业同学,但是不同部门的氛围工作环境等差异极大,院系层面可以结实同学院不同专业同学,尤其是可以形成跨年级社交,高年级学长学姐可能是你下一门课程的助教,你也可以跟他们索取一些学习资料和经验。学生工作的招新在复旦校学生会、团团在复旦、腾飞书院、计苑菁英等工作号每年春秋季都有招新通告。 13 | 14 | 学生工作的晋升路径大概是部员-副部长-部长-主席,做到主席对于之后校园内各项评奖评优会有加分,同时对于自己的组织沟通能力会是很好的锻炼,如果对于自己的能力比较自信,有敢于拼搏的精神,可以尽可能勇敢尝试。最辛苦的是部长层级,操所有的心落实所有的工作。 15 | 16 | 整体而言如果是想要走学术道路不建议在学生工作方面花费过多心思,可以尽早去实验室看论文发论文,会为自己赢得更多发展机会。 17 | 18 | ## 志愿活动 19 | 20 | 复旦提供了非常多参与志愿服务的机会,包括很多线上线下支教、关爱社区老人、图书馆整理等等。想要参与志愿活动可以多关注一些相关社团的公众号,比如“拓客社”、“远征社”、“彩云支南”以及“复旦团委青志”等等。参与志愿活动可以培养一个人利他的情怀,同时认识很多同样热心关爱他人的人。对于参与评奖评优也有一定帮助。 21 | 22 | ## 社会实践 23 | 24 | 每年暑假、寒假、春季和秋季学期都有立项进行社会实践的机会,可以关注“复旦团委实践”公众号,社会实践立项很简单,签字可以找辅导员。社会实践主要要有想法,可以多借助gpt,同时多留心生活中的真实需求。功利地看,社会实践只要经过简单包装很容易评为十佳或者优秀。 25 | 26 | ## 人才培养计划 27 | 28 | 人才工程计划,保研可以加分但是要做四年辅导员,在大三的时候有人才工程预备队“青年复旦”可以进行报名;研支团计划,即外出支教一年,然后回来读研,同样保研可以加分,大三的时候有研支团预备队“笃行计划”可以报名,这两个计划都可以认识一些复旦青年才俊。此外还有思源计划,复旦会倾注非常多资源进行培养,有免费出国机会,但思源计划选拔极为苛刻,有多轮面试每年从4000多名本科生中筛选约30人。此外新生有新生骨干培训班,研究生也有。另外还会有一些党团培训班等。 29 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "08789d73", 3 | "configHash": "e92c7f4a", 4 | "lockfileHash": "fee166d6", 5 | "browserHash": "fb5c26a6", 6 | "optimized": { 7 | "vue": { 8 | "src": "../../../node_modules/.pnpm/vue@3.5.13/node_modules/vue/dist/vue.runtime.esm-bundler.js", 9 | "file": "vue.js", 10 | "fileHash": "1cbafa5b", 11 | "needsInterop": false 12 | }, 13 | "vitepress > @vue/devtools-api": { 14 | "src": "../../../node_modules/.pnpm/@vue+devtools-api@7.6.8/node_modules/@vue/devtools-api/dist/index.js", 15 | "file": "vitepress___@vue_devtools-api.js", 16 | "fileHash": "aae7086f", 17 | "needsInterop": false 18 | }, 19 | "vitepress > @vueuse/core": { 20 | "src": "../../../node_modules/.pnpm/@vueuse+core@11.3.0_vue@3.5.13/node_modules/@vueuse/core/index.mjs", 21 | "file": "vitepress___@vueuse_core.js", 22 | "fileHash": "2eaad460", 23 | "needsInterop": false 24 | }, 25 | "@giscus/vue": { 26 | "src": "../../../node_modules/.pnpm/@giscus+vue@3.1.1_vue@3.5.13/node_modules/@giscus/vue/dist/index.js", 27 | "file": "@giscus_vue.js", 28 | "fileHash": "5d94469d", 29 | "needsInterop": false 30 | } 31 | }, 32 | "chunks": { 33 | "chunk-CQOUZRMK": { 34 | "file": "chunk-CQOUZRMK.js" 35 | }, 36 | "giscus-Ci9LqPcC-CCB7DQEP": { 37 | "file": "giscus-Ci9LqPcC-CCB7DQEP.js" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /src/in-school/practice.md: -------------------------------------------------------------------------------- 1 | # 研究生实习 2 | 3 | ## 实习的目的 4 | 5 | 实习的目的,主要有以下两点: 6 | 7 | **简历加分:** 8 | 对开发岗来说,实习经历至关重要,实习经历大于校内任何项目。对于算法岗来说同样如此,如果你做的是业务算法(目前硕士基本都是业务算法),一段对口的大厂算法实习经历,含金量近似于一篇对口方向的顶会一作,更胜过不对口方向的顶会一作。条件允许的情况下,尽可能多地进行实习,给自己的简历加分。 9 | 10 | **工作保底:** 11 | 暑期实习是获得正式offer相对最快、难度最小的方式,可以作为秋招时的保底选项,能够帮助argue薪酬和稳住心态。 12 | 13 | ## 实习机会 14 | 15 | 获得实习的方式,主要有以下三种: 16 | 17 | **官网投递:** 18 | 这是寻找实习的最主要方式,从各大公司的招聘官网进行投递。官网的信息会比boss、牛客等招聘网站更新更加及时,有时会有一些急招的岗位放出,通过的概率更大。此外,有事没事可以更新一下自己的简历,更新简历后,简历会出现在人才库的前面,更容易被面试官看到和捞面。 19 | 20 | **内推:** 21 | 如果有导师、师兄师姐或朋友进行内推,是最好不过的,但需要将简历直接推荐到对应组内,若只是使用内推码则作用不大。 22 | 23 | **校友企业:** 24 | 如果因为缺乏实习经历没法直接进入大厂实习,可以考虑参加学院举办的校友招聘会(联系辅导员即可了解信息),校友企业的准入门槛不高,积攒经验后方便跳槽然后找大厂实习。 25 | 26 | ## 日常实习 27 | 28 | 再聊一下日常实习和暑期实习的取舍问题。实力足够的话,肯定是暑期实习更好。但要论性价比,还是日常实习高。尤其对于之前没有实习经历的同学,我更推荐多投日常实习。原因如下: 29 | 30 | **门槛差异大:** 31 | 当前大环境越来越卷,暑期实习难度直逼秋招,要想拿暑期实习,往往需要之前就有实习。日常实习的难度虽有提升,但还是有很多大厂是愿意包容0实习经历的同学的,尤其是非热门岗位,难度明显低很多。 32 | 33 | **对正式招聘的影响差异小:** 34 | 暑期实习和日常实习最大的区别就在于是否有机会申请转正。一方面,暑期实习未必能转正成功,如果没有转正成功或是放弃转正,在秋招时申请其他公司,和日常实习没有任何区别(也没人会在简历里专门写日常/暑期)。另一方面,家花不如野花香,很多公司对于自家转正的暑期实习会压价,因此秋招时更多人会选择别的公司,此时暑期与日常就没有什么区别了。此外,不少公司的日常实习可以申请转暑期实习,甚至可以直接申请转正,进一步减小了与暑期实习的区别。 35 | 36 | 有同学可能觉得,暑期实习会重点培养,而日常实习拿的都是边角料项目。但其实机会都是人争取来的,有想要提升自己的诉求,大可以大大方方与mentor说:“我想从这段实习里多学点东西,希望能借此转暑期/转正,希望能给我些有挑战性的工作。”大部分mentor都能理解满足大家的诉求,毕竟他们曾经也是从萌新一步步过来的。 37 | 38 | 最后,实习与正式工作有所不同的是,寻找实习时,不用过于追求work \& life balance,因为某个公司很卷就回避。一方面,实习时工作强度高,意味着单位时间内容易有更多产出,在秋招时能增加竞争力,而过于轻松的实习可能无法支撑起简历内容。另一方面,经历过相对高的工作强度后,也能通过实习来判断自己是否真正喜欢这类工作。 39 | -------------------------------------------------------------------------------- /src/experience/finance/data-center.md: -------------------------------------------------------------------------------- 1 | 2 | # 银行数据中心 3 | 4 | ## 简历投递 5 | 6 | 首先从岗位选择上,研发中心和数据中心是可以同时投递的,但要注意的一点是投递两个岗位的简历最好各有侧重,不要完全一样。投递研发中心,简历要着重突出自己的开发能力。投递数据中心,简历要偏向运维、数据安全,当然也可以表现自己的开发能力。 7 | 8 | 这里说一下研发中心和数据中心的区别。从工作内容角度,研发中心就是通常意义上的软件开发,适合喜欢写代码的同学。数据中心则是投产运维,研发中心很多事情要数据中心批准后才能执行。从子公司化的角度,数据中心由于数据的隐私性和安全性,是永远不可能被子公司化的,数据中心本身不具备盈利能力,但又必须存在,所以会一直作为直属机构绑定总行。而研发中心是能接项目开发软件盈利的(作为银行的内包),就有被子公司化的可能。 9 | 10 | 一般而言,数据中心的选择优先级是高于研发中心的,但也要因人而异。第一,从工作时间上,数据中心因为投产要值夜班调休。每半个月通宵一次,有时周六要去上班投产,虽说值班可以调休,但要提申请领导批准,所以实际上调休并没有落到实处。第二,数据中心一般会位于城市偏僻的地方,以后的生活通勤能否接受需要考虑。第三,数据中心的岗位间差异大,闲的岗位很闲,忙的岗位值班会很多,而岗位是入职后再确定的,所以具有很大的不确定。第四,数据中心不适合喜欢写代码的同学。 11 | 12 | ## 笔试 13 | 14 | 银行的笔试基本不会淘汰人,但还是要准备一下。基本构成为:行测+英语+计算机+其他+银行文化。 15 | 16 | 银行文化考前一天背就行,计算机主要是数据结构、计算机网络、计算机组成原理、操作系统、数据库设计、sql语句、程序代码填空。如果准备时间充足,可以上牛客网刷一下计算机的题库。如果时间不足,就刷一下银行往年的题。 17 | 18 | 行测和英语无需特殊准备,正常答即可。行测部分,数量计算可以放在最后答,答不完就蒙,都选一个答案。英语部分,阅读理解题的分值较高,可以选择优先做阅读理解。其他部分视银行而定,有的银行各岗位间不分卷,就会考察大量的经济管理题,这种就凭感觉做了。 19 | 20 | ## 面试 21 | 22 | 一般在面试前会要求做心理测评或AI测评,一定要按时完成,否则流程就会终止。有的银行发的测评通知会被邮箱标定为垃圾邮件,所以如果没有按时收到记得去垃圾邮件里找一找。 23 | 24 | 数据中心、研发中心的面试都是技术面。八股是一定会问的,银行问的是java八股,且较为基础。也有结合自我介绍延展的八股,数据中心也会问网络安全、数据库、密码学、区块链的八股。 25 | 26 | 项目经历也会问,如果有银行相关的经历会问的更细一些,但总体上不难。有的会问知不知道国家对银行的政策,这个问题答信创和数字化转型就好。还会问一些性格方面的东西,表现出认真负责、团结协作就好。如果考过软考的证,还会问怎么考的证。 27 | 28 | ## 签约 29 | 30 | 面完大概一周会通知体检,但是差额体检,也就是说即使体检了也不一定能拿到offer,交完体检报告后几天会通知签约会。签约会当面谈薪资福利,不签就可以离场了,否则当场签三方,这一点一定要慎重,因为银行发offer的时间在国企里算早的,后续很大概率会毁约,要衡量一下毁约费是否能担负起(以农行为例,违约金是2万),如果考上公务员是不用赔违约金的。最后就是,即使没有通知到体检或体检后候补了也没有关系,到年末会有一波补录,同样有机会拿到offer。 31 | -------------------------------------------------------------------------------- /src/in-school/conference.md: -------------------------------------------------------------------------------- 1 | 2 | # 科研论文 3 | 4 | 科研更像是一种探索客观世界发展规律的方法论。很多时候并没有所谓的正确答案。当你不断质疑他人的方法论并反复验证以后,你就能找到属于自己的且更长久的科研秘籍。形成科研训练是一个非常漫长的过程,需要长时间付出。首先你需要阅读大量论文,形成行业的前沿发展认知。其次你需要拥有创新思维,并在代码中付出实践,然后你需要反复实验证明结论的可靠性,最后需要用PPT的形式向他人通俗易懂的证明你的方法深邃性。 5 | 6 | 1)阅读论文。建议看英文论文。在培养行业思维的同时,可以看到别人是怎么创造单词的,比如为什么命名成ResNet,大家惯用的命名方式是哪些,如何可以通过名字就能让人一眼就知道你的方法的核心卖点。 7 | 8 | 2)大量阅读文献。大量的文献阅读可以让你慢慢的感受到不同人对同一个方法论的观点的批判,让你获得不同的视角语言。举个例子,我把所有层全部连了起来,于是有了DesNet(并不严谨),全连起来效果肯定更好啊,性能提升很多。你会觉得那都那么完美了,还有什么可做的。但可能下一篇文章会告诉你这样会存在大量冗余线路,全连起来并不是一个有效的路径依赖关系,当数据量不够大的时候,更容易存在过拟合现象。大量的文献阅读让你不断的被迫的学会要反驳前人的观点,没有一个方法是完美的,前人也存在自身的局限性。 9 | 10 | 3)培养创新思维。 当你大量阅读完文献,你就需要想想还有什么可改进的。只要你读的够多,上述的思维不断重复出现,很自然就会有一些创造性的价值点,所以这是一个过程,如果这个时候导师对你进度并不满意,建议问问同领域的师兄师姐,看看你的idea到底哪里考虑的不清楚。 11 | 12 | 4)代码实践科研。请你大量code练习,如果你只想硕士毕业,那code能力是你能独立做完完整科研论文的最重要环节。多关注自身的编程能力,多花时间实践,一些小技巧就是,别把时间花在不重要的模块上(这个要看个人的感觉,到底哪里不重要)。 13 | 14 | 5)实验验证效果。大部分情况,你的方法并不能在所有场景下都效果奇佳,多考虑为什么效果不好。不用太在意自己的方法,透过方法,看到事物的本质,没准能在另一个场景下获得出其不意的效果。比如,之前有个工作,一直纠结于如何替换更好的语言模型,后来我发现对于这个场景,如何更好的定位目标比靠语言模型有用太多,不能钻牛角尖。 15 | 16 | 6)形成学术论文。虽然写到最后一个环节,但对于大部分对科研训练陌生的朋友来说,这个时候可能才刚刚开始。如何形成属于自己的科研卖点,怎么写intro,ab,这些可能都需要反复斟酌。大部分审稿人第一印象在于你的ab,而看你故事讲的好不好在你的intro。 17 | 18 | 做科研最直观的价值在于形成系统的科研学术思维。论文算是申请博士的硬通货,当你以后励志于读博,科研论文将对你有很大的帮助。当你的博士导师看过并赞叹过你的科研方法时,哪怕你只有1-2篇paper,你也能申请到MIT级别的CS博士(真事),请不要太在意数量,更多的在意质量。在没有超高质量的前提下,申请的科研关联性也是博士生导师很在意的方向之一。众所周知,计算机的科研论文不仅在学术道路上占有很重要的价值,在算法大厂工作申请中也有一定的作用。只是因为AI领域CCF-A类论文数量的井喷式发展,AI的大厂对论文的在意程度下降明显。不过如果是网络,安全,数据库等领域的A类高含金量论文,在大厂里仍然有很高的认可度。用之前leader的一句话讲这个逻辑就是:你能从一堆做科研的人里脱引而出,发表高含金量(物以稀为贵)的论文,那就是证明你聪明/优秀,大厂需要这样的人。所以如果你有这两点的诉求,请好好的进行你的科研工作。 19 | -------------------------------------------------------------------------------- /src/interviews/24-rz-finance-manager.md: -------------------------------------------------------------------------------- 1 | # 招商银行Fintech管培生 2 | 3 | 这篇的作者本人是2024届复旦计算机硕士毕业生,在招商银行Fintech线上竞赛-产品赛道中拿到了前20的成绩,同时也线下参加了第7届招商银行Fintech训练营。 4 | 5 | 截止2024年,招商银行Fintech训练营已经举办8届,是招商银行招收优质求职者的一个重要渠道之一,同时参与者如果获得较好名次也可收获特别丰厚的奖金(笔者的奖金收入达到了2000+),非常推荐大家去尝试。竞赛一般在5月举行,可以在招商银行官方网站进行报名,登录“招商银行招聘”官方网站,点击“校园招聘”—“FinTech训练营”,在线投递简历。 6 | 7 | 训练营在线上分为三个赛道,分别是AI,数据和产品。每个赛道会分别进行排名,题目各不相同,不限制报名的数量,但需要的完成时间较多,建议还是以一个赛道为主,以笔者参与的产品赛道为例。初赛是在限定时间内(两天或者三天)去根据给定的题目完成一个产品方案,题目有多道从中选择一道作答,题目的内容大多和金融产品的设计相关,比如活钱管理、养老金管理的金融应用或者产品方案设计,方案的形式以PPT为主。之后会根据初赛成绩进行分赛道排名,前200名能上榜并获得奖金,之后HR会根据初赛的具体情况,结合之前提交的个人简历综合考虑,安排线上面试,通过线上面试确定哪些同学可以参加线下训练营。获得线下训练营offer的同学,会去到位于深圳蛇口的招行培训中心,开展为期5天左右的线下培训竞赛。所有拿到线下训练营offer的同学可以获得招总暑期实习的机会。 8 | 9 | 线下训练营阶段,招行会负责往来的机票与住宿,在训练营中,参赛者会组成一个6人小队,理论上会包含三个赛道的同学,同时每个小组会分配到一个带组老师,。在之后的日子,大部分的时间都会和小队成员一起度过,最后会以小队为单位进行一个项目竞赛。第一天会进行简单的介绍和破冰环节,之后的几天会进行线下的培训和招行的企业文化介绍。和初赛类似,最后的项目竞赛也是针对某个题目进行产品方案设计,不过这个过程中需要其他赛道的同学提供技术支持,如数据分析和AI算法等,需要根据他们得出的数据支持进行产品设计的决策,考验各个方向的同学的头脑风暴和组内合作能力。笔者当时拿到千余份经过脱敏的银行账户流水数据,需要根据流水数据制定合适的理财方案,并得到最佳的理财收益,同时需要根据用户画像去设计合理的理财产品。最后完成的项目会提交给项目组进行打分,优胜小组会登上招总的大汇报舞台进行现场路演,在根据现场的评委打分进行评奖。排名靠前的组除了可以获得高额奖金之外也有更大的机会获得招总金融科技管培的最终offer。 10 | 11 | 据推测,项目的排名会决定小组内获得最终招总offer的人数,但是排名靠组的同学也有机会获得offer,因为带组老师也会观察和记录组内成员的工作情况和分工定位并对个人进行打分。组排名低但个人分数高的同学,一样有机会获得offer,同样组排高,但个人分低的同学也可能不会获得最终offer。所以参加训练营的同学也要多注意自己比赛之外的行为,还有和组内同学的相处方式。 12 | 13 | 比赛过挺久之后才会通知签约,不过在秋招提前批的offer中应该是最早的。需要线下签约,招行的老师会通知你线下前往你所在地的招行分行(比如招行上海分行,招行北京分行等)进行面谈,招总过来的老师会当面谈offer的具体细节,然后让你考虑是否签约,毁约金是1万。综合看来,招总Fintech管培offer是在一系列银行中性价比超高,且含金量也很高的一个选择。提前拿到这样一个offer可以让你在秋招中的心态更加放松,也能有更加充裕的准备,让自己找到最适合的理想offer。 14 | -------------------------------------------------------------------------------- /src/interviews/23-c-state.md: -------------------------------------------------------------------------------- 1 | # 23届硕-陈学长-某国企后端开发工程师 2 | ## 可以介绍下您毕业后的工作经历吗? 3 | 23年6月从复旦毕业之后,进入了一家国企(非传统类型)从事后端开发相关的工作。 4 | ## 目前薪资待遇和工作强度是怎么样的呢? 5 | 待遇:当时拿到的是sp offer,总包大概对应大厂的白菜水平。 6 | 工作强度:不同部门差异较大,我这边属于比较卷的组了,早上是9点打卡,我个人来说是一周大概2-3天加班到9点之后,其他时间例如周五大概是六七点跑路。总体来说略低于互联网平均强度。 7 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 8 | 当时的想法是待遇还行的情况下求稳吧,然后也能积累一定经验。 9 | ## 这个工作/行业有哪些最令人满意的地方? 10 | 人际关系非常简单,组里氛围还不错,虚头巴脑的东西比较少,把活干好就行;虽然是国企,但是技术上还算比较前沿,可以学到不少东西。 11 | (相比较互联网许多裁应届生的公司)比较稳定,合同期内还没出现过裁员现象。 12 | ## 这个工作/行业有哪些最想吐槽的地方? 13 | 有着国企的部分通病(一些不是非常严重的形式主义、官僚主义)。 14 | 食堂比较贵,味道一般。 15 | 跳槽认可度一般(中厂水平)。 16 | 软件基建不太好(影响开发体验)。 17 | ## 这份工作/行业带给您最深感受/影响是什么? 18 | 要想升级快就要用力肝(卷工时卷产出)。 19 | 几乎每个人都有不同的焦虑,担心年纪大了失业,担心没时间陪伴家人,担心卷不动被淘汰,不过这也是这个时代各个行业的通病吧哈哈哈,这一行起码钱还行咯。 20 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 21 | 想晋升: 22 | 卷(让领导看见和认同的情况) 23 | 跳槽(积累技术,找到匹配的方向) 24 | 障碍: 25 | 方向很重要,跳槽现在比较讲究技术栈和经历匹配,所以最好不要选择过于小众的方向,积极向风浪靠拢,比如 ai 相关。 26 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 27 | 说实话我没能力预测。猜测的话,内部在强调内循环经济的背景下 28 | 可能政策会靠拢智能驾驶、新能源、低空经济、国企信息化改革等。外部的话AI浪潮这么猛,相关基础设施比如云计算,相关应用比如智能驾驶,AI医疗,特定领域大模型等交叉方向可能比较有前景。 29 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 30 | 实习经历 >= 计算机基础 >= 相关竞赛(不同公司标准不一) 31 | 算法方向的话论文也是非常重要。 32 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 33 | 各大公司官方公众号、牛客网、BOSS、往届内推 34 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 35 | 毕业和招聘卡一起了,能顺利度过就非常不错了,不想再来一次了哈哈哈。 36 | 总体原则:越早准备越好,多了解行业情况,多看面经,多思考多问(什么发力过早会累这种鬼话不要信)。 37 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 38 | 千万不要有太大压力,最不济也就是暂时找不到工作,也没啥大不了的,因为找到工作的人也不知道能干多久,因为现在看似高薪光鲜的工作几年后可能啥也不是哈哈哈,保留一个应届生身份,还有很多方向可以去探索(考公、选调、人才引进、各种单位的信息部门,甚至是转行,以考复旦的难度来看,拿出你们的五成功力就ok啦)。只要不彻底摆烂,在人生的维度上,毕业季这点事只能算一个小波澜哈哈哈。 39 | -------------------------------------------------------------------------------- /src/in-school/earn-message.md: -------------------------------------------------------------------------------- 1 | 2 | # 信息获取 3 | 4 | ## 校内 5 | 6 | 1. **复旦大学就业指导中心(公众号:复旦生涯)** 7 | 这个公众号属于复旦官方对学生就业的指导,当然这个公众号也会发布企业招聘、实习以及宣讲会信息,更重要的是在这个平台上可以获取就业时的各种手续上的文件与解答,可以直接公众号预约线下,也可以直接在公众号上获取就业、选调、国际组织等多个方面的信息。官方的复旦学生就业信息获取的网站为: 8 | 9 | 2. **复旦大学基层就业服务协会(公众号:复旦基层就业)** 10 | 这个公众号对准备参加选调考试的同学来说非常重要。选调报名通常需要提交一份推荐表,而这张表格需要学校盖章。盖章时间通常是统一安排的,具体时间会在这个公众号上公布,因此建议大家密切关注。此外,这个公众号还会发一些选调宣讲和选调政策分析,每年也会为各省的选调考生建立复旦考生交流群。群内不仅会发布一些学校的通知,同学们也会在群里相互组织模拟面试,进行对练。 11 | 12 | 3. **复旦ijob协会(公众号:复旦ijob协会)** 13 | 这个公众号是一个就业信息获取平台,公众号的每条资讯都是不同企业的招聘信息,公众号更新活跃,几乎每天都有新发布,可以关注该公众号获取及时的招聘信息 14 | 15 | 其中在本校就业信息网可重点关注地方选调和部委特招的信息。此外可以多联系学长学姐,加入校友或者院友群,群里面不定期会发布一些内部招聘,或者实习信息,可以作为拓展人脉和获取招聘/工作内容等信息的渠道。 16 | 17 | 依照经验来说,在找实习或春秋招时,首先会时刻留意心仪公司的官网消息,这是最“官方”的方式,其次可能就是在就业群中突然发现了一个感兴趣的实习或项目等,就去联系内推或面试了,所以加一些复旦学生组织的求职群是一个不错的途径,不时留意一下其中的消息。 18 | 19 | ## 互联网平台 20 | 21 | 1. **公众号渠道(最方便快捷)** 22 | - 例如各大高校就业公众号(学校就业网站); 23 | - 校招信息大全,例如漫步五角场、OfferShow等。这一类微信群通常需要花费几十元购买一份招聘信息汇总表,购入后会拉一个微信群作为每日招聘信息发布和沟通的渠道。各家的求职汇总和沟通良莠不齐,建议多参与几家进行信息拼接缝合和比对; 24 | - 微信搜索公众号"目标企业名+招聘"。 25 | 26 | 2. **BBS** 27 | 部分高校的BBS较为活跃,尤其是北大BBS,它专门有一个找工作的板块,上面会有很多高质量的选岗分析贴,面临offer选择时,可以借同学一个号上去问问,有些学长会提供一些珍贵的信息和犀利的观点。 28 | 3. **牛客** 29 | 这个肯定会用到,有专门的求职专栏,提供笔面经和薪资爆料信息。 30 | 4. **小红书** 31 | 通过小红书上的相关帖子,求职者可以加入同一公司或同一求职方向的群聊,这为有相同目标的同学提供了一个沟通交流的便利渠道。不过,根据我的经验,小红书上有一些从事求职辅导的账号会发布不实内容,因此在获取信息时必须加以甄别。相比之下,个人账号的分享通常更真实可靠,建议多参考这些信息贴,并尝试直接联系分享者,以获取更准确的求职信息。 32 | 5. **当地人才招聘** 33 | 直接百度搜索,注册后可以直接在上面投简历,适合求职地点明确的同学。 34 | 6. **各类招聘软件** 35 | 例如脉脉、boss直聘、拉勾网、智联招聘等。招聘软件对于校园招聘来说可能并不是最有效的方式,但是海投的话速度很快,不用重复填写个人信息,在上面放简历之后会收到各种猎头的电话,有一些机会还是不错的。 36 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/@giscus_vue.js: -------------------------------------------------------------------------------- 1 | import { 2 | createCommentVNode, 3 | createElementBlock, 4 | defineComponent, 5 | onMounted, 6 | openBlock, 7 | ref 8 | } from "./chunk-CQOUZRMK.js"; 9 | 10 | // node_modules/.pnpm/@giscus+vue@3.1.1_vue@3.5.13/node_modules/@giscus/vue/dist/index.js 11 | var d = ["id", "host", "repo", "repoid", "category", "categoryid", "mapping", "term", "strict", "reactionsenabled", "emitmetadata", "inputposition", "theme", "lang", "loading"]; 12 | var l = defineComponent({ 13 | __name: "Giscus", 14 | props: { 15 | id: {}, 16 | host: {}, 17 | repo: {}, 18 | repoId: {}, 19 | category: {}, 20 | categoryId: {}, 21 | mapping: {}, 22 | term: {}, 23 | theme: {}, 24 | strict: {}, 25 | reactionsEnabled: {}, 26 | emitMetadata: {}, 27 | inputPosition: {}, 28 | lang: {}, 29 | loading: {} 30 | }, 31 | setup(s) { 32 | const t = ref(false); 33 | return onMounted(() => { 34 | import("./giscus-Ci9LqPcC-CCB7DQEP.js").then(() => t.value = true); 35 | }), (e, m) => t.value ? (openBlock(), createElementBlock("giscus-widget", { 36 | key: 0, 37 | id: e.id, 38 | host: e.host, 39 | repo: e.repo, 40 | repoid: e.repoId, 41 | category: e.category, 42 | categoryid: e.categoryId, 43 | mapping: e.mapping, 44 | term: e.term, 45 | strict: e.strict, 46 | reactionsenabled: e.reactionsEnabled, 47 | emitmetadata: e.emitMetadata, 48 | inputposition: e.inputPosition, 49 | theme: e.theme, 50 | lang: e.lang, 51 | loading: e.loading 52 | }, null, 8, d)) : createCommentVNode("", true); 53 | } 54 | }); 55 | export { 56 | l as default 57 | }; 58 | //# sourceMappingURL=@giscus_vue.js.map 59 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | # 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程 2 | # 3 | name: Deploy VitePress site to Pages 4 | 5 | on: 6 | # 在针对 `main` 分支的推送上运行。如果你 7 | # 使用 `master` 分支作为默认分支,请将其更改为 `master` 8 | push: 9 | branches: [main] 10 | 11 | # 允许你从 Actions 选项卡手动运行此工作流程 12 | workflow_dispatch: 13 | 14 | # 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages 15 | permissions: 16 | contents: read 17 | pages: write 18 | id-token: write 19 | 20 | # 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列 21 | # 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成 22 | concurrency: 23 | group: pages 24 | cancel-in-progress: false 25 | 26 | jobs: 27 | # 构建工作 28 | build: 29 | runs-on: ubuntu-latest 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v4 33 | with: 34 | fetch-depth: 0 # 如果未启用 lastUpdated,则不需要 35 | - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消此区域注释 36 | with: 37 | version: 9 38 | - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释 39 | - name: Setup Node 40 | uses: actions/setup-node@v4 41 | with: 42 | node-version: 20 43 | cache: pnpm # 或 pnpm / yarn 44 | - name: Setup Pages 45 | uses: actions/configure-pages@v4 46 | - name: Install dependencies 47 | run: pnpm install # 或 pnpm install / yarn install / bun install 48 | - name: Build with VitePress 49 | run: pnpm build --base /fduer-manual/ # 或 pnpm docs:build / yarn docs:build / bun run docs:build 50 | - name: Upload artifact 51 | uses: actions/upload-pages-artifact@v3 52 | with: 53 | path: .vitepress/dist 54 | 55 | # 部署工作 56 | deploy: 57 | environment: 58 | name: github-pages 59 | url: ${{ steps.deployment.outputs.page_url }} 60 | needs: build 61 | runs-on: ubuntu-latest 62 | name: Deploy 63 | steps: 64 | - name: Deploy to GitHub Pages 65 | id: deployment 66 | uses: actions/deploy-pages@v4 -------------------------------------------------------------------------------- /src/interviews/09-j-entrepreneur.md: -------------------------------------------------------------------------------- 1 | # 09届MSE-姜先生-招商门户创业 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 复旦本科化学系毕业后,02-06年留校在学校宣传部网络宣传办公室,负责学校主页、新闻网等,偏技术和管理角色。后来进入互联网公司Lightinthebox和新浪微博商业产品部,转互联网产品方向。13年从微博离职后创业,创办望才大数据招聘,16年初被智联招聘并购。后又主导或参与区块链、在线母婴医疗等创业项目。21年开始做政府产业招商的大数据产品和平台,目前主要是在做“人人招商”和“招商门户”这2个微信小程序。 6 | 7 | ## 目前薪资待遇和工作强度是怎么样的呢? 8 | 9 | 之前在大厂做互联网产品的薪资是比较高的,最高的时候是80K/月。当前算创业阶段,给自己开很低的基本工资,15K左右,今年预计公司会有1000-2000万左右的收入,大约会有40\%-50\%的净利润,但大概率会继续投入而不是分红。互联网领域996很普遍,但是现在卷过之后,也倾向于谋定而后动,尽量让公司和团队往正确方向发展,减少无谓的加班和内卷。 10 | 11 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 12 | 13 | 选择产品方向是因为热爱,被乔布斯影响很深。选择离开复旦和创业都是因为自己想做正确的事,更加自由,不受太多的束缚,不希望把青春浪费在一些官僚或者错误的上级指令上。 14 | 15 | ## 这个工作/行业有哪些最令人满意的地方? 16 | 17 | 自由,可以按照自己的想法来经营公司,发展产品和服务。政府产业招商也是个万亿级市场,过往比较传统,现在有机会用人工智能和大数据做一些数字化方面的提升和改造。商业模式也有很大的创新机会,令人兴奋。 18 | 19 | ## 这个工作/行业有哪些最想吐槽的地方? 20 | 21 | 过往太依赖于线下人脉,无论是政府关系还是企业项目项目的获取。得花非常多的时间和精力才能优化一点点,改变从业者的认知,步履艰难。 22 | 23 | ## 这份工作/行业带给您最深感受/影响是什么? 24 | 25 | 个人对影响一件事成功与否的认知上,从过于依赖互联网产品+技术,会逐步切换到运营、市场,乃至于销售上。创业确实要求多面手,或者得用合伙人团队来补足个人的短板。 26 | 27 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 28 | 29 | 公司内部晋升,主要看情商,而不一定是能力,除非你的工作能力远超常人,例如能给公司带来销售大单,技术上不可或缺等。跨公司的晋升,可以通过跳槽。职业发展主要要选好行业,入错行再调整,至少浪费1-2年时间。然后是跟好老板,如果能认识一个好老板,则职业发展会顺利很多。好老板的标准是:愿意带你(信任),他自己在公司和行业内的成长也很快(潜力),能快速学到新东西(成长速度)。但是好老板为什么要提携你,而不是另外一个同事,这个就是我说的情商。 30 | 31 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 32 | 33 | AI对各行业的影响确实会越来越大,对于计算机系毕业生而言,最大的机会在AI算法上,例如大模型等。应用层目前可能才算刚刚开始,也有很多机会。 34 | 另外中美脱钩、贸易战等也会改变整个世界竞争合作的方式,包括目前美元基金退出,人民币基金主要由政府主导等。所以硬科技是目前的主要投资方向。建议关注国家对战略新兴产业的发展导向,里面也会有相应的机会。 35 | 36 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 37 | 38 | 不建议毕业即创业,成功概率太低。咱们复旦计算机的毕业生,找工作可以找大厂作为起点,站在巨人的肩膀上先积累行业经验和人脉,未来的路会非常好走。 39 | 40 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 41 | 42 | 通过招聘平台或者校招等渠道当然可以,但是能提前到大厂实习可能就更好,先人一步。本质上这个问题的核心是有没有办法,提前或者更多的和一些大厂的人结识,这样内推的机会也多,入职概率也高。师兄师姐会是很好的资源,建议多加入校友群,多参加校友活动,多与人聊天沟通。 43 | 44 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 45 | 46 | a、想办法构建自己的差异化价值,能体现在简历上,让人眼前一亮 47 | b、多花时间在人脉网络构建上 48 | c、选择发展潜力大、天花板更高的行业 49 | 50 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 51 | 52 | 相信自己,乐观开放积极。无非现在的状态是潜龙在渊,但是见龙在田、飞龙在天不会远的。 53 | -------------------------------------------------------------------------------- /src/experience/internet/backend/java.md: -------------------------------------------------------------------------------- 1 | # JAVA后台开发 2 | 3 | 这篇的作者本人是2024届复旦计算机硕士毕业生,从事的是JAVA后端开发方向。去年拿到了腾讯、蚂蚁、快手、字节、美团、京东、得物、小红书的Offer(滴滴、百度、淘天因为投递的有点晚,要么错过笔试,要么后面不想再面了),腾讯、蚂蚁和快手是SSP,其他的也基本全是SP。 4 | 具体可以参考这位学长的[牛客网](https://www.nowcoder.com/users/98411722),还有许多的面经可以参考。 5 | 6 | 由于我在九月份的时候想试试国企管培生,所以实际上互联网秋招也就从八月下到九月下就结束了,并且不少时间花在了国企的行测上准备,事实上准备互联网的时间不是很充足。之所以能够拿到这么多offer,运气好是一方面,另一方面也是之前在面暑期实习的时候准备得比较充分。个人认为最需要准备的有三个方面:八股文+项目+算法。JAVA岗位的hc很多,但相应的竞争的人也是非常多,近年来面试的难度也是在不断提升,所以一定要做好充足的准备。 7 | 8 | 目前八股文有关Java的部分比较建议是在JavaGuide上进行学习,关于计算机基础的部分很推荐小林coding上学习,写得很详细。 9 | 10 | ## Java基础 11 | 12 | 重点复习Java的核心概念,如面向对象编程、集合框架、多线程、IO流等,需要确保对这些知识点有扎实的理解。最好能够结合源码来进行学习,比如HashMap的put方法具体实现流程?具体来说可以包含以下几个方面:Java语言基础、集合框架、并发编程、IO、JVM调优、JDK关键版本间的差别等。学习Java基础的时候,最好能够结合一些真实的代码来辅助理解,单纯看原理的话不太能够理解而且不便于记忆。 13 | 14 | ## 数据库 15 | 16 | 数据库其实问的内容是比较常见的,但是可能会问的比较深,所以在学习的时候需要深入学习,然后重点学习常考的内容。具体来说主要包含以下几个方面:存储引擎、索引、undo/redo/bin log的作用、事务、锁和优化方法。其中事务是问的最多的部分,比如事务的隔离级别,以及如何实现的,这块儿很可能会问到底层的实现原理。具体来说,针对这些原理,不需要实际去实践,尝试结合现象进行理解就好了。此外,数据库相关的可能会提到sql代码题,这个时候就需要适当的刷一刷相关的算法题。 17 | 18 | ## 计算机基础 19 | 20 | 计算机基础相关知识点主要是问计算机网络+操作系统,其中计算机网络问的更多,因为是与业务开发密切相关的知识点。具体来说主要包含以下几个方面:网络模型、常见的网络协议、网络安全以及网络设备。其中常见的网络协议问的最多,而这其中又是以HTTP、TCP和IP问的最多。此外,也还会常问在网页上输入网站地址后到页面加载出来经历了哪些流程,这些流程又涉及了哪些协议,在这个流程中协议的作用是什么?操作系统虽然并不是很常问,但是一旦问到就会是那种比较不太常见的那种,很容易完全没印象。所以在学习操作系统相关八股文的时候,需要最好是多看几遍,并且看的范围要广一些。具体来说主要包含以下几个方面:进程和线程、内存管理、文件系统、I/O系统以及Shell相关的场景命令。这些一般来说不是很好记,所以最好是多多复习,然后多看看面经,学习面经中问到的问题要怎么回答,多多积累就好。 21 | 22 | ## 中间件 23 | 24 | 中间件近年来问的越来越详细,问的也越来越深入。根据功能将中间件分为消息中间件、应用服务器中间件和数据库中间件等不同种类。一般主要需要学习消息队列中间件:如RabbitMQ、Apache Kafka,用于实现异步通信和解耦。反向代理中间件:如Nginx,用于负载均衡和反向代理。缓存中间件:如Redis,用于缓存数据,提高系统性能。RPC中间件: 如Dubbo、gRPC,用于实现远程过程调用。这其中缓存中间件考察的比较多,尤其是以Redis为代表,需要重点复习。此外,需要知道同类型中间件的不同优劣势,进行横向对比,以便在后续可能会问到的场景题中进行合理选型。 25 | 26 | ## 框架 27 | 28 | 这里的框架指的是Spring和SpringBoot,尤其是Spring问的比较多。Spring主要会问的模块包括:控制反转(IoC)和依赖注入(DI),通过容器管理对象之间的依赖关系。切面编程(AOP):实现横切关注点的模块化。数据访问支持:提供了对JDBC、ORM框架(如Hibernate)、NoSQL数据库的支持。事务管理:提供声明式事务管理的支持。MVC框架:提供了基于MVC的Web应用程序开发支持。SpringBoot问的一般主要是相较于Spring的优化提升,以及这两者间的区别。 29 | 30 | ## 场景题 31 | 32 | 这里的场景题主要是指的高可用以及高并发的相关场景设计,是比较综合的题目,主要设计一些中间件和架构思考,准备这类题目需要多多积累相关场景题。而且 这类场景题多数是与分布式相关的,包括分布式场景设计原则、分布式数据存储、分布式事务处理以及服务治理与负载均衡等方面都需要考虑到。 33 | -------------------------------------------------------------------------------- /src/interviews/23-c-hw.md: -------------------------------------------------------------------------------- 1 | # 23届硕-崔女士-华为系统预研 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 毕业之后就入职华为ICT产品线做系统预研。 6 | 7 | 系统预研工作内容可以分为三个方向: 8 | 9 | 第一个方向是围绕着产品系统的一些硬件技术或者软件技术,网络协议等未来五到十年的一个演进路径,涉及对整个系统架构的一些调整,我目前的工作内容主要是结合整体的方案设计,配合团队做一些细粒度方向上的设计。 10 | 11 | 第二个方向是对既有的产品系统进行探索优化,希望通过方案设计把性能达到最优化,确定优化的模块,围绕设计方案进行性能验证,如果最后能证明这个性能方案对系统可以实现一个性能提升,就可以落地交付。 12 | 13 | 第三个是围绕最近热门的研究方向做一些洞察研究,比如说AI大模型,找到可以和产品结合的点。 14 | 15 | ## 目前薪资待遇和工作强度是怎么样的呢? 16 | 17 | 压力是可以接受的。在华为如果是比较贴近业务交付的方向,比如说软件开发这种工作强度会更大。预研的性质和开发交付不太一样,交付周期相对长一些,从设计到落地到性能验证、开发时间周期长。对知识的深度和广度有一定的要求。压力更多的是看自己对自己的科研能力的一个要求。 18 | 19 | 工作强度取决于当前项目节奏。周六周日的加班情况是基本上不加,一年半总共就加班了四次(除去月末周六)。 20 | 薪资方面是保密的,不过和互联网大厂相比来说大概和美团的SSP是差不多的。 21 | 22 | ## 这个工作/行业有哪些最令人满意的地方? 23 | 24 | 大体我是很满意的,一方面我认可系统预研这个方向,未来的方向是AI大模型,对训练来讲是数据为基础的。国家也在推进构建数据中心,数据中心会成为国家的一个基础建设,这方面华为也在努力推进。 25 | 26 | 另一方面我不想做纯技术的方向,我希望每个阶段有一些新的内容,新的方向可以学习。我现在的部门工作模式相当于每三到五个月是一个周期,在这样的一个周期里可以去研究新的内容。比如通过研究调度层,你会把整个底层有一个了解,最终对整个系统的了解就会构建成个人的技术栈。我们部门是做整个产品生态的演进方向,所以对整个系统架构都需要有了解,同时也会结合最新的产品市场需求去定位未来发展的方向。工作自由度很高,强度也可以适应。 27 | 28 | ## 跳槽是很多同学会选择获取快速涨薪的一种方式,就你观察系统预研方向跳槽的前景如何?对应届生来说有裁员压力吗? 29 | 30 | 华为是有内转的,内部流动速度很高,内部是可以实现通过内转来实现职级的提升。 31 | 32 | 华为内部还是相对稳定的,因为对新员工的培养成本是很大的,导师制度和NEO培训制度会保障不会让一个新员工容易被裁掉。除非是这个人和预期差距过大。但是会有同学在培训期间因为和企业价值观不符合而主动离开的。 33 | 34 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 35 | 36 | 华为有一套自己的晋升体系,晋升标准明确。 37 | 38 | 从13级到14级,从14级到15级可能会相对于15级到16级会快一点。但是主要是看是否有工作承重,能力是否达标。 39 | 40 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 41 | 42 | 系统预研目前来看是处在上升阶段,国内在这个方向的发展是要比国外好的。国家层面来说,数据中心的部署已经在路上了,大模型的数据需求量很大,如何对这些数据进行管理,保证数据的安全性都是一个比较大的挑战。随着数据中心的不断扩展,挑战肯定也是越来越大的。 43 | 44 | 华为在这一方向的布局,是顺应时代的发展,顺应时代的变化。华为对研究方向的选择是很慎重的,所以这个方向肯定是有一定的价值的。 45 | 46 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 47 | 48 | 好好准备简历,把项目准备清楚,心态要放轻松。 49 | 50 | 其实找工作也是很看运气的,我刚好在面试的时候遇到了一个非常聊得来的主管,另一方面上研这边涉及一个人员的流动,会变成一个重点基地,机遇比较好。而且我所研究的方向比较契合。 51 | 52 | ## 您从面试到拿offer的过程中和hr是怎么沟通的呢?怎么判断自己是不是在泡池子呢? 53 | 54 | 从面试到拿offer期间,每个月保温一次。而且是可以通过接口人的态度和主管面来判断自己究竟可不可以拿到offer。我当时主管面和主管就聊得很开心,对拿到offer的把握较大。 55 | 56 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 57 | 58 | 相信自己,不要焦虑。不管是研一还是研二,把当前手里做的事情做清楚,做明白就挺好的了。 59 | 60 | 以前其实我不想再去做AI,我觉得它技术迭代太快了,我不想经过很久之后我的技术会因为它迭代的问题而达不到一个积淀。但是我现在所在的这个部门,虽然更偏向开发研发这个方向,但是其实我们也会结合当前大模型这个比较火热的背景去做一些融合,不一定说每一个阶段做的东西就真的无用了,每一步都作数,把当下的事情做好。 61 | -------------------------------------------------------------------------------- /src/experience/system/state-grid.md: -------------------------------------------------------------------------------- 1 | # 国家电网 2 | 3 | 国家电网的架构为总部-大区分部,总部-省公司,总部-直属机构。其中公司总部近年来只招聘电气工程专业的毕业生,而其他的分部,省公司,直属机构都会招计算机类专业毕业的同学。国家电网每年招聘每年一共有三次,提前批,一批,二批,每年的招聘、录取通知都会在[官方人力资源招聘网站](https://zhaopin.sgcc.com.cn/sgcchr/static/home.html)上公告。提前批一般会在每年的9-10月份出公告,一批会在11月左右,二批会在第二年的3月左右。提前批主要面向原985,211,原电力部属院校的电气类专业研究生,以及部分原985院校的**计算机类,通信类专业**研究生。一批和二批的流程都是笔试+面试,一批的报考要求会相对高一些,大部分会要求本科以上,二批次电工类专科也可以报考,岗位也会有相应的不同。注意,**有些省份的一批不招计算机专业的**(如重庆市),那错过了提前批,就只能去报二批。同时要注意,报考**基本上都有年龄要求**,一般是要求,专科生不超过23周岁、本科生不超过25周岁、硕士研究生不超过28周岁、博士研究生不超过33周岁。 4 | 5 | ## 提前批 6 | 7 | 提前批主要是省公司及其分支机构才会有,一般在每年的 9-10 月份会在国网招聘官网上发布(首页-省公司-单位一览-最近动态),上面除了招聘信息外,还会列出校园宣讲会的行程表,如 24 年辽宁省的行程安排如图所示。 8 | ![img](../images/road-show.png) 9 | 10 | 招聘团队每年会按照这上面的行程,到不同的城市和大学去进行宣讲,一般是当场收简历,当场面试,甚至是当场发offer。对于计算机类专业和通信类专业(信息学院的同学也可去报)的同学,给的offer岗位一般是各省的信通公司,以及市局的通信部门。 11 | 12 | **要注意,并不是只有宣讲院校的同学才能去参加面试**,所有符合条件的同学都可以去。所在城市没有行程安排,也要去别的城市参加。 13 | 14 | 省公司的提前批一般没有笔试,只有面试。面试跟之前介绍的泛体制面试一样,技术问题很少,有以下几个地方要注意。 15 | 16 | 1.如果在四六级,计算机等级考试,在校成绩,综合荣誉,和爱好特长方面有亮点的,在面试自我介绍的过程中,要加上这些内容,简历上也要写。 17 | 18 | 2.一定要表达出留在当地工作的强烈意愿。比如本地人想回老家;大学在那读的;想定居等等。 19 | 20 | 3.介绍项目/学习经历最好能往业务上贴,建议面试前,去网上了解一下目标省份信通公司最近在做的重点业务。然后这样去介绍,比如:我特别想去老家电网,平时也很关注家乡电网一直在做的工作,最近看到你们完成了xxx,那刚好我的研究方向是xxx,之前实习的时候做过xxx的相关项目,希望自己能有机会利用这方面积累的能力,为xxx的后续工作提供一份力量。 21 | 22 | 如果你在面试中失利,没有拿到心仪的offer,一个重要的建议是,继续去追宣讲行程。换位思考一下,如果你是面试官,发现有一个同学经常会在面试中出现,跟着宣讲在全国各地到处跑,是不是也会被他的诚意打动?这不一定百分百有效,但根据往届同学反馈的经验,有机会。 23 | 24 | 另外一个建议是,如果你的宣讲场次比较靠后,建议在时间方便的情况下直接去其他城市参加第一场宣讲,或者在前面几场中按照地点情况,挑一个竞争可能会小的场次。 25 | 26 | ## 一批 27 | 28 | 国网一批开启时间较晚,在秋招的尾声阶段,可以关注国网招聘的公众号,里面有详细的报名流程和简历填写指南。 29 | 在单位选择上,如果选择研究院要打听好该院的硕博比例,博士太多的话硕士可能就没有晋升机会了,还要关注一下出差的频繁度。如果是选择各地方的话,要看一下是否会被分到偏远地区(概率不小)。 30 | 31 | **关于笔试:** 32 | 33 | 笔试一般是在周末,线下机考。包含少量行测、少量企业文化、大量计算机。 34 | 35 | 企业文化这个有固定题目,一般国网招聘公众号上都有。还记得当时有一道题问是国网铁军,还是国网雄狮,我觉得狮子比较威武就选错了,现在想起来还是很懊悔,这种企业文化题千万不能“你觉得”,是什么就是什么,背就完事了。 36 | 37 | 笔试其实很重要,占总成绩的百分之70,我当时面试表现很好,但是笔试裸考只有53分,最终没有拿到offer,所以得笔试者得天下。占大头的计算机,和考研408的风格不一样,有很多软件工程、数据库这类的东西,后来我发现相关的题库里都有,所以想去国网的一定要好好刷题,血泪教训。 38 | 39 | **关于面试:** 40 | 41 | 笔试后的一周就是面试,各单位面试内容不一样,这里只说我报的某信通分公司。 42 | 43 | 一组10个人由老师带领候场,每次只进一个人,对面大概有5个面试官。首先面试官会翻一个八股的小册子,问一道简单八股,我被问的是错误码503代表什么出问题了。然后就会问项目经历,结合项目问更深层次的问题,我的感受是对面的面试官技术是可以的,问的问题甚至比有的大厂面试官还深还难,但探讨过程还是很友好的,这段在整个面试部分占了大部分时间。 44 | 45 | 然后应该是领导的人会问一些项目中用到的技术,这里说宏观框架就可以,说的过细会被打断。最后给你一段英文,一分钟准备,先朗读英文,再把他翻译成中文。面试就结束了,没有反问时间。 46 | -------------------------------------------------------------------------------- /src/interviews/23-z-research.md: -------------------------------------------------------------------------------- 1 | # 23届硕-张先生-某央企研究院 2 | ## 可以介绍下您毕业后的工作经历吗? 3 | 张学长在2023年6月硕士毕业后,直接进入了一家央企工作。他在研究生期间的主要研究方向是后端开发相关技术,但在研究生后期,尤其是实习期间,他转向了云计算领域,尤其是在字节跳动的实习经历中进一步加深了对云计算的理解。进入央企后,他的工作重心逐渐转向与AI相关的项目开发,涉及从传统的小模型算法到近年来大模型的应用和开发。张学长目前在一家央企的研究院AI部门工作已满一年,主要负责AI技术的开发与应用,尤其是大模型在实际业务中的落地。他提到,尽管进入AI部门是意料之外的安排,但通过这一经历,他逐渐适应了从后端开发到AI的转型,并在新的技术领域中找到自己的定位。 4 | ## 目前薪资待遇和工作强度是怎么样的呢? 5 | 张学长提到,央企的薪资待遇相比互联网大厂低,达到互联网行业平均水平。他坦诚地指出,虽然不能与互联网头部大厂的高薪相比,但薪资仍然属于可以接受的范围。此外,他提到工作强度相对较低,每天的工作时间大约从早上九点到晚上七八点,每周工作五天。工作节奏较为稳定,紧迫感不强,这种安排让他有更多的私人时间。张学长强调,这种较低的工作强度和相对灵活的时间安排,是他选择央企的一个重要原因,因为这让他能够投入更多时间到个人感兴趣的开源项目中,发展自己的第二职业曲线。 6 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 7 | (1)工作与生活的平衡:在字节跳动实习期间,张学长感受到互联网大厂的工作强度非常高,私人时间被大幅压缩。他更倾向于在工作和个人生活之间找到一个平衡,因此他选择了工作压力较小、工作时间更为灵活的央企。央企的相对自由的工作安排使他能够保留更多的私人时间,这对他参与开源项目和自我提升非常重要。 8 | (2)长远发展考虑:张学长提到,他在字节跳动实习时接触的是云计算基础架构部门的工作,他意识到基础架构领域更适合由国家层面来主导和推动,这样更符合国家战略的需求。因此,他选择了央企来从事这方面的工作,认为在央企可以更好地发挥自己的专业特长,同时也能为国家的云计算和AI发展做出贡献。 9 | (3)稳定性与职业安全:在当时的就业形势下,互联网行业开始出现波动,张学长出于对未来职业稳定性的考虑,选择了相对稳定的央企。尽管央企的薪资不如大厂高,但提供了更多的职业安全感和发展空间,尤其是在经济形势不稳定的情况下,央企的长期职业规划更为可靠。 10 | ## 这个工作/行业有哪些最令人满意的地方? 11 | (1)工作时间的灵活性:他提到,周末没有人打扰,这让他可以有自己的私人时间,这一点对他来说非常重要。张学长热衷于参与开源项目,他希望能够有足够的时间来探索自己感兴趣的领域,并将这作为自己职业发展的第二曲线。这种时间上的灵活性,使他能够在工作之外保持对技术的热情和探索。 12 | (2)工作氛围:他对公司内部的工作氛围表示满意,尤其是与同事之间的相处。张学长提到,他所在的公司是一家研发类型的企业,这种环境与他在字节实习时的氛围非常相似。他强调,尽管公司性质不同,但研发人员之间的互动和合作精神依然非常好,这让他在工作中感到舒适和愉快。 13 | (3)工作内容的实际应用:张学长更喜欢能够实际落地的项目,他提到在工作中看到自己开发的系统和算法被应用于现实场景,能够为客户解决实际问题,这带来了强烈的成就感。他认为,相比在学校里做纯粹的学术研究,能够看到自己的工作产生实际影响,更加有意义。 14 | ## 这个工作/行业有哪些最想吐槽的地方? 15 | 张学长提到,作为央企的一员,他提到公司内的流程过于复杂,相对于互联网公司,央企的流程更加繁琐,这会影响工作效率。他指出,这是在安全与效率方面的取舍。 16 | ## 这份工作/行业带给您最深感受/影响是什么? 17 | 张学长在工作中得到的最深感受是真正的稳定感只能来源于自身。他一开始选择这个工作是因为考虑到行业形势变化,希望找到一份相对稳定的工作,但实际工作中他认识到,没有绝对的稳定,只有通过提升自己的能力才能获得真正的安全感。此外,他还提到他在尝试进行开源项目时发现,这方面的工作比想象中更难,需要投入大量的时间和精力来从零开始理解并掌握新的领域。 18 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 19 | 张学长提到,职业晋升的关键在于贡献和主动性。他解释说,如果你在项目中有较大的贡献,或者在解决项目中的难题时表现突出,你甚至可以跳级晋升。晋升的路径通常是从项目组长开始,之后可能晋升为总监,负责更大范围的项目和团队。要在行业内晋升,除了做出贡献,还需要对自己有较高的要求,并且保持较强的主动性去承担更多的责任。 20 | 他也提到,虽然央企在职业稳定性方面相对较好,但依然存在类似私企的“中年危机”。在经济形势不佳时,央企也会有裁员的可能性。因此,他建议要持续提升自己的业务能力,并以创业者的心态去看待自己的工作,这样才能在职业生涯中保持竞争力。 21 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 22 | 张学长提到,近年来国内的主要发展趋势是阿里云的牵头下,中小企业逐渐开始上云。阿里云自身因为有淘宝这样的巨大需求,所以在云计算领域做得非常强。对于中小企业来说,自己购买和维护服务器的成本很高,通过将服务部署到云上,可以大幅降低运营成本。此外,他还提到,虽然中国的互联网消费已经非常发达,但工业互联网化的程度依然很低,这表明中国的工业企业在数字化、自动化方面还有很大的发展空间,未来的潜力巨大。 23 | 在未来几年,张学长预测,随着大模型的兴起,算力将成为一种重要的战略资源,类似于过去通信技术的重要性。特别是对一些中小型创业者来说,由于资金限制,他们可能无法购买足够的计算设备,因此通过云平台租赁算力将成为一个非常实际的选择。另一方面,央企在未来的云计算发展中将承担更多的国家战略任务,不仅要关注盈利,还要确保国家信息安全,防范来自国外的网络攻击。 24 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/@giscus_vue.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": ["../../../node_modules/.pnpm/@giscus+vue@3.1.1_vue@3.5.13/node_modules/@giscus/vue/dist/index.js"], 4 | "sourcesContent": ["import { defineComponent as o, ref as a, onMounted as i, openBlock as n, createElementBlock as r, createCommentVNode as p } from \"vue\";\nconst d = [\"id\", \"host\", \"repo\", \"repoid\", \"category\", \"categoryid\", \"mapping\", \"term\", \"strict\", \"reactionsenabled\", \"emitmetadata\", \"inputposition\", \"theme\", \"lang\", \"loading\"], l = /* @__PURE__ */ o({\n __name: \"Giscus\",\n props: {\n id: {},\n host: {},\n repo: {},\n repoId: {},\n category: {},\n categoryId: {},\n mapping: {},\n term: {},\n theme: {},\n strict: {},\n reactionsEnabled: {},\n emitMetadata: {},\n inputPosition: {},\n lang: {},\n loading: {}\n },\n setup(s) {\n const t = a(!1);\n return i(() => {\n import(\"./giscus-Ci9LqPcC.js\").then(() => t.value = !0);\n }), (e, m) => t.value ? (n(), r(\"giscus-widget\", {\n key: 0,\n id: e.id,\n host: e.host,\n repo: e.repo,\n repoid: e.repoId,\n category: e.category,\n categoryid: e.categoryId,\n mapping: e.mapping,\n term: e.term,\n strict: e.strict,\n reactionsenabled: e.reactionsEnabled,\n emitmetadata: e.emitMetadata,\n inputposition: e.inputPosition,\n theme: e.theme,\n lang: e.lang,\n loading: e.loading\n }, null, 8, d)) : p(\"\", !0);\n }\n});\nexport {\n l as default\n};\n"], 5 | "mappings": ";;;;;;;;;;AACA,IAAM,IAAI,CAAC,MAAM,QAAQ,QAAQ,UAAU,YAAY,cAAc,WAAW,QAAQ,UAAU,oBAAoB,gBAAgB,iBAAiB,SAAS,QAAQ,SAAS;AAAjL,IAAoL,IAAoB,gBAAE;AAAA,EACxM,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,IAAI,CAAC;AAAA,IACL,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,IACP,QAAQ,CAAC;AAAA,IACT,UAAU,CAAC;AAAA,IACX,YAAY,CAAC;AAAA,IACb,SAAS,CAAC;AAAA,IACV,MAAM,CAAC;AAAA,IACP,OAAO,CAAC;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,kBAAkB,CAAC;AAAA,IACnB,cAAc,CAAC;AAAA,IACf,eAAe,CAAC;AAAA,IAChB,MAAM,CAAC;AAAA,IACP,SAAS,CAAC;AAAA,EACZ;AAAA,EACA,MAAM,GAAG;AACP,UAAM,IAAI,IAAE,KAAE;AACd,WAAO,UAAE,MAAM;AACb,aAAO,+BAAsB,EAAE,KAAK,MAAM,EAAE,QAAQ,IAAE;AAAA,IACxD,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,SAAS,UAAE,GAAG,mBAAE,iBAAiB;AAAA,MAC/C,KAAK;AAAA,MACL,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,MAAM,EAAE;AAAA,MACR,QAAQ,EAAE;AAAA,MACV,UAAU,EAAE;AAAA,MACZ,YAAY,EAAE;AAAA,MACd,SAAS,EAAE;AAAA,MACX,MAAM,EAAE;AAAA,MACR,QAAQ,EAAE;AAAA,MACV,kBAAkB,EAAE;AAAA,MACpB,cAAc,EAAE;AAAA,MAChB,eAAe,EAAE;AAAA,MACjB,OAAO,EAAE;AAAA,MACT,MAAM,EAAE;AAAA,MACR,SAAS,EAAE;AAAA,IACb,GAAG,MAAM,GAAG,CAAC,KAAK,mBAAE,IAAI,IAAE;AAAA,EAC5B;AACF,CAAC;", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /src/interviews/22-c-ai.md: -------------------------------------------------------------------------------- 1 | # 22届硕-C-大模型公司AI Infra工程师 2 | ## 可以介绍下您毕业后的工作经历吗? 3 | 毕业后来北京一家AI视觉公司做了一年多,主要是做深度学习框架,写算子、维护框架、支持公司的视觉业务。后来公司财务状况不太好(也和大环境有关,视觉类公司普遍业务下滑),很多员工陆续离职了,业务也越来越无趣,就跳槽到一家大模型初创公司了,也是做类似的工作(框架),但是工作内容更贴近大模型。 4 | ## 目前薪资待遇和工作强度是怎么样的呢? 5 | 薪资应该是高于在互联网大厂的同龄人的,可能是大模型领域初级工程师的平均水平吧,在一线城市还是能过的比较滋润的。 6 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 7 | 最开始想选择一个门槛比较高的领域,所以倾向于去做 Infra 相关的工作而不是做后端或者前端这些更传统的互联网方向,因为个人认为这些方向可替代性很强并且工作强度也会很大。Infra 相对来说由于门槛更高所以可以在工作强度不是很大的情况下获得相对较高的薪水,同时天花板也会更高一些。 8 | ## 这个工作/行业有哪些最令人满意的地方? 9 | 因为在风口,所以总是能看到很多激动人心的新技术出现,可以第一时间学习跟进,同时和行业内的大佬们交流自己也可以学习到很多东西。对于想学习最新技术、把最新的技术落地的研究人员和工程师来说这真的是一个很适合的领域。 10 | ## 这个工作/行业有哪些最想吐槽的地方? 11 | 如果是在初创公司的话可能经常赶due还是要加班的,频率取决于公司业务,在初创公司节奏会更快一些,所以有时候要赶一些上线的时间节点可能连着几天甚至一两个星期工作强度都会比较大一些。另外福利这一块相比互联网大厂和外企还是要差不少的,大部分初创公司约等于没有,对于想要一个很舒适的工作环境的人来说初创公司并不合适。 12 | ## 这份工作/行业带给您最深感受/影响是什么? 13 | 最大的感受是能感受到处于风口的行业的活力。可以和很多大佬并肩战斗、学习最新的paper最新的技术,这个行业的人都是充满了好奇心充满了干劲的人,这种心态能够感染我。 14 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 15 | 我认为程序员晋升主要靠懂技术和懂业务。两者最少得占一个,两个都占最好。懂技术指的是你熟悉行业相关的技术,了解细节、难点。懂业务是你知道公司和行业的情况以及对你的工作的影响。如果两个都懂,那你可以在核心/难点业务上取得突破自然可以走的更远。如果你觉得没有这样的业务或者机会,可以跳槽去有这样的机会的地方,是金子总会发光的。对于一些门槛比较高的方向,可能不是每个人都能接触到的,那就更应该尽早入局成为“行业元老”,这样当行业成熟时你就能享受巨大的红利。 16 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 17 | 这两年大模型行业发展真的是非常迅速。我认为接下去的几年会有更多资本进入这个行业,并且政策会更加利好。我估计之后行业会更卷,包括更快的模型迭代速度、更多的芯片支持、更多的人进入这个行业,政策上肯定也会和更多的传统企业还有高校进行合作。总的来说现在还是行业上升期,我比较鼓励学弟学妹进入这个行业。 18 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 19 | 我简单说一下我对这个行业的理解,对于大模型行业,大致有算法(模型)、框架(训练/推理)、硬件这几个技术上的方向,一个人不大可能同时接触两个及以上的方向(当然不是完全不可能,只是很少很少),所以有意向进入这个行业的同学可以看看自己对哪个方向更感兴趣。 20 | 想要研究模型或者算法的同学需要好好打深度学习的基础,另外还要研究下这几年的一些模型以及背后的思想,这方面我不是专家,网上有很多很多资料大家可以去研究下。 21 | 对于框架,可以理解为在硬件和算法之间的中间层,要做的就是让模型可以高效地在硬件/芯片上跑起来(包括训练和推理),想做这一块的同学可以研究 pytorch、jax、megatron-lm、deepspeed 这些框架的训练代码,推理可以看框架的一些算子的实现,主要是和大模型相关的一些算子优化。 22 | 至于硬件/芯片,主要就是设计好的编程模型让算子可以高效运行,想做这个方向的同学需要学习计算机体系结构相关的知识。 23 | 算法可以在学校实验室里学习或者自学,如果要做框架或者硬件相关的方向我建议在学校的时候去找相关的企业实习,尽早接触相关的技术。 24 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 25 | 脉脉、牛客、企业官网/公众号、微信/qq群、各种招聘app,大家找工作的时候一定要尽可能的收集信息,信息充足是做出合理选择的必要前提。 26 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 27 | 我在春招找实习的时候就比较后知后觉,开始实习比较晚(七月),秋招又犯了同样的错误(专硕赶上了写毕业论文确实也挺忙的),所以秋招的时候也比较被动,比如很多可能能拿到 offer 的面试因为比较晚了就错失机会或者莫名其妙挂了。面经就不分享了网上能找到一大堆,我只想说最重要的一点就是一定要尽早开始!不管准备好了没有,我知道绝大部分同学在找工作找实习的时候都会觉得自己没准备好所以一直拖,但这个策略其实非常糟糕,因为你永远准备不好,只有一直面试->找到自己的不足->补足短板 才是正确的思路。另外不要相信金三银四、金九银十这种说法,现在越来越卷了机会很少,所以一定要尽早开始找工作,把握住先发优势。 28 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 29 | 尽早开始找工作/实习。 30 | 不要迷信老师/学校/实验室能给你多少帮助,这一点可能有点绝对(因为有的老师和实验室确实能提供很多帮助),不过据我了解在复旦大部分实验室提供不了什么帮助,这里也包括上课和做横向项目,对于找工作其实没多少帮助。如果想要想要提升自己在校招的竞争力,我建议自己课外/实验室外多花点时间学习顶尖学校的网课做做lab、多看看paper,如果条件允许的话最好可以去大厂或者知名公司实习。 31 | 通过各种渠道多看看行业和招聘动态,俗话说选择大于努力,要做出合理的选择需要掌握尽可能多的信息,但是大部分人懒得去收集信息,如果你能比别人了解更多,你就有很大的优势。 32 | 如果不确定自己想要做什么,可以都尝试一下。比如可以都学学看或者去企业实习,看一下自己对什么方向感兴趣。 33 | -------------------------------------------------------------------------------- /src/experience/system/three-oil.md: -------------------------------------------------------------------------------- 1 | # 三桶油 2 | 3 | ## 简历投递 4 | 5 | 三桶油里中海油一般是最早出招聘公告的,秋招会在每年的8月底,中石油和中石化也会在9月出招聘公告。具体可以关注公众号“石油招聘网”,或每个公司自己的公众号。这里提一下春招,我们那一年春招的时候还是开了一些岗,据我观察有一些老牌单位是没有在春招放出岗位,所以有想去的单位还是要在秋招试一下。春招也有好处,就是竞争会小很多,据说秋招的报录比是几百比一,春招是几十比一。有认识的同学报中海油,差不多类型的岗位,秋招没有面试机会,春招就进面试了,所以如果有好的岗位可以在春招捡漏。 6 | 7 | 这里再提一个捡漏技巧,在9月统一报名放完岗位后,三桶油还会在官网补发一些通知放出新的岗位,我工作的岗位就是在9月底新增的,因为很多人不知道所以竞争压力小了很多,这就要求大家隔几天去官网上看看,尽量消除信息差。 8 | 9 | 简历投递时一定要去官方的招聘网站,三桶油都不会通过第三方招聘网站校招。 10 | 在招聘官网上,首先按专业搜索适合自己的岗位,计算机类的岗有人工智能算法、软件研究、网络安全、软件开发等,还有很多岗位在名称上没有明确的计算机特点,但是在专业要求里有计算机类,也是可以报的。这里需要注意的一点是,网站会实时显示每个岗的报录比,一般来说人工智能岗位的竞争是最激烈的,如果为了保稳可以在临近截止日期根据报录比考虑是否换岗。其实岗位之间的差异没有那么大,只是在笔面试的时候会有所不同(这点在后面会讲到),进入单位后会再次定岗,这届就有人工智能进来的校招生定岗到运维组、产品组、测试组。项目分下来也都是大家一起合作干一样的工作,所以不要在意岗位,选个报录比低的能稳稳进来最重要。 11 | 12 | 根据专业筛选完岗位后,会发现很多单位都招计算机,但按规定只能报两个志愿,这就到了单位的选择上。三桶油除了集团总部外,都有自己的强势单位、和不那么适合大家的单位,我在知乎上搜过中石油的,进来后只能说知乎说的很准,大家也可以在知乎上搜索看。好在这家单位在知乎上被提到的很多,大家投之前可以搜一下参考一下。 13 | 14 | 如果实在不知道选什么单位,这里也有大方向可以参考,就是未来的政策方向、赚钱的业务方向、起家的拿手方向。这里展开举例,国家政策要求国企数字化改革,那么数智化的研究单位就可以报。国家政策要求大力发展清洁能源,那么新能源的研究单位就可以报。起家的拿手方向,比如中石油在上游的油气勘探业务占优势,它的勘探研究院就属于基石。而中石化在下游的油气炼化业务占优势,它的炼化研究院就属于基石。 15 | 16 | 选好了单位和岗位,就可以投递了,这里需要注意的有两点。一是一定要再次确认自己的专业是否在岗位需求的专业列表里,如果专业不对很可能在简历关就被机筛卡掉,浪费一个志愿。二是要提前准备好所有需要的文件资料,这里以中石化为例,它需要六级英语证书原件的扫描版(有红色章),如果上官网成绩单截图,对面hr是不认的,他只认那个红章。如果报名资料或专业不符合要求,是会有短信提醒的,时刻关注短信,按要求修改就好。 17 | 18 | ## 笔试 19 | 20 | 中石油的笔试有两场,第一场是类似行测的性质,第二场是专业笔试。中石化真正的笔试只有一场 21 | 22 | 中石油的第一场笔试,QS排名靠前的学校会免笔试,所以不用准备。第二场笔试,要求双机位,我考试后看相册,发现后置机位会随机抓拍,所以还是很严格的。这里就涉及到了岗位选择上,之前提过入职后工作内容差异不大,选择报录比低一点的岗位会更稳,但前提是那个岗位的知识你要学过。我当时选择的是网络安全研究岗,整个笔试都是网络安全。前面的填选主要考察该专业的基础知识,后面的大题需要设计技术方案,需要一定的知识储备和项目经验。但是,我认识的同学都没有在这一轮笔试被淘汰过,所以放平常心尽力答题就好。 23 | 24 | 中石化真正的笔试只有一场,就是被QS靠前免去的行测。还会有一场不限答题时间的介于心理测试和综合测评之间的测试,当时一顿乱填过了,通过并不难。 25 | 26 | ## 面试 27 | 28 | 中石油的面试有两场,一场基础面,一场ppt面。中石化只有一场ppt面。 29 | 30 | 中石油的基础面十分钟,是你所报岗位的主任来面。会问最基础的八股,项目经历。然后最重要的,会问你这个方向的技术前沿动态,有很多人会卡在这里。我选的偏冷门的网络安全研究岗位,竞争没那么激烈,大概是8个人里,会有1个人进入下一轮面试。 31 | 32 | 中石油的ppt面则比较极限,一般是今天中午告知题目,明天早上8点前就要求把ppt做好发到hr邮箱,然后讲ppt,讲解限时15分钟。题目说实话很难,需要搜查大量资料,我当时是直接通宵了。这轮主要是把ppt做的美观,然后讲的时候自信流畅别磕巴,就基本成功了。这一轮是5个人里,有1个拿到offer。 33 | 34 | 这里提一下做ppt的要点,千万不要整页都糊满字,这种ppt做得像word一样的,基本就废了。每页只放一两行字说明该页的主要内容是啥,剩下的部分放图和表。在配色上,以暖色系为主,如果需要对比说明再涉及冷暖色系。如果能找到数据,最好量化,比如你想说明重要性,百分之多少的企业已经做了,肯定是比大部分企业已经做了更有说服力。最重要的是,最后一定要把技术落实在石油化工领域,比如你讲大模型,最后一定要说这个技术如何应用落地在中石油,能为中石油带来什么,而不是在那里纯讲技术,领导关心的永远不是技术,而是技术落地后能带来什么效益,但这就需要你真的了解这个单位的实际情况,这里提一个技巧,可以去搜该单位的公众号。我面试前不久,刚好中石油参与了一个网络安全大会,会上有大量的网络安全技术落地场景文章都发在公众号里,我觉得我面试时这绝对是加分项,因为面试官问了我是从什么渠道了解到这么多相关材料的,并表示了赞扬。 35 | 36 | 中石化的面试只有一场,是ppt面,也是限时15分钟。但是它没有限定题目,就要求把你上学阶段研究的成果做一个介绍汇报,更类似毕业论文答辩简短版,所以难度不大。但是它时间和国网面试撞车了,所以我并没有参加。这一轮面试是10个人里,有1个拿offer,但面试开始前大概有6个人在群里表示放弃面试,所以只要坚持到最后,就有很大的概率拿到offer。 37 | 38 | ## 签约 39 | 40 | 中石油每轮面试和出结果都间隔一周,如果一周还没收到消息基本就是凉了。二面一周后会有hr打电话谈薪谈福利,如果放弃就结束,如果接收就会签两方(两方违约也有违约金)。然后大约一月中下旬会在官网公示名单,没什么问题就可以签三方了。这里补充一点的是,中石油会等延毕的学生,在国企里属于极少数,这一届单位里有一个9月才能入职的,还有一个明年1月才能入职的,都给保留了岗位,有毕业压力的小伙伴可以考虑。 41 | -------------------------------------------------------------------------------- /src/guidance/finance.md: -------------------------------------------------------------------------------- 1 | # 金融业 2 | 3 | ## 银行选岗二三事 4 | 5 | 许多CSer在找工作前可能听说过,计算机专业毕业后可以去银行。一般来说,大家对银行的印象是,相较于互联网大厂,银行的薪资可能略低,但工作强度较小,且相对稳定。然而,对于自己究竟该进入哪些银行机构,适合选择哪些岗位,往往并没有太多的了解。希望本篇能够为回答这两个问题提供一点参考。 6 | 7 | ## 银行种类及组织架构 8 | 9 | 商业银行是金融行业的基础,但当前金融行业面临整顿,银行贷款利率降低,且有些面临坏账风险,国有银行员工还面临降薪压力。短期内银行业面临诸多挑战。 10 | 11 | 在银行种类上,主要有如下分类: 12 | 13 | 1.宏观货币政策机构:央行(中国人民银行)。 14 | 15 | 2.政策性银行:包括国家开发银行(2015年被定位为开发性金融机构)、中国农业发展银行和中国进出口银行。 16 | 这类银行是以贯彻政府的经济政策为目标,在特定领域开展金融业务的不以营利为目的的专业性金融机构,不对大众提供储蓄业务。 17 | 18 | 3.国有银行:工商银行、农业银行、中国银行、建设银行、交通银行和邮政储蓄银行。 19 | 是指由国家(通常借由财政部、中央汇金公司出资)直接管控的大型商业银行。 20 | 21 | 4.股份制银行:如招商银行、光大银行等。 22 | 一般有企业法人持股 23 | 24 | 5.地方城商行:如北京银行,宁波银行等。 25 | 大股东一般是地方政府、国有企业或大型公司 26 | 27 | 6.外资银行:如渣打,恒生等。 28 | 29 | 以及农商行信用合作社等机构。 30 | 31 | 对于应届生来说,可以先有一个粗略的理解:央行、政策性银行、国有银行、股份制银行从左到右逐渐偏向市场化企业,而从右到左则逐渐更像机关。其中,人民银行是国务院的组成部门;政策性银行和除邮政储蓄银行之外的国有银行均为金融央企,总部除了交行在上海之外,其余全在北京;其中邮政储蓄银行是中国邮政集团的全资子公司。通常越往左边,行业地位更高,稳定性更好,但薪资成长比较平稳;越往右边,薪资涨幅空间越大,相应地也要承担更多市场化的竞争。 32 | 33 | 在组织结构上,银行通常采用总行(及总行直属机构和子公司)-省分行-支行的架构。我们日常去办理业务的网点通常是支行。在这些岗位中,部分省分行(尤其是政策性银行的省分行)和一些总行直属机构/子公司(如理财子公司)及总行机关都是很值得考虑的工作单位。 34 | 35 | 对于应届生来说,总行机关通常在行内地位、发展平台和稳定性方面表现更佳,因此竞争更加激烈,门槛也更高。政策性银行和国有银行总行因在各方面表现均衡(六边形战士),每年都是报考的热门。其中,普遍认为建设银行总部的待遇最优(在北大BBS上被戏称为“剑宗”)。政策性银行里,农发行总行待遇也很不错,应届生同学可以多关注。 36 | 37 | 然而,国有行总行未必对所有应届生都是最合适的选择。一些省分行、子公司和直属机构以及股份制银行,由于更接近业务前线,可以提供更高的薪资水平和更广的跳槽空间。同时,性价比也是一个重要考量因素。比如,某政策性银行的省分行在薪资上并不比总行低多少,但所在城市的生活成本却远低于北京。此外,兴趣爱好也需考虑。有些同学热爱编程,志在技术深耕,那总行机关甚至整个银行业可能都不适合他们。在选择时,不要盲目跟风。根据自身情况和需求进行取舍,才是更明智的做法。 38 | 39 | ## 岗位种类 40 | 41 | 近年来,随着金融科技的发展,银行业迎来了一波信息化改革,因此提供了大量计算机专业毕业生可以报的岗位。这些岗位主要分为两类: 42 | 43 | 1.机关类型单位:如总行金融科技部或其他总行部门。这类岗位的职责类似于产品经理或项目管理,主要负责对接业务部门和技术部门,沟通和翻译工作较多。HC可能集中在金融科技部,也可能在业务部门或中后台部门单独招收具有技术背景的毕业生。 44 | 45 | 2.IT技术类型单位:如总行直属的数据中心、软件开发中心或金科子公司等。这类单位主要承担全行日常运营维护、软件开发和数据分析等任务,岗位性质更接近程序员。 46 | 47 | 对于总行机关类型的单位,得益于金融科技的火热,除了中后台部门外,总行大量前台业务部门也允许计算机类专业应届生报考,以建设银行总行2024届校招为例(如图\ref{岗位表}所示),40多个总行部门校招,其中有30多个部门计算机类专业可以报考,横跨前中后台,其中包括核心业务部门(如金融市场部,公司业务部等),核心职能部门(如党委办公室等),以及一些很好的后台支撑部门(安全保卫部等)。进入之后,总行不同部门之间会有流动性,有机会转到其他部门,做与专业背景相关性不大的金融业务工作,更何况业务部门本身也招收计算机专业的毕业生,部门内部的分工更非一成不变。因此,这类岗位非常适合那些不希望未来工作主要以编写代码为主的同学,类似于公务员的工作性质,也需要撰写大量的公文材料。具体内容可参考[北大BBS某热门帖子](https://bbs.pku.edu.cn/v2/post-read.php?bid=99\&threadid=18321878)。 48 | 49 | 对于IT类技术单位,如交通银行软件开发中心、数据中心,邮储银行数据中心,以及建信金科等,通常是总行直属机构(条线)或子公司。这些单位近年来为应届计算机科学专业毕业生提供了大量岗位,包括开发、运维、产品管理、AI算法等,主要承担银行的IT研发和日常运维任务。相比互联网行业,这类单位的工作强度相对较小,但仍然存在一定的工作压力。例如,数据中心的运维岗位需要定期值班,工作并没有想象中那么轻松。在薪资方面,起薪和涨幅通常也低于互联网行业。但是很稳定,且有一些地点在二线城市的单位综合性价比很高(如邮储行在合肥的数据中心)。适合那些追求工作稳定、厌恶高强度的同学。 50 | 51 | ## 报考注意事项 52 | 53 | 报考方面,中国人民银行作为国务院组成部门,2023年机构改革之后,需要通过公务员国考渠道进行报考。而其他各银行则会在每年秋季开展校招工作,同学可以通过各家银行的校园招聘网站进行报名。需要注意的是,多家银行的招聘对英语能力有一定要求。例如,建设银行总部要求报考者通过大学英语六级考试(成绩不低于425分)或其他同等水平的英语考试成绩;进出口银行总部则要求六级成绩达到450分及以上,或其他同等水平的英语考试成绩。因此,想要报考的同学需提前了解往年要求,并准备好英语成绩,以免失去报考资格。 54 | 55 | 考试通常包括笔试和后续的面试,更多地采用类似体制内的考察方式。笔试主要涵盖行政能力测试(行测)、专业知识、英语以及单位的特色文化知识(如标语、理念、发展历史等)。专业知识部分包括金融知识和信息技术。有些银行在笔试时会根据专业和岗位将考试分为两张试卷(金融类/信息科技类),如中国银行。 56 | 57 | 信息技术类的考察内容虽然较为基础但涉及面广,需要广泛备考。即使是信息科技类的考试,也会涉及少量的金融知识,建议在备考时粗略了解一些基本的金融常识。具体笔面试可以参考第二章节,一般银行面试问的技术问题都比较少(甚至没有),即使是技术单位技术岗也相对较少,通常也只是验证一下对简历项目的了解程度。 58 | -------------------------------------------------------------------------------- /src/experience/others/manager.md: -------------------------------------------------------------------------------- 1 | # 主管面 2 | 3 | 主管面一般都是单面,单面是最常见且基础的面试形式,可能是一对一的面试,也有可能是多对一的形式。你可能会面对多个业务骨干和HR,也可能只是与一个部门主管进行交流,但不论如何,面试者始终只有你一个人。 4 | 5 | 无论是大厂还是央国企,主管面都是整个面试过程中最关键的一环。面试官通常是主管或领导,他们通过这轮面试来了解新人,不仅决定候选人是否能够获得offer,还可能影响最终的岗位分配。 6 | 7 | 由于面试官的身份,他们对候选人的评估具有一定的影响力。根据学长姐们的经验,如果你在面试过程中与面试官交流愉快,即使最终因为人岗不匹配等原因,而未能获得该岗位的offer,也可能带来意想不到的收获。例如,面试官可能会将你的简历推荐给其他部门或不同的岗位、城市base。甚至能提供更好的机会让你去尝试,比如一些原本BG无法接触到的或无法通过简历筛选的岗位机会。因此,值得大家好好去把握。笔者根据自己的面试经验,以及采访过中学长姐们给到的一些建议,总结成以下几点经验,希望能给学弟妹们提供一些有效的参考: 8 | 9 | ## **1.与其说是考试,其实更像相亲** 10 | 11 | 在这里将主管面比作相亲,是因为在这类面试中,面试官通常不会过多考察具体的知识和技能,而是更倾向于通过聊天的形式了解候选人。例如,他们会问一些类似“你做过的最有成就的一件事是什么”,或者“在面对压力时你通常怎么处理”这样的问题。通过这些问题,希望在对话中了解面试者是个什么样的人,以及了解一些你对于工作岗位的需求和看法,来判断一下你和岗位的匹配度。 12 | 13 | 在采访过程中,许多受访者提到,他们在面试时感觉自己回答得并不完美,但最终却收到了offer。入职了之后才发现,原来是当时的面试官觉得自己很特别。很多时候,这类面试的结果并不像考试那样单纯取决于回答的正确性,而更多取决于双方微妙的**情绪互动**。也不像考试一样是单向考察,而应该是**双向选择**。 14 | 15 | 一个理想的面试结果,是双方都聊得很愉快,并且互相留下了深刻的好印象。那么,如何才能实现这样的结果呢?实际上,这很大程度上取决于缘分。同样的表现,在不同的面试官眼中可能会产生截然不同的印象。因此,在面对这种不确定性时,我们需要做好自己能掌控的部分。这里笔者的建议,是一个在采访中各位学长姐频繁提到的词:**真诚**。 16 | 17 | ## **2.宁可直白坦率,别做拙劣的骗子** 18 | 19 | 有些同学在面对面试时,可能对自己的经历没有足够的信心,于是会编造一些“高大上”的虚假经历,或者为了迎合自己以为的面试官喜好,违心地回答一些问题。我的建议是,千万不要这样做! 20 | 21 | 首先,我们作为学生,经过了这么多年的规训,其实很难在面试时扮演一个“高明的骗子”。特别是在面试过程中,面对不对等的压力,撒谎时的飘忽眼神、颤抖双手,都可能瞬间暴露自己。那些经验丰富的面试官一眼就能看出你在乱讲,一旦他们对你的诚实产生怀疑,那基本就无了。 22 | 23 | 其次,即使侥幸通过了面试,拿到了offer,这也未必是件好事。关键在于,我们是否真的愿意为了拿到一份工作,而违心地进行**诉求表达**。我的建议是不要这样!因为通过这种方式拿到的offer,很可能并不符合你的真实需求。没有拿到这份工作未必是坏事,反而进入一个不适合自己的岗位,结果会更加痛苦,甚至难以脱身。 24 | 25 | 举个例子,如果面试官问你:“你能接受高强度工作和频繁加班吗?” 你本来内心是不能接受的,但为了拿到offer,违心地回答:“加班让我成长,我乐意接受。” 最后,或许你确实拿到了这个996的岗位,但工作后可能会发现自己难以承受这样的压力。这时,你可能会后悔当初没有诚实表达自己的需求。其实,如果你当时直接说:“我不喜欢加班,但我很需要多赚钱,我可以为了更多的薪资忍受一点加班。” 反而会让面试官对你的态度更加理解和尊重。 26 | 27 | 正如之前提到的,面试是一个双向选择的过程,我们不仅在争取offer,也在选择未来的工作环境。许多学长姐在面试中也提到,他们对面试官的感受很大程度上反映了之后的工作体验。面试你的主管,很可能就是你未来的直属领导,甚至是更大的领导。是否和这些人合得来,直接影响你未来的工作满意度。 28 | 29 | 因此,在面试时,真诚地表达你的感受和需求,往往会收到更真诚的反馈,甚至可能获得一些意想不到的建议或机会。这非常重要!它可以帮助你提前筛选出不合适的工作环境。找工作时,我们追求的不是拿到的offer数量(SUM),而是找到最适合自己的机会(MAX)。在这个过程中,不必担心错失一两个offer。这个世界很大,我们的专业能找到的岗位也很多。只要坚持海投,即使临近毕业,依然会有很多好机会。实在不行的话,延毕也并不是一个糟糕的选择。 30 | 31 | 反而,拿到太多差强人意的offer,可能会让你有了“保底”的懈怠,失去斗志,从而错过最佳机会。 32 | 33 | ## **3.你是孤天里的鹤,不是写满字的纸** 34 | 35 | 有些同学在自我介绍或讲述自己经历时,可能会觉得自己的背景平平无奇,没有特别拿得出手的内容,于是倾向于在网上寻找一些通用模板来包装自己。然而,这样的方式未必能够产生好的效果。主管往往会对那些雷同的故事和话术感到厌倦。那么,应该怎么做才能脱颖而出呢? 36 | 37 | 这里分享学长姐的案例: 38 | 39 | 其中一个是在主管面试过程中被问到:“请用几个词描述一下自己。” 这是一个非常常见的问题,通常的回答往往会用“坚持、认真、抗压能力强”等词汇来夸夸自己。而这位学长当时的回答却是“幸运”。他讲述了自己原本可能不会走到今天,是因为一路上遇到了很多人的善意和帮助,才有了现在的机会。这一回答在面试官心中留下了非常深刻的印象(入职后的反馈),并且他最终获得了超过预期的offer。 40 | 41 | 通常我们在面试中描述自己的成就时,总是希望能强调自己的能力和优势,而“幸运”这个词似乎会弱化个人的努力和付出。然而,这种真实而谦逊的回答却让他的表达更加独特。它传递出一种对外界帮助的感激,以及对自身机遇的珍惜。这种真诚反而更能打动人心,效果也出乎意料地好。 42 | 43 | 另一个案例是当被问到“你对自己最自豪的事情是什么”时,有人这样回答:“我最自豪的事情是,我是非科班出身。” 44 | 45 | 通常非科班背景被认为是劣势,但如果你能够和许多科班出身的人竞争并走到主管面前,这本身就证明了你对行业的强烈热情、出色的学习能力以及执行力。为了追求自己的目标,你付出了比常人更多的努力,这反而是独特的优势。 46 | 47 | 很多被大众认为是劣势的特点或经历,其实都可以被反诠释,赋予新的价值。这不仅仅是一种包装技巧,更是心态上的转变。我们需要超越优绩主义的视角,去发掘那些曾经被忽视,但实际上自己真正认同、并能赋予我们独特价值的东西。 48 | 49 | 每个人内心都有一些让自己感到自豪的故事,然而我们往往因为害怕它们显得“不够高大上”或“不够体面”而选择回避这些内容。然而,那些看似微不足道的故事,可能正是你与众不同的所在。要勇敢的把这些相关的情绪、感受、细节挖掘出来,讲述出来,这个故事里面的情绪和细节填充的越丰富,就越容易构建起画面,引发共鸣。 50 | 51 | 不用害怕被否定,就像前文所述,主管面试更像是一场相亲。我们不需要用套路去取悦所有人,而是要找到真正欣赏我们的团队和工作环境。海投和面试不是为了“集邮”,而是为了找到那个最适合自己的机会。 52 | -------------------------------------------------------------------------------- /src/in-school/competition.md: -------------------------------------------------------------------------------- 1 | 2 | # 学术竞赛 3 | 4 | ## 本科 5 | 6 | ### 算法类 7 | 8 | 1. 国际大学生程序设计竞赛(ACM-ICPC): 9 | 由美国计算机学会举办,计算机领域的顶尖程序设计大赛,含金量高。 10 | 一般是三个人组成一队使用一台机器,在比赛时有多次提交机会。比赛实时评测并返回结果,如果提交的结果出错,则会有 20 分钟的罚时,错误次数越多,加罚的时间也越长。每个题目只有在所有数据点全部正确后才能得到分数。比赛排名根据做题数来评判,做题数相同的,根据总用时来评判。总用时是每题用时的和。每题的用时是从比赛开始到做出该题的分钟数与该题的罚时之和。 11 | 2. 中国大学生程序设计竞赛(CCPC):与ICPC赛制相似。 12 | 13 | 这两个都是经典的算法比赛,感兴趣的同学可以在入学第一个学期参加校内程序设计比赛,取得成绩后进入ACM队进行训练。 14 | 15 | ### AI类 16 | 17 | **Kaggle:** Kaggle 是一个进行数据发掘和预测竞赛的在线平台。 18 | 19 | 竞赛项目由公司等需求方提出,可以理解为一个“众包”平台。选手通过出题方给予的训练集建立模型,再利用测试集计算结果进行评比。在截止日期之前,所有队伍都可以自由加入竞赛,或者对已经提交的方案进行完善。 20 | 在统计、数据科学等领域认可度很高,不论是求职还是留学,Kaggle都可以作为简历中的闪光点。 21 | 22 | Kaggle现在的知名度相比前几年高了不少,不论是Research还是Featured,取得成绩并不容易,但依旧可以充分利用Getting Started和PlayGround板块通过实际应用场景进行联系,会对数据分析能力有很大提升。 23 | 24 | ### 安全类 25 | 26 | 1. 全国大学生信息安全竞赛: 27 | 全国性质的安全大赛,每年一次,分为初赛和决赛,以团队形式参赛,每队不超过4名同学,时间跨度大致从3月到9月,分为作品赛(提交工程作品)和实践赛(攻防实战),含金量高。 28 | 复旦大学在该比赛中的历届参与及获奖度高,多次获得作品赛和实践赛的一等奖,有兴趣可以提前与校内有过参赛经历的学长学姐请教(比如白泽战队成员),一起参赛。 29 | 2. “强网杯”全国网络安全挑战赛: 30 | 全国性质的安全大赛,每年一次,分为线上赛、线下赛、精英赛,以团队形式参赛,时间跨度大致从12月到次年1月,线上赛报名每队不超过10名队员和1名指导教师;线上赛获奖赛队可申请参加线下赛,且同一单位只能出线1支赛队,线下赛每队不超过4名队员和1名指导教师;成绩优秀参赛队还会被邀请参与精英赛。赛事都是以解题的形式进行,赛事奖金较为丰厚。 31 | 32 | ### 单项能力 33 | 34 | **全国大学生计算机系统能力大赛(CPU设计赛、编译系统设计赛、操作系统设计赛-OS内核实现赛道、数据库管理系统设计赛):** 35 | 36 | 该比赛是一系列比赛的集合,考察的是参赛者对计算机底层的理解与实现,这些赛事每年都会举行一次,并且对于计算机专业的学生而言,都有相对应的基础课程需要学习,可以去上相应的荣誉课程,在充分实现相对应的课程Pj后冲击相对应的底层赛事。大部分赛事都分为设计赛和挑战赛,设计赛一般实现相应的架构比较跑分或丰富度,挑战赛则会给出具体的题目要求进行设计。 37 | 38 | 具体来说,CPU设计赛占用整个暑假时间,最终产物是跑在FPGA实验板上的CPU,可以在大二下学习完计算机体系结构课(该课程需要实现流水线CPU)后和同学组队参赛,该赛事学校参与也较为活跃,老师也会在课上进行宣传,几年前也有团队拿过冠军。 39 | 编译系统赛事占用整个暑假时间,最终产物是一个编译器,可以在大三下学习完编译原理(该课程中会实现一个助教设计的语言的编译器)后和同学组队参加,老师同样会在课堂中组织,这几年复旦在该赛道也多次获奖。 40 | 操作系统的比赛战线较长,一般上半年2月就开始报名,战线从上半年的学期到暑假这段时间,所以可以在大三上学习完操作系统(该课程会实现一个类似于xv6的简易OS)后与同学组队参加。老师会在课堂中宣传,这几年复旦在该赛道也多次获奖。 41 | 42 | 数据库的比赛进行时间同样是暑假,但以我知道的情况学校的参与度不高,我之前也并未在数据库课程中进行数据库的实现。 43 | 44 | ### 应用类 45 | 46 | **全国大学生软件创新大赛:** 47 | 这个比赛是要求学生提交应用类软件,根据比赛给出的不同主题提交作品进行评比。比赛分为区域赛和全国赛,时间跨度大致为每年的10月到次年5月, 以组队报名形成参赛,每个参赛队人数不超过 5 人(其中队长 1 名,指导教师 1 名,指导教师必须为教师,其他队员不超过 3 名),支持跨专业组队和本科生、研究生混合组队。 48 | 从官网得知,该赛事的主题范围并不局限,有很大发挥空间,不过要注意的是软件作品须基于 Android 平台进行开发,需要有相应的开发能力。 49 | 50 | 上述部分竞赛同时是复旦大学本科生推免加分的指定竞赛,详情请参见复旦大学本科生学科竞赛工作管理办法适用竞赛表 51 | 52 | ![img](./images/competition.png) 53 | 54 | ## 研究生 55 | 56 | 1. 竞赛要有一个人做完的准备。在大学里虽然有很多同学对参加竞赛的兴趣很大,但如果真的要完成一件事情的时候,大家都有各自不同的选择和方向。刚开始大家都想把事情做好,但到后面每个人可能都有属于自己的生涯规划。 57 | 58 | 2. 竞赛并没有想象的那么难。很多比赛主办单位,承办单位并不一定是非常有影响力的。另外大家可参加的比赛众多,可能拿奖并没有你认为的需要天赋、努力、机遇。多参加比赛能让你对这一个过程不断熟悉,甚至只要有经费,你自己都能办一场比赛的地步。但肯定要有一项,持续的努力。 59 | 3. 研究生的竞赛请更多的去参加偏向科研学术类型的竞赛。如NIPS,CVPR等国际会议举办的竞赛或由知名大公司举办的竞赛。国际会议竞赛往往有更高的认可度,参加的人员有很多大佬,在参赛期间,可以进行更多的交流和分享,他们可以是你未来高质量的学术伙伴或者竞赛合作伙伴。知名公司的竞赛往往带有选拔性质。如果你参加知名公司的竞赛,最后的内容质量高,会收到对应公司的意向申请以及未来的合作申请。个人认为在很多时候,竞赛带有筛选性质,它能让你在一群人里被组织者看见,并对你伸出橄榄枝。请更多的把握这段内容,很多的朋友都因为参加国际会议竞赛和大公司竞赛而获得不同的机遇。 60 | 61 | 4. ACM和RoboCup是大厂和大学导师非常看重的含金量极高的竞赛(ACM毋庸置疑,RoboCup主要机器人方面),但准备时间和竞争激烈程度也很高。如果你获得了相应奖牌,那恭喜你。但也不要太骄傲。因为这两年越来越多的人卷ACM,它已经变成了含金量极高的竞赛,而并不再是大厂ssp的敲门砖了。但依然是在计算机领域不可撼动的、非常重要的竞赛。 62 | 63 | 5. 竞赛如果不是个人参加,则需要考虑团队配合。你可能需要更多的协调团队的工作,有时候团体比赛比个人赛更麻烦。因为团体赛,你的团队并不是一个像你一样,人人都独挡一面的人,可能大家都有自己需要忙的其他事情,因此协商是一件非常必要的事情。真重要的事情,请以自己作为最后兜底。 64 | 65 | 6. 竞赛很多时候只是研究生生涯的一部分,看淡一些。多体验不同的生活,不同的竞赛会有不一样的举办地点,可以去外面认识不同的人,了解不一样的风土人情,不一样的风光,这也是一段非常有意义的生活体验。 66 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | **English** | [简体中文][readme-zh-link]
4 | 5 | [readme-zh-link]: ./README-zh.md 6 |
7 | 8 | ## Preface 9 | 10 | Currently, it's been almost a year since the 2024 Fall recruitment season started. During this time last year, many graduate students were nearing the end of their two-and-a-half-year master's program. For many, not only were they busy preparing for their graduation thesis, but they were also anxiously looking for jobs. My own campus recruitment process started at that time and lasted until April of the following year. It was a journey full of emotional ups and downs—from initial nervousness, to self-doubt in the middle, and finally confusion when making job decisions. After everything settled, there were so many thoughts I wanted to share. With the end of my student life approaching, I wanted to leave something behind at Fudan. Therefore, in April this year, I had the spontaneous idea of creating this handbook. After the collective efforts of many, we now have a preliminary version. 11 | 12 | This handbook is intended to help our juniors and give them some guidance and comfort in the process of their job search. 13 | 14 | ## Handbook Structure 15 | 16 | This handbook currently consists of four chapters: 17 | 18 | - Chapter 1: Available Resources at Fudan and Campus Recruitment Preparation 19 | - Chapter 2: Editor's Experience Sharing on Fall and Spring Recruitment 20 | - Chapter 3: Career and Job Selection Guide 21 | - Chapter 4: Interviews with Seniors 22 | 23 | The current version contains 18 experience sharing articles and 19 interviews, with most of the content focused on Chapter 2 and Chapter 4. This is the Beta version, as some content still needs to be filled in, especially the Career Guide in Chapter 3. This section involves insights and analyses of different industries, and as the editors are recent graduates, we are unable to provide in-depth views solely based on personal experiences. We will be gathering more interview information to complete this section. We hope for your understanding and patience. 24 | 25 | The reason for releasing the Beta version now is to allow the juniors to benefit from the available content before the recruitment season ends. We hope this can provide additional information for reference. At the same time, we hope that through the circulation of this handbook, we can connect with more alumni and industry seniors who are willing to share their experiences. If you happen to come across this handbook and are willing to participate in an interview or assist with editing, please contact me at <21210240339@m.fudan.edu.cn> or leave a message through the WeChat public account "破蛋计划Beta". 26 | 27 | ## Closing Remarks 28 | 29 | Finally, I hope this handbook can not only provide practical help in terms of information but also encourage juniors who might face setbacks in their campus recruitment journey. After working for some time, I realized that no matter how well we prepare or how much information we gather, the final outcome largely depends on fate. Without experiencing a job firsthand, it's hard to understand its impact and significance to oneself. So, even if the outcome of campus recruitment isn't as expected, it's not the end. In this uncertain world, it's hard to say that it won't eventually turn into a blessing in disguise. 30 | 31 | As one senior said during the interview: "Life is a marathon." In the long run, campus recruitment is just another small hill on the road of life, and there is more than one correct path ahead of us. As someone who has been through it, we all have faced the same struggles and emotional ups and downs. Looking back at this journey, I really want to tell the juniors who are struggling: "Keep going, don't worry. Although the process might be painful, you will eventually overcome the hill!" 32 | 33 | Wang Shicong, 2024.09.08 34 | -------------------------------------------------------------------------------- /src/experience/internet/product/index.md: -------------------------------------------------------------------------------- 1 | # 产品经理 2 | 3 | 本篇内容整理自编者对佩奇(化名)的采访录音。佩奇是一位985本科、港三硕士的2023年cs科班毕业生,目前在一家互联网大厂担任产品经理。编者整理了其中与求职经验相关的部分内容,并以第一人称的形式呈现。 4 | 5 | ## 准备 6 | 7 | 首先,如果你和我一样是计算机相关背景的同学,或者来自其他背景但想转行做产品经理,又不知道从何下手的话,我的个人建议是,如果时间充裕,最好是先去找一个创业方向的项目,组建一个团队并推动它完成,比如参加一些创业的比赛之类的去完成这个事情。为什么这么说呢?因为我在面试时发现,面试官最看重的一点是,你是否有创业经历,或者是否有带领团队完成项目的经验,最好是跟软件或互联网有关,如果无关,那你组建一个二手交易团队之类的项目也ok。因为其实产品经理最重要的能力就是你能把团队拉起来,然后让大家跟着你去干事情。在我的求职过程中,我注意到简历上大家都在写自己的实习经历。但其实如果你有创业的经历,面试官通常会更喜欢。 8 | 9 | 另外一个重要的准备就是提前实习,多实习几家,多去找大厂的产品实习(小公司的产品实习感觉不如创业项目重要),尤其是秋招前的那个暑期实习,大概3,4月份就要开始找,如果暑期实习表现的还不错的话,会有留用的HC,那你就可以拿到一个转正的offer。秋招的时候就会相对没有那么大的心理压力。另外一方面,是大厂实习会给你带来一些靠谱的项目经历,可以在秋招面试的时候讲,会很有帮助。还有一点,多实习可以让你体验到不同的公司的不同的岗位,然后去找到你到底喜欢什么工作环境,这非常重要! 10 | 11 | 如果你的时间不够,且不足以做以上这些准备,在没有产品经理相关的背景下,我的建议是,首先要了解一下产品经理到底是做什么的。你只需要对产品经理的工作内容有一个基本的了解就行。因为我之前也去网上查阅了很多资料,也跟很多同学聊天交流过。我参加了不少面试,发现其实面试的时候,考官并不会非常严格地考察你的产品经理专业能力,更多的是考察你的软性实力。比如说你的沟通能力,你能不能和别人很好地沟通,能不能把事情讲清楚讲明白;再比如你的逻辑思维能力是否过关,是否有一些很好的创意并能够付诸实践等等。 12 | 13 | 如果你真的想做产品经理,用有限的时间去打磨或者包装这些软性技能可能比去学一个PMP或者项目管理课程更重要。很多人可能会去网上找一些产品经理的项目来包装自己,但我觉得这种做法并不好。 14 | 15 | ## 实习转正小技巧 16 | 17 | 当初暑期实习时,我把所有的赌注都压在了这份实习上,因为身边的人都说有转正的机会,所以我没有考虑其他实习机会,也没有提前参加秋招的提前批。很多人都提到,大厂的实习至关重要,尤其是暑期的三到四月份,这是一个关键时间段。大厂的提前批通常启动得比较早,可能在三到五月份就已经开始,到了六七月份更是如此。秋招的实习机会通常在六七月份就已经出现了,如果你能赶上第一批投简历,机会就会大大增加。虽然有“金三银四、金九银十”的说法,但在大厂,这个时间节点可能会稍微提前一点。 18 | 19 | 当时我没有投其他简历,因为转正通知的时间相对较晚,等到8月中旬才通知。这就带来了一个问题:当我收到转正通知时,秋招的提前批已经结束了。此外,在等待转正结果的过程中,我感到非常痛苦,几乎每天都带着痛苦的面具去上班。后来,我和一些同事交流时,他们告诉了我一个非常有用的小技巧。 20 | 21 | 如果你在哪个公司实习,并且觉得这个地方无法转正,或者想换个部门的话,你要抓紧利用公司内部的通讯工具,私聊其他组的面试官,或者找相关的同学帮忙打听情况。比如说,你的同学在其他组工作,可以请他帮忙问问,看看其他组有没有缺人的情况。如果有机会,你就可以尝试转过去,哪怕不面试也可以去了解一下情况。 22 | 23 | 当时,我也是动用了各种人脉,包括之前给我模拟面试的面委会的面试官。我私聊了他,说“你好,你还记得我吗?之前我在面试中跟你聊过。”然后他回答说记得我。我就继续说,我这边可能转正有一些问题,问他那边有没有相关的组缺人,我想再试一下。这样他就给了我一次机会,让我去尝试面试其他组。 24 | 25 | 另外,我还找了我的研究生同学,他是技术岗的,我请他帮忙问一下对应的产品部门有没有招人。同样,我找了本科同学,他在其他部门工作,也是技术岗的,让他也帮忙问问相关部门有没有招人。 26 | 27 | 总之,如果你在实习的这条路上遇到瓶颈,不妨主动一些,去找其他路径,看看能不能让你的路走得更好。要迈出这一步,主动去试一下,就会有机会。 28 | 29 | 其实很多理工科的同学,包括我在内,都不太主动,特别是非技术岗的同学更是如此。但如果有人告诉你这条路是可行的,我觉得你应该尝试一下,毕竟尝试一下总有可能成功,如果你不试,那肯定就失败了。尤其是非技术岗的同学,一定要主动一点,机会就在你主动迈出的那一步中。 30 | 31 | ## 秋招经验 32 | 33 | ### **坚持海投:** 34 | 35 | 一定要多投简历,我的建议是每周保持一定的节奏,大概投15个公司左右,涵盖15到20个岗位。第一周投简历,第二周就会有笔试和测评,然后顺利的话,第三周可能就会有面试。不顺利的话,面试的时间可能会不确定,需要耐心等待。 36 | 37 | 我当时前前后后总共投了大概有100多个岗位,并用飞书文档做了一个记录。我也建议大家,如果你真的全身心地投入找工作,可以用一些文档工具记录下你投了哪些公司、哪些岗位,以及每个岗位的进展情况。这样至少可以帮助你掌握整个节奏。 38 | 39 | 最终,我大概参加了30到40场笔试,包括测评等内容。而面试的数量大概在二三十场左右。其中有一半的面试在一面的时候就被淘汰了,剩下的一半如果二面顺利的话,通常二面三面都能通过。总之,我陆陆续续地面试了很多公司。这样能收获很多机会,也能高频率的去训练我们应对面试的能力。 40 | 41 | ### **笔试部分:** 42 | 43 | 笔试主要就是综合测评,比较类似公务员考试的行测,反正网上有题库,自己多做一做就妥了 44 | 45 | ### **面试部分:** 46 | 47 | 在面试过程中,最最重要的一点是自我介绍。一定要把自我介绍讲清楚。如果你的经历比较多,只需要挑两个重点来说,比如说你的一段校园经历。把这段经历讲清楚,并且适当地给面试官“挖坑”。比如,我在面试时会提到“我组建了一个团队,做了一个三人小团队的项目。”这时,面试官可能会问你团队里有哪些成员、项目是如何进行的、最终达到了什么样的结果。要把这些事情讲清楚,可以考虑使用 STAR 法则。 48 | 49 | STAR法则是情境(situation)、任务(task)、行动(action)、结果(result)四项的缩写。按这样的结构讲面试官听起来会比较清晰。此外,自我介绍一定不要太长,只需讲你做得比较好的几件事就行了。通常,面试官会根据你的自我介绍问一些相关问题,比如你在这段经历中做了什么,遇到了哪些困难,又是如何解决的。他们可能还会根据你的回答,进一步问一些细节,看看这些经历是否真的是你亲身经历的。如果你在简历或自我介绍中过度包装或者存在欺骗行为,那很有可能会直接被淘汰。 50 | 51 | 所以,第一,自我介绍和简历包装不要过度,真实才是最重要的。第二,自己做过的事情一定要能够讲清楚。如果你真的想不起来,就坦诚地说“对不起,时间太久了,我忘了。”千万不要编故事,因为编的东西很容易被识破,导致失败。另外一个重要的点是,面试时自我介绍完了之后,面试官就会对你有一个初步的印象。如果你自我介绍得不好,可能面试官就只会简单聊两句,然后直接挂掉。如果表现不错,面试官才会有兴趣继续深入了解。 52 | 53 | 面试的流程一般是:第一,自我介绍;第二,根据自我介绍问问题;第三,可能会问一些产品经理的基础概念,比如“你知道产品经理的主要职责是什么吗?”“你更喜欢做 B 端产品经理还是 C 端产品经理?为什么?” 面试官还可能会考察你的综合能力,比如根据你的简历问你在学校担任学生会主席的原因,这些问题你都要提前准备好,尽量讲清楚。 54 | 55 | 我的经验是,面试官往往更关注你在自我介绍中提到的项目经历、社工经历,以及你对产品经理的基本了解。特别是在讨论实习经历时,面试官通常会通过询问你参与过的项目,来判断你的实习是否“靠谱”。他们可能会问你在实习期间做了什么项目,你在项目中具体负责什么,遇到了哪些困难,以及你是如何解决这些问题的。 56 | 57 | 对于初级面试者来说,可能不太注意自己在项目中遇到过什么困难,或者不知道自己是怎么解决问题的,只知道项目最终完成了。但这两个问题是非常核心的,一定要注意,只要能把这两个问题回答好,你的面试就成功了一半。 58 | 59 | 他们并不在意你做的事情规模有多大,而是看你是否能清晰地表达。作为实习生,面试官通常认为你所做的事情就是一些基础工作,所以不要把自己的经历包装得太过宏大,这样反而会适得其反。保持真诚和坦诚的沟通非常重要。 60 | 61 | 实际上,在我面试的前期,我还比较“装”,但到后来当我拿到一些 offer 或者感觉自己有把握时,反而变得随意了,往往这样的表现反而效果更好。面试其实并不是一个一板一眼的考试过程,更强调的是你与面试官之间的互动。有时候,你的精神状态和热情特质会影响面试官的判断。即使回答得不够完美,只要面试官在与你的互动中感到愉快,也有可能让你通过面试。 62 | -------------------------------------------------------------------------------- /src/interviews/97-b-investment.md: -------------------------------------------------------------------------------- 1 | # 97届本-某学长-一级市场股权投资 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 于复旦大学毕业之后,在金融行业工作了20多年,从事一级市场股权投资,投出了多家上市公司。 6 | 7 | ## 可以请您介绍一下PE/VC在金融行业里的工作内容吗? 8 | 9 | 要全面理解PE和VC在金融行业中的工作内容,需要从整个金融领域的各个层面来进行认识。目前,国内的金融行业正面临低潮,受到了政策打击和限薪的影响。 10 | 11 | 金融行业大致可以分为以下几类: 12 | 13 | 首先是中介角色,包括四大会计师事务所、律师和评估师。主要从事财务、审计和评估工作。律师需要考取律师资格证,券商的保荐人需要了解监管法规和政策。 14 | 15 | 第二类是一级市场的投资,包括VC(风险投资)和PE(私募股权投资)。VC通常投资于天使轮和早期项目,需要找到具有前瞻性行业趋势的好团队和项目,深入了解政策和金融市场趋势。PE则专注于中后期项目,资金量大,收益率相对稳定。一级市场的项目在退出时需要上市,上市地点包括香港、国内的主板、创业板、北交所、科创板以及美国市场。上市过程通常需要公司寻找中介机构的帮助,并将股份卖给公开市场的投资者。 16 | 17 | 二级市场主要涉及股票买卖,跟踪公司和行业趋势,选择好的公司进行投资,并为公司定价。这对理工科背景的学生很适合,因为需要分析行业趋势并进行资产定价,这是金融领域的核心技能。 18 | 19 | 此外,还有量化投资,通过模型跟踪市场数据,设定交易模型,让机器自动交易。这与计算机和数学紧密联系,适合用数学方法进行投资、市场波动分析并赚取收益。 20 | 21 | 因此,PE和VC的核心工作内容包括找到好的投资项目,进行项目定价,管理和退出项目。工作强度很大,需要不断学习和判断市场变化,对行业趋势和政策的把握非常重要。 22 | 23 | ## 请问学长,您做PE和VC这份工作最让您感到满意的点和最想吐槽的点分别是什么? 24 | 25 | 在PE和VC的工作中,最让人感到满意的是获得感。作为甲方,你始终在主导位置,别人来找你融资,这让你能够接触到各行各业,了解不同领域的动态。 26 | 27 | 而且投资工作真的很有趣。相比咨询行业的工作,投资更让人有成就感。咨询工作是为客户服务,很多企业知道自己的问题,但自己解决不了,就需要找外部的咨询来协助解决问题。而PE和VC则不同,是始终都在主动跟踪行业,投进去后要密切保持联系,指导团队成长。随着经验和资源的积累,会有很高的成就感。同时金融行业的主要目的是优化配置社会资源,通过市场化的方式进行资源的优化配置,这也很有意义。 28 | 29 | 从个人角度来看,这个行业让人很容易获得价值感。每天的工作都不一样,总有新的东西可以学,有新的价值可以呈现给社会。这是这个行业最好的地方。 30 | 31 | 然而,这个工作也有让人感到无力的地方。比如政策风险,前两年教培行业被关停,有投资人当时坚决看好教培行业,不愿意退出,结果政策一变,整个投资项目失败了。这种不确定性让人感到无力。还有宏观经济环境的变化,如中美关系紧张等不可控的因素,或者人事变动等,都可能让本来不错的项目变得糟糕。二级市场的交易也是如此,每天都要面对边际变化,但有些事情你无法控制。 32 | 33 | 这是人生的一部分,必须学会适应和接受,然后在自己能努力的范围内去做。如果因为自己不够努力,研究不够,判断错误而失败,可以通过提高认知来弥补这些不足。先尽人事,然后听天命。 34 | 35 | 总的来说,PE和VC的工作既有获得感和成就感,也有许多无法控制的不确定性。这是这份工作的两面性。 36 | 37 | ## 近些年来和未来几年内,政策和技术等因素对金融行业的主要发展趋势是什么?这个行业将来会如何变化? 38 | 39 | 近期,金融行业受到政策的重大影响。对整个金融机构的薪资进行了限制。短期内,这些政策肯定会对金融行业产生很大的影响。然而,有些基本规律是亘古不变的。金融行业之所以被认为是好的行业,是因为它总是与资源和财富紧密相连。就像屠夫的手上总是有油,因为他天天在屠宰。金融行业也是如此,核心从业人员的收入永远是高的。只要你掌握核心资源并能产生核心影响,你就会得到与之相匹配的收入。 40 | 41 | 虽然短期内肯定会限薪,但不需要过于担心收入问题,关键是看你能为行业和公司创造多少价值,或者你离核心业务有多近。 42 | 43 | 关于AI技术的进步,的确会导致低端岗位被淘汰。比如,低端画图的画师和低端的码农将会被淘汰。然而,好的算法人才仍然稀缺,包括做量化策略的人也是如此。AI永远只是一个工具,它会淘汰一些低端的从业人员,减少一些工作机会,但也会打开新的领域,创造新的机会。因此,不需要担心技术的进步,重要的是不断适应和学习变化,成为最能创造价值的人。 44 | 45 | 总的来说,虽然短期政策会对金融行业有影响,但长期来看,尤其是贴近业务的岗位,仍然非常有前景。同时AI技术也会带来新的岗位和机会,不会对从业者造成太大的打击。对于个人来说,不断适应和学习,成为能够创造价值的人,是应对未来变化的关键。 46 | 47 | ## 对于从事这一行业的新人来说,他的职业晋升路径是什么?有哪些职业发展的方向和机会或者障碍? 48 | 49 | 新入职的新人通常会从分析师或VP(副总裁)开始。最初的工作可能包括行业研究、投资报告、行业分析报告和会议纪要等。在VP阶段,可能会协助ED(执行董事)或MD(董事总经理)做项目,跟随他们学习经验。之后,逐渐独立负责项目,从ED升到AMD(助理董事总经理),这个过程中需要积累资源和判断能力,paperwork的事情可以交给下属去做。 50 | 51 | 最关键的是要热爱投资行业,并且不断学习,吸收新的知识和行业变化。聪明和勤奋也是必不可少的。行业中有很多聪明又勤奋的年轻人,他们成功得很快。如果只想着混日子、赚点中介费或回扣,是没有前途的。 52 | 53 | 你必须真心喜欢你所做的事情,这样才不会觉得辛苦,才能长期坚持做下去。如果你热爱这个工作,哪怕加班加点干活,也不会痛苦,反而会很有成就感,就像打游戏一样。 54 | 55 | 如果你觉得上班很累,只想着摸鱼早点下班,那你不适合做这份工作。所以一定要找到让自己感到有成就感的事情,这很重要。只有真正喜欢这个行业,才能在不断的挑战中获得正反馈,取得成功。 56 | 57 | ## 请问学长,对于计算机专业的同学,他们如何进入金融行业从事PE或者VC这样的工作呢?需要做哪些在校的准备?是否建议他们再去读一个MBA这样的金融学位? 58 | 59 | 我认为最好的组合是本科读理工科或者计算机,然后硕士读金融学、经济学或者MBA,再进入金融领域。现在很多PE和VC公司为了发展硬科技,喜欢招一些相关领域的博士,比如医药学、化学等专业的人才。但我个人不建议太把自己限制在某个专业上,因为投资的风口是不断变化的。 60 | 61 | 过去几年,我们经历了很多商业模式的创新,比如阿里、头条、腾讯等都是商业模式创新。之前是一些基础产业的发展,比如钢铁、汽车等。所以,每一波机会都在变化,如果你只专注于某个行业,过几年可能这个行业的机会就没了。现在很多搞医药的人就很糟糕,因为从宏观上看医药这个行业不行。 62 | 63 | 关于在校准备,不同的路径需要不同的准备。如果想要做的是偏概念的分析,更多的工作内容是对行业的宏观分析;而量化分析则是看数据、财务报表和增长。如果你是想做量化,那整天需要考虑的是数据回撤、模型和策略,纯粹跟数据打交道。而PE/VC则更多是跟人和概念打交道。 64 | 65 | 如果一个同学有志于从事金融行业,首先要知道自己的兴趣在哪个方向,了解这个行业里的不同岗位的具体工作内容。要有专业和禀赋的准备。以前进入PE行业时没什么背景要求,但现在通常需要有做LP(有限合伙人)的条件,要么很有钱,要么有资源,进入很难。 66 | 目前,计算机专业的学生进入金融行业,主要是去银行和投行做金融科技岗。但这些岗位未来发展有限,因为本质上还是码农,做IT系统的工作。转到业务岗才有发展。 67 | 68 | 如果你是计算机背景,最好能转到业务岗,比如做量化策略,这样有更好的发展前景。金融领域的核心价值是投资和募资,尽量把自己往核心业务方向发展,这样才有更好的职业前景。 69 | 70 | ## 对于计算机专业的同学,进入投资行业有一定壁垒。平时能接触到的金融行业校招渠道主要是银行、国企、金融监管等单位的金融科技岗,离金融业务比较远。在这些单位和岗位中工作,未来是否有机会做投资?这样的路径设计是否合理?学长有什么建议吗? 71 | 72 | 首先,监管机构非常难进,但一旦进入,前途远大,如果家庭的经济状况比较富足,这是非常好的选择。商业银行则稍微差一些,因为未来可能会面临很多坏账问题,对其前景我持保留态度。很多人进入商业银行后,可能一直做柜面工作,所以对商业银行的前景我持谨慎态度。 73 | 74 | 如果想要转到业务岗,这也是有可能的,但机会相对有限,需要一些机遇。如果你从银行转到其他金融机构的业务岗位,可以考虑量化部门,因为银行也有交易部门,这属于商业银行的投行部门,不是纯粹的商业银行概念。 75 | 76 | 如果你有商业银行的工作背景,想要转到企业,可以考虑去财务部或做财务总监,更多的是利用你对银行政策的了解来获取贷款,这也是一种核心技能。但这就属于另外一条职业路线,不是投资线了,不对企业经营负责。 77 | 78 | ## 对那些将要去找工作的在校学弟妹们,您有什么寄语吗? 79 | 80 | 临渊羡鱼不如退而结网,先多花时间了解自己,提前想清楚自己要过一个怎样的人生,是更重要的事情。 81 | 82 | -------------------------------------------------------------------------------- /src/experience/finance/management-trainee.md: -------------------------------------------------------------------------------- 1 | # 银行总行管培生 2 | 3 | ## 前言 4 | 5 | 大家好呀,这篇文章主要是关于三大政策行和六大国有行总行管培生的求职经验贴,方向是金融科技。最终我也是很幸运的通过了农行总行金融科技管培生和邮储总行管培生的笔试和面试,虽然最后因为自己的一些原因考虑没有选择去,但是也希望将自己的这份经历分享出来,希望可以帮助到大家~ 6 | 具体可以参考学长的[牛客网](https://www.nowcoder.com/discuss/578953210505732096?sourceSSR=users),还有许多的面经可以参考。 7 | 8 | ## 管培生 9 | 10 | 在正式开始前,也希望跟大家谈谈什么是管培生以及管培生大概得工作内容,以下主要是基于个人的理解以及根据相关信息得出的,可以做个参考。管培生是管理培训生的简称,这是一个外来术语,是外企里面“以培养公司未来领导者”为主要目标的特殊项目,不仅外企,许多国企和民企也纷纷开招管理培训生。简单来说就是作为未来的管理者进行的人才储备项目,虽然实际的工作中可能基本不太用写代码,但是可以接触到高层决策者,并且可以参与到公司的实际管理运营中。个人觉得是上限很高的一份职业,虽然硬性的薪资比不上互联网大厂,但是各种福利和机会则是互联网完全比不了的。 11 | 12 | ## 三大政策行和六大行 13 | 14 | 一般管培生最主要去的是三大政策行和六大行的总行,三大政策行指的是国家开发银行、中国进出口银行和中国农业发展银行,六大行指的是工商银行、农业银行、中国银行、建设银行、邮政储蓄银行和交通银行。无论是哪一家的总行竞争都很激烈,一般来说政策行>六大行,而六大行中又以工商银行、农业银行、中国银行、建设银行为主,其中工商银行被称为“宇宙行”,竞争尤为激烈,你能想象线下面试中一个组十个人有牛津、剑桥、哥大和清华博士的感觉嘛。所以最好先找准自己的定位,分清楚自己的优势所在,选择适合自己的银行投递。(跟神仙们打架真的太累了qwq) 15 | 16 | ## 时间线 17 | 18 | 银行开始投递时间相比互联网会晚不少,一般是在九月份才开始,一系列线下笔试和面试可能会一直持续到十一月甚至十二月,所以时间线算是比较长的了。想要准备好相关笔试和面试,信息是十分重要的,这里我觉得主要的几个信息来源是:**公众号(银行招聘网、银行考试信息汇总等)、官网、校招VX群**,一般来说是通过公众号每天推送的消息知道某家银行是否开始投递,然后再在具体的官网上进行投递即可。 19 | 20 | ## 简历 21 | 22 | 简历的投递是第一步,但也是十分重要的一步。随着这几年银行和金融行业的热度激增,投递报名的人也是一年比一年多,但整体的hc不仅没随着趋势增长,反而有下降的势头,所以竞争是越来越激烈的。三大政策行和六大行基本都会要求线下笔试和线下面试,但是线下不同于线上,线下是需要提供考场的,所以一定会控制参与考试的人数。那么如何控制呢?那就只能简单通过简历筛选来做了。所以简历和相关信息一定要认真填写,把自己最突出的地方进行展示。 23 | 24 | 那么如何写好一份面向总行管培生的简历呢?我觉得主要是从以下几个方面入手: 25 | 26 | • 领导能力。管培生项目是为了培养公司未来领导者,所以是否有领导力和团队合作能力会是HR进行筛选的重要衡量标准。那么如何在简历里面体现领导能力呢?最主要的便是将自己学生时期所担任过的学生干部以及从事的学生工作写上去,此外,由于是金融科技方向,担任的项目负责人也可以写上去,按照**担任的职务->负责的工作->培养的能力**进行介绍。不同于互联网行业需要写上技术栈和技术实现,管培生更加看重的是你能否领导团队,有效沟通和协调,解决问题并推动项目的实施,也就是那句话:“船长最重要的不是造船,而是激发水手对大海的向往”。所以需要按照这个思路,调整简历中的侧重点从技术实现难度转移到团队合作和团队管理上。 27 | 28 | • 学习能力。因为管培生可能会进行轮岗,会在不同部门进行历练,所以学习能力最好也要能够在简历中进行体现。最直观的方式就是绩点和排名,可以将成绩不错的科目写上。此外,积极参与不同的项目和学生工作也可以算作一种学习能力的展现。 29 | 30 | • 解决问题能力。学生和工作是两种完全不同的阶段,学生时期最主要的就是学习好对应科目即可,学习方法和相关策略是比较固定的,但是工作的时候就完全不一样了。工作时候会遇到各种各样的问题,而这些问题往往并不一定有标准答案,有些时候甚至连问题都不一定能够明确。所以,HR在筛选简历的时候也会比较看重这方面,看能否能够有解决复杂问题的思路和能力。我认为解决问题一般是这几个步骤:**发现问题->定义问题->解决问题->反思总结**,相应的,简历中也应该按照这个思路进行体现。比如项目中遇到了什么问题,怎么思考解决方案的,如何落地解决的,最后从这件事情中学到了什么 31 | 32 | ## 笔试 33 | 34 | 银行总行考核包含笔试和面试,这两个一般都是线下进行的,笔试通过后才会安排面试。 35 | 36 | 先说笔试,笔试包含行测、英语、专业知识、经济金融知识、时政以及银行特色知识,政策行还会考核申论。我是大概准备了一个多月,个人觉得刷题是尤为重要的,尤其是在时间不太够的情况下。除非时间比较充足,不然一般不是很建议看网课,看纸质版材料学习 ,然后多刷题就好了。以下是各个考试内容我的准备方式: 37 | 38 | • 行测、经济金融知识、银行特色知识:《银行招聘考试一本通》、粉笔app、北森题库。这三者中尤其是行测为重点,因为行测占比是最大的。此外,根据我去年线下笔试的经验,笔试的时间一般都是很不够的,很考验对于行测的技巧解法,所以一定要多刷刷行测题目,掐点做。在考试的时候,对于一些看一眼没有思路的题目,最好立即跳过,等有时间后再回头解决,因为平均一道题的时间就一分钟,所以一定要有所取舍。最好先通过《银行招聘考试一本通》这本书进行学习,然后刷往年真题,有时间可以掐点在粉笔app上刷题,北森题库也可以作为参考。经济金融知识和银行特色知识在临考前熟悉熟悉常考题目就好,做不来放平心态放弃就好,一般金融科技方向的同学也不太会这些题目,所以不用太担心。 39 | 40 | • 专业知识(计算机):牛客、粉笔app。专业知识不同银行考察难度不一样,有些就简单几道选择题,但是像农行还会有道编程题。对于专业知识部分,可以在牛客网和粉笔app上进行刷题,不过只用针对一些常见题目有一定熟悉就好,不用针对大范围刷题,性价比不高。 41 | 42 | • 英语:每天1~2篇阅读理解。笔试也会针对英语进行考察,英语的话专门花太多时间同样性价比不高,保持每天背一背常见单词,每天做1~2篇阅读理解,保持语感和做题速度即可。 43 | 44 | • 时政:银行考试相关公众号。时政也不太需要专门去准备,因为这个考察的分数并不多,而且考察的范围看会很广,也就是在考试前在银行考试相关公众号上临时看一看就好。 45 | 46 | ## 面试 47 | 48 | 笔试通过后会进行面试,除了极少数比如交通银行总行一面是线上外,一般来说都是线下参加。参加线下面试都是在总行,基本都在北京,参加的时候需要穿着正装。线下面试一般包含半结构化面试和无领导面试。 49 | 50 | 半结构化面试是指面试构成要素中有的内容作统一的要求,有的内容则不作统一的规定,也就是在预先设计好的试题的基础上,考官向应试者又提出一些随机性的问题。面试流程一般由面试者进入考场先进行自我介绍,接着考官会根据介绍和简历上的内容随机提问问题,自我介绍的时间多为1-3分钟。一般有两种形式:一种是逐一面试,另一种是多人面试,银行半结构化面试的考察重点是自我介绍、个性特征、行为经历和求职动机。 51 | 52 | 不过也会有针对专业知识的提问,比如农行总行的面试是要求设计银行网站,具体要考虑分布式、高可用以及高并发,是最接近互联网大厂面试的一次。其他银行的半结构化面试基本比较常规,包括但不限于考察个人经历、团队合作能力、人际沟通技能、解决问题的能力以及组织活动能力等。 53 | 54 | 一般来说,为了准备半结构化面试需要准备面试常见问题,主要是根据自己的经验和技能,思考有哪些地方可能是面试官可能会问到的,对此进行一些准备。此外,针对一些常见的半结构化面试问题,也需要大致有一些自己的想法,一般来说需要积极向上,寻求团队合作以及迎难而上的特点。 55 | 56 | 无领导面试指的是面试者需要在没有明确领导或指导者的情况下解决给出的讨论问题、一般来说,需要先个人单独先对问题进行阐述,分析讲解自己的想法,然后开始进行小组讨论,得出小组内部一致的想法和结论。此外,也会有辩论形式,将一个组的同学分为两个队,每个队会安排相反的论点,尝试说服对方,但是最后两队需要达成一致。 57 | 58 | 在这个过程中需要展示自己的领导能力、自主性和解决问题的能力。具体来说,为了更好地展现自己,我觉得需要做到或者展现出以下几点: 59 | 60 | 理解面试要求:首先最重要的便是要确保已经正确无误的理解了面试题目的要求,比如辩论题目最后两队是否需要达成一致。我第一次参加无领导小组面试的时候就遇到对方队一直到最后还在和我们辩论的情况,最终都没有满足题目达成一致的要求,所以得分偏低。 61 | 62 | • 自主性:在面试中展现出积极主动的态度,提出解决问题的方法和建议。展示能够自我激励、自我管理并在压力下做出决策的能力。 63 | 64 | • 领导力:在面试中展现出领导能力,包括激励团队、制定目标和战略,并展示如何带领团队实现目标。但是也不一定就要做领导者,积极推动讨论进行下去,或者给出一些有用的想法也是很不错的。 65 | 66 | • 团队合作:无领导面试中涉及到团队合作,需要展现出良好的团队合作和沟通能力。要善于倾听他人意见、激励团队并寻求共识。 67 | -------------------------------------------------------------------------------- /src/interviews/23-x-horizon.md: -------------------------------------------------------------------------------- 1 | # 23届硕-许学长-地平线后台开发 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 我现在工作的公司是地平线(国内TOP1智能驾驶计算方案与智能驾驶芯片提供商),全称是地平线机器人,公司大概有3000人,属于中小型创业公司,属于短小精悍的类型,主要有几个方面的亮点。 6 | 其一,地平线主营业务是智能驾驶芯片,2023 年,地平线在中国高阶智驾市场的占有率为35\%,仅次于英伟达。 7 | 其二,地平线是一个软硬件结合的公司,有做芯片、算法、自动驾驶软件、AI训练等。相当于一个车上的数据怎么收集,收集之后怎么训练,训练好了之后怎么嵌入到车载芯片中的这一整个流程我们公司都有在做。 8 | 我们公司的创始人叫余凯,是第一个把深度学习引入到中国的人,是百度研究院之前的院长,2015年辞职创立地平线,开始专门做人工智能芯片,2020年开始专注于智能驾驶领域。 9 | 公司基本上没有特别强的竞争对手,像华为、Mobileye之类的公司在市场占有只有个位数,在战略上我们的公司对标英伟达。 10 | 11 | ## 目前薪资待遇和工作强度是怎么样的呢? 12 | 13 | 薪资待遇来说是对标互联网大厂,拿互联网大厂举例,后端开发的白菜价是26k-28k左右,算法白菜价差不多是28k-30k左右。 14 | 工作强度方面来说,同一家公司的不同部门的工作时长和绩效压力是截然不同的。主要可以分为两类,第一类属于支撑公司基础运营的岗位,第二类属于面向客户需要产出成果的上游岗位,这两类岗位的工作节奏相差很大。 15 | 以我所在的公司举例,我所处的部门是AI基础架构部,负责整个公司机器的资源,比如有多少GPU,以及云平台、容器,模型训练任务的调度。相当于是任何一种大场景都会有的偏下层一些的技术中台。我们的工作任务不直接面对客户,是最大程度保证服务稳定性,确保算法工程师的训练任务不会挂掉,而不是想如何去创新。我们一般不会为了出业绩而加班,因为对于我们来说,不是干得越多越对,而是要少犯错。但这同时也伴随着另外一种加班形式,就是万一客户那边出了问题我们要随时去支持。我目前的工作时间是早十晚八,双休。 16 | 而像上游的一些业务部门,比如说是做自动驾驶算法的,在内部会有一个赛马机制。举个例子,比如公司要做一个比较厉害的算法,内部会分成三个团队,他们各自去训练相应的模型,最后放到市场上去检验成果。效果不是特别好的团队会直接解散,解散之后这些人大部分会被派到新的项目组中,小部分会被直接裁员。这种业务部门的人员流动性和绩效压力都会特别大。周末无休,晚上两点之类的都会很常见的。但是他们的奖金比例,base薪资都会非常诱人,只有这样他们才会有动力去卷。 17 | 18 | ## 芯片行业的开发和互联网大厂开发在工作内容上有什么区别呢? 19 | 20 | 我们公司是以程序员为主,基本上没有搞设备机电之类的。相对于大厂来说,地平线不像纯互联网没有实体那么虚。相对于传统制造业来说,地平线也没有那么古板,还是以90\%的程序员为主的群体。 21 | 地平线相当于是兼容了大厂和传统制造业的优点,它既有传统互联网大厂的敏捷性、高智力密集型、扁平化的轻松氛围。比如大家都是不打卡,很晚才来公司,总喜欢熬夜工作之类的。但是我们的产出结果是更实在、更偏B端一些,我们的客户都是一些新能源车厂,比如说比亚迪、上汽、广汽大众等。这也导致了我们公司的市场知名度并不太高。 22 | 23 | ## 您当初选择这份工作,从事这个行业的理由是什么呢?在择业的时候有考虑过其他非技术类的工作吗?(比如公务员、央国企、产品经理之类的) 24 | 25 | 首先考虑的是薪资,当时也有拿到其他大厂比如美团、B站的offer,但是薪资差距比较大,另外一个因素是考虑到地域的问题,最终选择了地平线这家公司。 26 | 我也投了银行,比如说招行信用卡,农业银行等等,大概是我在面试的时候明显感觉出来了这类企业对于技术没有太高的一个追求的状态,那并不是我自己喜欢的状态。如果是对技术成长有追求,向往自由宽松的情况下,还是尽量不要去选择国企躺平。 27 | 28 | ## 这个工作/行业有哪些最令人满意的地方? 29 | 30 | 首先,像中小公司的技术架构,部门规模会非常小,不像大厂基础架构部就会有几千人。我们公司的基础架构只有30多个人,这意味着即使是一个校招生的身份进来,依旧可以接触到所有的核心代码。整个公司的底层原理都有机会去涉猎,这也是创业公司的一个好处。大厂的话,除非是SSP那种非常厉害的人才有机会,否则在几千人中能够涉猎到的业务内容会非常的螺丝钉。 31 | 举个例子,我们公司曾经面试过一些大厂的员工,其中有一个候选人虽然在大厂做了四五年,但是是专门解决数据库的某一个索引的问题,虽然在大厂上有立足之地,但是在市场上寻找岗位会很吃亏。 32 | 33 | ## 这个工作/行业有哪些最想吐槽的地方? 34 | 35 | 创业公司的规章流程,制度性会比大厂差很多。在这种野蛮生长的阶段,如果自己不够注意的话,可能会养成一些不太好的开发习惯,运气好的话,可能会有领导来点拨,教你怎样去写比较规范。但是如果没有碰到好的领导的话,一直野蛮生长下去可能会走上歪路。 36 | 37 | ## 选择岗位的时候有哪些需要注意的呢? 38 | 39 | 首先从行业上,建议大家选择比较朝阳的行业。像电商等行业已经是比较成熟的了,做起来会比较没有成就感,而像新能源自动驾驶,元宇宙这种行业还是在蓬勃发展期,每天会是有希望有奔头的,而不是无效竞争内卷抢占市场。风口行业可以让人了解的比较前沿,对自己的成长非常有帮助。 40 | 其次在选择岗位的时候,尽量选择一些能够得到扎实锻炼的岗位。不要一味的去写一些业务性的CRUD,如果在面试前打听到这个岗位比较边缘或者业务属性太强,不接触核心或者技术深度不够都可以避一下雷。刚毕业的前几年,技术深度的成长是非常重要的。 41 | 42 | ## 小而精的厂会不会比大厂更难出去跳槽呢? 43 | 44 | 不论大厂还是小厂,只要干的好,都是有优势的。但是优势是不同方面的,在小厂工作四五年,因为规模比较小很容易成为某一个领域的负责人。而大厂想成为某一个领域的负责人的难度会非常大,但是大厂背景的背书是非常加分的,各有各的加分项。 45 | 46 | ## 在车载芯片这样的行业里,校招生的成长路径是什么?和大厂的发展路径有什么区别呢?岗位的通用性有哪些区别呢? 47 | 48 | 发展路径和大厂来说是差不多的,但是相对于大厂来说更容易有亮点。为了招聘方便,级别都会有一个对标。我们公司的h3对应阿里的p5,h4对应阿里的p6这样。我们公司的创始人是百度的,创始员工基本上都是百度的,中间又挖了一些华为、蔚来、小鹏、理想的。相当于是和市场完全对接,人员不断流动的状态,我们公司也会有人跳槽到小米,比亚迪这样的地方。 49 | 50 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢?这种变化对于从业者来说是一个机会还是有很大的风险呢? 51 | 52 | 我觉得校招生选择行业,首先要观察行业的发展状态,是萌芽期、增长期还是衰落期,这个网上有很多的方法论,比较容易判断。 53 | 其次要看这个行业有没有颠覆性的技术创新,比如说元宇宙,虽然是很新型的理念,但是深挖一下会发现其实没有技术理论上的突破。而只要稍微了解一下新能源汽车,就会发现这个方向还是在稳步前进的,拥有一个比较广阔的消费市场。 54 | 再其次是从技术上去判断这个行业未来有没有潜力。我所在的公司正好出于新能源、自动驾驶、芯片三个风口叠加的产业,而新能源车的市场占有率现在是30\%,以后肯定要走向60\%~70\%,盯住增量就可以了。就像2014、2015年的时候,微信还没有大范围的普及,但是可以预测到未来会有很多人用微信。 55 | 还有就是要考虑这个业务能不能落地,落地了能不能赚钱。 56 | 57 | ## 投简历的时候有哪些需要特别注意的呢? 58 | 59 | 永远不要放弃广撒网,因为你不知道会不会有一些小众的宝藏公司。我当时投递了50多家公司,地平线是当时最不起眼,随便投的一家公司,最后反而是最惊喜的。 60 | 61 | ## 大厂和小厂的面试准备有什么区别呢? 62 | 63 | 如果是那种非常普通的小厂,就是薪资和技术水平都很低的小厂,实在找不到才考虑去。 64 | 如果是小而美的小厂,一般面试标准都是和互联网大厂对标的,按照准备大厂的方法论去准备就可以了。 65 | 66 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 67 | 68 | 学长学姐的推荐,牛客等就够用了。 69 | 70 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 71 | 72 | 实习非常重要。 73 | 就业和学校是不同的,进入到业界一切就是从零开始。如果确定不想留在高校搞科研的话,越早去实习就越好。千万不要做一些自以为能加title,但是其实比较水的事情,这种加分项可有可无,如果做的比较水,哪怕是写在简历上,最终还是会被识破的。 74 | 如果实在是不能出去实习,那就自己做一些有含金量的项目,把代码都搞懂,会比去刷一个虚的title有用。 75 | 76 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 77 | 78 | 只要开始尝试找工作就永远都不晚。我当时找工作也是非常拖延症,别人都春招都收到好多offer,我连复习都没复习完。结果就错过了一波又一波,然后到秋招也是一直想着开始,结果拖到将近8月中旬才开始正式的复习一些八股、准备简历等等。会一直处在这种焦虑中。在这么卷的情况下,总会有人比你早,总会有很多人抢在前面。这种焦虑是非常正常的,就像我们的论文感觉那么难写,最后其实盲审院审什么的该过还是会过的。 79 | 找工作也一样。什么时候开始永远都不晚,哪怕你整个秋招都错过了。我们当时实验室有一半的同学秋招根本就没有找到心仪的工作,结果春招找了非常好的大厂,就什么时候开始都不晚。当然不要等你拿到毕业证再开始。 80 | -------------------------------------------------------------------------------- /src/interviews/20-nvidia.md: -------------------------------------------------------------------------------- 1 | # 20届硕-Allen-英伟达开发工程师 2 | 3 | **联系方式:** wx: hustlmn 4 | 5 | ## 可以介绍下您毕业后的工作经历吗? 6 | 7 | 我是20年的毕业生,本科是能源与动力专业,研究生是跨专业考的计算机专硕,但我在校期间做了一些NLP算法项目的比赛,因此我的第一份工作是在某大厂做NLP算法岗位。 8 | 9 | 但是第一份工作工作了半年就裸辞了,并花了三个月自学了开发技术,由于我是0基础转行,因此学习路径主要是看网课学习,然后刷题。找开发工作时我面试的第一家公司就拿到了offer,是国内的一家中厂互联网公司,岗位是前端工程师。 10 | 11 | 在第二家公司干了一年后,又跳槽到了一家知名外企公司(英伟达)工作,是做的全栈开发,一直干到现在,大约有两年的时间。 12 | 13 | ## 第一份大厂算法岗为什么工作了半年就裸辞了呢? 14 | 15 | 1. 工作强度很大。公司每天晚上都要加班到十点或者十一点钟,一周要上六天班,就连法定节假日放假也有限制。可能对于有些人而言,晚上加班效率更高,比较能适应。但对于我而言,由于每天的精神状态都很紧绷,因此到晚上八点钟大脑就一片空白,甚至在晚上12点回家后,我仍然没有从工作的状态中抽离出来,就连做梦都会梦到工作中的事情,最后也影响到了身体。 16 | 17 | 2. 算法需要用不确定的结果去满足确定的业务目标。我个人认为,算法本身的精度就是一个概率问题,算法本身是不确定的,而工作中的算法技术是要落实到项目中的,因此对精度要求很高。因此我在做算法的过程中压力很大,也很痛苦。 18 | 既然工作岗位和工作作息我都不喜欢,因此就裸辞了,想要找到一份自己能接受的工作。 19 | 20 | ## 第一份工作工作强度这么大,薪资待遇是不是比较丰厚? 21 | 22 | 确实很高,我也很满意 23 | 24 | ## 为何学长要从算法转开发呢? 25 | 26 | 主要看每个人的兴趣。开发对我而言更如鱼得水,并且开发的结果是确定的,你知道只要按照这个路线做下去,你百分百能把东西做出来,但是算法更像开盲盒,哪怕花了很大精力,结果也未必有效,而且是那种精神上的压力。 27 | 28 | ## 可以分享一下第二份工作经历、工作强度和薪资待遇吗? 29 | 30 | 第二份工作是从算法跳槽到了中厂做开发,薪资少了一些。 31 | 32 | 我们的工作时间是大小周,一开始是晚上七、八点下班,但后来变成了九、十点钟下班。其实互联网公司组与组的差别很大,并且百分之八九十都是要加班,而且加班风气也很严重,这也是我要辞职并且找外企的原因。 33 | 34 | 在这一年工作中我的进步很大,毕竟从零开始学,也学了不少东西。在工作中最大的困难不是技术,而是沟通问题。如果对面的人技术能力和沟通能力都比较强,工作起来会很愉快。但如果对方加班很累,精神状态不好,当你提了一个需求让对方改,对方的情绪会很不好,这样的环境对我也有一些影响。 35 | 36 | ## 第三份外企工作可以做到work life balance吗?可以分享一下吗? 37 | 38 | 第三份工作薪资比第二份高了不少,而且我们部门相对比较轻松,例如可以居家办公,甚至不用打卡,还挺不错的,差不多是965的工作强度。但是有些部门也不轻松。 39 | 40 | 我在外企目前工作内容是全栈开发,前端后端都有涉及。外企不会要求你会特定的编程语言,他们更在乎的是你的学习能力。如果有同学想面试外企,需要着重突出你的学习能力。我的manager在录用我时和我说,看到我的简历觉得我的学习能力特别强,这也是看重我并录用我的原因。 41 | 42 | ## 在外企工作晋升的通道路径、薪资上限都是什么呢? 43 | 44 | 外企薪资构成主要分为工资和股票,工资每年会涨一部分,具体涨了多少需要根据市场行情来定,每年涨幅不一样。 45 | 46 | 对于股票部分,会每年给你发一部分股票,股票也是分几年给的,不是一次性给的。 47 | 48 | 工资是可以预测到的,例如你到多大年纪,能赚多少钱。但如果你想通过工资得到很高的薪资水平,不仅要非常努力,还需要有很高的天赋和运气,再结合领导的赏识,才能快速升职,我认为这个很难。所以需要一些不确定性因素,比如股票。外企股票不确定性很强,如果运气好,可以得到很高的报酬。 49 | 50 | 晋升通道方面有两条:一条是engineer线路,一条是manager线路,engineer主要做技术,而Manager的工作主要是规划项目和分配工作。想要进入manager线路,需要在engineer路线上达到很高等级,才能进入manager较低的等级。但是两者薪资差不多,主要看自己的性格和兴趣适合走哪一条路。 51 | 52 | 裁员的话,有的外企裁员,有的不裁员,我们公司目前没有说有裁员的动作。 53 | 54 | ## 有感受到大环境裁员风险带来的压力吗?要如何应对? 55 | 56 | 我认为不管在哪里上班,一定不要抱着稳定的心态来面对,唯一稳定的就是不稳定性,即便是公务员也没有我们想象的那么稳定。 57 | 58 | 首先要改变的是心态问题,我们要有信心即便被裁员了,也能找到很好的工作,如果国内找不到,也可以去国外找。 59 | 60 | 其次多在工作中积累项目,保持持续学习的能力。即使这个项目不是你做的,你也可以做到将这个项目从整体架构到实现细节完整的讲出来。并且定期三个月或者半年就去更新你的简历,这样可以督促你进步。 61 | 62 | ## 那算法转开发难度如何?可以分享一下经验吗? 63 | 64 | 我觉得难度在于你想不想。只要你有决心,你就能转。如果你认为不能立马进入到一个大公司,你可以先去小公司历练一两年,再去大公司。只要你坚定这个想法,并且去行动,就没有问题。 65 | 66 | 公司其实不在意你上一份工作的岗位,在意的是你身上的某种特质,所以完全不要给自己设限。 67 | 68 | ## 这个行业未来主要发展趋势?在政策环境和AI技术的影响下行业如何变化? 69 | 70 | 这个问题有点大,我感觉环境对各个行业的影响会越来越大,例如微软将做AI和云计算的员工搬迁到了美国和澳洲。但是我个人认为,大家可以保持心态上的稳定,允许一切事情的发生。 71 | 72 | ## 现在大模型这么火爆,你有没有后悔从算法转开发呢? 73 | 74 | 我一直不后悔,因为所有经历都是值得的,并且工作也讲求缘分。我其实一直不太相信AI,这过几年可能又是一片泡沫的状态。 75 | 76 | ## 在找工作时可以通过哪些就业渠道获取相关就业信息呢? 77 | 78 | 1. 公众号或者小程序。Offer show,或在公司的官方公众号里投递。 79 | 80 | 2. 公司官网投递。 81 | 82 | 3. 招聘app,如脉脉、牛客等。 83 | 84 | 4. 小红书。我发现小红书也很好用。 85 | 86 | ## 如果有计算机专业的在校生想进入外企工作,要做哪些准备呢? 87 | 88 | 1. 多去实习。大家要是以找工作为目标的话,就多去实习,在学校阶段去试错。我之前之所以跳槽比较频繁,是因为我没有过实习经历,也不知道自己在工作中能做成什么样子。如果能多去实习就能知道自己更想要什么工作。 89 | 90 | 2. 狠刷力扣题。有些公司只要笔试过了,基本就没问题了。 91 | 92 | 3. 表达能力要清晰有逻辑。面试时,要清晰的表达你的意思,并且项目这个东西是可以准备的。我们同学之间可以相互模拟面试,当对面是小白时,给他讲一下项目,看他是否能听到项目的重点,并且听的明白。 93 | 94 | ## 如果我想从国内互联网企业跳槽到外企,有哪些心得吗? 95 | 96 | 1. 搜集外企名单。我的简历投递没有找内推,当时搜集了一些上海的外企名单,并且在公司官网上投递。 97 | 98 | 2. 刷英文力扣算法题。外企的笔试题目是英文的,并且还需要一定的引文口语表达能力。但是大多数情况是让你用英文介绍一下你的项目,介绍完后就会转成中文问项目。所以大家可以有针对性的去准备。例如用英文描述一下你的简历、思考对面可能会问到的项目问题,将其翻译成英文。 99 | 100 | 3. 对自己的项目了如指掌。我工作的这家外企很重视项目,从项目整体架构,到项目很细的点,都会问到,你要保证对项目介绍的很清楚,问到的细节也都能回答上来。 101 | 102 | 4. 心态稳定。面试很讲究运气,不要因为面试没过就难受,这说明这家公司与你无缘。并且再面试过程中我们对面试官的感受和印象很重要,毕竟这些人以后要成为你的同事,如果觉得很难受的话要慎重考虑。 103 | 104 | ## 有些人想先进入外企工作然后跳槽到其他国家工作,路径可行吗? 105 | 106 | 国内的外企很难,甚至可以说基本没有。我身边也有一些个例,例如有从亚马逊跳槽到美国的,也有直接面试去新加坡的tiktok等。但是薪资方面,国外要比国内翻了三倍左右。 107 | 108 | 对于绿卡,一般公司会先给你一个五年的工签,五年之后可以帮忙抽绿卡。不过也有可能运气不好,几年也没有抽中,但是也有办法解决。 109 | 110 | 不过有的公司会有转到国外的相关政策,例如亚马逊会有内部的招聘网站,如果你想去,就需要你达到特定的等级才能申请。对校招毕业生而言,需要工作两三年才能达到这个等级,假如申请上后,还要重新面试。 111 | 112 | 你也可以在平时工作中问问国外的工作伙伴有没有岗位和机会,说不定就掌握了一手信息。如果你有想法,去尝试就行了,失败了再说。 113 | 114 | ## 如果能重来一次校招,你会怎么做哪些改变? 115 | 116 | 我应该不会做哪些改变,基于我当时的认知水平和知识,应该不会有太大改变。 117 | 118 | ## 对那些迷茫于找工作的在校学弟学妹们,您有什么寄语吗? 119 | 120 | 我想说,人生是场马拉松,工作只是人生的一部分,它与学习是两码事。不要因为眼前工作的不好就认为人生灰暗了。未来还有几十年要工作,就算现在不好了,再过几年,未来总会变好的。 121 | 122 | **选择远远大于努力,所以大家一定要好好选择。** 123 | -------------------------------------------------------------------------------- /src/interviews/23-x-ms.md: -------------------------------------------------------------------------------- 1 | # 23届硕-肖杨-微软上海软件开发 2 | 联系方式:fxiao20@fudan.edu.cn 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 肖杨学长在2023年6月硕士毕业后,直接于7月开始在微软上海担任软件开发工程师,至今已有大约一年的工作经验。在此之前,他有在腾讯和微软的实习经历。 5 | ## 目前薪资待遇和工作强度是怎么样的呢? 6 | 根据offerShow上的公开信息,应届生的总包薪资在40-50万元左右。在薪资方面,微软、腾讯等大公司的差距都在10万元以内。他认为,在职业生涯的起步阶段,不应过于看重5万元左右的差距,而是更注重职业发展的潜力。 7 | 关于工作强度,他认为目前的工作强度相对人性化,基本上每天工作8小时,并且有一定的灵活性,例如每周可能有一到两天可以居家办公,或者调整上班时间。此外,虽然工作要求完成任务,但不一定严格限制在8小时内,工作环境总体来说较为灵活。 8 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 9 | 职业发展前景:他考虑到自己是计算机专业背景,虽然曾有过进入政府工作的机会(例如上海市专项选调的offer),但他认为在政府内部的计算机岗位,如信息科或大数据中心,在整个政府部门中更多是承担一些辅助支撑性的任务。 10 | 实习体验:他在做选择时,特别重视自己在不同公司实习的体验。他表示,腾讯和微软的实习体验都很好,而相比之下,腾讯当时正经历裁员,微软的稳定性和发展潜力更吸引他。 11 | 国际化发展机会:他提到微软提供了更多与国际团队合作和出国交流的机会,这也是他在入职后才意识到的一个重要优势。这样的国际视野对他的职业发展非常有帮助 12 | ## 这个工作/行业有哪些最令人满意的地方? 13 | 学习和成长机会:他所在的部门有较为优秀的领导和技术团队,这使得他在工作中能够学到很多东西,特别是在技术端的成长。 14 | 灵活的工作环境:微软的工作强度比较人性化,每天的工作时间比较灵活,允许员工在家办公或者调整上班时间。同时,公司没有严格的打卡制度,只要任务完成即可,这让工作和生活之间的平衡更容易实现。 15 | 国际化平台:微软作为一家大公司,提供了丰富的资源和广阔的平台。例如,他提到作为微软员工可以有机会优先使用公司内部的先进技术资源(如OpenAI的技术),以及参加国际交流项目。他在工作中有机会前往美国西雅图进行为期半个月的交流,这对他拓展国际视野有很大帮助。 16 | 职业发展机会:他认为在微软这样的国际化大公司中,不仅有技术发展的路径,还可以选择走管理路线,这样的职业发展机会非常丰富且灵活 17 | ## 这个工作/行业有哪些最想吐槽的地方? 18 | 肖杨学长在访谈中表示,和同学们相比,自己目前的工作状态还算比较理想,因此没有特别不满意的地方。不过,他提到工作后的社交环境与学校相比要更加局限,大部分的社交活动都围绕着工作展开,工作之外的社交机会较少,基本上下班后很少有其他的社交活动。这一点可能是他互联网行业工作中相对不如意的地方之一。 19 | ## 这份工作/行业带给您最深感受/影响是什么? 20 | 肖杨学长提到,这份工作带给他最深的感受和影响主要在于拓宽了国际视野。特别是在美国出差的经历中,他实际接触并了解了很多关于美国和其他国家程序员的生活、技术水平,以及他们正在从事的工作。这种亲身体验帮助他更好地理解全球IT行业的动态和趋势。 21 | 此外,他提到,通过与不同国家和地区的程序员的接触,他对印度程序员在全球IT界的强大实力有了更深刻的认识,并且了解到中国程序员的薪资在全球范围内名列前茅,这也使他对程序员职业发展的全球化潜力有了更清晰的认识。 22 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 23 | (1)职业晋升路径 24 | 初级到中高级职位:一开始作为普通程序员,随着经验的积累和能力的提升,可以逐步升到初级或中高级职位。通常是当你能够独立承担一个方向的工作时,就有机会晋升。 25 | 技术专家路径:如果不想走管理路线,可以选择继续深耕技术,走专家的道路。这条路径适合那些希望在特定技术领域深入发展的人员。 26 | 管理路径:当你开始领导一个方向的工作,并有初级成员跟随你工作时,如果团队或项目规模足够大,你有可能晋升为经理(Manager)。这条路径更适合那些有领导能力并且愿意承担更多管理职责的人。 27 | (2)职业发展的机会与障碍 28 | 技术与管理的平衡:在微软这样的公司,软件开发岗位不区分前端、后端、测试或算法工程师,这意味着你需要具备全方位的能力,能够胜任多种技术任务,这为职业发展提供了更多机会。 29 | 晋升的挑战:肖杨学长提到,成为管理者通常需要至少七年的时间,而随着职业发展,晋升的难度和竞争也会增加。对于35岁仍未能晋升的员工,可能会面临一定的职业危机感,虽然在外企这种情况相对较少,但仍是需要考虑的因素。 30 | 职业灵活性:微软的工作岗位具有很高的灵活性,这不仅体现在工作内容上,还体现在职业发展的多样性上。你可以选择管理路线或技术专家路线,依据个人的兴趣和能力进行调整。 31 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 32 | 肖杨学长在访谈中提到,近年来行业的主要发展趋势之一是人工智能(AI)技术的迅速崛起,尤其是像OpenAI的GPT等技术的推动,使得这一轮技术革命中微软等公司能够跟上时代的步伐。他特别提到,微软投资了OpenAI,并积极推动其在产品中的应用,这表明微软在AI领域的战略布局正在取得成效。 33 | (1)AI技术的持续发展:学长预测,随着AI技术的进一步成熟和应用,行业内将会出现更多的AI驱动型产品和服务,尤其是在云计算、数据分析和自动化领域。这将极大地改变软件开发和IT行业的工作方式和市场需求。 34 | (2)国际化与多元化发展:学长提到微软的CEO是印度人,并且公司在全球范围内的战略部署和技术资源整合能力很强。未来几年内,国际化和多元化将继续成为行业发展的重要趋势,特别是在全球经济格局变化的背景下,跨国公司将更加重视全球人才和市场的布局。 35 | (3)政策和监管的影响:随着AI技术的广泛应用,政策和监管将会对行业产生重要影响。各国政府可能会出台更多的法规来规范AI的使用,确保其在伦理和安全方面的合规性。这可能会影响到技术的开发进度和市场推广。 36 | (4)技术垄断与创新:学长还提到一些技术如NVIDIA在GPU和AI领域的垄断性优势,这种垄断可能会继续推动相关领域的技术创新,但也可能带来市场的竞争压力和垄断风险。未来几年,如何在技术创新与市场垄断之间找到平衡点将是行业面临的挑战之一。 37 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 38 | (1)积累实习经验 39 | 学长强调,实习是比校招还重要的途径。通过实习,你可以逐步积累实际工作经验,了解行业需求,并让自己具备胜任正式工作的能力。尽早参与实习能使你在面试中更加自信,并能够更好地应对实际工作中的挑战。通过多段实习,逐步提升自己的能力,每一段实习都能让你更接近成为正式员工的标准。实习不仅能让你在简历上加分,也能让你在面试中更具竞争力。 40 | (2)掌握实操能力 41 | 学长指出,像微软这样的公司在招聘时非常重视候选人的编程能力和算法题的解决能力。因此,在校期间需要特别加强这方面的训练,通过各种编程竞赛、项目实践来提升自己的编程水平。在面试中,公司往往更看重你在实习或项目中所做的实际工作内容。因此,积累真实的项目经验,并能够清晰地讲解项目细节,是获得工作机会的关键。 42 | (3)关注求职时间节点 43 | 外企的实习招聘通常在一二月份或三四月份开放,学生需要提早关注并准备好相关申请材料,尤其是英文简历和面试准备。校招是获取正式工作的重要途径,学长建议要充分利用这一机会,但同时要有充分的准备,特别是在面试中的表现要让人感觉你已经具备实际工作的能力。 44 | (4)英文简历与面试准备 45 | 外企通常要求提交英文简历,因此需要提前准备,并确保简历内容准确、清晰,能够突出你的优势和经验。外企可能会有英语面试环节,有时会由外国面试官主导,因此需要具备一定的英语表达能力,能够用英语流利地讲解技术问题和项目经验。 46 | (5)充分利用学校资源 47 | 学长强调,要善于利用复旦大学的校友网络,这个平台非常强大,能在实习、求职等方面提供重要帮助。与此同时,也要在自己有能力时回馈这个网络,帮助其他学弟学妹。 48 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 49 | 公司官网:他提到,获取就业信息的主要渠道还是通过各公司官网。大部分公司都会在官网上发布招聘信息,包括校招和实习的职位,学生可以直接在官网上申请。 50 | 学生年级大群:他还提到,在年级的大群里,大家会分享各自了解到的就业信息。这个大群通常有500多人,每个人都提供一点有效的信息,整体信息量就会非常大且有用。 51 | ## 可以分享下您在校招时的经历和心得吗? 52 | 双重准备:学长提到,他的校招过程与其他同学有所不同。他在进行校招的同时,还准备了公务员选调生的考试。因此,他在9月份之前就已经完成了所有计算机领域的校招工作,之后几个月则专注于公务员考试的笔试和面试,最终在1月份决定了去微软工作。 53 | 实习的重要性:在校招过程中,学长发现实习经历对求职有极大的帮助。由于他有在腾讯和微软实习的经历,这使得他在校招时表现得更有信心,有的公司甚至没有让他做题,直接和他聊项目经历。这是因为他在实习期间实际参与了项目,因此对相关内容非常熟悉,能在面试中表现得游刃有余。 54 | 选择的策略:在选择offer时,学长建议要给自己留有余地。例如,如果在多个公司之间有选择,他建议不要过早拒绝其他公司offer,而是在规定的时间内做出慎重选择,以免后续因为某些不可预见的情况而陷入被动。 55 | ## 您对那些正在学校学习,迷茫于找工作的学弟妹有什么寄语吗? 56 | 提前思考职业方向:学长建议研究生在研一、研二期间上课时,就要开始思考自己未来想要从事的工作。虽然不一定每天都在思考这个问题,但要时常花些时间认真考虑自己到底想要怎样的职业方向。提前明确自己的目标,对未来的求职会有很大帮助。 57 | 充分利用学校资源:他强调,学弟学妹们要善于利用学校提供的平台和资源,特别是校友网络。学长提到,在他的实习和工作过程中,无论是在国内还是出国交流,他都能依靠复旦大学的校友网络获得帮助和支持。因此,他鼓励大家积极利用这些资源,并在有能力时回馈学校和校友网络。 58 | 保持开放的态度:学长建议大家保持开放的心态,不要过早局限自己。他提到,自己虽然已经选择了工作,但仍然保持着开放的态度,愿意接受未来的不同可能性。他认为,在职业发展的早期阶段,保持好奇心和开放的态度非常重要。 59 | -------------------------------------------------------------------------------- /src/guidance/internet.md: -------------------------------------------------------------------------------- 1 | # 互联网 2 | 3 | ## 互联网大厂核心部门之我见 4 | 5 | 本篇内容整理自蒋雨宸学长的观点分享,已获得原作者授权,蒋学长是2024届南大计算机硕士毕业生,以下是他的微信号和知乎链接。 6 | 7 | **微信号:** LIMBO\_42 8 | 9 | **知乎主页:** [https://www.zhihu.com/people/luo-chen-96-77](https://www.zhihu.com/people/luo-chen-96-77) 10 | 11 | ## 背书程度排序 12 | 13 | 无论是找实习还是正式工作,首要考虑的无非是两个维度:**背书和转正率**。而对于背书的重要性,我个人为之排了个序:**大厂核心部门>中厂核心部门>大厂非核心部门>中厂非核心部门>其他** 14 | 15 | 那么什么是互联网大厂呢?我个人认为只有BAT三家称之为大厂,只有他们三家业务很广,横跨多个领域。而其他公司例如:美团在本地生活,主要是在外卖上发力;快手短视频、pdd电商、小红书社区等,他们的业务都比较单一。相反,腾讯有社交,有支付,还有游戏;字节有短视频,咨询平台(头条懂车帝等等),也有短视频的衍生物如直播这种特殊的电商模式;阿里有阿里云、电商物流和金融平台。 16 | 17 | 下面我将逐一介绍每个大厂组织结构和核心部门(介绍顺序与企业地位无关)。 18 | 19 | ## 腾讯 20 | 21 | **腾讯有六大事业群,分别如下:** 22 | 23 | 1. **企业发展事业群(CDG)** 24 | 25 | 主营业务为战略投资,咨询,市场公关等。这个事业群的岗位一般是一些职能类和市场类。 26 | 27 | 2. **互动娱乐事业群(IEG)** 28 | 29 | 这是个游戏工作室,也是腾讯最值得去的事业群其一。作为腾讯的主要收入来源之一,IEG 被认为是公司内部极具吸引力的事业群。IEG 下辖有四大知名游戏工作室:天美、光子、魔方和北极光,每个工作室都有自己的特色和专业领域。 30 | 31 | 在这些工作室中,还有进一步的细分团队,负责不同的项目和游戏。例如,天美工作室的 L1 团队负责开发广受欢迎的《王者荣耀》,而 Z1 团队则在寒假期间大力推广了《元梦之星》。IEG 的成功在于其能够孕育出市场上的爆款游戏,这不仅能为公司带来丰厚的利润,也能为团队成员提供极为优厚的待遇,如某些工作室成员能获得高达20个月工资的年终奖。 32 | 33 | 然而,游戏行业的竞争同样激烈,项目的成功与否对团队的影响巨大。如果某个项目未能达到预期,可能会面临团队调整甚至裁员的风险,这一点在行业内并不罕见,如字节跳动的游戏部门“朝夕光年”所经历的情况。 34 | 35 | 在游戏开发的过程中,不同部门的重要性也有所不同。引擎>客户端>后台/后端。 36 | 37 | 3. **微信事业群(WXG):** 38 | 39 | 作为腾讯的核心业务之一,微信事业群(WXG)是公司最值得加入的部门之一。 40 | 41 | 微信不仅是腾讯的流量命脉,也是其技术创新的重要基地。WXG 自主研发了众多内部技术解决方案,确保了微信服务的持续领先。视频号作为新兴功能,正迅速崛起,展现出与抖音竞争的潜力。同时,企业微信也在企业通讯和协作领域取得了稳健的发展。 42 | 43 | 4. **技术工程事业群(TEG)** 44 | 45 | 作为公司的中台部门,技术工程事业群(TEG)扮演着基础设施建设者的角色。TEG 负责开发和维护数据库、网络和机器学习平台等核心技术架构,为整个公司提供坚实的技术支撑。 46 | 47 | 5. **平台与内容事业群(PCG):** 48 | 49 | 平台与内容事业群(PCG)主要负责运营腾讯的老牌业务,包括腾讯QQ、腾讯视频和QQ浏览器等。这些业务凭借成熟的技术和稳定的用户基础,虽然增长空间有限,但仍是公司的重要组成部分。 50 | 51 | 6. **云与智慧产业事业群(CSIG):** 52 | 53 | 云与智慧产业事业群(CSIG)以腾讯云为核心业务,致力于云计算和智慧产业解决方案的开发。尽管面临阿里云、华为云等强劲竞争对手,CSIG 仍在努力寻求突破。市场竞争激烈,且行业评价和业绩压力较大,CSIG 需要不断创新和优化服务,以提升市场竞争力。 54 | 55 | **总结:** 56 | 57 | - 腾讯的两大核心事业群为互动娱乐事业群(IEG)和微信事业群(WXG),开发语言以前主要使用 C++,现在很多转go语言。 58 | - 核心程度粗略排序:互动娱乐事业群(IEG) = 微信事业群(WXG) > 技术工程事业群(TEG) > 云与智慧产业事业群(CSIG) ≈ 平台与内容事业群(PCG)。 59 | - 腾讯的关键部门包括天美、光子、优图实验室、AILAB等,这些部门在推动技术创新和产品研发方面发挥着关键作用。同时,微信公众号、视频号和企业微信作为公司的重要产品线,也是核心部门。 60 | - 腾讯的岗位绝大部分在深圳,微信事业群(WXG)主要位于广州,而天美工作室在成都也设有分部。 61 | - 工作强度来看,腾讯相对而言不是很卷。 62 | 63 | ## 字节 64 | 65 | 字节跳动以其扁平化的组织架构而著称,这种架构带来了多条业务线,且相较于腾讯和阿里巴巴,其业务划分并不那么细致。以下是字节跳动的一些主要业务概览: 66 | 67 | 1. **抖音业务群**:涵盖抖音短视频平台、今日头条新闻客户端以及西瓜视频等多媒体内容服务。 68 | 2. **飞书**:一款集成了即时通讯、视频会议、日历、文档在线协作等功能的办公协作套件; 69 | 3. **火山引擎**:作为字节跳动的技术服务平台,火山引擎与阿里云和腾讯云竞争,提供云计算和人工智能服务。 70 | 4. **朝夕光年**:字节跳动的游戏部门,负责游戏开发和发行业务。 71 | 5. **TikTok**:国际版的抖音,在全球范围内广受欢迎,特别是在年轻用户群体中。 72 | 6. **Data 部门**:专注于搜索、广告推荐算法和数据服务,是字节跳动精准营销和个性化推荐的核心支持部门。 73 | 7. **电商业务**:字节跳动在电商领域的拓展,利用其庞大的用户基础和流量优势,涉足商品销售和带货服务。 74 | 8. **其他业务**:字节跳动还涉足了其他多个领域,例如小说阅读平台、汽车信息服务平台懂车帝等,持续拓展其业务范围和市场影响力。 75 | 76 | **总结:** 77 | 78 | - 核心部门:在公司中,AML(人工智能机器学习部门)占据核心地位,它不仅是最核心的机器学习和算法平台,还涵盖了AI基础设施建设。此外,抖音、TikTok的业务部门以及搜索、广告推荐平台(搜广推部门)也是公司的关键部门。 79 | - 工作强度:在BAT(百度、阿里巴巴、腾讯)三大公司中,字节跳动以其高工作强度著称,被认为是“最卷”的公司。然而,这种高强度的工作节奏也伴随着公司快速的发展和广阔的职业前景。 80 | - 工作城市:字节跳动的工作岗位主要集中在中国的一线城市,如深圳、北京和杭州等地,这些地方拥有较为集中的技术和业务团队。 81 | 82 | ## 阿里系 83 | 84 | 1. **云智能集团**:作为集团的核心技术支柱,云智能集团的业务涵盖阿里云智能、企业通讯协作平台钉钉、智能音箱天猫精灵以及专注于前沿科学研究的达摩院。 85 | 2. **淘宝天猫商业集团**:负责国内电商业务的核心板块,包括综合电商平台大淘宝(淘宝、天猫、阿里妈妈)、B2C零售事业群、社区团购业务淘菜菜、性价比电商平台淘特以及国内贸易平台CBU。 86 | 3. **本地生活集团**:以提升用户日常生活便利性为目标,主营业务包括地图导航服务高德和在线订餐平台饿了么。 87 | 4. **菜鸟集团**:专注于物流和供应链管理,为电商生态提供强有力的物流支持。 88 | 5. **国际数字商业集团**:拓展国际市场,业务包括东南亚电商平台Lazada、全球在线零售平台速卖通(AliExpress)和国际贸易平台ICBU。 89 | 6. **大文娱集团**:涵盖阿里巴巴的文化娱乐业务,旨在丰富用户的精神文化生活。 90 | 7. **蚂蚁集团**:以支付宝为核心,提供全面的金融服务,是集团金融科技的重要分支。 91 | 92 | **核心部门:**阿里云(ECS,PolarDB,各种存储包括OSS,SLS等等),淘天淘宝,阿里妈妈,淘宝首猜,蚂蚁,达摩院。 93 | 94 | **工作地点:** 杭州北京居多,少部分在上海 95 | 96 | ## 中厂 97 | 98 | 这里是我个人的一些刻板印象,不一定正确,欢迎指正: 99 | 100 | **中厂第一梯队:** 101 | 102 | 1. 美团:公司主要工作地点集中在北京,而点评业务(大众点评)的少数岗位位于上海。核心部门包括到店业务和到家业务,分别对应大众点评和外卖服务。 103 | 2. 拼多多:以其严格的工作时间而闻名,目前正全力发展其海外平台Temu,新入职员工大多会参与Temu项目,工作地点主要在上海。 104 | 3. 快手:近期在电商领域进行了大规模裁员,但主站业务相对稳定。公司工作环境竞争激烈,工作地点以北京为主,同时在杭州和深圳也有部分职位。核心部门为社区科学线。 105 | 4. 百度:尽管目前略显落寞,但公司正在积极开发大型模型,其成果尚待观察。百度的主要工作地点位于北京。 106 | 107 | **中厂第二梯队:** 108 | 109 | 1. 小红书:发展势头强劲,实行大小周工作制,被个人看好,但正寻求盈利模式。与拼多多、得物并称为上海三大卷厂。 110 | 2. 网易:专注于游戏领域,其技术栈与典型互联网公司有较大差异。 111 | 3. 其他企业:包括b站、滴滴、携程、米哈游、蓝绿手机厂等。 112 | 4. 大疆:工作环境竞争激烈,工作强度可与拼多多媲美。 113 | 5. 微软、亚马逊:在国内的招聘活动已大幅减少。 114 | 6. 英伟达:提供良好的工作生活平衡(WLB),在业界认可度高,尤其对于AI基础设施相关的职位,是一个值得考虑的选择。 115 | 7. 米哈游:招聘活动很少,由于缺乏职位空缺(hc),导致招聘标准非常高,即使来自985高校的本硕毕业生也有简历筛选不通过的情况。 116 | 117 | **卷度排序:** 根据网上的风评(不代表真实情况,实际情况可能因部门而异): 118 | 119 | 1. 拼多多的竞争激烈程度最高。 120 | 2. 其次是小红书、大疆、得物。 121 | 3. 字节跳动、快手、华为位列其后。 122 | 4. 淘宝、天猫、蚂蚁、百度以及阿里巴巴和腾讯的一些部门紧随其后。 123 | 5. 百度、阿里云、腾讯TEG、美团等位于排序的中部。 124 | 6. 微软和英伟达的工作环境相对较轻松,位于排序的末尾。 125 | 126 | **请注意,上述信息基于网络风评,具体情况可能因公司部门和岗位而异。** 127 | -------------------------------------------------------------------------------- /src/interviews/24-jp-entrepreneur.md: -------------------------------------------------------------------------------- 1 | # 24届 教培创业 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 我本科是上海大学通信工程,硕士是复旦大学信息学院,于今年2024年毕业。研究方向是医学信息处理的方向。但我现在是创业阶段,属于教培行业。 6 | 刚开始接触教育培训是我本科上大二的暑假时,与一个合伙人朋友给高中生做文化课的培训的经历,我们面向的人群也是高中生人群。当时培训的地点是在我老家的小县城,培训第一年的招生还不错,招了100人以上。 7 | 到第二年我们就扩大了规模,开始装修场地,教培内容主要做寒暑假的培训,除寒暑假的时间就租场地给其他老师。这个过程从2019年一直持续做到2021年。从一开始的第一年十几个老师,到60多个老师(高峰期时),规模也从一个校区扩大到三个校区,并且整体学生的招生量也很不错。但到后来国家的双减政策和口罩原因,我们规模有所收缩,最后就只缩减到一个门店,一直运营到现在,而且我后来也管的少了,开始了其他创业项目。 8 | 到2022年年底,一次偶然的机会知道有一种机构叫‘考研寄宿’,恰巧机构也在寻求转型阶段,因此就想从这个地方入手。有了这个想法后,第一行动就是选址,最后选择安徽合肥的一个地方作为考研寄宿的落脚点。 9 | 其实当时在选址的时候也经历了很多事情。首先考研寄宿这个东西比较复杂,不仅要给学生提供学习的地方,还需要提供宿舍。我们花费了很多精力来找合适的地方,其中有便宜的也有贵的。但最终选定一个采光很好的毛坯房来进行装修,自己画图纸,自己找施工队,最后将1400多个平方的场地装修完成。从装修成果从环境上来看,学习环境属于合肥条件最好的,其中包括餐厅、健身房等等。然而装修好后要解决最大的一个难题就是宿舍。我们这个园区什么都好,但恰恰就没有宿舍。但幸运的是对面就是一个回迁房的小区,我们租了对面的小区作为宿舍,从而缓解了短暂的压力。但由于宿舍与学习地方不是一体化,中间隔了一条街,因此这为后面招生带来了一定的困难。 10 | 到后来,我们跟别人合作,又开了另一个寄宿机构,所有的配套设施、宿舍等等比第一个都要更好。除了提供考研场地,我们还做一些其他的考研服务,我们做的是类似于督学服务等等,一直经营到现在。 11 | 12 | ## 最开始做高中文化课培训,你们是如何与学而思、新东方等大型机构竞争的呢?遇到了哪些困哪? 13 | 14 | 首先是地理位置,我们第一年做高中辅导机构的地理位置在我安徽老家十八线的小县城,因此像学而思、新东方这类机构没办法下沉到这些地方来。并且当地也存在一些规模较大的地头蛇机构,基本上已经把小升初的培训做到了垄断。我们当时也面临了两点困难:首先我们都是刚毕业的大学生,年龄也比较小,很难与家长建立信任;其次是如何获取在读学生的信任,让他们来报课。意识到这两点困难后,我们决定先锁定‘高中生’为我们的目标客户。 15 | 锁定高中生为目标客户的原因有两点:一是高中生有自我意识,决策权在他们手中。而小学生和初中生的大部分决定权都在家长,并且很多家长比较难搞。二是‘答疑室’的建立。我们专门预留了一些教室叫‘答疑室’,主要解决学生上不同辅导班中间的等候时间问题。学生们周末一般会上好几门课,而不同课程中间会有一些预留的时间,有的长达几个小时,因此我们想到可以将我们的空闲教室作为答疑室,供学生们自习。我们也会配备专门的老师来解答学生的疑问,而且所有的科目都可以问。因此当时这个举措也获得了很大的成功,现在也有很多的机构在效仿我们这种方式。 16 | 其实在教师团队配置和课程设置上我们也有一些小巧思,我们只招985和211在读或毕业的大学生当老师,包括本地的文理科状元也是我们的老师之一,师资团队也很有优势。另外,在课程设置上,我们可以让学生免费试听三堂课,如果满意则付尾款,不满意我们连同定金全部返还。当时刚做一年,效果很好,也为后面几年打下了基础。 17 | 在宣传上,由于学校不让进,所以我们就让校内同学帮忙发传单。我们印了2万份传单,确保学校里的每一个人都能收到我们的传单。然后打通几个核心的家长帮忙做宣传,在招收第一批时,就有40人左右。后来等第一次考试结束之后的一两天,学生出现了爆发式的增长,但由于我们没有那么多老师以及教室里的座位有限,很多后面来的人我们就没招,所以那年我们一共招了一百多个学生。 18 | 19 | ## 后来的考研寄宿又在做什么?提供考研课程吗? 20 | 21 | 我们的寄宿机构定位比较明确,不提供课程服务。因为像考研、考公、专升本等这类的课程,对老师的要求很高,且这类网上的资源又很容易获取,如果不是特别优秀的话很难去获得大家的信任。我也见过很多一开始是做寄宿机构,后转去做考研课程机构的,但无一例外都失败了。像市面上比较知名的启航、研途这类本身就做考研课程起家的机构,再想去做寄宿机构,反而容易成功。这两类的难度是不同的,一个是从易到难,另一个是从难到易,所以做考研课程是很难做过大公司的。 22 | 最后,我们想到做督学的服务,给每个学生订制学习计划,精算到每一天,按照一个周期来收费。我们也有一些自己的订制的讲义和资料,配合学生去练习。 23 | 24 | ## 那目前招生的都是哪一类人群呢? 25 | 26 | 各地学生都有,主要分为几类: 27 | 28 | 1. 正在合肥读大学的大学生; 29 | 2. 家在合肥本地的; 30 | 3. 网络上通过社交媒体找过来的; 31 | 32 | ## 目前你们团队的现状是怎么样的?包括团队人数和收入等等? 33 | 34 | 我们的团队人数不是太固定,并且也会招一些老师来做兼职。督学内容的老师与当下招生人数有关,配比是10:1,每10个学生配一个老师。 35 | 在经营上,我们一共有240个位置,去年招了190多个人,今年240人已经全部招满了。收入上,今年的成本都能回来且还会盈利一部分。 36 | 但从创业的角度来看,我不太推荐大家做寄宿机构,一是投入成本很大,第二是回报周期也很长,三是维护资金也很多,包括电费、房租、装修、硬件配备、工资等等,都是很大的开销。尤其是夏天的自习室电费,每天都要花1000多元,一年下来在电费上就要花十七八万。 37 | 我反而推荐中小学的文化课辅导,这个投入成本较低且回报率较高。我们一开始只拿了5000元出来创业,当时临时租了场地,买了点座椅就干起来了,但也要结合后面的政策趋势来看,例如双减等政策,不过现在看双减也在逐渐放开。 38 | 39 | ## 想问一下你做寄宿机构的第一笔创业资金是从哪些渠道来的呢? 40 | 41 | 我的第一笔创业资金是从我前期做K12教培时积累的钱。 42 | 寄宿机构的话前期投入成本比较大,且风险也很高,完全取决于第一年的招生情况,如果第一年招生比较少,那基本就经营不下去了。但是我们第一年招生情况还可以,主要靠小红书等平台的宣传,招到了挺多的学生,所以才慢慢维持下来。 43 | 44 | ## 你们是通过哪些渠道招到的员工呢?是boss直聘这类招聘软件吗? 45 | 46 | 大多数都是通过熟悉的朋友、同行介绍过来的;还有我之前做教培时所积累的人脉等等。有一些是我机构的学生,他们考研结束后可以做线上做督学这一块,所以大多数都是比较熟悉的人。 47 | 48 | ## 你们当时有考虑过找投资人吗? 49 | 50 | 当时没考虑过,完全是两个合伙人来出资的。我们当时也算了一下,从盈利的角度和规模来看不是一个很大的项目,所以也不适合找投资人。如果k12需要很大的资金的话可能会去找投资人。 51 | 在2019和2020年期间,k12教培做得很好的时候,也有一些人要给我们投资,但都被我们拒绝了。主要原因是我们两个当时都在读大学,没有办法全身心的投入到这个里面,而且如果拿着人家钱又没精力去运营项目的话也不太好。尤其是后面双减政策出来时,我们彻底打消了这个想法。 52 | 但是我也知道有一些做的比较大的机构,也是有投资人的,就在我们机构隔壁,他们规模做的很大,一共租下了两栋楼,每栋楼有九层,一层有1600平方米,由于他们有融资,因此一年内在全国开了六家巨型门店,但这家机构只存活了一年,后来倒闭被政府收购了。 53 | 所以我们创业并不追求规模,而是一直探索新的项目,追求新型的教育,做符合国家和政府政策的内容。 54 | 55 | ## 你们能够做成功有哪些心得? 56 | 57 | 我觉的有一些运气在里面。首先是选址,我们当时选完后,一些类似于启航等大型机构就都搬过来了。其次是室内环境,周边有一些机构还没装修完就开始招学生,导致学生闻到甲醛后就会头晕,所以就过来了,也算是引一部分流。再者是价格战,不是说我们打价格战,而是其他机构打价格战,价格低到离谱,明显是想从我们这把人挖走,但过了一段时间,他们也觉得压力很大,所以也就没有再继续。 58 | 第二就是运作流程不一样,我们机构一开始就会预留一些资金用于资金运转,线保证能活下来,像老师薪资都能够照常发。而隔壁与我们同类型的机构完全是资本化运作,前期投入过大,导致中后期缺少资金,老师的工资会拖欠,所以压力也会更大一些。 59 | 60 | ## 你对教培行业未来发展的看法?在政策、技术的发展下有什么趋势? 61 | 62 | 我先从考研寄宿机构讲起。2022年底,我正式入行。当时全国规模超过50人的寄宿机构仅有十几家,正值疫情时期,学校无法正常上课,因此寄宿机构的行情非常火爆。只要开一家店,很快就会爆满。然而,到了2023年,寄宿机构的数量迅速增长至40多家。这种爆发式的增长也不可避免地带来了优胜劣汰的局面,包括今年也有不少新机构开张,也有一些被淘汰。因此,考研寄宿行业如今进入了一个趋于平稳的阶段,目前入行的人数也显著减少。 63 | 从考研课程的角度来看,尽管考研人数有所减少,但考研机构的报名人数反而有所增加。这意味着课程设计和营销需要更加精准或尖端,才能在竞争中脱颖而出。像启航这样的大型连锁机构,凭借规模和品牌优势,招生情况相对较好。然而,考研课程的市场份额已被瓜分大半,行业现状愈发激烈。 64 | 在K12领域,许多老师从新东方等大型机构离职后,借助过往的名气和资源自立门户,这使得他们赚取了可观的收入。然而,近年来,K12教育逐渐向学习机模式转型。目前,科大讯飞的“星火模型”已融入学习机中,一些教育机构也开始采用学习机进行教学。例如,学而思线下的一些机构主要以学习机的形式授课,孩子进入课堂后,主要通过学习机完成学习任务。 65 | 我认为这种模式非常有潜力。学习机可以根据不同学生的需求定制化课程,针对某个学科的薄弱环节,进行强化和重复练习。此外,学习机还让学习时间和地点更灵活。相比传统课堂,AI驱动的学习机不仅能实现实时互动,还可以拆解知识点,提升学习效果。而老师的角色则更多地转向关注学生的状态、学习习惯和卡点问题,这是传统大班教学难以实现的。 66 | 这种学习方式更类似于一对一辅导,但成本远低于传统的一对一教学,同时提供的服务质量可能更高。在“双减”政策下,许多大型教育机构不断探索新的学习方式,发现学习机的教学效果相当不错,因此这一模式逐渐受到欢迎。学习机算法也能加深学生对知识的记忆,根据错题实现针对性训练,甚至能比老师更了解学生的需求。虽然当前的学习机技术仍有待完善,但我相信未来会取得更大的突破。 67 | 68 | ## 你之后还会进军k12吗?做的内容还会类似吗? 69 | 70 | 会的,已经在筹备这件事了。后面做的k12内容肯定会有所区别。现在想做的是那种不会被政策限制住,并且能产生比较好效果的项目。 71 | 例如有一些做的比较大的在线教育课,线下可能有几万甚至十几万的学生在听,十几万学生意味着什么?相当于要用同一套模式,同一套课程来批量生产思维,并且所有的学习内容都是一样的,这对孩子们的学习是非常不利的,它没有考虑人的特殊性,也违背了教育本身,所以这才导致后面会被叫停。而学习机教学更多考虑的是学生的特异性,不同学生的教育是不一样的,所以这也符合教育规律。 72 | -------------------------------------------------------------------------------- /src/interviews/23-x-music.md: -------------------------------------------------------------------------------- 1 | # 23届硕-肖钒-腾讯音乐大模型算法工程师 2 | 3 | 联系方式: 4 | 5 | ## 可以介绍下您毕业后的工作经历吗? 6 | 7 | 第一份实习是在QQ音乐的搜索组。QQ音乐是搜索和NLP都在一个中心(NLP:自然语言处理,以语言为对象,利用计算机技术来分析、理解和处理自然语言的一门学科)。 8 | 我在其中做的项目是和懒人听书联合的一个AI有声书的项目,主要做的是项目里NLP这一部分,就是通过NLP找到它这个小说里面的某句话的某个角色,从而根据这个角色的一些特点来提供语音信息。举个例子:比如说去识别这一本小说里的哪些话是哪个角色去说的,他应该有什么情感,最后让AI根据每个角色特有的声音自动朗读。 9 | 我最后在腾讯QQ音乐的搜索组拿了转正的offer并入职。 10 | 入职之后没多久调去另外一个部门做AIGC(人工智能生成内容,利用AI自动生成图片、视频、音乐、文字等),简单来说就是做一个虚拟人的应用,我主要负责聊天大模型的模块。 11 | 12 | ## 目前薪资待遇和工作强度是怎么样的呢? 13 | 14 | 薪资待遇的话按等级来说我可以算是个SSP。薪资构成是基本月薪,补贴,第一年有签字费,分两年给股票(会随着股价变化)。 15 | 年终奖一般默认是四个月,也会上下浮动,具体多少和部门有关系,实际上去年我年终奖就比四个月还高很多。而对于少的来说,两三个月都有可能。QQ音乐在腾讯属于一个中上的水平,它肯定不是最好的,微信视频号,还有王者算是最好的。我入职的时候并不是大模型的风口,如果在风口入职可能更高,这个只能看运气。 16 | 工作强度算法这边还是比较轻松的,一般十点多一点到公司,晚上没什么事的话六七点就下班了,忙的时候可能到八九点,周末双休。 17 | 业务上腾讯基本上是半年定一次OKR,做大模型的不会像搜广推那样给一个硬指标。我是在偏应用的算法组,没有发论文的需求。 18 | 之前有一段时间做一个面向海外的虚拟聊天APP叫做未伴,就是希望APP能够有更多人跟他去聊天。我这个岗位会更多的考虑怎么去应用它,而不是纯粹的做大模型,包括怎么去微调,训练,写部署逻辑等。虽然要做的事情很多,但是工期不会排的很死,基本上都是自己安排自己的时间,而开发团就会把工期排的很死,加班挺严重的,干到九点多都是常态。 19 | 20 | ## 计算机在校的同学选择算法岗会有两个方面的顾虑,一个是网传算法岗现在的门槛较高,竞争激烈,很难拿到offer。另一种是有的同学觉得可能算法岗相较于开发更容易被裁掉,你觉得这两种说法真实吗? 21 | 22 | 第一个问题卷是肯定卷的,也没那么夸张。 23 | 现在很多同学都太做题家思维了,一个人的水平不只是论文这一个评判维度。有论文定会肯定是一个加分项,但是不是说有论文比没有论文的就一定可以进更好的公司,获得很高的待遇。企业选择人的时候更看重的还是一个人的综合能力,比如经验、能力,在面试时候展示出的对专业知识的掌握度等。 24 | 我们组去年经历过扩张,我有负责招聘中其中一个实习生岗位的一面,我发现大家都在追求一些很奇怪的东西,反而忽略了自己的核心竞争力。我遇见过很多人确实有论文但是论文很水,这样反而会造成负面效果。举个例子,我们今天招聘大模型实习生的时候,很多都是复旦,浙大之类的名校学生,他们有的有不止一篇论文,但是论含金量很低,这会给面试官留下不好的印象。但有一些学生做过一些比较有挑战性的工作,基础知识很扎实,这会在面试中大大的加分。 25 | 对于比赛这件事情来说,在资源难以获取的一个年代,没有办法接触到一些资源的时候,只能通过打比赛去体现自己的价值。但是现在由于AI等一系列技术的发展,信息壁垒被打破,不需要靠这种单一的模式去证明自己,而是要证明在这些知识技能方面自己是专精的,有见解的。 26 | 面试整个大的趋势是轻背景,重能力。 27 | 裁员这方面来说,并不存在算法比开发更容易被裁。所有的工种都存在着裁员危机。据我观察,算法在技术食物链中还是处在比较顶端的一个位置。如果要裁算法人员,公司要考虑用工成本等多方面因素。而且在腾讯这种大厂中,算法岗不会特别的冗余,整个的结构还是比较健康,而开发和运营被裁的概率就会很大。也不是每个地方都是这样的,如果一个大模型公司80\%都是算法工程师,那算法被裁的概率肯定会水涨船高,主要是看结构是否健康。 28 | 29 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 30 | 31 | 读研之前想过算法很卷,考虑过转开发。 32 | 读研之后做算法挺有趣的,就不打算换方向了。 33 | 34 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 35 | 36 | 我个人比较推荐两条发展路线。 37 | 其一,通过不断的跳槽来实现利益最大化。 38 | 在一个地方干了一两年之后就跳槽到下一家公司,来获取比较高的薪资和职级。在得到比较高的职级之后,以大厂的背景去一些小厂做leader,或者去初创公司,或者选择自己创业。当然从大厂中跳到小厂做一个leader还是比较稳妥的做法。 39 | 其二,积累资本之后考公或者去国企。在达到考公限制年龄之前考公,或者去国企或者回老家。因为大家都是普通人,不可能所有人都能爬到一个比较高的位置,这个方向的人数量是比较多的。 40 | 41 | ## 在面对大厂随时可能出现的裁员风险时,这种压力会带来怎样的情绪和焦虑?作为在校生或者刚刚步入职场的人,您认为应该如何应对这种情况? 42 | 43 | 互联网的35岁危机是客观存在的,接近40岁在互联网行业中就属于高龄了。我们公司有一个北航本科的同学,在公司做了很久,但是最后也是因为年龄问题就被优化掉了。互联网每天有源源不断的人进来,如果到一定的年龄没有突出的优势也没有升上去,那被优化的概率就会很高。 44 | 从一个技术工种的角度来说,要在学习上有一个很强的主观能动性,不能一直闷头干活,这样容易丧失竞争力。比如如果出了一个新的模型,新的算法,要很快的去follow,学习最新的技术,去建立属于自己的技术壁垒。 45 | 我目前并不是很怕裁员,第一个是我还比较年轻,没有很大的经济压力。第二个是我会很认真的工作,在技术上做到与时俱进,坚持学习新的理论,去看源码,跟业界的同行去进行一些交流,加深自己的技术。这样 的话可能以后就算是到了35岁危机,我也已经积累了一些人脉资源、副业这类东西。 46 | 47 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 48 | 49 | AI行业现在的确是一个风口,但是风口之下肯定是有泡沫存在的。去年GPT出现,紧接着GPT4发布。国内资本市场看到了AI市场,不理智的进行了大量的投资,当没有得到预期效益的时候,资本回归理智,浪潮退却。我觉得在最近几年AI发展的一个大的趋势之下,AI成为主流会是一种必然,但是中间可能会有起伏。由于防火墙的问题,国内公司也会投钱去做GPT这样的一个产品,在这个过程中可能就会诞生出大量的机会。 50 | 而AI超级应用这些概念虽然经常被提及,但是具体什么时候可以实现其实不太明朗。在目前的这个时代,也不一定要去做算法,投身做AI也是比较好的入行时机。 51 | 52 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 53 | 54 | 首先要进入到比较好的学校的比较好的实验室,但是不是说在一个很好的实验室就万事大吉了,师傅领进门,修行在个人。进入一个好的实验室,接触到的东西可以帮助你打一个很好的基础,实验室背景也是找工作时候加分项,但是最终找工作看的还是自己的积累。 55 | 从过来人的经验来说,一开始进实验室最好还是要想办法做一篇扎实的科研论文,要真正参与到研发的过程中,而不是糊弄一篇一看就很水的论文。要在这个领域去学到东西,去调研,去跑实验。有一篇论文之后就有一个学术经历,是一个很好的基础。 56 | 接下来就可以出去实习。就日常实习来说,复旦的学历背景已经ok了,其实一些AI日常实习门槛并不是很高,本质上就是招人帮忙干活。这个时候如果有一个比较好的论文的话,就可以让简历比较好看。争取在实习的时候积累一些工作经验,这样一整个流程下来,不论是实习还是秋招的过程,都可以游刃有余。今年我们也遇到了很多这样的学生,背景不错,去了很不错的地方实习,基本上最后都去了一个很top的地方。 57 | 58 | ## 请问学长在一系列研究过程中,需要刻意的去追随一个比较热门的研究方向吗?如果一个人的研究方向比较冷门,最后找工作会比较困难吗? 59 | 60 | 从我的经验来看,研究方向还是很重要的,其重要性和选专业来说不相上下。 61 | 我们在筛选简历的时候,首先会选择CS的学生,电子自动化的之类的大多数都会被筛掉。因为CS的学生已经很多了,除非是技术大佬可以无视方向,但是大多数普通人最好是在一个方向上有扎实的基础,独到的见解。当面试方向和你的研究方向特别match的时候,面试官会特别喜欢你。 62 | 举个例子,现在也会有一些公司来挖我,挖我的方向也就是和我现在做的方向特别match的。因为对于普通人来说,短时间内转型是相当困难的。只能在一个方向上去进行积累,这也是面试官最希望看到的。如果想进一个企业,研究方向肯定要和这个企业的业务有一定的交叉, 63 | 研究方向上的match比论文的级别更重要。 64 | 65 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 66 | 67 | 基本上都是通过官网去投递,还有一些类似牛客这样的平台,再关注一些比较大的公司的信息,这样就足够了。 68 | 69 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 70 | 71 | 如果重选一遍的话,我一定会打好基础之后直接出去实习到最后。 72 | 如果实验室算力不能支持大模型的训练,那最好是抓紧去实习。找工作的过程中最受欢迎的两种学生,一种是所在的实验室特别好,学生可以隔着实验室起飞;另一种是虽然实验室不是那么厉害,但是实习经历非常丰富。 73 | 找实习的时候实习的资源良莠不齐,像复旦这种学校一般老师手里都会有一些企业的资源,但是企业给学校学生做的项目往往是不是很重要的,企业不愿意花太大的精力,因此才会花比较少的钱把它外包出去。如果是企业的核心项目,是不会通过这样的一个形式去外包给学校的。但是也可能有核心项目,这个比较看运气。但是其实最好的项目组的企业项目大多数质量也很一般,所以要自己出去找质量高的实习。 74 | 最理想的状态就是研一自己能做一些东西,然后立刻去面比较好的企业,比较好的项目组的日常实习或者寒暑假实习,这样对于找工作来说的话收益是最高的。 75 | 我在毕业之前是没有中稿的,当时在实验室中做横向项目比较多,基本上实验室的每一个人手中都有横向项目,也有一些师兄手里的课题还不错,但是不是说想进去就进去的。 76 | 其实在学校里面做出来的东西也未必需要有论文的成果,能把做的东西的过程在实习招聘的过程中完整的讲出来就可以了。有一些人虽然有论文,论文可能还是a会,但是如果稍微深入的问他一些相关的概念,他就说不出来所以然了,这种情况就会让面试官比较下头。 77 | 这种一般分为两种情况,一种是他本身比较水,一种是他表达能力不强。要对写在简历里面的东西有一个深入的理解。 78 | 举个例子,之前我面别人的时候,候选人说做RAG方向,中间提到用了BGE,然后我问他为什么要用BGE,为什么必须是这样的,它的优点是什么,它的运行方式是什么?但是候选人不能够清晰的表述出来,这样就会很减分。 79 | 80 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 81 | 82 | 希望大家踏踏实实做点东西,别水。你学东西的时候水,到时候面试的时候面试官也会水你的。就是脚踏实地吧! 83 | -------------------------------------------------------------------------------- /src/interviews/08-google.md: -------------------------------------------------------------------------------- 1 | # 08届本-段新杰-谷歌售后服务经理 2 | 3 | 联系方式: 4 | 5 | ## **可以介绍下您毕业后的工作经历吗?** 6 | 7 | 我是复旦本科毕业,之后去的芬兰阿尔托大学读的硕士。 8 | 在芬兰读硕士期间的最后一年会在当地选择一个企业,企业会提供给你一份工作,就叫master thesis worker。然后在企业中一边工作一边写论文。这份论文的内容对企业也会有一定的帮助,最后论文会同时提交给学校和企业。 9 | 10 | 1. 我去的是芬兰当时最大的企业诺基亚的IT部门,经过了大概是半年的时间来完成我的毕业论文,之后继续在诺基亚工作了一段时间,但很不巧的是那个时候微软把诺基亚收购了,因此后续相当于我也在微软工作了几个月。然而,微软收购了之后就进行了一些裁员,当时我所在的整个team就都被裁掉了,至此就离开了微软(诺基亚)。 11 | 2. 接下来我就去了华为在芬兰的分公司做售后服务经理,工作了三年多,主要工作内容是管理那些直接去给消费者提供售后服务的服务供应商。比如说客户的手机出问题了,那需要去找到华为的服务门店去做维修。这种给消费者提供售后服务支持的具体的工作是由服务供应商来提供的,那我的角色就是管理这些供应商。我在华为工作了大概有三年,我会把在华为的工作定义为我的第一份工作,之前在诺基亚(微软)其实都算是实习或者是做毕业论文,等于是part time一样。华为的企业文化让我成长得非常快,同时心理压力很大,在华为的三年后,我觉得可以去挑战一下不同的职位,于是我主动选择了去一个创业公司。 12 | 13 | 3. 这是一个在芬兰做硬件产品的创业公司,工作了两年多,由于是在创业公司,因此主要工作内容基本覆盖了研发,售前,售后,客户对接等等非常广的内容。最后由于创业公司风险比较大,公司的现金流之类的问题比较多,加上公司的经营情况不是很理想,于是在19年的时候我就重新开始找工作。 14 | 15 | 4. 很幸运地找到了谷歌在伦敦的售后服务经理的岗位,工作了三年多,在2023年我主动申请调回了上海,现在是在上海的谷歌公司工作。 16 | 17 | ## **目前薪资待遇和工作强度是怎么样的呢?** 18 | 19 | 1. 在同样的一个公司售后服务经理和软件开发岗位比起来薪资会低30\%到40\%。 20 | 21 | 2. 工作强度方面,在华为工作时,由于工作地点在芬兰,因此双休是有保障的,朝九晚六,偶尔会加班,但这只是芬兰的情况,因为芬兰跟国内有5—6个小时的时差,我已经下班了,但是国内同事可能还没有下班。针对华为的话,国内跟海外的情况差距还是蛮大的。 22 | 在谷歌的话,work life balance会好很多。基本上就是朝九晚五,周末完全可以不用看邮件,我们的manager特别强调周末不要看邮件。员工彻底地跟工作分开,放假的时候就好好放假。 23 | 24 | 当然也可能是谷歌在这方面做得比较好,其他的一些外企比如说亚马逊可能也会存在加班这种情况。工作强度主要跟公司文化相关。 25 | 26 | ## **您当初选择这份工作,从事这个行业的理由是什么呢?** 27 | 28 | 我不是那么喜欢只跟代码打交道的工作,我更喜欢跟人打交道,所以对我来说,我会比较喜欢这样一份更多地和人一起打交道的工作。 29 | 30 | ## **这个工作/行业有哪些最令人满意的地方?** 31 | 32 | 最满意的是在华为做售后客户服务经理的时候,华为内部有很完善的体系与制度,这让我在短时间内成长得非常快,只要按照他的流程去执行,便不会犯太大的错误,可以让我一个刚毕业没多久的学生直接去负责一个国家的售后业务。 33 | 34 | 我以前对硬件产品的生产,研发,制造,销售等完全没有概念,但是在华为短短三个月我就全部都学会了。虽然那段时间压力很大,但在华为工作的时候对我的成长很有帮助,能够让我很快地掌握一个领域的知识。 35 | 36 | 在谷歌的时候,最让我感到开心的是谷歌它算是在硬件产品相对比较新的一个玩家,很多体系是不完善的,这使我有比较大的空间去按照我自己的想法去建立一些流程,并且完善一些项目。 37 | 38 | ## 这个工作/行业有哪些最想吐槽的地方? 39 | 40 | 1. 第一点就是售后服务经理对整个供应链的节点都需要有一定的了解,接触到的事情就会非常的杂。每天会有各种各样不同的小事情发生,涉及的面很广,发生的问题的点很多,所以需要你有很强的同时处理事情的能力。 41 | 42 | 2. 第二点是在售后服务经理的工作中,虽然不直接面对用户,但通过与供应商的交流,会了解到用户使用产品的实际情况。你可能会发现用户并不按照产品设计者的预期来使用产品,而是根据自己的需求。例如,产品设计是移动WiFi,但用户可能只把它当作家用路由器。这种情况可能导致产品设计与实际使用场景不匹配,需要处理各种意外情况,并保持包容心态。另外,即使进入了看似组织良好的公司,比如谷歌,也可能面对部门杂乱无章、缺乏体系的情况,需要像在创业公司一样逐步完善。这与之前的预期可能有一定差距。 43 | 44 | ## 在售后服务经理的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 45 | 46 | 售后服务经理属于运营的框架下。 47 | 48 | 发展路径分为两个方面,一个方面是垂直的,比如说我一开始是负责芬兰的售后服务,那我可能继续扩展我的业务,比如我可能负责整个北欧,继续扩展整个欧洲,再到全球。 49 | 50 | 另一方面是到相关的部门里面。比如说我现在是在做管理售后的,那我也可以去产品质量部门发展,因为会有一些共同的需要用到的东西。比如说:客户反馈的一些产品质量问题是通过售后服务经理进行收集,并反馈给质量体系的。所以我们也可以很自然地去做质量检查的事情。 51 | 52 | 售后服务经理对于整个业务流程都比较熟悉,了解得比较广泛,如果对供应链上哪一个点感兴趣,就可以跳到哪个方向。 53 | 54 | ## 在面对大厂随时可能出现的裁员风险时,这种压力会带来怎样的情绪和焦虑?作为在校生或者刚刚步入职场的人,您认为应该如何应对这种情况? 55 | 56 | 你已经是复旦的毕业生了,已经超过同龄人很大一截了,对于大部分的同龄人来说,你已经是个人中翘楚了。你之后的人生肯定会遇到起起伏伏的状况,一定要相信自己,你是从复旦毕业出来的,那就证明你是有足够的能力的。之后可能会有不同的困难,但是一定要相信这些困难是暂时的,最后都会有不错的结果,这是我自己从身边同学朋友的观察出来!对于这些本身条件素质就很好的人来说,哪怕会经历短暂的一些困难,但最终都会顺利地走过去的! 57 | 58 | 至于说短期的,不管是裁员还是失业的风险,我觉得就是顺其自然,找工作的时候,一直想着会不会裁员没有太大的意义,就正常去做。 59 | 60 | 哪天被裁了或者公司倒闭了或者其他的情况,没有关系,继续休整一下,再重新出发,重新再找工作就好了。大厂的话,离职的赔偿还是不错的,最起码能保证你一段时间不会因为生计而担忧。 61 | 62 | 其实有时候裁员还可能是好事情,比如说我有一个目前在谷歌的同事。他之前在几个外企做硬件,先后可能被裁了三次,但每次都是就一两个月就找到了工作,拿了离职赔偿之后,可能还赚了很多。 63 | 64 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 65 | 66 | 近年来,行业的主要发展趋势之一是越来越多的大型互联网公司开始关注硬件领域,希望通过拥有自己的硬件产品接口来掌控用户体验。例如,像苹果这样的公司成功地将软件和硬件整合在一起,从而实现了对用户体验的全面掌控。另外,像谷歌这样的公司,尽管推出了安卓系统,但由于其开放性,导致各个手机厂商对系统进行了各种定制,但是升级的情况也不尽如人意,用户可能还用着几年前的版本,因此谷歌也开始涉足硬件领域,以便更好地控制用户体验。 67 | 68 | 此外,随着人工智能技术的不断发展,越来越多的公司开始意识到依赖第三方的硬件解决方案并不是最佳选择。因此,他们开始考虑自主研发芯片以及提供自己的算力,以满足公司内部的需求。软硬件结合成为互联网大厂的一个重要发展方向。 69 | 70 | 智能硬件设备行业并非一直处于高速发展的状态,而是逐渐趋于稳定。类似于个人电脑和智能手机行业一样,经过一段快速发展期后,智能硬件设备也逐渐进入了一个相对稳定的阶段,包括出货量和产品迭代速度都在逐渐稳定。因此,整个智能硬件行业也在朝着更加稳定的方向发展。 71 | 72 | 未来几年内,我预测行业将会继续注重软硬件结合,大型互联网公司将继续探索自主研发硬件的可能性。可能某个产品处在高速发展,但整个行业将会处于一个相对稳定的状态。 73 | 74 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 75 | 76 | 我认为,表达能力非常重要。能够清晰地传达自己的想法和经历,让面试官迅速理解你的意思,是至关重要的。有时候,面试者可能问你一个问题,你可能想要表达很多内容,但却不能够清晰地传达出来,这会给面试官留下不好的印象。实际上,你可能做了很多工作,但如果你无法有效地表达出来,那在面试中就会显得不足。相反,即使你的工作内容没有做到100\%,但如果你能够完整地表达出来,那么你就会给面试官留下更好的印象。 77 | 78 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 79 | 80 | 1. 朋友介绍:第一份工作是通过朋友介绍得到的机会,朋友得知我在找工作后联系到了招聘方。 81 | 82 | 2. 招聘网站和招聘公司:在想要跳槽或者找新机会时,我会浏览一些招聘网站上的求职信息,或者直接关注一些招聘公司的招聘信息。这是比较传统的渠道,但也是我获取信息的重要来源。 83 | 84 | 3. 公司官网:对于想要加入的大厂,我会直接去他们的官方网站查看招聘信息。这是我认为最直接、最快捷的方法。 85 | 86 | 4. 内推:如果有朋友能够内推,那就更好了。因为据我了解,内推可以确保简历能够被真人的招聘人员看到,而不至于被简历筛选机器刷掉。 87 | 88 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 89 | 90 | 选择合适的路径非常关键。我觉得我当时选择的路径还算是比较合理的,先到一个像华为这样的大型企业去提升自己。华为拥有相对完善的管理体系,而且在业务领域也有一定的知名度。当时正值智能手机市场蓬勃发展的阶段,华为处于上升期,这给了我很好的发展空间。 91 | 92 | 持续学习和成长至关重要。在华为的那段时间,我认为学习新东西、不断提升自己是最重要的。这段经历为我奠定了坚实的技术和管理基础。 93 | 94 | 一旦积累了足够的知识和经验,可以考虑更适合自己的发展路径,比如创业公司或者外企。这样的选择可能会带来更好的工作生活平衡和更大的发挥空间。 95 | 96 | 对于大多数学生来说,刚毕业时的想法可能并不是很清晰。初入职场的年轻人先选择成熟的有前景、处于上升期的企业,快速提升自己的能力和经验。等到有了一定的积累之后再考虑其他选择,这样更为稳妥,风险也相对较小。 97 | 98 | ## 对于刚毕业的同学想进入这个岗位,是先去技术部门做几年技术工作,还是入行之后直接参与到售后服务经理这样的岗位更好呢? 99 | 100 | 在选择职业方向时,更重要的是考虑行业的选择,如新能源、医疗、金融等大型行业板块。 101 | 102 | 具体行业内的专业分工相对来说并不是十分重要,因为跨越不同行业的转换通常是相当困难的,尤其是在你在某个行业工作了数年甚至十年之后。这样的转换门槛极高,我身边很少见到成功从一个行业完全转移到另一个毫不相关的行业的例子。 103 | 104 | 对于毕业生的行业选择来说,选择一个未来具有长期发展潜力的行业至关重要。至于在行业内从事什么职务,如研发、售后、销售等,我认为并不是那么重要,主要看个人是不是特别感兴趣,因为以后还会有调整的空间。 105 | 106 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 107 | 108 | 我觉得就用我之前说的吧。都已经是复旦毕业的学生了,一定要对自己有信心,所有遇到的困难其实都是暂时的。长期地来看,你已经是一个很优秀的人,未来一定发展不会差的。 109 | -------------------------------------------------------------------------------- /src/experience/internet/ai/index.md: -------------------------------------------------------------------------------- 1 | # AI算法 2 | 3 | 本篇内容整理自黄丙晨学长的经验分享:[牛客网](https://www.nowcoder.com/discuss/603420182228320256) 4 | 5 | 黄丙晨学长是2024届复旦计算机硕士毕业生,转载已获作者授权。 6 | 7 | ## 前言 8 | 9 | 从暑期实习屡战屡败,几乎被所有大中厂拒之门外,到秋招拿下若干大中厂不错的offer,仅不到半年。我也从面试时低声下气的萌新,成长为和面试官吹牛脸不红心不跳的老油条。这其中变化的原因,一部分来自于项目经历有所丰富,但更重要的则是面试经验的增加。作为万千毕业生中非常普通的一个,我没法像大佬那样纯靠自身实力轻松卷赢,因此只能在包装自己上狠下功夫。 10 | 11 | 关于如何准备机试和项目,前面的学长学姐介绍的已经很多了。因此本篇的核心就在于,如何最大化利用自己手上的牌,更好地包装自己,拿到更好的offer。 12 | 13 | 本篇主要分为前言、简历、技术面、主管面、HR面、后记六大模块。当然,有些经验可能并不通用,需要大家针对自身情况进行调整,也请大家多多担待。 14 | 15 | ## 简历 16 | 17 | 简历优化核心:扬长避短,高度契合 18 | 19 | 简历大致可分为四个部分,教育经历是门槛,项目经历是核心,专业技能是必要条件,奖项荣誉是锦上添花(可选项,没有也无所谓)。重要程度代表着该项对于简历提升的影响大小。这个排序也是建议的简历排版顺序。 20 | 21 | ### **教育经历(重要程度:🌟🌟)** 22 | 23 | 1. 最高学历排在前面,学校不错的话可以加个logo(绝对不能造假!) 24 | 25 | 2. GPA排名好看写排名,绩点好看写绩点,都不好看就不写 26 | 27 | 3. 导师/实验室牛逼,只管往上写 28 | 29 | 4. 如果啥都没有显得太空,把相关课程写上,成绩好可以附带课程成绩 30 | 31 | 教育背景中,学历学位是最重要的,这部分不能造假,而GPA、课程说实话影响很小,因此整体可操作空间不大。 32 | 33 | ### 项目/实习/科研经历(重要程度:🌟🌟🌟🌟🌟) 34 | 35 | 1. 适当美化在项目中扮演的角色/工作量/成果 36 | 37 | 2. 突出自己用技术做了什么工作,而不是简单罗列技术 38 | 39 | 3. 量化项目成果,尽量使用数字(若有),可以加粗显示。如:“**获得字节跳动青训营二等奖**” 40 | 41 | 4. 控制详略程度,分点阐述。不要一两行就写完,也不要列十几点 42 | 43 | 5. 只保留与应聘方向契合的项目,以二至四个为宜,突出重点项目 44 | 45 | 6. 该部分在整个简历中的篇幅占比约在50%,项目经历是HR、面试官关心的核心部分,可操作空间最大,因此是拉开简历差距的地方。 46 | 47 | 简历无项目,秒进人才库。关于无项目无实习该怎么办,前人已经提供了几种方法,主要为:Github等开源网站的项目、别人愿意分享的项目(质量最高,且撞车概率低)、网上及线下培训的项目。在此补充一些具体的可速成的项目,开发可以关注公司的线上培训,如字节青训营,算法可以关注近期kaggle比赛/各大会议的workshop比赛。 48 | 49 | 接下来就是对项目的包装。工作量大小、项目中具体担任的角色,乃至该项目的成果和意义,都有极大的发挥空间。只要对于细节了如指掌,哪怕某部分不是你的工作,也成为了你的工作;反之,即使代码是你一行行敲出来的,如果没做好准备回答不出来,真实性也会被质疑。 50 | 51 | 对于开发同学来说,很多开源项目(比如瑞吉外卖)已经烂大街,包括字节青训营的项目,面试官也老早听的耳朵起了老茧。尽量找些冷门的开源项目,或至少在原项目上加以改进(体现自己工作的差异性和思考)。对于算法同学来说,由于项目中本身就包含了大量指标,一定要尽可能多地使用数字量化自己的成果,哪怕只是一个简单的数字,一加粗后也能让人不明觉厉。 52 | 53 | 项目经历部分以2~4个项目为宜,如果项目经历很多,就只保留最相关的项目,不要想着把各个方向的项目往上扔,面试官就会觉得你是个不可多得的全才。之前看到过一位同学,把测试、后端的项目放一个简历里,测试的面试官会怀疑他是否真的会来做测试,后端的面试官会觉得他技术栈太杂,连后端都没学精就去搞测试了,两边不讨好,遇到这种情况就应当一个岗位做一份简历。至于简历是否要在一页内,仁者见仁智者见智,我还是倾向于不要超过一页。校招生通常没有那么多有价值的经历可写,大部分情况是因为不懂得精简而超出了一页。超级简历就有智能一页的功能,很方便。(我一直用超级简历,没必要追求一定用latex做) 54 | 55 | ### **专业技能/个人评价(重要程度:🌟🌟) 56 | 57 | 1.对照JD来写 58 | 59 | 2.专业技能和个人评价二选一写即可,分点阐述,三至五行就够了,不要浪费大量篇幅来写 60 | 61 | 专业技能/个人评价是简历的必要部分,但也是提升空间最小的部分,只是HR用来筛选掉专业不对口的候选人的。如何让自己的简历显得专业对口?最稳妥的方式,就是照着岗位的JD抄。(与期望招聘对象重合度100\ 62 | 奖项荣誉(可选) 63 | 64 | 奖项荣誉较少或简历空间不足,合并到教育经历中;奖项荣誉较多或仍有简历空间,则单独列出,但不要占据太多篇幅,优先保留最相关的奖项。至于学生工作与技术岗毫无关系,没必要写。 65 | 66 | 最后附上一张我的秋招简历,以供参考~ 67 | ![img](../../images/cv.png) 68 | 69 | ## 技术面 70 | 71 | 关于技术面,前人之述备矣,就不重复造轮子了,在此只是简单提一下。技术面的核心在于:掌握主动权,将面试引向自己熟悉可控的领域,同时偷偷给自己贴正面标签。 72 | 73 | 基本所有的面试,都有自我介绍的环节。在自我环节时,若只是简单重复简历上的内容,就浪费了自我宣传的最佳时机。像自我评价/他人评价,以及一些不太相关的经历、项目,是不方便写在简历里的,此时正好拿出来讲,例如: 74 | 75 | 对你感兴趣的面试官,不会因为你自我介绍时多说了几句不太相关的经历就对你印象不好。如果面试官没耐心打断你自我介绍,大概率本就是KPI。如此在自我介绍中包装自己,不仅在前期就能留下一个不错的印象,而且有概率引发面试官的追问,既能水时长,还能继续包装自己。比如我曾经遇到的,“你C++做过什么项目?”“能介绍下是怎么从零开始探索新的方向的吗?当中遇到了哪些困难?”虽然追问的概率不大,但还是要注意对于可能的追问要有个底,别光顾着往脸上贴金,忽略了细节准备。 76 | 77 | 我将面试问题分为三类:**八股题,细节题,技术题。** 78 | 79 | 这三类中,技术题是最难的,因为技术题的边界太广了,无法保证自己可以掌握每一个知识点。由于专业领域限制,除非瞎猫碰到死耗子,否则大多时候我都答不出来非自己领域的专业技术题。因此,剩下八股题和细节题是我们重点要争取的,八股题可以提前背诵,而细节题是考察做过的项目细节,通过多多温习就能掌握,甚至不需要背诵,是我最喜欢的题型。 80 | 81 | 因此如何掌控整场面试的走向,就变成了如何引导面试官多问细节题和八股题,而不要让面试官把话题转向自己提前准备且熟悉的技术题。关键在于回答时故意留坑,在回答上一个问题时,就有意识地往下一个八股/细节去引,等待面试官去问。比如: 82 | 83 | Q:你的这个项目做了哪些改进,获得了这样的提升? 84 | 85 | A:由于模型需要上线,对于计算量和模型大小的要求较高。前期我做了一些轻量化的剪枝实验,进行了backbone的选择,参数下降xx,计算量下降xx,最终选择了xx作为backbone。在训练过程中,发现模型因为类别不平衡存在明显性能问题,从数据、模型等角度进行了优化,最终实现了xx的性能提升。不过我也发现,学术界和工业界还是明显不同的,我复现了a、b、c的策略(偷偷贴金,体现自己代码能力和读的论文多),最后都不如多做几遍数据清洗,补充少样本类别效果来得好。 86 | 87 | 接下来,面试官可能追问以下问题: 88 | 89 | 如果真遇到回答不出来的技术题,不要硬着头皮回答,大大方方地承认这块了解不够,同时再像上面那样,抛给面试官一些可以询问的点:“这个领域我之前了解不多。不过对于xxx,我也有些项目经验”。大方承认自己的知识漏洞不是减分项,回答错误或者支支吾吾答不出来才是。 90 | 91 | ## 主管面 92 | 93 | 主管面虽然也属于技术面的一环,但在我看来,主管面的面试逻辑和前几轮的技术面是差异很大的,而且很大程度影响你的offer评级,因此单独列一节。 94 | 95 | 和前面的技术面不同,大多数主管并不会关注技术细节,往往是站在更高层次的角度思考问题。他们更关注的是人与宏观的技术。(毕竟主管们可能早就不在一线写代码了)核心在于让主管了解你,并且聊的开心。 96 | 97 | 自我介绍时,可以适当减少技术细节的叙述,增加对个人的包装。整体思路和技术面是类似的,回答时故意留坑,只不过留坑的目的有所变化,从引导面试官问技术细节和八股,变为让主管更好地了解自己是什么样的人,以及对技术的宏观层面的思考。比如这样自我介绍: 98 | 99 | ## HR面 100 | 101 | 到达HR面,只要不作死(比如,“如果a公司给我发offer的话,我就不来贵公司了”,我曾经犯过这样的错),别太老实,该舔的时候舔,就能顺利拿到offer(池子里还有其他人的情况除外)。如果是实习,到这一步就完美结束了,或是等待后续的排序结果。如果是正式招聘,则还有一个重要的环节——谈薪。 102 | 103 | 谈薪前,有一个问题几乎是必问的:“您现在手上有哪些offer?” 104 | 105 | 无论有没有offer,一定要回答有,至少说offer正在审批阶段。如果说没有offer,就是自愿将议价权交给对方,成为任人宰割的羔羊,给多少价对方全凭良心。且很多公司一开始都会压价,就靠别家offer来argue最终薪资。 106 | 107 | 谈薪主要有两种形式:1. OC后直接给出薪酬方案;2. 先询问预期薪酬,后定薪酬方案。 108 | 109 | 第一种形式谈薪比较简单,直接给出薪酬方案能谈的涨幅不大,基本在当前评级内浮动。比如白菜价的范围是20~23k,offer给了20k,通过谈薪有机会要到23k、24k,但不太可能超过当前评级薪酬太多。 110 | 111 | 第二种形式谈薪较为复杂。如果预期薪酬报低了,HR真不会跟你客气,稍微多给你一点意思一下;如果预期薪酬过高,HR发现没法满足,甚至会连通知都没有就把offer取消了。 112 | 113 | 在这分为两种情况:offershow/牛客上有薪资爆料和无薪资爆料的公司。有薪资爆料的很简单,了解投递岗位白菜/sp/ssp的薪资水平后,结合自己的面试感受和表现,估计自己是什么水平,可以适当多要一两千。一些初创公司往往没有薪资爆料,这时候就需要对行业薪酬有个大致的预期,然后采用分段试探谈薪法: 114 | 115 | “目前手上已有一个a公司的offer,20k。综合考虑贵公司的工作内容和发展前景,还是想选择贵公司,期望不低于这个价。” 116 | 117 | 在第一轮时,可以用相对一般的预期薪酬进行试探。如果面试公司比a公司规模小,报价也在承受范围内的话,一定会给出稍高一些的价格。如果感觉HR答应的很爽快,还有谈薪空间,过几天可以尝试进一步试探: 118 | 119 | “昨天b公司也发了offer,24k。我真的很想加入贵公司,您这边能否再帮我争取一下?” 120 | 121 | 如此便能降低谈薪太少吃亏、谈薪太多offer取消的概率。 122 | 123 | ## 后记 124 | 125 | 时光飞逝,转眼间距离我发出关于2024暑期实习迷茫求助贴的那一天,已经过去了一年。早期我面试经验非常有限,几乎所有的大中厂都将我拒之门外。当时的我非常迷茫,甚至一度考虑转换求职方向。于是,我决定在牛客上分享自己的经历,向大家征询意见。让我意外的是,这一分享引来了很多热心朋友的帮助和鼓励。无论是私信还是评论,大家都给了我莫大的支持,还推荐了不少实习机会,让我感动不已。如今,我整理出了这篇求职攻略,希望能将这份善意继续传递下去,尽我所能帮助更多的后来者。 126 | 127 | 如今,计算机行业的黄金时代已成过去,就业市场供过于求。要想获得一份理想的工作,除了自身实力过硬,还需要寻找一些新的突破点。因此,在这篇攻略中,我分享了一些独特的技巧和方法。当然,打铁还需自身硬,掌握技巧的前提是拥有足够的能力,包装自己的前提是有内容可包装。所以,希望大家不要本末倒置,过度追求包装而忽略了基础实力的提升。 128 | 129 | 最后,再次感谢所有帮助和鼓励过我的朋友们!在经历了心态崩溃之后,我很快调整了状态,继续投递简历,寻找机会。去年五月底,我终于拿到了第一家,也是唯一一家中型企业的实习机会。相比于暑期的坎坷经历,由于积累了更多的经验,秋招显得顺利了许多。如今,我已经入职美团,开启了人生的新篇章。江湖路远,有缘再会!以下是我的个人主页,其中有我的联系方式,欢迎有想咨询问题的学弟学妹~ 130 | 131 | **个人主页:** [github](https://yellowpancake.github.io/) 132 | -------------------------------------------------------------------------------- /src/interviews/22-s-sales.md: -------------------------------------------------------------------------------- 1 | # 22届硕-司学长-某电池仿真公司技术销售 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 自2011年从材料专业毕业后,我一直投身于材料行业。我有幸加入一家世界500强的化工企业,担任管理培训生。管理培训生这一角色,大家应该都很熟悉,它通常涉及轮岗制度。轮岗有其利弊:不利之处在于,你可能无法深入接触核心业务,更多时候是在做辅助性工作,类似于实习。然而,对于职业初期的我来说,轮岗是一个宝贵的机会,它帮助我明确了自己的职业方向和规划。正是在轮岗期间,我决定成为一名仿真工程师,并从2013年到2018年一直从事这一领域。 6 | 2018年,我做出了一个重大决定:考取复旦大学的在职研究生学位,专业是软件工程。我这么做的原因是两方面的:一方面,我希望能够深化自己在软件领域的知识;另一方面,我渴望在职业发展上不仅仅局限于使用软件,而是更深入地参与到制造业中,真正理解客户的实际需求,而不仅仅是计算机的需求。这一转变也促使我从仿真工程师转向销售岗位。我曾认为,仅仅使用仿真软件有其局限性,而开发仿真软件则更具意义,这促使我转向销售领域。 7 | 在销售领域,我最初是在原材料行业工作,直到今年才转向仿真软件的销售。尽管原材料行业是一个基础产业,但它并不是一个快速发展的朝阳行业,而是一个相对稳定的领域。然而,我更倾向于投身于新兴行业,与这些行业的快速发展同步前进。 8 | 9 | ## 现在工作的公司是什么样的公司呢? 10 | 11 | 我目前就职于深圳的一家新能源领域的技术公司。这家公司是服务于制造业的一家软件公司,是工业用的专业软件,而不是开发通用的平台型软件。 12 | 13 | ## 你觉得目前的工作强度是怎样的呢? 14 | 15 | 我最初从事的是制造业的技术工作,这个行业的工作节奏通常是稳定有序的。由于我所在的公司已经发展多年,规模庞大,它并没有实现快速增长,也没有大量的投资,因此我的工作并不是特别繁忙。然而,如果有新的投资,比如建立新厂,工作量可能会相应增加。但大多数情况下,这种投资并不多见。 16 | 相比之下,软件行业的竞争更为激烈,它不受产能限制,能够将人力资源发挥到极致。这个行业是技术密集型的,对个人的依赖度很高。例如,一个高水平的员工在996工作制下的工作产出,可能比三个员工在965工作制下的总和还要高效。 17 | 我想强调的是,工作强度是一个综合的考量因素。它不仅取决于时间节点,还要看忙碌是否有其价值和意义。在我看来,对于职业初期的人来说,忙碌一些可能是更好的选择,因为这有助于积累经验和技能。 18 | 19 | ## 想请学长介绍一下技术销售每天的工作内容是哪些呢? 20 | 21 | 首先,销售工作的第一步是确认客户的需求。一旦客户需求明确,我们便进入第二步:明确方案。在这一步,我们需要确定能为客户提供哪些产品或服务。紧接着是第三步:评估技术与方案的匹配度。我们需要确保所提供的方案能够满足客户的需求,如果存在不匹配,我们应该如何调整。 22 | 完成这三个步骤后,我们进行第四步:报价。基于报价,双方会进行谈判。如果谈判成功,交易达成;如果失败,之前的工作可能就白费了。日常的工作就是对这些步骤进行有效管理。 23 | 销售的本质是利用公司的资源,将客户的需求精细化,并确保这些需求能够在公司内部得到实现。销售的关键能力在于沟通的有效性。如果销售人员具备技术背景,他们可以使用技术语言与客户进行深入交流;如果不具备技术背景,他们则需要采用其他方式进行沟通。基于此,我个人更倾向于推荐有技术背景的人从事技术型销售工作。 24 | 25 | ## 做这份工作最困难和最开心的点是什么? 26 | 27 | 我认为,在职业生涯中,最具挑战性的是如何找到一条清晰的上升通道。虽然完成公司分配的任务和做好一份工作本身可能非常容易,但在这个过程中找到上升的机会则非常困难。 28 | 如果你工作了十年甚至二十年,却发现自己仍然没有明显的职业晋升路径,你的想法和感受肯定会有所不同。如果直到退休,你都没有找到一个令人满意的职业发展通道,那时你可能会感到无奈。 29 | 最令人痛苦和困难的是,当你认为自己已经做好了工作,付出了巨大的努力,并且自认为很聪明也很勤奋,但最终却发现自己缺乏上升的空间,或者没有人认可你的努力,这无论是在物质上还是精神上都是一种打击。在这种情况下,你需要做出一些改变。有些人选择跳槽,有些人选择转换部门,或者从技术岗位转向销售岗位,甚至有人选择离开一线城市回到老家等。职业生涯是一个不断自我优化和调整的过程。 30 | 最令人感到高兴的时刻,无疑是当你发现自己的职业方向被拓宽,有了向上发展的机会。但说实话,没有人能够轻易地走得很远,职业发展总是一步一个脚印。每当你迈出向上的一步,都会感到无比的快乐和满足。 31 | 32 | ## 想问一下新能源岗位的薪资待遇相较于互联网大厂,相差多少呢? 33 | 34 | 首先,新能源行业虽然本质上也属于原材料行业,但像动力电池这样的领域已经显示出其新兴行业的特征。自2020年起,这个行业在短短四年内经历了爆炸性的增长。这些公司的背景和团队大多源自传统制造业,因此它们的薪资结构和组织架构可能与传统制造业相似,与互联网行业的薪资水平并不完全一致。 35 | 然而,即使在制造业中,也存在着高薪资和普通薪资的岗位差异。以动力电池行业为例,高薪往往与那些从事电池研究的专业人士密切相关,与材料研究则更为紧密,可能与软件开发的联系不那么紧密。 36 | 在制造业中,想要获得高薪资并不是一蹴而就的,它需要与个人的职业发展相匹配。选择一个有良好发展前景且可持续的行业方向至关重要。例如,我目前所在的动力电池行业,我之所以选择它,是因为我听到公司管理层的分析,他们认为电池行业的需求将持续增长,从现在到30年后,这个行业将会发生巨大的变化,需求不会中断。 37 | 如果我们把目光放得更远,未来可能会出现核聚变、超导电池等革命性的新技术。如果我们现在的角色能够为这些新技术的发展作出贡献,那么我们的职业发展也将随之获得巨大的推动。 38 | 39 | ## 所以在制造业从事研究岗会有更好的未来发展? 40 | 41 | 这个不一定。我认为研究岗位就像一把锋利的刀,使用过后可能会被搁置一旁。公司运作其实与我们撰写论文的过程相似,不同的部门承担着不同的职责。比如,有些部门负责撰写“研究综述”和“行业现状”,这可能是销售部或市场开发部门的工作,这些岗位是公司的核心,承载着公司的需求。而“原理”部分通常由研究人员来完成。“实验”部分则是实施环节,可能由工厂来执行。至于“研究和展望”,则通常由管理部门来撰写,老板来总结和规划公司今年的发展方向,以及未来五年、十年的长远规划。 42 | 因此,我们需要评估自己所在岗位在公司中的重要性。要识别哪一部分最为关键。在职业发展的过程中,每个人都应该思考如何成为最终的决策者。这是有章可循的路径。如果你只专注于需求分析、原理研究或实验操作,这些单一的工作可能无法保证你的长远发展。 43 | 实际上,每个人都是公司这把大刀中的一个组成部分,无论是研究需求的人、研究基本原理的人,还是进行实验的人。但关键在于,如何能够晋升到决策者的岗位?一旦你成为决策者,你就不再容易被替代,因为你将决定谁去谁留,而不是被公司其他部门所左右。 44 | 45 | ## 技术销售工作的职业发展路径通常是什么样子的?怎么看待35岁危机? 46 | 47 | 销售职业的发展确实伴随着一定的风险。在大型企业中,销售人员可以晋升至高级职位,类似于古代的“将军”,甚至达到“将领”级别,但要成为拥有公司股份的“皇帝”级别显然是不可能的。相比之下,技术岗位的晋升空间可能更大,可以达到“宰相”级别。然而,这里存在一个问题:如果“将军”过于强大,可能会因为功高盖主而遭到“皇帝”的打压;而“宰相”如果因为贪污等问题也会被“砍头”。因此,在销售行业中,当你发展得非常顺利时,遭遇职业发展的阻碍是很常见的现象。 48 | 尽管销售行业存在风险,但我选择加入这个行业,是因为我认为这代表着与整个社会乃至整个行业的风险共存。个人的风险是行业风险的一部分,而行业风险又是国家风险的一部分。整个国家、行业和社会都存在风险,而销售人员往往是最早感知到这些风险并做出判断的人。例如,在动力电池行业,决策者往往是第一个知道行业风险的人,而销售人员很可能是第二个。 49 | 销售人员每天都在与客户打交道,如果行业出现问题,他们往往是第一个察觉到的,甚至在某些情况下,他们比老板更早知道。因此,销售岗位是与整个行业的风险共存的,我们可以控制这些风险并采取规避措施。这也是我选择销售职业的原因。 50 | 例如,当我判断原材料行业是一个夕阳产业时,为了规避风险,我转向了销售仿真软件的行业。这是一个规避风险和职业转向的行动。然而,作为公司内部的其他岗位人员,他们往往很难有机会接触到风险信息。 51 | 有些人可能没有意识到这些风险,仍然频繁跳槽,追求高薪,但到了35岁可能会面临不良后果。他们可能不了解行业风险,也没有人告诉他们这些风险。但行业中确实有很多大佬已经意识到风险并采取了行动,选择另一个领域去发展。 52 | 因此,每个人都需要清楚地思考,哪些事情能为自己带来长远的价值,而不是仅仅追求短期利益。我非常不鼓励仅仅为了加薪而频繁跳槽,这是一种消耗性的行为。作为销售人员,拥有技术背景可以让你在与技术部门和客户的沟通中更加顺畅,这是你的优势所在。 53 | 当然,职业规划应该如何选择,作为一个技术型销售人员,职业发展应该尽早明确。例如成为CEO。但是也不要过于勉强自己,只要能够不断接受正确的反馈就可以。当我们步入社会后,会发现一直在吃苦,可能一直不开心,那可能不是你的问题,而是因为你选择了错误的道路。正确的道路应该是你热爱的,并且你认为在未来二三十年内也能持续向上发展的。 54 | 55 | ## 听说销售可以积累一些渠道和资源,那这些资源对你未来有什么益处呢? 56 | 57 | 从事技术型销售的一大好处在于,它能培养你管理和运用资源及渠道的能力。通过这份工作,你不仅能够对整个行业有深入地了解,还能掌握技术知识。公司会向你透露所有技术信息,这让你至少能够分辨哪些是关键点,哪些是次要的,以及你的技术是否可靠。尽管技术型销售是一项能够锻炼你能力的职业,但必须保持谦逊,不能期望仅凭这些渠道和资源就能实现社会阶层的飞跃。 58 | 谈到社会阶层的跃迁,我们可以借助企业运营的例子来说明:经营一家企业,不仅需要技术,还需要资金。如果只有技术而缺乏资金,就需要寻求融资。融资本质上是一群有能力但缺乏资金的人与那些有钱却缺乏能力的人合作的过程。有钱但缺乏能力的人通常属于较高社会阶层,而有能力但缺乏资金的人则属于较低社会阶层。低阶层的人通过各种手段获得能力,并与高阶层的人建立联合,获得他们的认可,共同开展事业,这可以被视为一种社会阶层的跃迁。 59 | 对于我们这些人来说,首先要培养的是综合能力,这不仅包括技术能力,还包括管理资源的能力。你获得的不是资源和渠道本身,而是管理这些资源和渠道的能力。关键在于如何从这些资源和渠道中获取价值。因此,从事销售工作并不直接等同于获得了社会阶层跃迁的通行证,而是获得了“管理资源”的能力,你才有可能利用这些能力来实现价值。 60 | 作为技术型销售人员,我们不应错误地认为这些资源和渠道是我们所拥有的,这种观念是有害的。我们并不能真正拥有渠道,我们只是领取工资的员工。但我们能够了解这些渠道的信息,并知道如何与它们打交道,这才是我们真正获得的能力。例如,如果一位上市公司的CEO对你非常看好,并希望与你合作,这种机会并不容易获得,通常需要逐步建立信任。这通常需要一个团队的支持。因此,作为一名销售人员,我需要证明自己不仅仅是销售,还能管理技术,甚至带领一个团队。只有这样,我才可能赢得CEO的信任,并有机会达成交易。 61 | 62 | ## 那您提到的管理资源和渠道的能力具体体现在哪个方面呢? 63 | 64 | 这个能力,具体来说,就是能够满足他人需求的能力。那么,我们该如何做到这一点呢?首先,可以通过利用公司的资源来满足客户的需求。其次,提供有价值的信息也是一种有效的方式,这可以是市场趋势、行业动态或特定问题的解决方案。此外,协调多方资源以达成共同目标也是一种重要的能力。总的来说,最关键是在于积累信誉,也就是建立良好的名声。我们提供的方案不仅要能够满足客户的具体需求,也必须是切实可行和可以实现的。 65 | 要做到这些,我们需要深入了解客户的真实需求,然后利用我们的专业知识和公司资源来制定解决方案。同时,我们还需要保持对行业动态的敏感性,以便及时提供最新、最有价值的信息。通过这样的方式,我们不仅能够帮助客户解决问题,还能在长期内建立起客户对我们的信任和依赖。 66 | 67 | ## 如果想创业的话,做技术销售是不是一个比较好的切入点? 68 | 69 | 可以说是这样的,但我们需要明确两个方向。第一个方向是加入创业公司,担任技术型销售的角色。这与自己创业非常相似,至少需要以创业者的心态来对待这份工作,全身心投入,勇于面对挑战。 70 | 第二个方向是加入大型企业。如果你选择在一家规模足够大、能够为你提供长期职业发展机会的公司从事技术销售,那么你应该考虑走管理路线。在任何一家大型公司中,管理层往往并非来自管理专业背景,而是可能来自技术、销售、采购等基层岗位,通过实际工作经验逐步晋升而来。如果你想创业,那么起点通常就是从一线工作做起,积累经验,了解业务,为将来打下坚实的基础。 71 | 72 | ## 那我们如何才能有更好地发展呢? 73 | 74 | 我相信,大多数学生都倾向于技术思维,就像我们认为只要把刀磨得锋利,总有一天会派上用场。然而,现实情况可能是,未来我们可能不再需要这把刀,而是需要枪或坦克,技术可能会被迅速颠覆。特别是在软件行业,这种情况尤为明显。因此,我们应该专注于做有价值的事情,投入更多的时间是值得的;如果事情本身没有价值,那么投入再多也是徒劳。公司的发展总是伴随着有价值的和不那么有价值的事务,而那些有价值的事务往往被少数人所承担,这并不完全是因为能力差异,更多是因为机会或运气。 75 | 我们不应该只是埋头走路,更要记得仰望星空。我们必须了解全局动态,仰望星空意味着观察整个社会和公司的发展趋势,以及你周围的人在做什么。这是一个宏观视角,也是最关键的视角。当你们真正开始工作,或者真正步入职场后,就会发现,每天重复完成手头的工作其实是相对简单的。根本原因在于公司通常只把那些你能够胜任的任务交给你。只有少数人会获得成长的机会,比如公司与你共同研究,将你放在重要的位置上,这需要机遇。 76 | 如果你想要有良好的职业发展,一个更根本的问题是‘如何成为决策者’。整个公司乃至社会都可以看作是一个树状结构,这中间有许多值得深思的问题。对于没有工作经验的人来说,这肯定充满了不确定性。但实际上,没有必要过于焦虑,因为职业规划是一个终身的过程,是所有人都在持续思考的问题,不仅仅是35岁的人,甚至像特朗普这样80岁的人也在考虑职业规划。 77 | 78 | ## 如果计算机专业的毕业生想进入这个行业,面试中会更看重哪些能力呢? 79 | 80 | 首先,用人单位在招聘没有社会经验的应聘者担任销售岗位时,通常会更看重应聘者的意愿。他们可能不会过分关注你的具体能力,而是更倾向于评估你是否具有与人沟通的性格特点,以及你是否展现出了对销售工作的积极态度和稳定性。 81 | 其次,进行行业调研和对应聘公司的了解是非常重要的。在面试中,你可以表达出你对公司的了解,例如:“我了解到贵公司在某某领域有着显著的成就,我认为销售岗位在贵公司扮演着至关重要的角色。” 82 | 再者,展示你与销售相关的经验和技能也很重要。即使你没有正式的销售经验,你也可以分享在校期间参与的相关活动,可以说:“虽然我没有正式的销售经验,但我在校期间尝试过一些销售工作,甚至涉足过保险销售,我对此非常热情。” 83 | 然而,我想说的是,一旦你选择了技术型销售岗位,想要再回到技术岗位可能会比较困难。相反,如果你从事技术工作后再转向销售,这个过程会相对容易。因此,我不太建议人们一开始就直接从事销售工作,而应该考虑自己的长远职业规划和兴趣所在。 84 | 85 | ## 现在有很多应届生即将走入社会,会有些迷茫和焦虑,你有什么想对他们说的吗? 86 | 87 | 我了解到复旦大学的许多同学,大约有一半的比例,选择加入互联网大厂从事技术岗位,我认为这本身是一个非常有前途的选择。同时,我也相信,从事人工智能算法岗位,从长远来看是一个可以持续发展的职业道路。 88 | 对于那些选择进入体制内工作的同学,我认为这也是一个不错的选择。但需要注意的是,在体制内工作,技术性的工作可能相对较少,有些可能需要从基层做起,工作中更多地涉及与人沟通和协调。 89 | 关于那些加入互联网大厂的同学,我认为互联网大厂目前可能正处于一个成熟期,不再是一个快速增长的朝阳产业,但也绝非夕阳产业,它们将长期存在。我相信这些大厂会继续发展壮大,不断在人工智能等领域进行投入,以推动业务的持续发展。但在这个过程中,对人员的需求可能不会像过去那样多。因此,我想对那些进入大厂的同学说,要么努力向核心岗位靠拢,要么提升自己的管理能力,争取进入管理层,这样可以减少被裁员的风险。 90 | 最后,我最想给出的建议是,一定要根据大环境的变化来调整自己的行为和策略。在这个世界快速变化的今天,我们需要具备灵活调整自己的能力,根据公司和团队的发展方向,及时调整自己的职业路径。同时,不要给自己设置太多限制,保持开放的心态,抓住机遇。 91 | -------------------------------------------------------------------------------- /src/experience/internet/backend/cpp.md: -------------------------------------------------------------------------------- 1 | # C++基架 2 | 3 | 本篇内容整理自蒋雨宸学长的经验分享,已获得原作者授权,蒋学长是2024届南京大学计算机硕士毕业生,以下是他的微信号和知乎链接。 4 | 5 | **微信号:LIMBO\_42** 6 | 7 | **知乎主页:** [https://www.zhihu.com/people/luo-chen-96-77](https://www.zhihu.com/people/luo-chen-96-77) 8 | 9 | ## 前言 10 | 11 | 我的BG是985科班本硕,求职方向为基架,实习经历是在阿里云某核心部门(这为我加了不少分)。主力编程语言是C++,曾参与过一些国外的知名课程,比如CMU的15445和MIT的6.824,6.S081,以及TIDB的TinySQL项目。代码题上,我在LeetCode上刷过了1000道题,不过学习成绩中等,没有什么奖项,也没怎么参与过学生活动(在国企求职时这算是个不小的减分项)。 12 | 13 | 最终,我拿到了几个不错的offer,包括钉钉、阿里云、蚂蚁、百度、快手和TP-LINK,基本都是SSP级别的,快手还特批了一个待遇,比快star略低一档。 14 | 15 | 整个秋招从七月持续到十一月末,终于尘埃落定。在这段时间里,我经历了多个阶段,经常在内耗和纠结中徘徊,最终选择了自己实习过的阿里云。我想给自己做个总结,回顾秋招的各个阶段,以及我在做出每项选择时的思考逻辑,希望能对后来的学弟学妹们有所帮助。 16 | 17 | ## 前期准备 18 | 19 | 在准备方面我认为的重要性排序是:技术方向 > 实习 ~ 学历 ~ 顶会论文 > 项目 20 | 21 | **方向:** 22 | 开发无脑推荐后端。基架选择建议仅限于两种情况:一是实验室专注于OS、DB、网络等领域,拥有深厚的积累和强大的师兄网络;二是对底层技术有极高的兴趣。测开和前端适合背景稍弱但希望进入大厂的同学。关于算法,尽管我不是专家,但注意到今年算法与开发之间的差距增大,建议抓紧时间进入大模型领域,即使没有论文也不是问题,关键是方向对口的实习经验。一定要关注职业方向的广度,这有助于跳槽或应对裁员时更容易找到工作。我后续可能会详细讨论这个话题。 23 | 24 | **语言:** 25 | 后端推荐使用Java,是绝大多数人的万金油选择。C++需要和具体的方向结合,比如OS,DB,网络,图形学,音视频,我比较推荐网络,因为进可游戏服务端,退可去各家基架部门。 26 | 27 | **实习:** 28 | 目前来看秋招方向强相关,各家面试都希望你至少有一些相关的经验,所以如果有实习的机会,一定要去,实习推荐去强背书的地方,核心部门,实习就是一段经历,背书比较重要,转正没那么重要(压价 or 压根就不能转正 or 秋招拖得很久),不建议 all in 转正,谈薪环节需要其他家的 offer。 29 | 30 | **学历:** 31 | 目前各家大厂都有卡本科学历和科班的情况,其中有一些很严重(非硕士非23所要走特批) 32 | 33 | **论文:** 34 | 除非是顶级会议的论文,否则大部分不被重视。因此,在确保满足毕业要求的前提下,应为求职多做准备。 35 | 36 | **项目:** 37 | 项目我虽然列在最后一项,但其实说白了方向,实习,论文,都是项目,所以说要通过面试,项目的重要性一点不差。请选择有亮点的项目写到简历上,并且列出具体使用的技术,如何写一份好的简历也很重要,需要学会包装自己,引导面试官向你准备好的问题上引. 38 | 39 | ## 秋招过程 40 | 41 | ### **提前准备,早投秋招** 42 | 43 | 现在各家公司的秋招都很早就开始了。面对需要在实习期间同时准备秋招的情况,一些同学选择在实习结束后再开始投递简历,认为早投只是为了排序。但实际上,如果等到实习结束再投,核心部门的候选人名单可能已经满员,错过了最佳投递时机。例如,我在腾讯因为错误填写了毕业时间,错过了优先投递的时间,结果只能选择剩余的部门。 44 | 45 | ### **实习转正后不要停** 46 | 47 | 实习拿到 offer 之后也要多面,有直通终面的可能:即使实习拿到满意的offer,也得多面,好处有两个:一是留的面评越好,秋招越容易被捞,腾讯和字节都是这样。二是,如果实习表现好,拿到offer,秋招还能直通终面,尤其是如果加了leader微信,即便实习不去,秋招去问一下,可能就会有机会了。 48 | 49 | ### **尽量海投** 50 | 51 | 建议先广泛投递和面试,拿到多个offer后再决定去向。例如,我没有面试美团,因为以往有“开水团”的说法,但今年美团表现不俗,发放了很多SSP级别的offer。多面试还有助于提高谈薪的底气,尤其是在转正时,可能面临薪资压价的情况。 52 | 53 | ### **不设限,敢于尝试** 54 | 55 | 针对像我这样成绩平平,但又不甘心平庸的同学,即使你没有明确的去向,例如国企,或者荣誉、GPA不是特别出色,建议还是先面试互联网公司,到十月、十一月再考虑其他行业也不迟。 56 | 57 | ### **发挥学历和资源优势** 58 | 59 | 例如TP-LINK和联洲等,它们的面试比较简单,开出的薪资也很慷慨,可以早早拿下offer,减轻压力。内推很重要,如果通过内推进入具体的部门,将比在池子里等待更有优势。如果发现内推的部门不符合期待,建议及时终止面试流程。 60 | 61 | ### **小心一些大型池子** 62 | 63 | 有的地方一些HR为了自己的 KPI,不管方向匹不匹配,捞很多很多人面试,只要面的不是很差,都进池子,导致池子造的无比庞大,然后一直排序不发意向不发 offer,导致流程被卡住。 64 | 65 | ## 关于实习 66 | 67 | ### **实习很重要!** 68 | 69 | 如果秋招想找一份互联网的工作,有条件的一定要实习。不仅是作为一份背书,而且在秋招面试的时候,面试官才不会陷入无话可聊,只能用八股算法填满面试时间的情况。先想好实习的目的是什么?实习的目的无外乎两个一是转正,二是背书。 70 | 71 | ### **关于转正率** 72 | 73 | 按往年来说转正率比较高的应该是阿里系,但我那一年阿里云出了点问题,不仅转正结果出的晚,而且转正率相比往年大大降低,但据了解,淘天的转正率还可以。注意字节和腾讯的转正率相对较低,美团,pdd的转正甚至不需要转正答辩,只需要提交自评,leader同意即可,所以美团pdd的转正率很高,蚂蚁pdd接近百分之百。如果想求稳,推荐美团蚂蚁,背书也不错,至少拿美团蚂蚁秋招面试是平分项。如果能接受pdd,也可去pdd,今年转正基本都开了很高的薪资,而且18薪,钱还是很多的。 74 | 75 | ### **关于实习背书** 76 | 77 | 我个人认为背书会比转正率重要一些,因为目前的形势属实一般,前面也说了腾讯字节的转正率比较低,甚至我感觉秋招的hc数量会比能够转正的实习hc要多,所以拿个背书好的实习,秋招多面多投,结果不会差的。举个例子:字节今年的能够转正暑期实习hc巨少,而且目前的实习往往需要6个月,甚至一年。面试的时候甚至会问能够实习多久,如果只能实习三个月,可能直接被刷。什么叫背书好?title:大厂核心部门>中厂核心部门>大厂非核心>中厂非核心>其他。 78 | 79 | 首先定义什么是大厂,我认为只有BAT御三家称得上大厂,只有他们三家业务很广,横跨多个领域,其他公司例如美团在本地生活,外卖上发力,快手短视频,pdd电商,小红书社区,业务稍微单一了一些。什么是核心部门?首先判断是否盈利,二判断他们在各家的定位。 80 | 81 | 我这边给出一些核心部门供参考: 82 | 83 | **腾讯**:WXG(微信事业群,注意今年没有秋招,只有实习转正),IEG天美光子(游戏业务),TEG部分(基础技术)。 84 | 85 | **字节**:AML(机器学习和算法,包括 AI infra),Tik Tok,抖音,搜广推等。 86 | 87 | **阿里**:阿里云(ECS,PolarDB,各种存储包括OSS,SLS等等),淘天阿里妈妈,淘宝首猜,蚂蚁,达摩院等。 88 | 89 | **美团**:到店,到家。百度:凤巢,大搜。 90 | 91 | **快手**:搜广推。 92 | 93 | **非核心举例**:腾讯的pcg(qq),csig部分(云业务);阿里的淘宝买菜、菜鸟、飞猪;字节的飞书等等。 94 | 95 | 这边提一下特殊的两家:华为实习会比较晚出结果,而且没有转正,但秋招面试有直通主管面的机会。pdd今年所有实习生都被分配到了temu做海外,按照它们的力度,估计明年可能也是一样,但做海外也不差就是了。 96 | 97 | 找不到实习怎么办?这边有个很关键的问题,暑期实习还是很卷的,尤其是三个月能转正的暑期实习。那如果最后还是找不到或者导师不放,怎么办?试着找日常实习:这里有个误区,大家看到实习要求上写至少需要5个月or 6个月实习,大家可能就不敢投,但事实上,你提前离职没有人会管,只是可能会不能转正而已。但如果都找不到实习了,这个时候就别挑了。另外在技术面和hr面的时候,不要说导师只放三个月。 98 | 导师不放:请报名参加 [google summer of code](https://summerofcode.withgoogle.com/)(这个会比较难),[中科院开源之夏](https://summer-ospp.ac.cn/),我认为含金量还是很不错的,同时也有钱拿,做完都有一万块左右(需要申请,通过之后才能做)。找项目做,这个后面我也会写文章推荐一下项目。 99 | 100 | 实习转正的评价指标,同时也是转正开奖的评价指标:HC(招聘人头数Headcount) > 背景(学历等)≈ 面评 > 转正答辩 > 实习产出。因为实习时间很短,入职之后还需要熟悉环境阅读文档,而且做的事也可能比较琐碎和边边角角,所以大家的产出其实都差不多(大佬除外),这个时候,决定性的因素其实是HC,HC足够,大家都能转正,不够,就会从背景,面评等各方面综合考虑了。 101 | 102 | ### **关于一些重要时间节点和相应计划:** 103 | 104 | 下面时间节点按照25届毕业生,如果你是其他届的学弟学妹,请自行推算。 105 | 106 | **2023年x月-2024年3月:两个任务,做项目,写算法题Leetcode。** 107 | 108 | 选什么项目做:不要做重复的项目,即使是导师的项目,也请把多个相同方向的项目写到一个里面。建议每个项目主打一个方向:比如一个数据库,一个操作系统,一个后端,一个网络。做完项目之后,请做个总结,因为最后,需要写到简历上,那么就要考虑,这个项目的哪些内容可以写到简历上,如何通过简历上的内容引导面试官提问。如何写一份简历,如何面试,这个后面可能我也会总结一下。 109 | 110 | 怎么写算法题:首先要清楚,笔试的算法题难度和面试不一样,笔试会比较难一些,而面试的算法题基本上都是高频题。要应付面试,做好LeetCode前200道,剑指offer,以及[面试高频题](https://codetop.cc/home)。这里的做好,指的是任何时候拿到都要会做,所以记住,如果算法能力不行,请反复做高频题(不是说记题,而是理解的情况下能够快速做出)。面试做题和在下面做题完全不一样,想象一下,有人盯着摄像头看着你做题,加上时间限制,会不会紧张。如何学习算法题,这个很多大佬都写过文章了,我觉得都还行,入门之后,刷题+记住反复做高频题应该都没问题。另外,建议在找实习的时候,就打好算法基础,因为实习的时候很可能没什么精力继续做算法题,那个时候保持手感罢了。 111 | 112 | **2024年2月-2024年5月:面试高峰期。** 113 | 114 | 2月中旬的时候,阿里云很多部门可能就开始面试了,这个面试记录不进面评系统,仅留存在部门自己手里,要等实习面试系统开了之后才会进去。这就意味着,你可以同时面多个部门,最后选择一个最有希望,面的最好的进系统,建议抓住这个机会多面试,多锻炼面试经验。另外可以用来刷面试经验,一般来说,第一次面试一般都很紧张,表现都不会太好。据我所知,甚至有同学面了七八个部门。我也面了4个部门,除了一个部门第一次面试完全没经验之外,其他均通过了三面。但这个后果就是导致很多部门养鱼严重,池子巨大。34月的时候其他几家陆续开了,也就没有这样的机会了,它们只能同一时间面一个部门,俗称锁简历,就是你如果在某个部门面试的流程中,其他部门是看不到你的简历的,所以有HR联系方式的话建议多催催,但部门那边很有可能养鱼,毕竟部门那边想优中选优。 115 | 116 | **2024年6月-2024年9月:实习+秋招。** 117 | 118 | 建议早点去实习,因为秋招一般七月中旬陆续就开了,边实习边秋招挺折磨的。前面也说了,关系实习转正的决定性因素其实是HC,所以表现正常的情况下,抽些时间看看面经,上班的时候出去面试都是没关系的,mentor也懂。 119 | 120 | **2024年9月下旬-2024年11月:等待开奖。** 121 | 122 | 这个时候就很折磨了,各家面试池子都足够大,面试也都面完了,意向却要拖个两三周,转正结果也可能迟迟不出,甚至最后来个惊喜,告诉你转正不过,开奖更是折磨,一家更比一家晚。安心等待,总会有好结果的。 123 | 124 | ## 关于算法题 125 | 126 | ### **1. 算法题重不重要,需要做到什么程度?** 127 | 128 | 面试手撕的算法题基本上都是高频题,做好LeetCode前200道,以及剑指offer的题目基本上就能应付面试了。这里的做好指的是拿到题目可以在15-20min内bug-free通过,要做到这一点需要反复刷高频题。记住面试和平时做题是完全不一样的,面试的时候面试官可能就开着摄像头一直看着你(虽然他可能是在切屏做其他的事情,但是还是会有压力)。**面试的时候手撕算法不通过是大概率被一票否决的。** 129 | 130 | [高频题的网站](https://codetop.cc/home),LeetCode Hot 100,剑指Offer现在直接搜索好像出不来了,现在要在LeetCode里面搜LCR才行,或者直接通过搜索引擎搜索 “[LeetCode 剑指Offer](https://blog.csdn.net/weixin\_43840280/article/details/119447204)” 131 | 132 | 笔试的算法题没有那么重要,一般不要太差就行;大厂似乎不是很看重笔试成绩(因为客观上笔试有作弊的可能,作弊代价也比较低)。除了阿里硬性要求笔试成绩60分,如果不达60分很有可能会被一票否决。即使有面试机会也可能被HR judge,需要补做一次笔试。阿里的笔试也是比较难一些,比较灵活。 133 | 134 | **笔试的成绩对面评有影响吗?**这个事情就见仁见智了,当然是笔试成绩越高越好,但似乎跟最后的评级关系不大,还是面评、背景更重要。只有华为会稍微看重一点笔试成绩。 135 | 136 | **2. 只学过数据结构,零基础如何刷LeetCode?** 137 | 138 | 首先,需要去学一下STL的基础用法,掌握常见的如数组、堆、栈的API即可。 139 | 140 | 然后,去网上随便找个分类的题单,比如 [代码随想录](https://programmercarl.com/),开始刷题。 141 | 142 | **怎么刷?** 143 | 144 | 你需要明白,学习是一个**通过模仿,然后触类旁通的过程。** 145 | 146 | 所以,看到新的题目不会很正常,尤其是在刷题的早期,每个题目给自己5-10min的思考时间,如果没有思路,就直接看题解。 147 | 148 | **题解怎么看?** 149 | 150 | 我的建议是不要看网上整理好的题解(比如代码随想录,把它看做分类题单即可),直接看LeetCode的评论区和题解区,这样对于同一个题目可以看到不同的思考,快速地看两篇题解,然后选择质量最高,自己最容易理解的。**不要照抄代码!看懂思路后自己重新写一遍。** 151 | 152 | 题解里面 [灵茶山艾府](https://leetcode.cn/u/endlesscheng/) 质量很高,他对每日一题,周赛都会有题解,一些题单的总结也非常好。 153 | 154 | 面试高频题,每个题目重复写,不是说短时间内重复写,而是隔一段时间把高频题写一遍,保证拿到题目的第一时间就有思路。不要刻意记答案记代码!高频题写到最后可能每题都要写个3-4遍的。(类似艾宾浩斯遗忘曲线的思路,当然不用做到那么精确) 155 | 156 | **3. 面试手撕算法小技巧** 157 | 158 | **4. 算法进阶** 159 | 160 | 基本上做到以上所说的应付常规面试没啥大问题,如果希望能面对笔试题、一些量化的笔面、面试偶尔出现的新题Hard题目游刃有余,或者发现自己对算法题比较喜欢,下面是一些进阶思路。 161 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/vue.js: -------------------------------------------------------------------------------- 1 | import { 2 | BaseTransition, 3 | BaseTransitionPropsValidators, 4 | Comment, 5 | DeprecationTypes, 6 | EffectScope, 7 | ErrorCodes, 8 | ErrorTypeStrings, 9 | Fragment, 10 | KeepAlive, 11 | ReactiveEffect, 12 | Static, 13 | Suspense, 14 | Teleport, 15 | Text, 16 | TrackOpTypes, 17 | Transition, 18 | TransitionGroup, 19 | TriggerOpTypes, 20 | VueElement, 21 | assertNumber, 22 | callWithAsyncErrorHandling, 23 | callWithErrorHandling, 24 | camelize, 25 | capitalize, 26 | cloneVNode, 27 | compatUtils, 28 | compile, 29 | computed, 30 | createApp, 31 | createBaseVNode, 32 | createBlock, 33 | createCommentVNode, 34 | createElementBlock, 35 | createHydrationRenderer, 36 | createPropsRestProxy, 37 | createRenderer, 38 | createSSRApp, 39 | createSlots, 40 | createStaticVNode, 41 | createTextVNode, 42 | createVNode, 43 | customRef, 44 | defineAsyncComponent, 45 | defineComponent, 46 | defineCustomElement, 47 | defineEmits, 48 | defineExpose, 49 | defineModel, 50 | defineOptions, 51 | defineProps, 52 | defineSSRCustomElement, 53 | defineSlots, 54 | devtools, 55 | effect, 56 | effectScope, 57 | getCurrentInstance, 58 | getCurrentScope, 59 | getCurrentWatcher, 60 | getTransitionRawChildren, 61 | guardReactiveProps, 62 | h, 63 | handleError, 64 | hasInjectionContext, 65 | hydrate, 66 | hydrateOnIdle, 67 | hydrateOnInteraction, 68 | hydrateOnMediaQuery, 69 | hydrateOnVisible, 70 | initCustomFormatter, 71 | initDirectivesForSSR, 72 | inject, 73 | isMemoSame, 74 | isProxy, 75 | isReactive, 76 | isReadonly, 77 | isRef, 78 | isRuntimeOnly, 79 | isShallow, 80 | isVNode, 81 | markRaw, 82 | mergeDefaults, 83 | mergeModels, 84 | mergeProps, 85 | nextTick, 86 | normalizeClass, 87 | normalizeProps, 88 | normalizeStyle, 89 | onActivated, 90 | onBeforeMount, 91 | onBeforeUnmount, 92 | onBeforeUpdate, 93 | onDeactivated, 94 | onErrorCaptured, 95 | onMounted, 96 | onRenderTracked, 97 | onRenderTriggered, 98 | onScopeDispose, 99 | onServerPrefetch, 100 | onUnmounted, 101 | onUpdated, 102 | onWatcherCleanup, 103 | openBlock, 104 | popScopeId, 105 | provide, 106 | proxyRefs, 107 | pushScopeId, 108 | queuePostFlushCb, 109 | reactive, 110 | readonly, 111 | ref, 112 | registerRuntimeCompiler, 113 | render, 114 | renderList, 115 | renderSlot, 116 | resolveComponent, 117 | resolveDirective, 118 | resolveDynamicComponent, 119 | resolveFilter, 120 | resolveTransitionHooks, 121 | setBlockTracking, 122 | setDevtoolsHook, 123 | setTransitionHooks, 124 | shallowReactive, 125 | shallowReadonly, 126 | shallowRef, 127 | ssrContextKey, 128 | ssrUtils, 129 | stop, 130 | toDisplayString, 131 | toHandlerKey, 132 | toHandlers, 133 | toRaw, 134 | toRef, 135 | toRefs, 136 | toValue, 137 | transformVNodeArgs, 138 | triggerRef, 139 | unref, 140 | useAttrs, 141 | useCssModule, 142 | useCssVars, 143 | useHost, 144 | useId, 145 | useModel, 146 | useSSRContext, 147 | useShadowRoot, 148 | useSlots, 149 | useTemplateRef, 150 | useTransitionState, 151 | vModelCheckbox, 152 | vModelDynamic, 153 | vModelRadio, 154 | vModelSelect, 155 | vModelText, 156 | vShow, 157 | version, 158 | warn, 159 | watch, 160 | watchEffect, 161 | watchPostEffect, 162 | watchSyncEffect, 163 | withAsyncContext, 164 | withCtx, 165 | withDefaults, 166 | withDirectives, 167 | withKeys, 168 | withMemo, 169 | withModifiers, 170 | withScopeId 171 | } from "./chunk-CQOUZRMK.js"; 172 | export { 173 | BaseTransition, 174 | BaseTransitionPropsValidators, 175 | Comment, 176 | DeprecationTypes, 177 | EffectScope, 178 | ErrorCodes, 179 | ErrorTypeStrings, 180 | Fragment, 181 | KeepAlive, 182 | ReactiveEffect, 183 | Static, 184 | Suspense, 185 | Teleport, 186 | Text, 187 | TrackOpTypes, 188 | Transition, 189 | TransitionGroup, 190 | TriggerOpTypes, 191 | VueElement, 192 | assertNumber, 193 | callWithAsyncErrorHandling, 194 | callWithErrorHandling, 195 | camelize, 196 | capitalize, 197 | cloneVNode, 198 | compatUtils, 199 | compile, 200 | computed, 201 | createApp, 202 | createBlock, 203 | createCommentVNode, 204 | createElementBlock, 205 | createBaseVNode as createElementVNode, 206 | createHydrationRenderer, 207 | createPropsRestProxy, 208 | createRenderer, 209 | createSSRApp, 210 | createSlots, 211 | createStaticVNode, 212 | createTextVNode, 213 | createVNode, 214 | customRef, 215 | defineAsyncComponent, 216 | defineComponent, 217 | defineCustomElement, 218 | defineEmits, 219 | defineExpose, 220 | defineModel, 221 | defineOptions, 222 | defineProps, 223 | defineSSRCustomElement, 224 | defineSlots, 225 | devtools, 226 | effect, 227 | effectScope, 228 | getCurrentInstance, 229 | getCurrentScope, 230 | getCurrentWatcher, 231 | getTransitionRawChildren, 232 | guardReactiveProps, 233 | h, 234 | handleError, 235 | hasInjectionContext, 236 | hydrate, 237 | hydrateOnIdle, 238 | hydrateOnInteraction, 239 | hydrateOnMediaQuery, 240 | hydrateOnVisible, 241 | initCustomFormatter, 242 | initDirectivesForSSR, 243 | inject, 244 | isMemoSame, 245 | isProxy, 246 | isReactive, 247 | isReadonly, 248 | isRef, 249 | isRuntimeOnly, 250 | isShallow, 251 | isVNode, 252 | markRaw, 253 | mergeDefaults, 254 | mergeModels, 255 | mergeProps, 256 | nextTick, 257 | normalizeClass, 258 | normalizeProps, 259 | normalizeStyle, 260 | onActivated, 261 | onBeforeMount, 262 | onBeforeUnmount, 263 | onBeforeUpdate, 264 | onDeactivated, 265 | onErrorCaptured, 266 | onMounted, 267 | onRenderTracked, 268 | onRenderTriggered, 269 | onScopeDispose, 270 | onServerPrefetch, 271 | onUnmounted, 272 | onUpdated, 273 | onWatcherCleanup, 274 | openBlock, 275 | popScopeId, 276 | provide, 277 | proxyRefs, 278 | pushScopeId, 279 | queuePostFlushCb, 280 | reactive, 281 | readonly, 282 | ref, 283 | registerRuntimeCompiler, 284 | render, 285 | renderList, 286 | renderSlot, 287 | resolveComponent, 288 | resolveDirective, 289 | resolveDynamicComponent, 290 | resolveFilter, 291 | resolveTransitionHooks, 292 | setBlockTracking, 293 | setDevtoolsHook, 294 | setTransitionHooks, 295 | shallowReactive, 296 | shallowReadonly, 297 | shallowRef, 298 | ssrContextKey, 299 | ssrUtils, 300 | stop, 301 | toDisplayString, 302 | toHandlerKey, 303 | toHandlers, 304 | toRaw, 305 | toRef, 306 | toRefs, 307 | toValue, 308 | transformVNodeArgs, 309 | triggerRef, 310 | unref, 311 | useAttrs, 312 | useCssModule, 313 | useCssVars, 314 | useHost, 315 | useId, 316 | useModel, 317 | useSSRContext, 318 | useShadowRoot, 319 | useSlots, 320 | useTemplateRef, 321 | useTransitionState, 322 | vModelCheckbox, 323 | vModelDynamic, 324 | vModelRadio, 325 | vModelSelect, 326 | vModelText, 327 | vShow, 328 | version, 329 | warn, 330 | watch, 331 | watchEffect, 332 | watchPostEffect, 333 | watchSyncEffect, 334 | withAsyncContext, 335 | withCtx, 336 | withDefaults, 337 | withDirectives, 338 | withKeys, 339 | withMemo, 340 | withModifiers, 341 | withScopeId 342 | }; 343 | //# sourceMappingURL=vue.js.map 344 | -------------------------------------------------------------------------------- /.vitepress/sidebar.ts: -------------------------------------------------------------------------------- 1 | import type { Config as ThemeConfig } from '@vue/theme' 2 | 3 | export const sidebar: ThemeConfig['sidebar'] = { 4 | "/experience/internet": [ 5 | { 6 | text: "后端", 7 | items: [ 8 | { 9 | text: 'java', link: "/experience/internet/backend/java", 10 | }, 11 | { 12 | text: 'cpp', link: "/experience/internet/backend/cpp", 13 | } 14 | ] 15 | }, 16 | { 17 | text: "前端", 18 | items: [ 19 | { 20 | text: 'JavaScript', link: "/experience/internet/frontend/js", 21 | }, 22 | { 23 | text: 'TypeScript', link: "/experience/internet/frontend/ts", 24 | }, 25 | { 26 | text: 'React', link: "/experience/internet/frontend/react", 27 | }, 28 | { 29 | text: 'Vue', link: "/experience/internet/frontend/vue", 30 | }, 31 | { 32 | text: 'Css', link: "/experience/internet/frontend/css", 33 | }, 34 | { 35 | text: 'Html', link: "/experience/internet/frontend/html", 36 | }, 37 | ] 38 | }, 39 | { 40 | text: "算法", 41 | items: [ 42 | { 43 | text: '美团算法', link: "/experience/internet/ai/index", 44 | }, 45 | ] 46 | }, 47 | { 48 | text: "产品", 49 | items: [ 50 | { 51 | text: '佩琦', link: "/experience/internet/product/index", 52 | }, 53 | ] 54 | }, 55 | ], 56 | "/experience/system": [ 57 | { 58 | text: '国央企', items: [ 59 | { 60 | text: '三桶油', link: "/experience/system/three-oil", 61 | }, 62 | { 63 | text: '国家电网', link: "/experience/system/state-grid", 64 | }, 65 | ], 66 | 67 | }, 68 | { 69 | text: '公务员', items: [ 70 | { 71 | text: '公务员', link: "/experience/system/civil-servant", 72 | }, 73 | ] 74 | } 75 | ], 76 | "experience/finance": [ 77 | { 78 | text: '金融', items: [ 79 | { 80 | text: '银行管培生', link: "/experience/finance/management-trainee", 81 | }, 82 | { 83 | text: '银行数据中心', link: "/experience/finance/data-center", 84 | }, 85 | { 86 | text: '量化金融', link: "/experience/finance/quantify" 87 | } 88 | ], 89 | }, 90 | ], 91 | "experience/others": [ 92 | { 93 | text: '杂谈', items: [ 94 | { 95 | text: '写在前面', link: "/experience/others/pre", 96 | }, 97 | { 98 | text: '结构化面试', link: "/experience/others/struct", 99 | }, 100 | { 101 | text: '无领导小组讨论/辩论赛', link: "/experience/others/group", 102 | }, 103 | { 104 | text: '主管面', link: "/experience/others/manager", 105 | }, 106 | ], 107 | } 108 | ], 109 | "in-school": [ 110 | { 111 | text: '准备', items: [ 112 | { 113 | text: '写在前面', link: "/in-school/pre", 114 | }, 115 | { 116 | text: '成绩与评优', link: "/in-school/gpa", 117 | }, 118 | { 119 | text: '实习', link: "/in-school/practice", 120 | }, 121 | { 122 | text: '科研论文', link: "/in-school/conference", 123 | }, 124 | { 125 | text: '竞赛', link: "/in-school/competition", 126 | }, 127 | { 128 | text: '综合发展', link: "/in-school/synthesized", 129 | }, 130 | { 131 | text: '信息差', link: "/in-school/earn-message", 132 | }, 133 | ], 134 | } 135 | ], 136 | "interviews": [ 137 | { 138 | text: '校友访谈', items: [ 139 | { 140 | text: '写在前面', link: "/interviews/pre", 141 | }, 142 | { 143 | text: '08届Google售后经理', link: "/interviews/08-google", 144 | }, 145 | { 146 | text: '20届Nvidia开发', link: "/interviews/20-nvidia", 147 | }, 148 | { 149 | text: '24届博-F-互联网大厂算法工程师', link: "/interviews/24-f-ai", 150 | }, 151 | { 152 | text: '23届硕-崔女士-华为系统预研', link: '/interviews/23-c-hw', 153 | }, 154 | { 155 | text: '97届本-某学长-一级市场股权投资', link: '/interviews/97-b-investment', 156 | }, 157 | { 158 | text: '23届硕-佩奇-互联网大厂产品经理', link: '/interviews/23-p-product', 159 | }, 160 | { 161 | text: '22届硕-司学长-某电池仿真公司技术销售', link: '/interviews/22-s-sales', 162 | }, 163 | { 164 | text: '03届博-王真星-上海第二工业大学副教授', link: '/interviews/03-w-teacher', 165 | }, 166 | { 167 | text: '23届硕-肖钒-腾讯音乐大模型算法工程师', link: '/interviews/23-x-music', 168 | }, 169 | { 170 | text: '23届硕-肖杨-微软上海软件开发', link: '/interviews/23-x-ms', 171 | }, 172 | { 173 | text: '22届硕-C-大模型公司AI Infra工程师', link: '/interviews/22-c-ai', 174 | }, 175 | { 176 | text: '24届硕-陈学长-java后端工程师', link: '/interviews/24-c-java', 177 | }, 178 | { 179 | text: '23届硕-陈学长-某国企后端开发工程师', link: '/interviews/23-c-state', 180 | }, 181 | { 182 | text: '09届MSE-姜先生-招商门户创业', link: '/interviews/09-j-entrepreneur', 183 | }, 184 | { 185 | text: '10届硕-李同学-某三甲医院', link: '/interviews/10-l-hospital', 186 | }, 187 | { 188 | text: '23届硕-苏锐-某省直事业单位软件开发', link: '/interviews/23-s-system', 189 | }, 190 | { 191 | text: '20届硕-王先生-某头部券商程序化研究员', link: '/interviews/20-w-research', 192 | }, 193 | { 194 | text: '23届硕-许学长-地平线后台开发', link: '/interviews/23-x-horizon', 195 | }, 196 | { 197 | text: '23届硕-张先生-某央企研究院', link: '/interviews/23-z-research', 198 | }, 199 | { 200 | text: '24届硕-徐学长-招商银行管培生经验', link: '/interviews/24-rz-finance-manager', 201 | }, 202 | { 203 | text: '24届硕-x学长-教培创业', link: '/interviews/24-jp-entrepreneur', 204 | } 205 | ] 206 | } 207 | ], 208 | "guidance": [ 209 | { 210 | text: '择业指南', items: [ 211 | { 212 | text: '写在前面', link: "/guidance/pre", 213 | }, 214 | { 215 | text: '互联网', link: "/guidance/internet", 216 | }, 217 | { 218 | text: '金融业', link: "/guidance/finance", 219 | }, 220 | { 221 | text: '央国企', link: "/guidance/state", 222 | }, 223 | { 224 | text: '智能制造业', link: "/guidance/iot", 225 | }, 226 | { 227 | text: '传媒业', link: "/guidance/news", 228 | }, 229 | { 230 | text: '公务员&事业单位', link: "/guidance/system", 231 | }, 232 | { 233 | text: '量化', link: "guidance/quantify" 234 | }, 235 | { 236 | text: '其他', link: "/guidance/other", 237 | } 238 | ] 239 | } 240 | ] 241 | }; -------------------------------------------------------------------------------- /src/interviews/23-p-product.md: -------------------------------------------------------------------------------- 1 | # 23届硕-佩奇-互联网大厂产品经理 2 | 3 | ## 可以介绍下您毕业后的工作经历和实习经历吗? 4 | 5 | 我是末流985计算机类的本科,硕士是在香港读的。关于实习经历,我其实并没有很多,但我有一段很深刻的竞赛经历,这段经历对我的职业发展产生了重要影响: 6 | 7 | 在本科大二大三期间,我积极参加了学校举办一些软件开发和创新创业类的比赛。那时,我注意到了校园内的一个痛点问题:学生普遍不知道校巴的具体位置和发车时间。基于这个问题,我组织了一支跨学科团队,包括计算机、设计和商科的同学,共同开发了一个解决方案。我们的项目不仅赢得了全国性的奖项,而且至今仍在线上运行。这段经历为我后来担任产品经理的工作打下了基础。 8 | 9 | 本科毕业后,我前往香港深造。在留学期间,我并没有立即准备找工作,直到接近毕业的那一年,我才意识到需要找工作并开始投递简历。至今,我已经在四家公司工作过。 10 | 11 | 首先,我在一家小型创业公司开始了我的职业生涯。然而,在我即将入职时,我接到了一家互联网大厂的面试邀请。经过2轮业务面+1轮交叉面和hr面试后,大约一个月左右,我收到了这家大厂的offer。由于那时我已经在创业公司实习了一个月,因此我决定辞职并加入第二家公司。 12 | 13 | 第二家公司是一家知名的互联网大厂,做面向开发者的平台型产品经理。这段实习体验了小团队作战的工作方式,与后面的大团队拧螺丝的工作方式有所不同。临近9月,我开始正式准备秋季招聘,赶在提前批的尾声投递简历。 14 | 15 | 在准备秋招的过程中,我投递了超过100个岗位,参加了30多场笔试和20多场面试。期间,我收到了包括百度、拼多多、vivo等在内的多家大厂的offer。在收到这些大厂的offer之前,一家专注于骨传导耳机的公司给了我一个offer,并希望我尽快入职。由于当时我没有其他offer,于是决定先加入这家公司工作。然而,在我入职两周后,拼多多和百度等互联网大厂都与我联系商讨薪资问题。最终,我选择了现在这家公司,担任互联网金融科技类产品的产品经理。 16 | 17 | 面试我现在工作的这家公司时也发生了一件有趣的事情。当时我正准备参加本科的一场公司宣讲会,路上突然接到这家公司面试官的电话要求进行面试。我匆忙找到一个窗台,打开电脑开始了面试。第一次面试只进行了不到半小时,结束后我询问了岗位详情,但hr并没有给出明确答复。大约一周后,我进行了第二次面试,面试官是一位资深老板。面试结束后,我再次询问岗位,老板也没有直接回答,而是询问我想从事B端还是C端的工作,我选择了B端。随后,我进行了第三次面试,大约在十月中旬结束了整个面试流程,并最终获得了offer,一直工作至今。 18 | 19 | ## 刚你提到面了三次面试,那这三次面试都重复这样的流程吗? 20 | 21 | 通常情况下,我们会重复这样的面试流程。然而,随着面试次数的增加,我注意到低职级的面试官往往提问较为标准化,互动较少,他们更注重考察你的逻辑表达能力。而高级面试官则倾向于提出更加开放性的问题,并且态度更为亲切随和,使得面试过程更像是一场轻松的对话。可以说,面试的前半段像是严肃的考试,而后半段则给人一种轻松的感觉。 22 | 23 | ## 计算机专业出身大多选择做技术开发和算法,那你做产品经理的动机是什么呢? 24 | 25 | 1. 根据我个人性格,与其安静的写代码,我更喜欢跟人打交道; 26 | 2. 根据相关经历,我本科时就有带同学做项目的经历,并且认为很有趣。 27 | 3. 我认为程序员不能做一辈子,可能到35岁就要转岗去干管理或者产品经理,那不如尽早的接触这个行业; 28 | 4. 未来挺想创业的,且产品经理可以积累带团队的经验,因此我也想体验一下; 29 | 30 | ## 你收到了很多家offer,后来为何选择你入职的这家呢? 31 | 32 | 我认为有四点原因: 33 | 34 | 1. 地点在杭州,位置很好; 35 | 2. 公司平台很大,也很好; 36 | 3. 这家公司业务也不错,属于核心业务; 37 | 4. 薪资待遇也符合预期; 38 | 39 | ## 互联网行业是不是都不允许透露薪资数据呢?产品相对开发薪资水平能差多少呢? 40 | 41 | 对的,如果大家想了解薪资的话可以去offer show公众号上去看,相对比较准确。 42 | 43 | 如果在同一家公司,我粗略的估计,产品岗的薪资是开发岗的80\%。 44 | 45 | ## 你工作的这几家公司的公司作息和强度是怎样的呢? 46 | 47 | 第一家是一家创业公司,每天早上9:30开始工作,晚上6:30结束,员工需要打卡签到,但工作氛围并不紧张,也不是很卷。 48 | 第二家公司是知名的互联网大厂,上班时间是早上10:00,中午有2小时的午休时间,下午2点继续工作,直到晚上8:00下班。周三周五可以6点下班。具体的工作时间也要看老板的工作时长,若老板加班,通常员工也会加班。 49 | 50 | 第三家公司是做耳机的公司,员工需在早上8:45前到达,晚上6:15即可下班,中午休息一个半小时。公司文化很好,鼓励员工保持健 51 | 康,所以我们常常在晚上相约跑步。近期听说原部门工作强度上来了,也没办法准时下班了。 52 | 53 | 目前所在的大厂公司从事金融科技业务,规定上班时间是早上9:30,晚上6:30下班,中午休息一个半小时。不过,不同团队的工作状况差异较大,我们组的业务需求较多,因此我经常加班,有时甚至要工作到晚上十点、十一点钟。不过,周三和周五可以稍微早点下班。 54 | 55 | 总的来说,小公司通常需要打卡,而大公司则相对自由,打卡制度较为宽松,稍晚一些到达也是可以接受的。 56 | 57 | ## 那你认为这份工作比当初想象中的快乐吗?工作中哪些是你比较满意的地方和吐槽的地方? 58 | 59 | 满意之处主要体现在两个方面:首先,对于目前的薪酬水平,我感到相对满意;其次,大厂的工作环境也比较优越。 60 | 61 | 然而,需要吐槽的地方很多:首先,工作繁杂,几乎没有时间进行独立思考,每天都被各种琐事所困扰;其次,我感觉所从事的工作较为枯燥,每天只是被动地承接各种需求,缺乏创新元素。由于我们平台的产品经理主要关注的是降本增效方面,只有深入理解平台的不足之处,才能有效提升效率。但鉴于我只工作了半年,对整个系统尚未有深入的了解,因此难以实现效率的提升,这让我感到非常痛苦。第三点,我对公司业务的理解不够深入,尤其是在金融资金链路这一块,它非常专业,我常常感到困惑。最后,融入团队并进入正常的工作状态对我来说也是一件比较痛苦的事情。 62 | 63 | ## 产品的杂事体现哪些方面呢? 64 | 65 | 早上一上班就会有很多人来找你,还会有一些一些令人头疼的纠缠。然而,我还没有熟练掌握应对此类纠缠的技巧。每当有人向我提出需求,我都乐于助人。但与我共事的资深产品同事们,他们擅长于这种周旋,往往一番争论后,需求便不了了之。 66 | 67 | 产品经理常常容易成为替罪羊。由于需要与多个部门进行协调,一旦进度出现不同步,责任往往会被推到产品经理的身上。 68 | 69 | ## 那这几家公司的工作状态是怎样的?会有摸鱼等自由的时间吗? 70 | 71 | 在第一家公司的实习期间,由于公司的工作节奏较为缓慢,我的日常职责主要是进行数据录入和表格整理,以及处理一些较为琐碎的事务,这使得工作显得有些单调乏味; 72 | 73 | 而在第二家公司,工作节奏适中,主要面对的是自发性的需求,没有明确的完成时间限制; 74 | 75 | 到了第三家公司,工作环境依旧轻松,主要负责为其他部门提供业务支持,例如开发仓储系统等。在这里,我学到的东西相较于第一家公司有所增加; 76 | 77 | 第四家公司是目前所在的公司,需求往往非常紧急,每两周就有一个更新迭代,同时也有许多业务部门提出需求,需要我们迅速完成相关工作,因此我的工作变得相当忙碌。 78 | 79 | ## 工作中或者身边有没有产品经理的同事面对被裁员的压力呢? 80 | 81 | 我的一位同学在一家知名新能源车企工作,令人意外的是,他在转正后不久,所在部门却遭遇了整体裁员。 82 | 83 | 对于这种情况,我认为它具有两面性。如果你能够接受裁员的不确定性,那么在一些大中小企业或者充满活力的创新部门工作,确实能够加快晋升速度,并且有丰富的学习机会,当然这也伴随着被裁员的风险。相反,如果你选择一个较为稳定的部门,虽然晋升路径可能不那么清晰,但相对而言,工作会更加稳定。对于那些渴望在创新部门工作的人来说,那里更容易取得显著的工作绩效,而且竞争者相对较少。 84 | 85 | ## 我看你的工作经历大多是TO B的,有接触过TO C的产品经理吗? 86 | 87 | 虽然我与TO C端的产品经理接触较少,但即便有观点认为TO B端的年终奖通常高于TO C端,我仍坚信年终奖的多少主要取决于你所从事的是否为公司核心业务,以及公司的整体运营状况。 88 | 89 | 在谈及工作强度时,我观察到B端的工作节奏确实更为紧张。我们需承担起满足公司全方位需求的重任,而C端则主要服务于部分用户群体。因此,我认为在忙碌程度上,B端的确要更胜一筹。 90 | 91 | ## 产品经理未来还能有其他岗位的选择吗?比如项目管理之类的? 92 | 93 | 目前我也刚入职不久,还没接触到那么多人,因此我看的比较多的是创业和做自由职业者。 94 | 95 | ## 后期产品经理职业晋升路径和主流发展路线是什么样的呢?有机会成为leader吗? 96 | 97 | 我认为在互联网公司担任领导者是一项很难的事情。首先,现在大幅度涨薪可能性较低,大多数人在跳槽后的薪资涨幅通常被限制在30\%以内,想要实现50\%的薪资增长已经变得相当罕见。其次,有些人可能会选择跳槽到其他互联网公司,而另一部分人可能会投身自由职业,或者重新回到传统行业。虽然互联网行业收入较高,但长时间的工作压力也难免会对身体造成一定的负担。 98 | 99 | ## 在找工作过程中有哪些渠道可以获取相关有效信息呢? 100 | 101 | 1. 关注公众号,可以获取一手信息; 102 | 103 | 2. 关注一些招聘app,例如牛客网、boss直聘等 104 | 105 | 3. 还有微博、小红书可以刷一些相关求职社群,比如小红书有一些up主专门发求职信息的,还有一些求职组队的群,去里面了解信息。 106 | 107 | ## 面试过程中有没有产品经理的面试经验和技巧? 108 | 109 | 最为关键的是自我介绍,务必将自我介绍表述得清晰明了。若个人项目经历较为丰富,需提炼精华,避免冗长。他们会根据你的回答深入询问细节,以验证你是否真正参与其中。若发现过度包装或欺骗行为,面试很可能直接挂掉。 110 | 111 | 我当时的自我介绍就是围绕我的校园经历,同时巧妙地为面试官设置一些小悬念。例如:我组建了一个团队,共同推进了校巴项目。这时,面试官可能会询问团队构成、项目进展情况以及取得的成果。如何将这些经历讲述得条理清晰?可以借鉴STAR法则,这样面试官会更容易理解。 112 | 113 | 实际上,在自我介绍之后,面试官心中已大致为你定级。如果交谈初始就感到不合适,那么情况基本不容乐观。如果面试官对你感兴趣,他们会继续提问。 114 | 115 | 其次会询问一些产品经理的基础概念,例如询问你产品经理的主要职责是什么?你更倾向于B端还是C端产品?并请你阐述选择的原因。 116 | 再者,面试官还会根据简历内容评估你的综合能力,如学生干部、社团干部等经历。因此,简历中的每一项内容都需要精心准备,同时要清楚地说明参与这些活动的动机。 117 | 118 | ## 对于简历中的项目经常会问哪些内容呢? 119 | 120 | 面试中会围绕几个关键问题展开:比如,在项目中你具体做了哪些任务?面临了哪些挑战?又是如何巧妙应对的?如果你能条理清晰地回答这些问题,那么面试基本成功了一半。 121 | 122 | 项目规模大小并不是关键,重要的是我们在阐述项目时,重要的是能否把项目细节讲述得明白。因此,我们鼓励大家真诚交流,避免过度包装。 123 | 124 | 记得我刚开始面试时,表现得有些过于刻意,但随着面试到后期,我变得更加轻松。通常,越是较为轻松的装填,面试效果反而越好。 125 | 面试并非一场刻板的考试,它更看重的是你与面试官之间的互动,以及你展现出的精神风貌和个性特质。即便你的回答不够完美,但只要你能以饱满的热情去表达,往往也能打动面试官,从而获得通过的机会。 126 | 127 | ## 产品经理是不是有计算机背景能更有优势呢? 128 | 129 | 拥有计算机背景的人在从事产品方面确实具备一定优势,因为他们能够更加清晰地梳理整个产品链路。或许,计算机专业出身的人士在B端产品领域更为适应,而对于C端产品,则可能需要更多的感性认知。当然,最关键的是,无论背景如何,都必须怀揣对产品的热爱之心。 130 | 131 | ## 你是如何进行offer选择的呢? 132 | 133 | 在选择就业时,我首先考虑的是公司的文化氛围、薪资待遇、地理位置以及业务的可靠程度。值得注意的是,就业的稳定性与业务的可靠性密切相关。若公司从事的是边缘性或试验性业务,那么裁员的风险相对较高,这不仅针对产品经理岗位,对所有岗位而言都是如此。因此,选择核心业务领域的工作更为稳妥。 134 | 135 | ## 对于在校生想从事产品经理这个行业,要去做哪些准备呢? 136 | 137 | 若你缺乏产品经理的相关背景但希望投身此行业,可以做以下四点准备: 138 | 139 | 1. 首先先了解产品经理基础知识和工作的主要内容。 140 | 141 | 2. 尝试组建一个团队来实施项目。 142 | 143 | 3. 可以先找家创业的公司拉团队去做项目。 144 | 145 | 4. 争取去大厂做产品经理的实习。 146 | 147 | 许多人会在简历中列举自己的实习经历,但在面试过程中,面试官最看重的是你的创业经历或带领团队完成项目的经验。产品经理的核心能力在于能够凝聚团队,引领大家共同完成任务,并且拥有创业背景往往会更受面试官青睐。 148 | 同时在面试时,面试官往往不会过分考查产品经理的专业技能,而是更注重你的软性实力,比如沟通能力、逻辑思维以及创新思维等。 149 | 150 | ## 产品经理的笔试都需要准备哪些呢? 151 | 152 | 笔试主要涵盖一系列综合能力评估,网上提供了丰富的题库资源,自行多加练习便能应对自如,这些内容类似于公务员考试的行政职业能力测试和申论等。此外,群面环节也相当关键。一些公司若采取海选方式,便会安排群面筛选;反之,若不进行海选,则会直接进入面试环节。 153 | 154 | ## 产品经理会在意你的专业能力或者在校成绩吗? 155 | 156 | 都不会,主要会在意面试时的软技能。 157 | 158 | ## 在你的视角下,产品经理这个行业未来发展趋势是什么?会不会越来越吃香?在AI影响下,产品经理行业会如何变化呢? 159 | 160 | 首先,我坚信产品经理这一岗位不会消失,它会长期存在,并且会有持续的人才需求。尽管当前观点普遍认为互联网行业的增速可能不及以往,但除了互联网公司,汽车制造商、硬件生产商乃至一些传统制造业,对产品经理的需求依然很多。 161 | 162 | 我认为,AI的兴起会对产品经理产生一定影响。AI技术能够显著提升产品经理的工作效率,并助力打造更具价值的产品。然而,从短期到长期来看,AI还无法完全取代产品经理的角色。AI更多地是从海量数据中筛选信息,而人类则更渴望创新,AI在激发创新思维方面与人类相比还是有较大差距。 163 | 164 | ## 身边有认识做AI方面的产品经理吗?主要做哪些内容呢? 165 | 166 | 身边做AI产品的同学多数致力于AI技术的实际应用开发。例如,当您在钉钉聊天窗口输入文字时,他们能够提供文字生成服务或优化服务,以帮助您更高效地表达。此外,若您需要绑定日程,系统也会自动为您完成设置。他们的工作更多的是在现有产品中融入AI技术,丰富其功能。 167 | 168 | ## 对于投递简历或者找工作有什么心得吗? 169 | 170 | 1. 多参加招聘会和宣讲会。无论是本科还是硕士,低年级还是高年级,都建议多参加招聘会和宣讲会,积极了解市场行情,这样你才能更清楚地认识到工作的实际情况,并找到适合自己的位置。 171 | 172 | 2. 多关注感兴趣公司的公众号或直播。我曾在关注某大厂公众号时,发现了一个模拟面试的直播,而直播主讲人恰好成为了我的面试官。因此我对他的面试风格有了一定的了解,面试过程中也很顺利。 173 | 174 | 3. 投简历要保持一定的投递节奏。建议每周投递15-20家公司的岗位,第一周投递,第二周进行笔试,如果顺利,第三周即可进入面试环节。 175 | 176 | 4. 养成记录的习惯。投递简历时,建议使用飞书文档记录所投递的公司、岗位及进展情况,以便随时掌握求职进度。 177 | 178 | 5. 即使你已经入职某家公司,若收到其他公司的offer,也可以尝试谈判薪资。毕竟,HR招聘人才不易,且招聘成本较高。 179 | 180 | 6. 想找暑期实习要尽快准备。对于互联网大厂而言,暑期实习至关重要。尤其是本科三年级到四年级的暑期实习,如果表现良好,就有机会获得转正的offer。这样一来,秋季招聘时心理压力就会大大减轻。因此,从3月份起就要开始在网上投递。 181 | 182 | ## 如果再重来一次校招,你会做出哪些改变? 183 | 184 | 若能重新选择,我倾向于投身开发领域,不再涉足产品工作了。产品经理的工作确实让人心力交瘁,事务繁杂,且难以拥有自己的私人时间。所以,如果有机会重来,我愿意尝试走开发的道路。哈哈。 185 | 186 | ## 对将要找工作的学弟学妹们有什么建议? 187 | 188 | 1. 无论你想做什么工作,务必做好充分的预先准备。 189 | 190 | 2. 积极寻求实习机会。例如,在大学期间就应参与实习等活动,不要等到毕业之后才开始。首先,实习能让你积累宝贵的工作经验,未来求职时更加得心应手;其次,通过体验不同公司的不同岗位,你将更清晰地了解自己究竟喜爱何种工作。 191 | 192 | 3. 广泛搜集信息,多与人交流。特别是与学长学姐、在职人员交谈,从他们的经验中,你可以预见自己的职业发展路径,了解该行业和领域未来的发展趋势。 193 | 194 | 这里分享一个小窍门:如果你有意向在某个公司实习,但又担心无法转正,同时又希望留在该公司,你可以利用公司内部的通讯工具,主动向其他同事了解不同部门是否有适合的机会。特别是对于非技术岗位的同学来说,更应该积极一些。 195 | 196 | -------------------------------------------------------------------------------- /src/interviews/24-f-ai.md: -------------------------------------------------------------------------------- 1 | # 24届博-F-互联网大厂算法工程师 2 | 3 | ## 可以介绍下您毕业后的工作经历吗? 4 | 5 | 我是2021级复旦大学计算机AI方向博士生。 6 | 7 | 博四快暑假的时候,即2023年3、4月份,我开始找暑期实习。我投了大约20家互联网公司,包括腾讯、阿里、vivo、oppo、小米和商汤等。由于转专业的原因,我的代码能力较弱,面对算法岗位的笔试和面试显得尤为困难。再加上当时yq刚过,就业市场非常惨不忍 8 | 睹,最终我只拿到了3家——商汤、vivo和华为的实习offer。 9 | 10 | 我的秋招经历相对顺利,因为AIGC岗位需求增加,我在9、10月份的面试中拿到了包括腾讯、阿里、字节、得物、海康、小米、京东、vivo、oppo和荣耀等AIGC算法工程师的offer。 11 | 12 | ## 对于想要找算法岗工作/实习的同学们来说,你认为哪些方面的能力更重要一些呢? 13 | 14 | 根据我的经历,对于找算法岗的工作,有几个方面是特别重要的。 15 | 16 | 首先,研究方向与业界应用的匹配程度是最重要的。我从2019年开始就专注于AIGC领域,而这个领域在近年来变得非常热门,所以在找工作时,这一研究方向的选择对我非常有利。我有一位同学,他的研究方向是比较冷门的领域,即使他有很多顶级会议的论文,但找工作也很困难。因此,选择一个与业界需求匹配的研究方向至关重要。如果选择了一些冷门的方向,可以尽量往主流方向靠,比如图像到视频翻译或者视频处理等。我投递的岗位与我的研究方向匹配度高,因此和面试官的交流也很顺利。 17 | 18 | 实习经历也非常重要。面试中,他们更关注我的实习经历,而非科研经历。在研究生阶段,实习经历比论文更能体现你的实际能力和业界经验。我的第一次实习面试是腾讯的视频号团队,他们看重的是我在视频编辑方面的研究经历,而不是我是否有发表过顶会论文。因此,在找实习时,公司更看重你的研究方向是否与他们的项目匹配,而不是你的论文数量。 19 | 20 | 算法题的能力也不可忽视。面试中经常会有笔试和现场写代码的环节,这是衡量你基础编程能力和算法理解的重要方式。一般照着Leetcode的总结手册刷熟100题基本就好。我在面试过程中发现,掌握一些经典的算法题,敢于向面试官要提示,并提前讲解思路,都是非常有效的策略。 21 | 22 | 很多公司的面试官很喜欢在面试中问业务场景题,考察你在实际业务中解决问题的能力,这是我印象最深刻的部分。这不仅需要你对自己研究方向有深入的了解,还需要了解相关领域的一些基本知识和最新发展。这时,平时积累的知识和实践经验就非常重要了。八股倒是不用太用力准备,现在问的不太多。 23 | 24 | 总的来说,找算法岗的工作,研究方向的匹配程度、实习经历、算法题能力以及广泛的知识面和解决问题的能力,都是非常重要的因素。 25 | 26 | ## 对于想要找算法岗工作/实习的同学们来说,你认为哪些方面的能力更重要一些呢? 27 | 28 | 我之前一直在为找工作做准备,但实习之后我突然觉得自己更想去学术界,而不是工业界继续工作,这与我的实习经历非常有关。尽管听过很多人对互联网的讲述和吐槽,但是只有亲身体验过才能真正理解他们说的东西。 29 | 30 | 去年,我在“黑羊”进行暑期实习。“黑羊”的工作制度比较弹性,只要每天待够八小时就可以了。我当时在北京,leader在上海,我们同事也不多,所以工作比较自由。 31 | 32 | 在“黑羊”实习时,我的mentor对我非常好。虽然leader给我压力,但他也帮我顶住这些压力,给我时间去看文章和做研究。因此,我感觉时间比较自由,虽然最后没有做出什么特别的成果,但他们也没有责怪我。所以总体上,商汤的实习体验还算不错。 33 | 34 | 然而,一周三次的汇报让我感到特别心累。我们周一开组会,周三有早会,周四还得交周报,这种频繁的汇报和周报让我压力很大。另外,公司的OKR(目标和关键结果)文档,所有人都能看到组里同事的目标和进展,这让我感觉非常累。每天都要完成很多任务,没有休息的时间,这就是我对互联网公司的初印象。 35 | 36 | 我个人在tx的实习体验也不太好(实习和工作体验极其看组,不针对任何公司)。尽管tx的公司文化和人文关怀非常好,经常发礼物和举办活动,但我所在的组非常卷,工作非常累。每天晚上9:30之前基本没有人走。模型和业务需要频繁迭代,经常一个月迭代一版,我看到项目上线前,项目负责人和相关人员会待到凌晨一两点,甚至通宵,这样的工作强度让我无法接受。 37 | 38 | 虽然同事们都很好,但互联网公司业务组永远在与竞品竞争,工作压力非常大。很多时候,ld会把上面对他的压力传递到下属身上。无处不在的owner文化,即使问题可能出在与你无关的数据或算法上,最终锅也是作为owner的你来背。 39 | 40 | 总的来说,互联网公司的工作让我感觉自己像螺丝钉,随时可以被替代。这种被打压、被push的感觉让我很难受。虽然在职场上,这种被骂和被压迫的情况很普遍,但我实在忍受不了这样的环境,所以我决定离开,试图寻找更自由的生活。 41 | 42 | 在互联网实习也有很多好处。首先,我在“黑羊”实习时最大的感受是,我们在学校发的文章和做的算法真的有人在用,他们使用的都是最新的技术。这对我影响非常大。我之前觉得在学校发文章没用,没人会用,但其实公司会看最新的文章,并把这些算法用到产品里。 43 | 44 | 其次,实习让我学到了如何做应用和产品开发。我了解了如何根据客户的需求来设计和改进产品。在公司学习的效率比在学校高很多,实习的三个月可能相当于在学校的半年,因为他们一直push你去看新的东西,掌握新的知识。 45 | 46 | 还有一点是公司的团队合作氛围。在公司里,大家都在为同一个目标努力,虽然每个人做的小方向不一样,但大家都在合作。而在学校的实验室,每个人的研究方向都不同,感觉像是单打独斗,缺乏合作和交流。在公司里,大家可以一起讨论和交流,这种氛围让我觉得很好。 47 | 48 | 另外,公司的节奏比较快,学习效率也更高。平时leader会在群里发一些最新的国内外工作,相当于直接把信息喂到你嘴里,而在学校,很多时候需要自己去找信息,还经常会漏掉一些重要的内容。 49 | 50 | 还有mentor和一些有经验的同事,他们在业务和写代码方面都有很多经验,他们能迅速找到问题的所在并有针对性地进行改进。不是说人家手把手教你,而是通过观察别人怎么解决问题能学到很多东西。 51 | 52 | 在找工作时,了解内部情况非常重要。可以主动找里面的人问一下,但要设计好问题,不直接问工作时间或压力,可以旁敲侧击获取信息。此外,可以观察一些小细节,比如同事的工作时间,来判断实际情况。 53 | 54 | ## 在薪资方面学姐有什么信息和经验可以分享吗? 55 | 56 | 互联网具体的薪资可以看某o小程序,上面挺全的。关于薪资构成,不同公司的情况也有所不同。有些公司会把大部分薪资放在年终奖里,这其实是非常不稳定的,因为年终奖的发放与绩效挂钩,不一定能拿到HR说的数。而每月的基本工资是法律保障的,所以更稳定。比如某B公司会把大部分薪资放在每月的现金上,而年终奖和期权会相对少一些。我个人觉得,去年终奖占大头的公司会感觉被束缚住了,如果想考虑离职还得等年终奖发完才能走,就不那么自由了。 57 | 58 | 另外,社保和公积金的缴纳比例也很重要。比如,有些公司只交5\%,而有些公司交12\%。选择那些缴纳比例高的公司会更有利,因为公积金是双边缴纳,公司也需要按这个比例将资金放入你的公积金账户,公积金比例越高,公司额外为你交的钱越多。 59 | 关于薪资argue,可以在B站上搜一下,讲的都挺全面的。 60 | 61 | 我在这里主要想强调一下,还是尽可能的多拿其他家的offer作为筹码,就算不想去其他公司也最好把全部流程面完拿到offer。在谈判过程中,不要直接问HR是否可以提高薪资,因为他们通常会说不行,你应该通过展示其他公司的offer和表达对这家公司的兴趣来争取更高的薪资。你需要表现出你非常想加入这家公司,但不能贬低其他公司,也不能威胁说如果不给心里的预期总包就去别家公司,然后请求HR帮你争取更高的薪资。在这个过程中,保持良好的态度和沟通非常重要。 62 | 63 | ## 在这个行业里,算法岗位的职业晋升路径和发展方向有哪些? 64 | 65 | 首先,频繁跳槽是现在最普遍的情况。通过跳槽,薪资可以涨得非常快,每次跳槽基本上能涨30\%到50\%,甚至更多。虽然这种方法在前几年确实能快速提高薪资,但对职业连续性并不是很好。我个人可能不会这么频繁跳槽,因为虽然频繁跳槽能让薪资快速上涨,但长期来看,对职业发展可能并不理想。 66 | 67 | 其次,在同一单位晋升成为小领导,这种职业发展路径现在变得非常难。互联网行业已经进入存量时代,上面的领导岗位被占满,新人的晋升空间很有限。比如,我在实习时看到一些同事已经工作八年了,还是普通员工,没有升到领导岗位。所以,现在寄希望于在原公司内部晋升已经不太现实了。 68 | 69 | 关于从大厂跳槽到二线或小厂当领导,这其实是一种不得已的退线。很多人是因为在大厂不想干了,干不下去了或者被裁员才会选择跳槽到二线公司。而且,跳槽到二线公司能否当上领导也不确定,并不是从大厂出来就能保证找到理想的职位。 70 | 71 | 回家找安稳的工作或者进入体制内,这些选择也非常困难。体制内一般只招校招生,从社招进入的机会很少。而进入高校当老师也是非常理想化的情况。公司更关注的是业务和盈利,不会把主要资源投入到发表论文上。因此,在公司很难积累科研成果,除非去的是研究组,而高校注重持续的学术和文章积累。 72 | 73 | 总的来说,现在最普遍的情况是频繁跳槽,但这也是无奈之举。长期留在一家公司,工资涨幅非常有限,而通过跳槽可以获得更高的薪资。很多公司更倾向于招新人而不是提拔内部员工,因为这可以避免内部矛盾。半佛有篇文章说过为什么公司宁愿招一个外面来的人来当领导,也不愿意提拔原先的员工,可以去看看。 74 | 75 | 在互联网公司,如果升不上去领导,确实会有一个薪资的天花板。工资一般是跟职级挂钩的,如果职级往上升,工资就会涨。但到了一定的职级,比如T12或P8,继续往上升就很难了。 76 | 77 | ## 互联网算法岗真的会有很显著的裁员压力吗?在校的同学进入到行业之后,该以一种什么行为和心态去应对这种裁员压力呢? 78 | 79 | 确实会有裁员压力,但这并不完全取决于个人能力,主要是看运气,看整个业务线的情况。裁员时,公司往往会裁掉整个业务线,而不是针对某个具体的员工能力。例如,像之前的字节游戏项目和达摩院的自动驾驶项目,公司裁掉的是整条产品线。 80 | 81 | 被裁的标准主要是看业务是否赚钱。如果你所在的业务比较核心和盈利,就不用太担心被裁员。但即使如此,是否被裁也有一定的运气成分。如果你在边缘业务或者公司为了试水搞的新项目中,确实有很大的概率会被裁掉。 82 | 83 | 进入行业后,心态上需要做好准备,理解这不是个人能力的问题,而是公司整体战略调整的结果。行为上,尽量选择那些核心和盈利的业务线和岗位,这样可以降低被裁员的风险。同时,要保持持续学习和提升自己的能力,以应对可能出现的各种变化。 84 | 85 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢?对于进入行业的赛道选择,有什么建议吗? 86 | 87 | 我觉得如果现在去做一些大模型的话,是在算法领域里比较好的一个选择。大模型的行业前景好,薪资高,而且裁员压力相对较小。就算被裁员,也很容易找到下家,因为现在很多公司都需要做大模型的人。 88 | 89 | 不过,大模型工作也有其取舍之处,主要是工作压力大,任务繁重。大模型组通常分为两个方面:一个是大模型本身的迭代和发版,这个过程是无止境的,需要不断更新迭代;另一个是将大模型应用到其他小的垂类场景和业务中,比如一些公司会接其他兄弟部门的业务,用大模型去做一些具体的项目。这些都需要你做得非常好,因此工作强度很大。如果你精力充沛,比较能卷,我很推荐你去做这个方向;但如果精力差一些,就不太建议选择这么累的工作。 90 | 91 | 汽车新能源行业也算是一个风口,但相对大模型AI稍微差一点。去年比亚迪等公司招聘很多,但今年招聘明显减少。做新能源的感觉也很卷,压力也很大,因为市场竞争激烈,很多公司都在降本增效。 92 | 93 | 从趋势来看,AI和大模型现在仍然处于上升阶段,未来会有更多的应用场景。可以关注一些领先企业如OpenAI的动向,他们的决策和开发者大会往往让人意想不到,而国内很多公司仍在追随和模仿国外的创新。国内很多人疲于应付工作,没有多余的精力去做创新。 94 | 现在进入AI行业和学计算机是非常好的选择。算法比开发稍微好一点,但开发也有它的优势,比如可以积累经验并接一些外快。总的来说,现在AI行业的前景比其他行业要好一些。 95 | 96 | ## 如何在找实习/校招过程中判断offer质量,找到最适合自己的offer呢? 97 | 98 | 首先,有个宗旨:在选择实习公司时,公司的title不如公司能给你的资源和重视程度重要。实际做的工作(能写进简历里),积累的经验和学到的东西才是最重要的。 99 | 100 | 然后可以从三方面去判断。 101 | 102 | 第一点是详细地看一下这个职位的JD(职位描述)。如果这个岗位是通过内推人推你进部门的,可以直接去问内推人或者在组内的同事。如果有这些渠道,我觉得这是非常好的选择。可以直接问内推人或者部门里的同事,了解这个岗位的工作内容是什么。 103 | 104 | 第二点非常重要,就是看面试过程中自己的体会。因为面试时,一般一面是你的mentor,二面是你的leader,三面是大leader。跟他们沟通的感受很重要,这其实就是你之后工作的感受。有些面试官给人的感觉是比较压抑,不苟言笑;而有些面试官则是平等交流,比较关注你的想法。这种沟通的感觉能反映很多东西,是非常值得注意的。你可以通过面试中的感受来判断这个工作是否适合自己。 105 | 另外,也可以问HR,进去之后的mentor和leader是不是你的面试官。有可能你进去之后会面对其他同事,这也是需要了解的。 106 | 107 | 第三点是,我当时拿到蓝厂和“黑羊”的offer也非常纠结,不知道该选择哪一个。我选择直接去加这些公司的leader的微信,提前跟他们聊天,了解工作内容。例如,我问他们我进去了之后需要做什么工作,并和他们直接沟通。这种直接的交流可以帮助你更清楚地了解工作内容和期望。 108 | 109 | 比如在蓝厂,他们会主动问我之前做了什么,并对我之后的期待是什么。他们直接告诉我,我可以延续在学校做的一些工作,协助他们发文章之类的。同时,他们还会问我如果离开后是否能继续帮忙修改文章。这些沟通让我对工作内容和公司的期望有了更清晰的认识。 110 | 此外,进入公司后,也可以适当提出自己的诉求。例如,我在“黑羊”时,他们一开始让我做业务,但我直接提出希望做研究工作,最终他们同意了。所以,适当地争取自己想做的工作内容是可以的。实习的试错成本比较低,如果不满意也可以再找下一份工作。 111 | 112 | ## 之前你提到算法岗位面试官喜欢问业务场景题,而这些问题的回答不能是网上搜到的普通答案。那么,请问面对这种业务场景题,我们应该怎么准备?除了平时关注实验结果外,还有没有其他准备方向? 113 | 114 | 对于无法准备的问题,我也有过迷茫。网上搜不到答案的情况下,我觉得平时的积累很重要。 115 | 116 | 可以多刷刷知乎和关注一些公众号。比如说,当有新的文章出来时,新智元、量子位这些公众号基本上都会推送相关信息,他们也经常关注OpenAI的动态。多关注这些公众号,可以了解最近发生了什么新事情。 117 | 118 | 另外,可以特别关注每篇文章的introduction和conclusion部分,了解他们总结的一些限制和不足之处。平时看文章时,可以留意文章中的图表,注意一些可能连作者都没发现的bad case,这些细节也许会在未来帮助到你。 119 | 120 | 积累这些知识其实跟写语文作文有点类似,没有办法突击准备,只能靠平时的积累。我觉得还可以把面试中问到的问题与自己做过的项目联系起来。 121 | 122 | 比如,有一次我面试时被问到一些非常细节的问题:有图案的长袖怎么保留图案,衣服上的字母或商标如何在换到另一个人身上时保留。这类问题很细节,我也回答得不好,也不知道如何准备这类问题。 123 | 124 | ## 作为过来人,你有什么发文章方面的经验可以分享吗? 125 | 126 | 我现在逐渐觉得发文章是一个非常运气的事情,但从自己能改变的角度来看,有一些方法可以提高成功的机会。 127 | 128 | 首先,发文章最难的是获取一个好的idea。这是个非常宏大的课题,因为涉及到很多方面,一个是导师的指导,一个是自己的努力。我觉得最重要的是找到一个可以手把手带你的人,不管是小老板、学长还是老师。能够找到一个能给你提供想法并指导你的人是最理想的情况。 129 | 130 | 如果你只能自己做,就像我和我们实验室的人一样,基本上是单打独斗,那就只能通过大量看文章来寻找创新点。现在的方法更新非常快,一两个月甚至两三个月就有新的方法出现。所以你需要不停地跟进,通常是去找顶会的文章,搜关键词,然后看哪些文章引用了这些顶会文章,去Google Scholar上查看这些引用。这些引用的文章一般都是非常新的,可能是最近几个月的,然后去找自己感兴趣的文章来看。 131 | 132 | 在一段时间内大量看这些文章之后,你可以总结出一些方法。比如,大家用的同一个框架,或者获取某个特征时常用的方式,这说明这种方式效果比较好。你会发现一些通用的模块,这些模块可以总结出来,基本上很多事情都是平衡的问题,把做得好的方法结合起来,一般都能取得不错的效果。 133 | 134 | 做科研的过程中,会看到很多平衡和组合的问题。这些都是我们在不断学习和研究的过程中需要注意的。 135 | 136 | 另一个有规律的事情是“以史为镜”。因为现在的发展路径常常按照以前的发展路径走。例如,video按照image的发展历程走。所以,如果你做一些比较新的方向,可以去看以前的模型或者一些低维模态的方法。很多东西都是共通的,新的模型也是从无条件到有条件,scaling也是从小到大,基本上都是按照这种发展历程走的。所以,如果你想做出新的、更好的工作,就需要去研究之前的规律。 137 | 138 | 第三个点是文章的写作过程和评审过程。我觉得这非常看运气,但讲故事的能力非常重要。讲故事不仅是要会包装,要包装出你有创新性,做的东西比较新,还要让评审能看懂。不能自己觉得自己做得很牛,但写得让人看不懂或者很混乱。语言要准确、精确、尽量简单,只要能把事情说清楚就好。 139 | 140 | 另外,还要反复强调你的贡献,分布在不同章节、不同地方。章节顺序诉说着你的文章逻辑和故事,每个章节的第一句话非常重要。框架图要画得清晰明白。我之前的文章就因为框架图画得让人看不懂导致文章被拒了很多次。这些非常细节的东西都很重要。 141 | 最后,审稿人对实验结果非常看重,你的实验结果必须要好,能够达到SOTA。结果如果比不过别人,就非常难被接收,大部分评审重视你的实验是否足够华丽、丰富、全面胜过你的motivation。实验要做得很完整,文章要投稿时就写的比较完美,后面rebuttal的补救作用非常有限。 142 | 143 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 144 | 145 | 如果重来一次,我可能不会去校招了。我可能会选择直接找博后,然后走教职。但是如果不找工作不经历校招,我又无法做到现在的坚定,所以一切都是最好的安排。 146 | 147 | 如果以找工作为目标,重来一次的话,我会尽早准备。从研一研二开始,我会去看那些公司官网上的JD,了解他们需要什么样的人,知己知彼。很多公司都会在JD上写明希望你在什么会议上发过文章,了解哪些技术,掌握哪些技能,比如C++、diffusion、Web UI,或者机器学习的某一部分。按照这些标准去塑造自己,提升这些方面的能力,会对之后的实习和求职有很大帮助。 148 | 149 | 我觉得尽早做准备,尽早去实习,多做一些实习,会比较好。这样在真正求职的时候,你已经知道了自己想做什么方向的工作,同时具备了公司需要的能力,也有了相关的实习经验,这样会更有竞争力。 150 | 151 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 152 | 153 | 信心比金子更珍贵,不要因为被拒很多次就怀疑自己。我觉得很多时候被拒不是因为自己能力不行,而是很多环境因素,比如说人家HC可能太少了,竞争者又太多。还有一类原因是自己的方向可能跟人家没有那么match,然后人家找了一个能力可能稍微比你弱一些、但是更match的人选。所以,不要因为这些被拒绝和失败就怀疑自己的能力,不要想太多,更聚焦于让自己每次面试都能进步一点点就可以了。 154 | 155 | 具体到实操的话,可以给自己的每场面试都录一下音,然后复盘一下在哪些问题上回答不出来,哪些问题觉得自己回答得不太好。包括可以记下一些面试官问的问题,会发现面试官问的都大同小异,可以把这些问题都总结起来,有针对性地去准备。 156 | 157 | 面试过程中的气场和心态还挺重要的。我有一场面试,面试官对我的评价是觉得我非常开朗、积极乐观,这让我很惊讶,还是第一次有面试官对我作出这么软性的评价,那次主要也是因为面试官很温柔耐心,我和面试官聊得很愉快,气场比较合。其实很多软性的东西,比如自己的热情,是无法掩饰的。有些面试官说,他们觉得一些候选人眼睛里有光,真的热爱这份工作。所以,表露一些真实的自己,不要紧张,不要害怕。刚开始紧张是很正常的,没关系,慢慢地面多了,尝试多了,就会不那么紧张了。 158 | 159 | 还有一点是把时间和精力放在自己能改变的、可以准备的方面,那些无法干预的公司原因就不要管,不要影响自己的心情和心态。秋招是一个非常煎熬的过程,首先持续时间很长,其次要面很多场,真的很累,一遍遍地讲自己做过的工作,非常枯燥,还经常因为不知道什么原因就挂掉了,人家也不会告诉你为什么挂掉。这时候容易自我怀疑,觉得是不是自己不好。 160 | 161 | 当开始怀疑自己的时候,事情就开始往不好的方向发展了。所以,最好还是心态好一点,要相信自己可以找到工作,就算这次找不到,还有春招。 162 | 163 | 另外,早准备非常重要。尽量去投提前批,不要觉得自己没准备好就不投,觉得还得再准备一两个月再去投。没有比最早投更好的了,因为早投的话,人家把HC确定下来,后面就可能没有机会了。捡漏的机会一般都不太好,所以还是得早准备,自信一点。 164 | 请学弟学妹们相信一切都是最好的安排,谢谢你们看到这里。 165 | 如果有进一步的问题,可以找主编联系到我。 166 | -------------------------------------------------------------------------------- /src/interviews/03-w-teacher.md: -------------------------------------------------------------------------------- 1 | # 03届博-王真星-上海第二工业大学副教授 2 | 3 | 联系方式:13661479214 4 | 5 | ## 老师可以分享一下你的个人经历吗? 6 | 7 | 2003年,我从复旦大学计算机软件与理论专业毕业。那时候进入高校工作相对容易,并且当时我收到了厦门大学和华东师范大学的两个offer。在经过深思熟虑后,我最终选择了华东师范大学。 8 | 然而,我在华东师范大学担任教师一年后,便辞去工作,去做了两年博士后。当我博士后出站后,环境已经发生了很大变化,一些名牌大学已经不再容易进入。由于那时我自己的孩子刚出生,综合考虑后,我选择了来上海第二工业大学教书。 9 | 在我应聘的那个时期,上海第二工业大学还是一个不错的选择,学校有了一批老前辈和专家作为支撑,由于博士后的数量相对较少,因此我比较容易地进入了这所学校。但是,近两年来,虽然博士的数量不断增加,但学校的排名却不断下滑,这让我越来越感觉到学历的价值在贬值。 10 | 11 | ## 老师您在读博士后之前在华师大教书,为什么读完博士后不接着去华师大工作了呢? 12 | 13 | 我在华东师范大学教书期间,我所在的学院是教育科学学院,从事信息技术方面的研究。然而,由于我的专业背景偏向理工科,与我所从事的研究并不完全对口,这也让我对这份工作感到不太满意。实际上,华师大并不十分支持我出做读博士后,他们更希望我一边教书一边在指定的合作机构做博士后。但我联系的是清华大学并且已经办好手续,因此最终选择自动离职,以追求自己的理想。 14 | 我其实并不后悔自己做的这个决定。博士后期间,我在了深圳清华大学研究院,专注于各类智能化仪表的开发领域,这是一个软硬件相结合的研究方向。在研究院,我所接触的都是与我专业领域紧密相关的内容,这让我充满了浓厚的兴趣。直到现在,我依然在这个领域深耕细作,我相信在国内高校中,我在这一领域的水平也是佼佼者。而且,我所指导的学生在步入社会后,在相同领域内所获得的薪资水平也是相当高的。 15 | 16 | ## 从老师经历中知道老师也有公司,想问老师现在创业容易吗?如果想创业是先有产品还是现有客户呢? 17 | 18 | 创业并非易事。我有过开公司的经历,既要洽谈业务,又要具备足够的说服力,让谈判对手信任你,愿意投资,你需要逐一应对这些挑战。并且技术领域充满未知,我必须判断自己的技术能否解决问题,能否合理规划开发边界,并提醒客户注意潜在风险。缺乏这些能力的话,很可能难以维系公司运行。 19 | 一般来说,创业应先找到客户,再根据客户需求开发产品。这对刚毕业的学生来说却是一项巨大的挑战。学校里学到的理论知识与实际工作存在很大差距。社会上的公司所面临的问题,远比学校里教授的理论复杂。 20 | 在创业过程中,我经常遇到不熟悉的事物,因此我不断研究、学习。如今,尽管我已经50多岁,但仍然保持学习的热情,亲自参与项目。如果有研究生愿意加入,我也非常欢迎他们为我提供助力。 21 | 22 | ## 老师您是什么时候想创业的呢?创业时如何选择广告的关键词呢? 23 | 24 | 实际上,我的创业经历可以追溯到很久以前,但真正意义上的创业是从2016年开始的。在那段时期,我也在积极为自己的公司做广告推广。 25 | 我们的策略主要是依据行业特点来挑选关键词,这样可以更精准地匹配潜在客户的心理和年龄层次。以我的行业为例,它侧重于设备的研发,因此选择我们的项目的大多是公司老板。由于我们的业务性质,移动端设备的使用频率较低,客户群体主要依赖电脑端进行操作。此外,我们的客户群体在性别上以男性为主,他们通常都是企业的老板。争取往这些方向来引流。 26 | 27 | ## 那如何做产品?如何筛选客户呢? 28 | 29 | 筛选客户过程是需要持续升级迭代,并且伴随着严格的筛选过程。这一现象与公司的规模和所处行业密切相关,同时也与我们产品的质量紧密相连。 30 | 我们的产品必须追求精细化,因为只有达到精细化水平,才能在国际市场上与国外竞争对手抗衡。尽管我经营的是一家小公司,但我所生产的产品质量在全国范围内都是一流的。 31 | 32 | ## 老师您是如何平衡公司创业和学校科研考核的呢? 33 | 34 | 我并不担心考核,实际上也没有什么问题。学校的考核方式多种多样,其中包括国家基金这一项,它与学术论文紧密相关,属于省部级的大型项目,通常与科研平台有关。此外,还有横向项目或者发明专利等考核指标。如果一个学期能够发表一篇SCI论文,就完全可以应对考评的要求。 35 | 一般高校三年一考核,包括课时、科研成果、论文、专利、专著等。如果考核不合格也是非升即走。 36 | 然而,对于刚刚进入高校的年轻博士老师来说,他们可能在起初能够发表一些文章,但随着时间的推移,可能会面临无法再发表任何文章的困境。 37 | 38 | ## 是什么阻碍年轻老师发不出来论文呢? 39 | 40 | 一开始,老师们还能在学术领域受到学校的影响,发表一些文章。但随着成家立业,生活中的琐事增多,年轻教师也渐渐放下了研究工作,文章的发表也变得稀少,职称提升也遇到了瓶颈。这确实是一件让人感到非常痛苦的事情。 41 | 例如,一些刚进入高校的青年教师,在起初缺乏知名度的情况下,如果无法成功申请到项目,考核不合格,就可能面临被劝退的困境。 42 | 43 | ## 对于刚进高校的青年教师发论文和申请项目哪个更重要? 44 | 45 | 最重要的是申请国家自然科学基金,这个很关键。 46 | 此外,申请各类项目也是非常重要的,其中纵向课题相较于横向课题显得更为重要。当然,横向课题的资助金额有时可能会较低。对于刚刚步入高校的青年教师来说,能够获得的项目数量毕竟有限。 47 | 当前的情况是,国家自然科学基金的审核变得更加严格,资助数量也有所减少,这使得许多申请者的处境相对较为艰难。 48 | 49 | ## 高校的时间是不是比较自由?相比公司企业来讲? 50 | 51 | 在高校中,职位主要分为两大类:行政和教学。行政职位需要按时坐班,而教学职位虽然不需要坐班,但工作内容同样繁重,包括授课、辅导学生以及解答疑问等。 52 | 相比之下,公司虽然每天都需要打卡,但整体压力并不像高校那么大。当然对于自己当老板,压力还是大的。我每天一大早起床就开始工作,一直持续到晚上十一点半。我相信与我同龄的人中,很少有人能承受如此高强度的工作。 53 | 高校员工享有寒暑假,虽然空闲时间比公司员工多,但收入大约只有企业员工的四分之一。而且,多年来高校的工资水平并没有太大的变化。当然,退休待遇还是可以的。 54 | 55 | ## 高校老师如何平衡家庭和工作呢? 56 | 57 | 平衡家庭与工作确实是一项挑战。特别是对于那些需要照顾孩子的女老师,她们往往很难有足够的时间和精力去进行学术研究,因此学术论文的发表和项目的申请都变得较为困难。这种情况可能会导致她们长期停留在讲师的职位上。 58 | 59 | ## 如果想去高校当老师,是不是读到博士后能好一些?哪些人适合进高校呢? 60 | 61 | 如果只是希望成为一名高校教师,我个人认为没有必要从事博士后研究。博士后经历固然是一种资历,但最终学历仍然是博士学位。如果你认为博士后研究对你想去的高校职位有极大的帮助,那么可以考虑申请;否则,其意义并不大。 62 | 进入高校工作,实际上更看重的是你发表文章的影响力或者接项目的能力。而且,即便进入高校,也需要面对定期的绩效评估,如果评估不通过,可能会面临解聘的风险。 63 | 如果你在发表文章方面较为擅长,并且真正热爱科研工作,那么高校是一个非常适合你的地方。但如果你更倾向于实际应用型的研究,并且觉得撰写学术论文较为吃力,那么高校可能不太适合你。目前,许多高校的研究倾向于理论化,实际应用的研究相对较少。 64 | 我本人也评审过许多基金申请,发现真正致力于实际工作的人并不多。在高校,如果你希望脚踏实地地做事情,很可能会遭遇失败,职称晋升也可能受阻,甚至可能难以维持生计。如果这种情况长期持续,生活质量自然会受到影响。 65 | 66 | ## 对刚毕业的博士生来说,大厂高薪工作和稳定高校工作如何选择呢? 67 | 68 | 实际上,我们学校非常欢迎那些在大厂工作了两三年的员工加入,因为他们具备宝贵的实际工作经验。然而,在大厂工作时间不宜过长,因为过长的工龄可能会影响他们顺利调入。 69 | 对于刚刚毕业就直接进入高校的情况,可能会遇到一些令人失望的方面。例如,起薪可能会比较低,尤其是在刚入职时,由于缺乏项目支持,撰写论文的压力也会相对较大,因此初期的生活可能会比较艰难。 70 | 尽管如此,进入高校也有其独特的优势,其中之一就是退休后的工资待遇相对较为乐观。不过需要注意的是,不同学校、不同岗位的退休待遇也会有所差异。 71 | 72 | ## 如果要从高校跳到工业界可行吗?公司会想招这样的人吗? 73 | 74 | 这种做法可能不太合适。我们学院有一位负责教授硬件课程的同事,他并没有实际开发经验。当他跳槽到公司后,由于缺乏实践经验,处境变得相当被动。尽管如此,他想要重新回到高校工作却已经不容易了。因此,从工业界跳槽到高校是可行的,但反过来则不太行得通。 75 | 76 | ## 进高校有年龄限制吗?对是否应届有要求吗? 77 | 78 | 目前,许多高校在招聘时对年龄有一定的限制,通常不太愿意招收35岁以上的应聘者。 79 | 对于刚刚毕业的应届生来说,进入高校工作相对较为容易。然而,对于已经毕业一段时间的往届生来说,情况就有所不同了。比如,如果你在毕业一年后想要加入高校,根据现有政策,这并不容易实现。除非你拥有博士后身份,那样或许还能获得一定的机会。但对于已经在职的工作人员而言,再次进入高校的门槛就会变得更高。 80 | 81 | ## 海外做博士后难吗? 82 | 83 | 在海外从事博士后研究很难。一位美国教授曾告诉我,他们对中国博士后和访问学者的接纳态度较为谨慎,甚至有些忌讳,不会让中国学者接触到核心内容,这在一定程度上也受限于当前的国际形势,为了规避嫌疑。 84 | 此外,若在国外寻求工作机会,发展空间可能会受限,机遇相对较少,有可能长期从事单一而重复的工作。而相比之下,国内的研究机会其实颇为丰富。同时,在海外生活,还可能面临文化适应的难题。 85 | 86 | ## 如果目前的成果不容易进985,需要做3年海外博士后再进高校吗? 87 | 88 | 我不建议你这样做。三年之后会更难,以后会越来越卷,建议现在投递简历。 89 | 90 | ## 电子信息行业未来趋势是什么呢?建议刚高考完的学生报什么专业呢? 91 | 92 | 我建议可以首先踏入该行业,并仔细观察环境是否适合您的发展。即便是在清华大学,如果环境不适宜,也难以发挥潜力。 93 | 同时,兴趣也是至关重要的。缺乏兴趣,您将难以持之以恒。我从事的工作可能需要经历100次尝试,其中99次都会失败,需要不断跨越重重障碍。如果没有浓厚的兴趣,坚持下去将会异常艰难。 94 | 此外,能否学到真正的知识,以及项目是否能够成功实施,都是关键因素。理论与实践相结合,才能确保所学能够转化为实际成果。 95 | 96 | ## 如果在选择职业时,发现去大厂做生成模型虽然很赚钱,但与自己的兴趣爱好不太相关,应该如何选择?如何在经济利益与个人兴趣之间找到平衡? 97 | 98 | 我认为经济基础必须要支撑得住你的选择。所有的学习和研究都应该与经济利益紧密结合。如果没有资金支持,你是无法开展研究的。产品开发通常依赖于项目投资,这种投资驱动着整个过程。如果没有资金作为驱动力,你就没有能力投入,也无法进入市场和形成良性循环。 99 | 100 | ## 对计算机和电子专业的学生而言,想从事这个行业并找到相关工作要做哪些准备呢? 101 | 102 | 从事我们这个行业,软硬件的结合至关重要。仅仅专注于硬件发展空间有限,仅依靠软件同样缺乏长远发展潜力。因此,软硬件融合是必然选择,虽然学生们普遍反映这一领域的学习难度较大。然而,我们的行业充满希望,尽管初入职场时薪资可能不及IT行业,但随着时间的推移,发展前景十分广阔,# 23届硕-肖钒-腾讯音乐大模型算法工程师 103 | 联系方式: 104 | 105 | ## 可以介绍下您毕业后的工作经历吗? 106 | 107 | 第一份实习是在QQ音乐的搜索组。QQ音乐是搜索和NLP都在一个中心(NLP:自然语言处理,以语言为对象,利用计算机技术来分析、理解和处理自然语言的一门学科)。 108 | 我在其中做的项目是和懒人听书联合的一个AI有声书的项目,主要做的是项目里NLP这一部分,就是通过NLP找到它这个小说里面的某句话的某个角色,从而根据这个角色的一些特点来提供语音信息。举个例子:比如说去识别这一本小说里的哪些话是哪个角色去说的,他应该有什么情感,最后让AI根据每个角色特有的声音自动朗读。 109 | 我最后在腾讯QQ音乐的搜索组拿了转正的offer并入职。 110 | 入职之后没多久调去另外一个部门做AIGC(人工智能生成内容,利用AI自动生成图片、视频、音乐、文字等),简单来说就是做一个虚拟人的应用,我主要负责聊天大模型的模块。 111 | 112 | ## 目前薪资待遇和工作强度是怎么样的呢? 113 | 114 | 薪资待遇的话按等级来说我可以算是个SSP。薪资构成是基本月薪,补贴,第一年有签字费,分两年给股票(会随着股价变化)。 115 | 年终奖一般默认是四个月,也会上下浮动,具体多少和部门有关系,实际上去年我年终奖就比四个月还高很多。而对于少的来说,两三个月都有可能。QQ音乐在腾讯属于一个中上的水平,它肯定不是最好的,微信视频号,还有王者算是最好的。我入职的时候并不是大模型的风口,如果在风口入职可能更高,这个只能看运气。 116 | 工作强度算法这边还是比较轻松的,一般十点多一点到公司,晚上没什么事的话六七点就下班了,忙的时候可能到八九点,周末双休。 117 | 业务上腾讯基本上是半年定一次OKR,做大模型的不会像搜广推那样给一个硬指标。我是在偏应用的算法组,没有发论文的需求。 118 | 之前有一段时间做一个面向海外的虚拟聊天APP叫做未伴,就是希望APP能够有更多人跟他去聊天。我这个岗位会更多的考虑怎么去应用它,而不是纯粹的做大模型,包括怎么去微调,训练,写部署逻辑等。虽然要做的事情很多,但是工期不会排的很死,基本上都是自己安排自己的时间,而开发团就会把工期排的很死,加班挺严重的,干到九点多都是常态。 119 | 120 | ## 计算机在校的同学选择算法岗会有两个方面的顾虑,一个是网传算法岗现在的门槛较高,竞争激烈,很难拿到offer。另一种是有的同学觉得可能算法岗相较于开发更容易被裁掉,你觉得这两种说法真实吗? 121 | 122 | 第一个问题卷是肯定卷的,也没那么夸张。 123 | 现在很多同学都太做题家思维了,一个人的水平不只是论文这一个评判维度。有论文定会肯定是一个加分项,但是不是说有论文比没有论文的就一定可以进更好的公司,获得很高的待遇。企业选择人的时候更看重的还是一个人的综合能力,比如经验、能力,在面试时候展示出的对专业知识的掌握度等。 124 | 我们组去年经历过扩张,我有负责招聘中其中一个实习生岗位的一面,我发现大家都在追求一些很奇怪的东西,反而忽略了自己的核心竞争力。我遇见过很多人确实有论文但是论文很水,这样反而会造成负面效果。举个例子,我们今天招聘大模型实习生的时候,很多都是复旦,浙大之类的名校学生,他们有的有不止一篇论文,但是论含金量很低,这会给面试官留下不好的印象。但有一些学生做过一些比较有挑战性的工作,基础知识很扎实,这会在面试中大大的加分。 125 | 对于比赛这件事情来说,在资源难以获取的一个年代,没有办法接触到一些资源的时候,只能通过打比赛去体现自己的价值。但是现在由于AI等一系列技术的发展,信息壁垒被打破,不需要靠这种单一的模式去证明自己,而是要证明在这些知识技能方面自己是专精的,有见解的。 126 | 面试整个大的趋势是轻背景,重能力。 127 | 裁员这方面来说,并不存在算法比开发更容易被裁。所有的工种都存在着裁员危机。据我观察,算法在技术食物链中还是处在比较顶端的一个位置。如果要裁算法人员,公司要考虑用工成本等多方面因素。而且在腾讯这种大厂中,算法岗不会特别的冗余,整个的结构还是比较健康,而开发和运营被裁的概率就会很大。也不是每个地方都是这样的,如果一个大模型公司80\%都是算法工程师,那算法被裁的概率肯定会水涨船高,主要是看结构是否健康。 128 | 129 | ## 您当初选择这份工作,从事这个行业的理由是什么呢? 130 | 131 | 读研之前想过算法很卷,考虑过转开发。 132 | 读研之后做算法挺有趣的,就不打算换方向了。 133 | 134 | ## 在你的行业中,职业晋升的通常路径是什么?有哪些职业发展的方向、机会或障碍? 135 | 136 | 我个人比较推荐两条发展路线。 137 | 其一,通过不断的跳槽来实现利益最大化。 138 | 在一个地方干了一两年之后就跳槽到下一家公司,来获取比较高的薪资和职级。在得到比较高的职级之后,以大厂的背景去一些小厂做leader,或者去初创公司,或者选择自己创业。当然从大厂中跳到小厂做一个leader还是比较稳妥的做法。 139 | 其二,积累资本之后考公或者去国企。在达到考公限制年龄之前考公,或者去国企或者回老家。因为大家都是普通人,不可能所有人都能爬到一个比较高的位置,这个方向的人数量是比较多的。 140 | 141 | ## 在面对大厂随时可能出现的裁员风险时,这种压力会带来怎样的情绪和焦虑?作为在校生或者刚刚步入职场的人,您认为应该如何应对这种情况? 142 | 143 | 互联网的35岁危机是客观存在的,接近40岁在互联网行业中就属于高龄了。我们公司有一个北航本科的同学,在公司做了很久,但是最后也是因为年龄问题就被优化掉了。互联网每天有源源不断的人进来,如果到一定的年龄没有突出的优势也没有升上去,那被优化的概率就会很高。 144 | 从一个技术工种的角度来说,要在学习上有一个很强的主观能动性,不能一直闷头干活,这样容易丧失竞争力。比如如果出了一个新的模型,新的算法,要很快的去follow,学习最新的技术,去建立属于自己的技术壁垒。 145 | 我目前并不是很怕裁员,第一个是我还比较年轻,没有很大的经济压力。第二个是我会很认真的工作,在技术上做到与时俱进,坚持学习新的理论,去看源码,跟业界的同行去进行一些交流,加深自己的技术。这样 的话可能以后就算是到了35岁危机,我也已经积累了一些人脉资源、副业这类东西。 146 | 147 | ## 行业近年来的主要发展趋势是什么?您预测未来几年内,(在政策/AI技术等因素的影响下)行业将会如何变化呢? 148 | 149 | AI行业现在的确是一个风口,但是风口之下肯定是有泡沫存在的。去年GPT出现,紧接着GPT4发布。国内资本市场看到了AI市场,不理智的进行了大量的投资,当没有得到预期效益的时候,资本回归理智,浪潮退却。我觉得在最近几年AI发展的一个大的趋势之下,AI成为主流会是一种必然,但是中间可能会有起伏。由于防火墙的问题,国内公司也会投钱去做GPT这样的一个产品,在这个过程中可能就会诞生出大量的机会。 150 | 而AI超级应用这些概念虽然经常被提及,但是具体什么时候可以实现其实不太明朗。在目前的这个时代,也不一定要去做算法,投身做AI也是比较好的入行时机。 151 | 152 | ## 对于计算机专业的在校生,如果将来想要从事这个行业,找到这样的工作,需要做哪些准备呢? 153 | 154 | 首先要进入到比较好的学校的比较好的实验室,但是不是说在一个很好的实验室就万事大吉了,师傅领进门,修行在个人。进入一个好的实验室,接触到的东西可以帮助你打一个很好的基础,实验室背景也是找工作时候加分项,但是最终找工作看的还是自己的积累。 155 | 从过来人的经验来说,一开始进实验室最好还是要想办法做一篇扎实的科研论文,要真正参与到研发的过程中,而不是糊弄一篇一看就很水的论文。要在这个领域去学到东西,去调研,去跑实验。有一篇论文之后就有一个学术经历,是一个很好的基础。 156 | 接下来就可以出去实习。就日常实习来说,复旦的学历背景已经ok了,其实一些AI日常实习门槛并不是很高,本质上就是招人帮忙干活。这个时候如果有一个比较好的论文的话,就可以让简历比较好看。争取在实习的时候积累一些工作经验,这样一整个流程下来,不论是实习还是秋招的过程,都可以游刃有余。今年我们也遇到了很多这样的学生,背景不错,去了很不错的地方实习,基本上最后都去了一个很top的地方。 157 | 158 | ## 请问学长在一系列研究过程中,需要刻意的去追随一个比较热门的研究方向吗?如果一个人的研究方向比较冷门,最后找工作会比较困难吗? 159 | 160 | 从我的经验来看,研究方向还是很重要的,其重要性和选专业来说不相上下。 161 | 我们在筛选简历的时候,首先会选择CS的学生,电子自动化的之类的大多数都会被筛掉。因为CS的学生已经很多了,除非是技术大佬可以无视方向,但是大多数普通人最好是在一个方向上有扎实的基础,独到的见解。当面试方向和你的研究方向特别match的时候,面试官会特别喜欢你。 162 | 举个例子,现在也会有一些公司来挖我,挖我的方向也就是和我现在做的方向特别match的。因为对于普通人来说,短时间内转型是相当困难的。只能在一个方向上去进行积累,这也是面试官最希望看到的。如果想进一个企业,研究方向肯定要和这个企业的业务有一定的交叉, 163 | 研究方向上的match比论文的级别更重要。 164 | 165 | ## 您在找工作过程中通过哪些渠道获取相关就业信息呢? 166 | 167 | 基本上都是通过官网去投递,还有一些类似牛客这样的平台,再关注一些比较大的公司的信息,这样就足够了。 168 | 169 | ## 可以复盘下您在校招时的经历和心得吗,如果能重来一次校招您会做哪些改变呢? 170 | 171 | 如果重选一遍的话,我一定会打好基础之后直接出去实习到最后。 172 | 如果实验室算力不能支持大模型的训练,那最好是抓紧去实习。找工作的过程中最受欢迎的两种学生,一种是所在的实验室特别好,学生可以隔着实验室起飞;另一种是虽然实验室不是那么厉害,但是实习经历非常丰富。 173 | 找实习的时候实习的资源良莠不齐,像复旦这种学校一般老师手里都会有一些企业的资源,但是企业给学校学生做的项目往往是不是很重要的,企业不愿意花太大的精力,因此才会花比较少的钱把它外包出去。如果是企业的核心项目,是不会通过这样的一个形式去外包给学校的。但是也可能有核心项目,这个比较看运气。但是其实最好的项目组的企业项目大多数质量也很一般,所以要自己出去找质量高的实习。 174 | 最理想的状态就是研一自己能做一些东西,然后立刻去面比较好的企业,比较好的项目组的日常实习或者寒暑假实习,这样对于找工作来说的话收益是最高的。 175 | 我在毕业之前是没有中稿的,当时在实验室中做横向项目比较多,基本上实验室的每一个人手中都有横向项目,也有一些师兄手里的课题还不错,但是不是说想进去就进去的。 176 | 其实在学校里面做出来的东西也未必需要有论文的成果,能把做的东西的过程在实习招聘的过程中完整的讲出来就可以了。有一些人虽然有论文,论文可能还是a会,但是如果稍微深入的问他一些相关的概念,他就说不出来所以然了,这种情况就会让面试官比较下头。 177 | 这种一般分为两种情况,一种是他本身比较水,一种是他表达能力不强。要对写在简历里面的东西有一个深入的理解。 178 | 举个例子,之前我面别人的时候,候选人说做RAG方向,中间提到用了BGE,然后我问他为什么要用BGE,为什么必须是这样的,它的优点是什么,它的运行方式是什么?但是候选人不能够清晰的表述出来,这样就会很减分。 179 | 180 | ## 对那些迷茫于找工作的在校学弟妹们,您有什么寄语吗? 181 | 182 | 希望大家踏踏实实做点东西,别水。你学东西的时候水,到时候面试的时候面试官也会水你的。就是脚踏实地吧! 183 | 我们拥有自己的产品,并能够实现大规模生产,这个行业并非仅限于年轻人的饭碗。 184 | 我个人对这个行业充满信心,并且坚信与人工智能的结合是未来的发展趋势。 185 | 186 | ## 对正在学校迷茫找工作的学弟学妹有什么寄语呢? 187 | 188 | 探索未来如同摸着石头过河,未来充满了不确定性,无人能为你指明确切的道路。在智力水平相近的情况下,最终决定胜负的是毅力。正如马斯克一样,不断尝试,即便失败也要坚持不懈,终将迎来成功的曙光。 189 | 人生就是这样,充满尝试与挑战。回顾我的过去,也是充满波折。高考两次才得以圆梦,毕业后历经四年的职场生涯,才决定考研,又是三年后才成功。硕士毕业后,第一次考交大的博士,考上了人家不要我,我又在下半年同时考4所高校才成功。我的感悟就是,要不停地努力,抱持希望,并始终朝着目标奋进。我做研发也是大部分是曲折,但最终都可以成功。 190 | 生活也需要灵活应对。当一条路走不通时,应及时放弃,止损并尝试新的路径及时调整目标。即使遭遇挫折,只要勇敢地站起来,重新出发,机遇总会再次出现。 191 | 人生应当充满希望和梦想,如果只是为了金钱而活,那么生活将失去意义。只有追逐梦想,付出努力,人生才会变得有价值。 192 | -------------------------------------------------------------------------------- /.vitepress/cache/deps/giscus-Ci9LqPcC-CCB7DQEP.js: -------------------------------------------------------------------------------- 1 | // node_modules/.pnpm/@giscus+vue@3.1.1_vue@3.5.13/node_modules/@giscus/vue/dist/giscus-Ci9LqPcC.js 2 | var H = globalThis; 3 | var V = H.ShadowRoot && (H.ShadyCSS === void 0 || H.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype; 4 | var q = Symbol(); 5 | var J = /* @__PURE__ */ new WeakMap(); 6 | var ht = class { 7 | constructor(t, e, s) { 8 | if (this._$cssResult$ = true, s !== q) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead."); 9 | this.cssText = t, this.t = e; 10 | } 11 | get styleSheet() { 12 | let t = this.o; 13 | const e = this.t; 14 | if (V && t === void 0) { 15 | const s = e !== void 0 && e.length === 1; 16 | s && (t = J.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), s && J.set(e, t)); 17 | } 18 | return t; 19 | } 20 | toString() { 21 | return this.cssText; 22 | } 23 | }; 24 | var ut = (i) => new ht(typeof i == "string" ? i : i + "", void 0, q); 25 | var $t = (i, ...t) => { 26 | const e = i.length === 1 ? i[0] : t.reduce((s, r, o) => s + ((n) => { 27 | if (n._$cssResult$ === true) return n.cssText; 28 | if (typeof n == "number") return n; 29 | throw Error("Value passed to 'css' function must be a 'css' function result: " + n + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security."); 30 | })(r) + i[o + 1], i[0]); 31 | return new ht(e, i, q); 32 | }; 33 | var _t = (i, t) => { 34 | if (V) i.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet); 35 | else for (const e of t) { 36 | const s = document.createElement("style"), r = H.litNonce; 37 | r !== void 0 && s.setAttribute("nonce", r), s.textContent = e.cssText, i.appendChild(s); 38 | } 39 | }; 40 | var Z = V ? (i) => i : (i) => i instanceof CSSStyleSheet ? ((t) => { 41 | let e = ""; 42 | for (const s of t.cssRules) e += s.cssText; 43 | return ut(e); 44 | })(i) : i; 45 | var { is: gt, defineProperty: ft, getOwnPropertyDescriptor: mt, getOwnPropertyNames: At, getOwnPropertySymbols: yt, getPrototypeOf: St } = Object; 46 | var A = globalThis; 47 | var Q = A.trustedTypes; 48 | var vt = Q ? Q.emptyScript : ""; 49 | var Y = A.reactiveElementPolyfillSupport; 50 | var U = (i, t) => i; 51 | var L = { toAttribute(i, t) { 52 | switch (t) { 53 | case Boolean: 54 | i = i ? vt : null; 55 | break; 56 | case Object: 57 | case Array: 58 | i = i == null ? i : JSON.stringify(i); 59 | } 60 | return i; 61 | }, fromAttribute(i, t) { 62 | let e = i; 63 | switch (t) { 64 | case Boolean: 65 | e = i !== null; 66 | break; 67 | case Number: 68 | e = i === null ? null : Number(i); 69 | break; 70 | case Object: 71 | case Array: 72 | try { 73 | e = JSON.parse(i); 74 | } catch { 75 | e = null; 76 | } 77 | } 78 | return e; 79 | } }; 80 | var K = (i, t) => !gt(i, t); 81 | var X = { attribute: true, type: String, converter: L, reflect: false, hasChanged: K }; 82 | Symbol.metadata ?? (Symbol.metadata = Symbol("metadata")), A.litPropertyMetadata ?? (A.litPropertyMetadata = /* @__PURE__ */ new WeakMap()); 83 | var E = class extends HTMLElement { 84 | static addInitializer(t) { 85 | this._$Ei(), (this.l ?? (this.l = [])).push(t); 86 | } 87 | static get observedAttributes() { 88 | return this.finalize(), this._$Eh && [...this._$Eh.keys()]; 89 | } 90 | static createProperty(t, e = X) { 91 | if (e.state && (e.attribute = false), this._$Ei(), this.elementProperties.set(t, e), !e.noAccessor) { 92 | const s = Symbol(), r = this.getPropertyDescriptor(t, s, e); 93 | r !== void 0 && ft(this.prototype, t, r); 94 | } 95 | } 96 | static getPropertyDescriptor(t, e, s) { 97 | const { get: r, set: o } = mt(this.prototype, t) ?? { get() { 98 | return this[e]; 99 | }, set(n) { 100 | this[e] = n; 101 | } }; 102 | return { get() { 103 | return r == null ? void 0 : r.call(this); 104 | }, set(n) { 105 | const a = r == null ? void 0 : r.call(this); 106 | o.call(this, n), this.requestUpdate(t, a, s); 107 | }, configurable: true, enumerable: true }; 108 | } 109 | static getPropertyOptions(t) { 110 | return this.elementProperties.get(t) ?? X; 111 | } 112 | static _$Ei() { 113 | if (this.hasOwnProperty(U("elementProperties"))) return; 114 | const t = St(this); 115 | t.finalize(), t.l !== void 0 && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties); 116 | } 117 | static finalize() { 118 | if (this.hasOwnProperty(U("finalized"))) return; 119 | if (this.finalized = true, this._$Ei(), this.hasOwnProperty(U("properties"))) { 120 | const e = this.properties, s = [...At(e), ...yt(e)]; 121 | for (const r of s) this.createProperty(r, e[r]); 122 | } 123 | const t = this[Symbol.metadata]; 124 | if (t !== null) { 125 | const e = litPropertyMetadata.get(t); 126 | if (e !== void 0) for (const [s, r] of e) this.elementProperties.set(s, r); 127 | } 128 | this._$Eh = /* @__PURE__ */ new Map(); 129 | for (const [e, s] of this.elementProperties) { 130 | const r = this._$Eu(e, s); 131 | r !== void 0 && this._$Eh.set(r, e); 132 | } 133 | this.elementStyles = this.finalizeStyles(this.styles); 134 | } 135 | static finalizeStyles(t) { 136 | const e = []; 137 | if (Array.isArray(t)) { 138 | const s = new Set(t.flat(1 / 0).reverse()); 139 | for (const r of s) e.unshift(Z(r)); 140 | } else t !== void 0 && e.push(Z(t)); 141 | return e; 142 | } 143 | static _$Eu(t, e) { 144 | const s = e.attribute; 145 | return s === false ? void 0 : typeof s == "string" ? s : typeof t == "string" ? t.toLowerCase() : void 0; 146 | } 147 | constructor() { 148 | super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev(); 149 | } 150 | _$Ev() { 151 | var t; 152 | this._$ES = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (t = this.constructor.l) == null || t.forEach((e) => e(this)); 153 | } 154 | addController(t) { 155 | var e; 156 | (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(t), this.renderRoot !== void 0 && this.isConnected && ((e = t.hostConnected) == null || e.call(t)); 157 | } 158 | removeController(t) { 159 | var e; 160 | (e = this._$EO) == null || e.delete(t); 161 | } 162 | _$E_() { 163 | const t = /* @__PURE__ */ new Map(), e = this.constructor.elementProperties; 164 | for (const s of e.keys()) this.hasOwnProperty(s) && (t.set(s, this[s]), delete this[s]); 165 | t.size > 0 && (this._$Ep = t); 166 | } 167 | createRenderRoot() { 168 | const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions); 169 | return _t(t, this.constructor.elementStyles), t; 170 | } 171 | connectedCallback() { 172 | var t; 173 | this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(true), (t = this._$EO) == null || t.forEach((e) => { 174 | var s; 175 | return (s = e.hostConnected) == null ? void 0 : s.call(e); 176 | }); 177 | } 178 | enableUpdating(t) { 179 | } 180 | disconnectedCallback() { 181 | var t; 182 | (t = this._$EO) == null || t.forEach((e) => { 183 | var s; 184 | return (s = e.hostDisconnected) == null ? void 0 : s.call(e); 185 | }); 186 | } 187 | attributeChangedCallback(t, e, s) { 188 | this._$AK(t, s); 189 | } 190 | _$EC(t, e) { 191 | var o; 192 | const s = this.constructor.elementProperties.get(t), r = this.constructor._$Eu(t, s); 193 | if (r !== void 0 && s.reflect === true) { 194 | const n = (((o = s.converter) == null ? void 0 : o.toAttribute) !== void 0 ? s.converter : L).toAttribute(e, s.type); 195 | this._$Em = t, n == null ? this.removeAttribute(r) : this.setAttribute(r, n), this._$Em = null; 196 | } 197 | } 198 | _$AK(t, e) { 199 | var o; 200 | const s = this.constructor, r = s._$Eh.get(t); 201 | if (r !== void 0 && this._$Em !== r) { 202 | const n = s.getPropertyOptions(r), a = typeof n.converter == "function" ? { fromAttribute: n.converter } : ((o = n.converter) == null ? void 0 : o.fromAttribute) !== void 0 ? n.converter : L; 203 | this._$Em = r, this[r] = a.fromAttribute(e, n.type), this._$Em = null; 204 | } 205 | } 206 | requestUpdate(t, e, s) { 207 | if (t !== void 0) { 208 | if (s ?? (s = this.constructor.getPropertyOptions(t)), !(s.hasChanged ?? K)(this[t], e)) return; 209 | this.P(t, e, s); 210 | } 211 | this.isUpdatePending === false && (this._$ES = this._$ET()); 212 | } 213 | P(t, e, s) { 214 | this._$AL.has(t) || this._$AL.set(t, e), s.reflect === true && this._$Em !== t && (this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Set())).add(t); 215 | } 216 | async _$ET() { 217 | this.isUpdatePending = true; 218 | try { 219 | await this._$ES; 220 | } catch (e) { 221 | Promise.reject(e); 222 | } 223 | const t = this.scheduleUpdate(); 224 | return t != null && await t, !this.isUpdatePending; 225 | } 226 | scheduleUpdate() { 227 | return this.performUpdate(); 228 | } 229 | performUpdate() { 230 | var s; 231 | if (!this.isUpdatePending) return; 232 | if (!this.hasUpdated) { 233 | if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) { 234 | for (const [o, n] of this._$Ep) this[o] = n; 235 | this._$Ep = void 0; 236 | } 237 | const r = this.constructor.elementProperties; 238 | if (r.size > 0) for (const [o, n] of r) n.wrapped !== true || this._$AL.has(o) || this[o] === void 0 || this.P(o, this[o], n); 239 | } 240 | let t = false; 241 | const e = this._$AL; 242 | try { 243 | t = this.shouldUpdate(e), t ? (this.willUpdate(e), (s = this._$EO) == null || s.forEach((r) => { 244 | var o; 245 | return (o = r.hostUpdate) == null ? void 0 : o.call(r); 246 | }), this.update(e)) : this._$EU(); 247 | } catch (r) { 248 | throw t = false, this._$EU(), r; 249 | } 250 | t && this._$AE(e); 251 | } 252 | willUpdate(t) { 253 | } 254 | _$AE(t) { 255 | var e; 256 | (e = this._$EO) == null || e.forEach((s) => { 257 | var r; 258 | return (r = s.hostUpdated) == null ? void 0 : r.call(s); 259 | }), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t)), this.updated(t); 260 | } 261 | _$EU() { 262 | this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false; 263 | } 264 | get updateComplete() { 265 | return this.getUpdateComplete(); 266 | } 267 | getUpdateComplete() { 268 | return this._$ES; 269 | } 270 | shouldUpdate(t) { 271 | return true; 272 | } 273 | update(t) { 274 | this._$Ej && (this._$Ej = this._$Ej.forEach((e) => this._$EC(e, this[e]))), this._$EU(); 275 | } 276 | updated(t) { 277 | } 278 | firstUpdated(t) { 279 | } 280 | }; 281 | E.elementStyles = [], E.shadowRootOptions = { mode: "open" }, E[U("elementProperties")] = /* @__PURE__ */ new Map(), E[U("finalized")] = /* @__PURE__ */ new Map(), Y == null || Y({ ReactiveElement: E }), (A.reactiveElementVersions ?? (A.reactiveElementVersions = [])).push("2.0.4"); 282 | var P = globalThis; 283 | var k = P.trustedTypes; 284 | var tt = k ? k.createPolicy("lit-html", { createHTML: (i) => i }) : void 0; 285 | var at = "$lit$"; 286 | var m = `lit$${Math.random().toFixed(9).slice(2)}$`; 287 | var ct = "?" + m; 288 | var Et = `<${ct}>`; 289 | var v = document; 290 | var M = () => v.createComment(""); 291 | var N = (i) => i === null || typeof i != "object" && typeof i != "function"; 292 | var F = Array.isArray; 293 | var bt = (i) => F(i) || typeof (i == null ? void 0 : i[Symbol.iterator]) == "function"; 294 | var B = `[ 295 | \f\r]`; 296 | var w = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g; 297 | var et = /-->/g; 298 | var st = />/g; 299 | var y = RegExp(`>|${B}(?:([^\\s"'>=/]+)(${B}*=${B}*(?:[^ 300 | \f\r"'\`<>=]|("|')|))|$)`, "g"); 301 | var it = /'/g; 302 | var rt = /"/g; 303 | var lt = /^(?:script|style|textarea|title)$/i; 304 | var Ct = (i) => (t, ...e) => ({ _$litType$: i, strings: t, values: e }); 305 | var wt = Ct(1); 306 | var b = Symbol.for("lit-noChange"); 307 | var l = Symbol.for("lit-nothing"); 308 | var nt = /* @__PURE__ */ new WeakMap(); 309 | var S = v.createTreeWalker(v, 129); 310 | function dt(i, t) { 311 | if (!F(i) || !i.hasOwnProperty("raw")) throw Error("invalid template strings array"); 312 | return tt !== void 0 ? tt.createHTML(t) : t; 313 | } 314 | var Ut = (i, t) => { 315 | const e = i.length - 1, s = []; 316 | let r, o = t === 2 ? "" : t === 3 ? "" : "", n = w; 317 | for (let a = 0; a < e; a++) { 318 | const h = i[a]; 319 | let d, u, c = -1, g = 0; 320 | for (; g < h.length && (n.lastIndex = g, u = n.exec(h), u !== null); ) g = n.lastIndex, n === w ? u[1] === "!--" ? n = et : u[1] !== void 0 ? n = st : u[2] !== void 0 ? (lt.test(u[2]) && (r = RegExp("" ? (n = r ?? w, c = -1) : u[1] === void 0 ? c = -2 : (c = n.lastIndex - u[2].length, d = u[1], n = u[3] === void 0 ? y : u[3] === '"' ? rt : it) : n === rt || n === it ? n = y : n === et || n === st ? n = w : (n = y, r = void 0); 321 | const f = n === y && i[a + 1].startsWith("/>") ? " " : ""; 322 | o += n === w ? h + Et : c >= 0 ? (s.push(d), h.slice(0, c) + at + h.slice(c) + m + f) : h + m + (c === -2 ? a : f); 323 | } 324 | return [dt(i, o + (i[e] || "") + (t === 2 ? "" : t === 3 ? "" : "")), s]; 325 | }; 326 | var R = class _R { 327 | constructor({ strings: t, _$litType$: e }, s) { 328 | let r; 329 | this.parts = []; 330 | let o = 0, n = 0; 331 | const a = t.length - 1, h = this.parts, [d, u] = Ut(t, e); 332 | if (this.el = _R.createElement(d, s), S.currentNode = this.el.content, e === 2 || e === 3) { 333 | const c = this.el.content.firstChild; 334 | c.replaceWith(...c.childNodes); 335 | } 336 | for (; (r = S.nextNode()) !== null && h.length < a; ) { 337 | if (r.nodeType === 1) { 338 | if (r.hasAttributes()) for (const c of r.getAttributeNames()) if (c.endsWith(at)) { 339 | const g = u[n++], f = r.getAttribute(c).split(m), x = /([.?@])?(.*)/.exec(g); 340 | h.push({ type: 1, index: o, name: x[2], strings: f, ctor: x[1] === "." ? Ot : x[1] === "?" ? Tt : x[1] === "@" ? Mt : z }), r.removeAttribute(c); 341 | } else c.startsWith(m) && (h.push({ type: 6, index: o }), r.removeAttribute(c)); 342 | if (lt.test(r.tagName)) { 343 | const c = r.textContent.split(m), g = c.length - 1; 344 | if (g > 0) { 345 | r.textContent = k ? k.emptyScript : ""; 346 | for (let f = 0; f < g; f++) r.append(c[f], M()), S.nextNode(), h.push({ type: 2, index: ++o }); 347 | r.append(c[g], M()); 348 | } 349 | } 350 | } else if (r.nodeType === 8) if (r.data === ct) h.push({ type: 2, index: o }); 351 | else { 352 | let c = -1; 353 | for (; (c = r.data.indexOf(m, c + 1)) !== -1; ) h.push({ type: 7, index: o }), c += m.length - 1; 354 | } 355 | o++; 356 | } 357 | } 358 | static createElement(t, e) { 359 | const s = v.createElement("template"); 360 | return s.innerHTML = t, s; 361 | } 362 | }; 363 | function C(i, t, e = i, s) { 364 | var n, a; 365 | if (t === b) return t; 366 | let r = s !== void 0 ? (n = e._$Co) == null ? void 0 : n[s] : e._$Cl; 367 | const o = N(t) ? void 0 : t._$litDirective$; 368 | return (r == null ? void 0 : r.constructor) !== o && ((a = r == null ? void 0 : r._$AO) == null || a.call(r, false), o === void 0 ? r = void 0 : (r = new o(i), r._$AT(i, e, s)), s !== void 0 ? (e._$Co ?? (e._$Co = []))[s] = r : e._$Cl = r), r !== void 0 && (t = C(i, r._$AS(i, t.values), r, s)), t; 369 | } 370 | var Pt = class { 371 | constructor(t, e) { 372 | this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e; 373 | } 374 | get parentNode() { 375 | return this._$AM.parentNode; 376 | } 377 | get _$AU() { 378 | return this._$AM._$AU; 379 | } 380 | u(t) { 381 | const { el: { content: e }, parts: s } = this._$AD, r = ((t == null ? void 0 : t.creationScope) ?? v).importNode(e, true); 382 | S.currentNode = r; 383 | let o = S.nextNode(), n = 0, a = 0, h = s[0]; 384 | for (; h !== void 0; ) { 385 | if (n === h.index) { 386 | let d; 387 | h.type === 2 ? d = new I(o, o.nextSibling, this, t) : h.type === 1 ? d = new h.ctor(o, h.name, h.strings, this, t) : h.type === 6 && (d = new Nt(o, this, t)), this._$AV.push(d), h = s[++a]; 388 | } 389 | n !== (h == null ? void 0 : h.index) && (o = S.nextNode(), n++); 390 | } 391 | return S.currentNode = v, r; 392 | } 393 | p(t) { 394 | let e = 0; 395 | for (const s of this._$AV) s !== void 0 && (s.strings !== void 0 ? (s._$AI(t, s, e), e += s.strings.length - 2) : s._$AI(t[e])), e++; 396 | } 397 | }; 398 | var I = class _I { 399 | get _$AU() { 400 | var t; 401 | return ((t = this._$AM) == null ? void 0 : t._$AU) ?? this._$Cv; 402 | } 403 | constructor(t, e, s, r) { 404 | this.type = 2, this._$AH = l, this._$AN = void 0, this._$AA = t, this._$AB = e, this._$AM = s, this.options = r, this._$Cv = (r == null ? void 0 : r.isConnected) ?? true; 405 | } 406 | get parentNode() { 407 | let t = this._$AA.parentNode; 408 | const e = this._$AM; 409 | return e !== void 0 && (t == null ? void 0 : t.nodeType) === 11 && (t = e.parentNode), t; 410 | } 411 | get startNode() { 412 | return this._$AA; 413 | } 414 | get endNode() { 415 | return this._$AB; 416 | } 417 | _$AI(t, e = this) { 418 | t = C(this, t, e), N(t) ? t === l || t == null || t === "" ? (this._$AH !== l && this._$AR(), this._$AH = l) : t !== this._$AH && t !== b && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) : bt(t) ? this.k(t) : this._(t); 419 | } 420 | O(t) { 421 | return this._$AA.parentNode.insertBefore(t, this._$AB); 422 | } 423 | T(t) { 424 | this._$AH !== t && (this._$AR(), this._$AH = this.O(t)); 425 | } 426 | _(t) { 427 | this._$AH !== l && N(this._$AH) ? this._$AA.nextSibling.data = t : this.T(v.createTextNode(t)), this._$AH = t; 428 | } 429 | $(t) { 430 | var o; 431 | const { values: e, _$litType$: s } = t, r = typeof s == "number" ? this._$AC(t) : (s.el === void 0 && (s.el = R.createElement(dt(s.h, s.h[0]), this.options)), s); 432 | if (((o = this._$AH) == null ? void 0 : o._$AD) === r) this._$AH.p(e); 433 | else { 434 | const n = new Pt(r, this), a = n.u(this.options); 435 | n.p(e), this.T(a), this._$AH = n; 436 | } 437 | } 438 | _$AC(t) { 439 | let e = nt.get(t.strings); 440 | return e === void 0 && nt.set(t.strings, e = new R(t)), e; 441 | } 442 | k(t) { 443 | F(this._$AH) || (this._$AH = [], this._$AR()); 444 | const e = this._$AH; 445 | let s, r = 0; 446 | for (const o of t) r === e.length ? e.push(s = new _I(this.O(M()), this.O(M()), this, this.options)) : s = e[r], s._$AI(o), r++; 447 | r < e.length && (this._$AR(s && s._$AB.nextSibling, r), e.length = r); 448 | } 449 | _$AR(t = this._$AA.nextSibling, e) { 450 | var s; 451 | for ((s = this._$AP) == null ? void 0 : s.call(this, false, true, e); t && t !== this._$AB; ) { 452 | const r = t.nextSibling; 453 | t.remove(), t = r; 454 | } 455 | } 456 | setConnected(t) { 457 | var e; 458 | this._$AM === void 0 && (this._$Cv = t, (e = this._$AP) == null || e.call(this, t)); 459 | } 460 | }; 461 | var z = class { 462 | get tagName() { 463 | return this.element.tagName; 464 | } 465 | get _$AU() { 466 | return this._$AM._$AU; 467 | } 468 | constructor(t, e, s, r, o) { 469 | this.type = 1, this._$AH = l, this._$AN = void 0, this.element = t, this.name = e, this._$AM = r, this.options = o, s.length > 2 || s[0] !== "" || s[1] !== "" ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = l; 470 | } 471 | _$AI(t, e = this, s, r) { 472 | const o = this.strings; 473 | let n = false; 474 | if (o === void 0) t = C(this, t, e, 0), n = !N(t) || t !== this._$AH && t !== b, n && (this._$AH = t); 475 | else { 476 | const a = t; 477 | let h, d; 478 | for (t = o[0], h = 0; h < o.length - 1; h++) d = C(this, a[s + h], e, h), d === b && (d = this._$AH[h]), n || (n = !N(d) || d !== this._$AH[h]), d === l ? t = l : t !== l && (t += (d ?? "") + o[h + 1]), this._$AH[h] = d; 479 | } 480 | n && !r && this.j(t); 481 | } 482 | j(t) { 483 | t === l ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? ""); 484 | } 485 | }; 486 | var Ot = class extends z { 487 | constructor() { 488 | super(...arguments), this.type = 3; 489 | } 490 | j(t) { 491 | this.element[this.name] = t === l ? void 0 : t; 492 | } 493 | }; 494 | var Tt = class extends z { 495 | constructor() { 496 | super(...arguments), this.type = 4; 497 | } 498 | j(t) { 499 | this.element.toggleAttribute(this.name, !!t && t !== l); 500 | } 501 | }; 502 | var Mt = class extends z { 503 | constructor(t, e, s, r, o) { 504 | super(t, e, s, r, o), this.type = 5; 505 | } 506 | _$AI(t, e = this) { 507 | if ((t = C(this, t, e, 0) ?? l) === b) return; 508 | const s = this._$AH, r = t === l && s !== l || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, o = t !== l && (s === l || r); 509 | r && this.element.removeEventListener(this.name, this, s), o && this.element.addEventListener(this.name, this, t), this._$AH = t; 510 | } 511 | handleEvent(t) { 512 | var e; 513 | typeof this._$AH == "function" ? this._$AH.call(((e = this.options) == null ? void 0 : e.host) ?? this.element, t) : this._$AH.handleEvent(t); 514 | } 515 | }; 516 | var Nt = class { 517 | constructor(t, e, s) { 518 | this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = s; 519 | } 520 | get _$AU() { 521 | return this._$AM._$AU; 522 | } 523 | _$AI(t) { 524 | C(this, t); 525 | } 526 | }; 527 | var j = P.litHtmlPolyfillSupport; 528 | j == null || j(R, I), (P.litHtmlVersions ?? (P.litHtmlVersions = [])).push("3.2.1"); 529 | var Rt = (i, t, e) => { 530 | const s = (e == null ? void 0 : e.renderBefore) ?? t; 531 | let r = s._$litPart$; 532 | if (r === void 0) { 533 | const o = (e == null ? void 0 : e.renderBefore) ?? null; 534 | s._$litPart$ = r = new I(t.insertBefore(M(), o), o, void 0, e ?? {}); 535 | } 536 | return r._$AI(i), r; 537 | }; 538 | var O = class extends E { 539 | constructor() { 540 | super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0; 541 | } 542 | createRenderRoot() { 543 | var e; 544 | const t = super.createRenderRoot(); 545 | return (e = this.renderOptions).renderBefore ?? (e.renderBefore = t.firstChild), t; 546 | } 547 | update(t) { 548 | const e = this.render(); 549 | this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = Rt(e, this.renderRoot, this.renderOptions); 550 | } 551 | connectedCallback() { 552 | var t; 553 | super.connectedCallback(), (t = this._$Do) == null || t.setConnected(true); 554 | } 555 | disconnectedCallback() { 556 | var t; 557 | super.disconnectedCallback(), (t = this._$Do) == null || t.setConnected(false); 558 | } 559 | render() { 560 | return b; 561 | } 562 | }; 563 | var ot; 564 | O._$litElement$ = true, O.finalized = true, (ot = globalThis.litElementHydrateSupport) == null || ot.call(globalThis, { LitElement: O }); 565 | var G = globalThis.litElementPolyfillSupport; 566 | G == null || G({ LitElement: O }); 567 | (globalThis.litElementVersions ?? (globalThis.litElementVersions = [])).push("4.1.1"); 568 | var It = (i) => (t, e) => { 569 | e !== void 0 ? e.addInitializer(() => { 570 | customElements.define(i, t); 571 | }) : customElements.define(i, t); 572 | }; 573 | var xt = { attribute: true, type: String, converter: L, reflect: false, hasChanged: K }; 574 | var Ht = (i = xt, t, e) => { 575 | const { kind: s, metadata: r } = e; 576 | let o = globalThis.litPropertyMetadata.get(r); 577 | if (o === void 0 && globalThis.litPropertyMetadata.set(r, o = /* @__PURE__ */ new Map()), o.set(e.name, i), s === "accessor") { 578 | const { name: n } = e; 579 | return { set(a) { 580 | const h = t.get.call(this); 581 | t.set.call(this, a), this.requestUpdate(n, h, i); 582 | }, init(a) { 583 | return a !== void 0 && this.P(n, void 0, i), a; 584 | } }; 585 | } 586 | if (s === "setter") { 587 | const { name: n } = e; 588 | return function(a) { 589 | const h = this[n]; 590 | t.call(this, a), this.requestUpdate(n, h, i); 591 | }; 592 | } 593 | throw Error("Unsupported decorator location: " + s); 594 | }; 595 | function _(i) { 596 | return (t, e) => typeof e == "object" ? Ht(i, t, e) : ((s, r, o) => { 597 | const n = r.hasOwnProperty(o); 598 | return r.constructor.createProperty(o, n ? { ...s, wrapped: true } : s), n ? Object.getOwnPropertyDescriptor(r, o) : void 0; 599 | })(i, t, e); 600 | } 601 | var Lt = (i) => i.strings === void 0; 602 | var kt = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }; 603 | var Dt = (i) => (...t) => ({ _$litDirective$: i, values: t }); 604 | var zt = class { 605 | constructor(t) { 606 | } 607 | get _$AU() { 608 | return this._$AM._$AU; 609 | } 610 | _$AT(t, e, s) { 611 | this._$Ct = t, this._$AM = e, this._$Ci = s; 612 | } 613 | _$AS(t, e) { 614 | return this.update(t, e); 615 | } 616 | update(t, e) { 617 | return this.render(...e); 618 | } 619 | }; 620 | var T = (i, t) => { 621 | var s; 622 | const e = i._$AN; 623 | if (e === void 0) return false; 624 | for (const r of e) (s = r._$AO) == null || s.call(r, t, false), T(r, t); 625 | return true; 626 | }; 627 | var D = (i) => { 628 | let t, e; 629 | do { 630 | if ((t = i._$AM) === void 0) break; 631 | e = t._$AN, e.delete(i), i = t; 632 | } while ((e == null ? void 0 : e.size) === 0); 633 | }; 634 | var pt = (i) => { 635 | for (let t; t = i._$AM; i = t) { 636 | let e = t._$AN; 637 | if (e === void 0) t._$AN = e = /* @__PURE__ */ new Set(); 638 | else if (e.has(i)) break; 639 | e.add(i), jt(t); 640 | } 641 | }; 642 | function Yt(i) { 643 | this._$AN !== void 0 ? (D(this), this._$AM = i, pt(this)) : this._$AM = i; 644 | } 645 | function Bt(i, t = false, e = 0) { 646 | const s = this._$AH, r = this._$AN; 647 | if (r !== void 0 && r.size !== 0) if (t) if (Array.isArray(s)) for (let o = e; o < s.length; o++) T(s[o], false), D(s[o]); 648 | else s != null && (T(s, false), D(s)); 649 | else T(this, i); 650 | } 651 | var jt = (i) => { 652 | i.type == kt.CHILD && (i._$AP ?? (i._$AP = Bt), i._$AQ ?? (i._$AQ = Yt)); 653 | }; 654 | var Gt = class extends zt { 655 | constructor() { 656 | super(...arguments), this._$AN = void 0; 657 | } 658 | _$AT(t, e, s) { 659 | super._$AT(t, e, s), pt(this), this.isConnected = t._$AU; 660 | } 661 | _$AO(t, e = true) { 662 | var s, r; 663 | t !== this.isConnected && (this.isConnected = t, t ? (s = this.reconnected) == null || s.call(this) : (r = this.disconnected) == null || r.call(this)), e && (T(this, t), D(this)); 664 | } 665 | setValue(t) { 666 | if (Lt(this._$Ct)) this._$Ct._$AI(t, this); 667 | else { 668 | const e = [...this._$Ct._$AH]; 669 | e[this._$Ci] = t, this._$Ct._$AI(e, this, 0); 670 | } 671 | } 672 | disconnected() { 673 | } 674 | reconnected() { 675 | } 676 | }; 677 | var Wt = () => new Vt(); 678 | var Vt = class { 679 | }; 680 | var W = /* @__PURE__ */ new WeakMap(); 681 | var qt = Dt(class extends Gt { 682 | render(i) { 683 | return l; 684 | } 685 | update(i, [t]) { 686 | var s; 687 | const e = t !== this.Y; 688 | return e && this.Y !== void 0 && this.rt(void 0), (e || this.lt !== this.ct) && (this.Y = t, this.ht = (s = i.options) == null ? void 0 : s.host, this.rt(this.ct = i.element)), l; 689 | } 690 | rt(i) { 691 | if (this.isConnected || (i = void 0), typeof this.Y == "function") { 692 | const t = this.ht ?? globalThis; 693 | let e = W.get(t); 694 | e === void 0 && (e = /* @__PURE__ */ new WeakMap(), W.set(t, e)), e.get(this.Y) !== void 0 && this.Y.call(this.ht, void 0), e.set(this.Y, i), i !== void 0 && this.Y.call(this.ht, i); 695 | } else this.Y.value = i; 696 | } 697 | get lt() { 698 | var i, t; 699 | return typeof this.Y == "function" ? (i = W.get(this.ht ?? globalThis)) == null ? void 0 : i.get(this.Y) : (t = this.Y) == null ? void 0 : t.value; 700 | } 701 | disconnected() { 702 | this.lt === this.ct && this.rt(void 0); 703 | } 704 | reconnected() { 705 | this.rt(this.ct); 706 | } 707 | }); 708 | var Kt = Object.defineProperty; 709 | var Ft = Object.getOwnPropertyDescriptor; 710 | var $ = (i, t, e, s) => { 711 | for (var r = s > 1 ? void 0 : s ? Ft(t, e) : t, o = i.length - 1, n; o >= 0; o--) 712 | (n = i[o]) && (r = (s ? n(t, e, r) : n(r)) || r); 713 | return s && r && Kt(t, e, r), r; 714 | }; 715 | function Jt(i) { 716 | return customElements.get(i) ? (t) => t : It(i); 717 | } 718 | var p = class extends O { 719 | constructor() { 720 | super(), this.GISCUS_SESSION_KEY = "giscus-session", this.GISCUS_DEFAULT_HOST = "https://giscus.app", this.ERROR_SUGGESTION = "Please consider reporting this error at https://github.com/giscus/giscus/issues/new.", this.__session = "", this._iframeRef = Wt(), this.messageEventHandler = this.handleMessageEvent.bind(this), this.hasLoaded = false, this.host = this.GISCUS_DEFAULT_HOST, this.strict = "0", this.reactionsEnabled = "1", this.emitMetadata = "0", this.inputPosition = "bottom", this.theme = "light", this.lang = "en", this.loading = "eager", this.setupSession(), window.addEventListener("message", this.messageEventHandler); 721 | } 722 | get iframeRef() { 723 | var i; 724 | return (i = this._iframeRef) == null ? void 0 : i.value; 725 | } 726 | get _host() { 727 | try { 728 | return new URL(this.host), this.host; 729 | } catch { 730 | return this.GISCUS_DEFAULT_HOST; 731 | } 732 | } 733 | disconnectedCallback() { 734 | super.disconnectedCallback(), window.removeEventListener("message", this.messageEventHandler); 735 | } 736 | _formatError(i) { 737 | return `[giscus] An error occurred. Error message: "${i}".`; 738 | } 739 | setupSession() { 740 | const i = location.href, t = new URL(i), e = localStorage.getItem(this.GISCUS_SESSION_KEY), s = t.searchParams.get("giscus") ?? ""; 741 | if (this.__session = "", s) { 742 | localStorage.setItem(this.GISCUS_SESSION_KEY, JSON.stringify(s)), this.__session = s, t.searchParams.delete("giscus"), t.hash = "", history.replaceState(void 0, document.title, t.toString()); 743 | return; 744 | } 745 | if (e) 746 | try { 747 | this.__session = JSON.parse(e); 748 | } catch (r) { 749 | localStorage.removeItem(this.GISCUS_SESSION_KEY), console.warn( 750 | `${this._formatError( 751 | r == null ? void 0 : r.message 752 | )} Session has been cleared.` 753 | ); 754 | } 755 | } 756 | signOut() { 757 | localStorage.removeItem(this.GISCUS_SESSION_KEY), this.__session = "", this.update(/* @__PURE__ */ new Map()); 758 | } 759 | handleMessageEvent(i) { 760 | if (i.origin !== this._host) return; 761 | const { data: t } = i; 762 | if (!(typeof t == "object" && t.giscus)) return; 763 | if (this.iframeRef && t.giscus.resizeHeight && (this.iframeRef.style.height = `${t.giscus.resizeHeight}px`), t.giscus.signOut) { 764 | console.info("[giscus] User has logged out. Session has been cleared."), this.signOut(); 765 | return; 766 | } 767 | if (!t.giscus.error) return; 768 | const e = t.giscus.error; 769 | if (e.includes("Bad credentials") || e.includes("Invalid state value") || e.includes("State has expired")) { 770 | if (localStorage.getItem(this.GISCUS_SESSION_KEY) !== null) { 771 | console.warn(`${this._formatError(e)} Session has been cleared.`), this.signOut(); 772 | return; 773 | } 774 | console.error( 775 | `${this._formatError(e)} No session is stored initially. ${this.ERROR_SUGGESTION}` 776 | ); 777 | } 778 | if (e.includes("Discussion not found")) { 779 | console.warn( 780 | `[giscus] ${e}. A new discussion will be created if a comment/reaction is submitted.` 781 | ); 782 | return; 783 | } 784 | console.error(`${this._formatError(e)} ${this.ERROR_SUGGESTION}`); 785 | } 786 | sendMessage(i) { 787 | var t; 788 | !((t = this.iframeRef) != null && t.contentWindow) || !this.hasLoaded || this.iframeRef.contentWindow.postMessage({ giscus: i }, this._host); 789 | } 790 | updateConfig() { 791 | const i = { 792 | setConfig: { 793 | repo: this.repo, 794 | repoId: this.repoId, 795 | category: this.category, 796 | categoryId: this.categoryId, 797 | term: this.getTerm(), 798 | number: +this.getNumber(), 799 | strict: this.strict === "1", 800 | reactionsEnabled: this.reactionsEnabled === "1", 801 | emitMetadata: this.emitMetadata === "1", 802 | inputPosition: this.inputPosition, 803 | theme: this.theme, 804 | lang: this.lang 805 | } 806 | }; 807 | this.sendMessage(i); 808 | } 809 | firstUpdated() { 810 | var i; 811 | (i = this.iframeRef) == null || i.addEventListener("load", () => { 812 | var t; 813 | (t = this.iframeRef) == null || t.classList.remove("loading"), this.hasLoaded = true, this.updateConfig(); 814 | }); 815 | } 816 | requestUpdate(i, t, e) { 817 | if (!this.hasUpdated || i === "host") { 818 | super.requestUpdate(i, t, e); 819 | return; 820 | } 821 | this.updateConfig(); 822 | } 823 | getMetaContent(i, t = false) { 824 | const e = t ? `meta[property='og:${i}'],` : "", s = document.querySelector( 825 | e + `meta[name='${i}']` 826 | ); 827 | return s ? s.content : ""; 828 | } 829 | _getCleanedUrl() { 830 | const i = new URL(location.href); 831 | return i.searchParams.delete("giscus"), i.hash = "", i; 832 | } 833 | getTerm() { 834 | switch (this.mapping) { 835 | case "url": 836 | return this._getCleanedUrl().toString(); 837 | case "title": 838 | return document.title; 839 | case "og:title": 840 | return this.getMetaContent("title", true); 841 | case "specific": 842 | return this.term ?? ""; 843 | case "number": 844 | return ""; 845 | case "pathname": 846 | default: 847 | return location.pathname.length < 2 ? "index" : location.pathname.substring(1).replace(/\.\w+$/, ""); 848 | } 849 | } 850 | getNumber() { 851 | return this.mapping === "number" ? this.term ?? "" : ""; 852 | } 853 | getIframeSrc() { 854 | const i = this._getCleanedUrl().toString(), t = `${i}${this.id ? "#" + this.id : ""}`, e = this.getMetaContent("description", true), s = this.getMetaContent("giscus:backlink") || i, r = { 855 | origin: t, 856 | session: this.__session, 857 | repo: this.repo, 858 | repoId: this.repoId ?? "", 859 | category: this.category ?? "", 860 | categoryId: this.categoryId ?? "", 861 | term: this.getTerm(), 862 | number: this.getNumber(), 863 | strict: this.strict, 864 | reactionsEnabled: this.reactionsEnabled, 865 | emitMetadata: this.emitMetadata, 866 | inputPosition: this.inputPosition, 867 | theme: this.theme, 868 | description: e, 869 | backLink: s 870 | }, o = this._host, n = this.lang ? `/${this.lang}` : "", a = new URLSearchParams(r); 871 | return `${o}${n}/widget?${a.toString()}`; 872 | } 873 | render() { 874 | return wt` 875 | 885 | `; 886 | } 887 | }; 888 | p.styles = $t` 889 | :host, 890 | iframe { 891 | width: 100%; 892 | border: none; 893 | min-height: 150px; 894 | color-scheme: light dark; 895 | } 896 | 897 | iframe.loading { 898 | opacity: 0; 899 | } 900 | `; 901 | $([ 902 | _({ reflect: true }) 903 | ], p.prototype, "host", 2); 904 | $([ 905 | _({ reflect: true }) 906 | ], p.prototype, "repo", 2); 907 | $([ 908 | _({ reflect: true }) 909 | ], p.prototype, "repoId", 2); 910 | $([ 911 | _({ reflect: true }) 912 | ], p.prototype, "category", 2); 913 | $([ 914 | _({ reflect: true }) 915 | ], p.prototype, "categoryId", 2); 916 | $([ 917 | _({ reflect: true }) 918 | ], p.prototype, "mapping", 2); 919 | $([ 920 | _({ reflect: true }) 921 | ], p.prototype, "term", 2); 922 | $([ 923 | _({ reflect: true }) 924 | ], p.prototype, "strict", 2); 925 | $([ 926 | _({ reflect: true }) 927 | ], p.prototype, "reactionsEnabled", 2); 928 | $([ 929 | _({ reflect: true }) 930 | ], p.prototype, "emitMetadata", 2); 931 | $([ 932 | _({ reflect: true }) 933 | ], p.prototype, "inputPosition", 2); 934 | $([ 935 | _({ reflect: true }) 936 | ], p.prototype, "theme", 2); 937 | $([ 938 | _({ reflect: true }) 939 | ], p.prototype, "lang", 2); 940 | $([ 941 | _({ reflect: true }) 942 | ], p.prototype, "loading", 2); 943 | p = $([ 944 | Jt("giscus-widget") 945 | ], p); 946 | export { 947 | p as GiscusWidget 948 | }; 949 | /*! Bundled license information: 950 | 951 | @giscus/vue/dist/giscus-Ci9LqPcC.js: 952 | (** 953 | * @license 954 | * Copyright 2019 Google LLC 955 | * SPDX-License-Identifier: BSD-3-Clause 956 | *) 957 | (** 958 | * @license 959 | * Copyright 2017 Google LLC 960 | * SPDX-License-Identifier: BSD-3-Clause 961 | *) 962 | (** 963 | * @license 964 | * Copyright 2020 Google LLC 965 | * SPDX-License-Identifier: BSD-3-Clause 966 | *) 967 | */ 968 | //# sourceMappingURL=giscus-Ci9LqPcC-CCB7DQEP.js.map 969 | --------------------------------------------------------------------------------