腾讯实习一年 | 万工日志

昨天我从腾讯实习离职,总体都觉得满意,没什么遗憾。一定要说的话,唯一的小遗憾就是没待满一年,因为在腾讯待上至少一年,是我当初来这家公司的时候给自己定的小目标。不过总的来说也差不多了。


一年,对于传统行业来说,可能还挺短的。不过,我实习入职时结识的同事,在我离开的时候基本上都不在了。甚至,在我之后加入公司的同事,也都走的七七八八了。从这个角度来说,一年也是个不短的时间,一方面来说,这是我实习待过最久的一家公司,另外一方面,在互联网公司里,一年也能发生许多故事了。

这让我想起了小时候我的科幻启蒙作品之一《冰霜与烈火》,在这个故事里,人只有 7 天寿命,在短短的几天时间里,有些人快速地长大,有些人快速地衰老。在腾讯,对于很多项目来说,一年时间也足以见证兴衰。

2022年秋天,我来中科院计算所这边读博,因为第一年还要上课,导师除了项目其他不怎么管,加上那时候还有疫情三天两头就被封在宿舍,索性开始投简历找实习。记得第一天我去位于上地的腾讯北京总部办入职,我被那座办公楼的富丽堂皇震撼到了——这也太高端、太宽敞了吧。后来待的时间长了,我不会再用“富丽堂皇”来形容这座楼,但我仍然会觉得这可能是天花板级别的办公环境。尤其是 7 楼楼顶的花园,各种奇花异草,中午吃完饭后上去遛个弯,晒晒太阳,特别舒服。可惜,去了不久,后来降本增效,花园给关了。

公司的规模非常大,从人数上来讲,将近 10 万人,这种规模是我以前在实习的中小公司没有感受过的。这是一种怎样的感觉呢,比如说,对于我生活在北京来说,我只能大概摸清我方圆 5km 内是一个怎样的城市格局,有什么饭馆、有什么小区,等等。但在我熟悉的范围之外,还有太多太多的街道、区域,虽然确实是这座大城市的一部分,但我对这些区域的了解,可能仅仅局限于知道名字,甚至我都无法明确地感知到,到底有多少区域我都闻所未闻。

腾讯这家公司分为很多个事业群,我会觉得,不同的事业群其实就是单独的子公司,我和其他子公司之间甚至可以说没有任何关系。与其说我在腾讯这家公司工作,不如说的更具体一点,比如,我在 PCG 工作。只是跟旁人解释起来不清楚,所以一般就说,我在腾讯工作。不过,大公司都是这样,没什么稀奇的,只不过对于刚入职的我来说是特别新鲜的体验。

甚至,“在 PCG 工作”都是一个模糊的说法。实际上,我能真正感知到的“工作环境”,大概就是到“部门”这个级别,也就是我上级的上级的上级(+3)所管辖的组织。比这个范围更大的话,对于日常工作来说,我就完全接触不到了。就像生活在一座很大的城市一样,和我距离过远的街道,和我很难产生关联。

不过从另外一个角度来说,非常有趣的一点就是,我能充分感受到这家公司的规模之大。比如内网的论坛,我可以看到全公司的同事在讨论什么,我也发过几个高赞的回复;公司有许多面向全公司的培训和活动,比如急救员培训,或是公益活动,我可以以“公司员工”这个身份去参加,有点像是大学里,除了我所处的院系、班级之外,我还可以用“大一新生”的身份,去参加社团、竞赛这样的活动。我想,这只有在规模比较大的公司里,当员工足够多,有一定的文化土壤,才能产生这样的规模效应。

在腾讯实习期间,我成长了许多,我觉得这是一件很幸运的事情,我很清楚不是所有的环境都可以让人成长。

在来到腾讯之前,虽然我也写了几年代码,但我觉得心里始终缺乏一种底气,也就是我不确定我是否有足够“专业”的写代码的能力,到底怎样的代码是好的代码。来到腾讯以后,和对代码质量有追求的同事一起写代码,让他们帮我做 code review,以及我给别人做 code review,去理解别人对系统的设计、对 API 的设计,去和他们探讨软件工程中的种种问题,比如可维护性、持续集成和持续部署、依赖管理等等,这些经历都让我觉得,我一直在做着软件工程师应该做的事情。

当然,我觉得我也见过质量有点差的代码,体验不佳的基础设施,不够职业化的同事,不过我觉得这都没什么,我有时候愿意去想一想,既然这些现象是存在的,那么造成它们的原因是什么,其中有哪些是我能改变的,哪些是我无法改变的,那些是可以让我警醒的。如果没有强烈的对比的话,我也感受不出来什么是好的,什么是不好的。腾讯带给了我许多强烈的对比,就像是一张高对比度的照片,很醒目,很生动。内部的多样性相当丰富是腾讯的一个特点,我猜测,不一定每家大公司都是如此。

腾讯有个文化,至少是在我所工作的小环境里有个文化,就是鼓励大家去学习、成长。在腾讯实习期间,我最漫长也最有收获的一次学习,是去考一个叫 readability 的 go 语言认证,它要求你对编码规范、代码设计有相对深入的理解。认证的通过率很低,需要你完成一次 2 小时的 code review,我应该是考了三次才通过,也就意味着至少用了三个月的时间,虽然每天不会占用什么时间,但当时 leader 鼓励我们主动花时间去准备这个事情,甚至可以把这个事情放在 OKR 里。当然,不是所有同事都喜欢这样的编码规范和这样的认证方式,所以我会说我觉得很幸运,因为我在这个过程中学到了太多。

还有一大方面的收获,就是学习到了一些大公司里做事的方式,这部分内容讲起来比较无聊,所以我长话短说。以前在小公司实习或者在学校实验室里干活儿,要求相对简单,基本上就是产生需求——写代码实现需求——交付,这样的一条流程。在腾讯我主要经历过三个项目,每个项目的业务模型都更加复杂,也相当不一样,例如,有些项目主要服务研发同事,有些主要服务业务部门,需求和技术实现对整个项目来说,所占的比例要小上不少,有很多非技术的因素需要考虑,不过绝大多数情况在,我都并不需要去考虑,或者说因为大公司里分工的细致程度,以至于我即便想要去考虑,也没有太多机会。

腾讯的食堂真的不错,而且我很觉得幸运的是,过完年我一直在上地总部。我也去过腾讯在北京的其他几个工区,说真的我感觉还挺后怕的。总部大楼我看过资料,说是北欧设计师设计的,我在其中上班的时候能感觉出来,比一般的写字楼要舒服。虽然,当自己坐在工位上并沉浸到工作里时,可能也感觉不到环境的好坏了。

我参加过跑步协会、飞盘协会的活动,参加过羽毛球球、乒乓球的比赛,这方面的同事认识了不少,我之前一度还想成立一个爬楼梯上楼协会,流程有点麻烦,作罢。

在腾讯工作有个现象就是螺丝钉化,像是卓别林的《摩登时代》里那样,每个人只需要拧好自己的螺丝就可以了。我并不想说这是一个缺点,我只觉得这是一个特征。在我认识的人里,有人就喜欢这样的工作模式,只不过我因为体验过在更小规模的团队里工作的方式,所以我知道躬身入局是能更让我充满热情的工作方式。还有一个客观原因,不论你身处哪个团队,我都观察到一个现象,就是能拿主意的人(往往意味着资历更深的人)的数量总是处于溢出的状态。需要被定夺的主意都被拿干净了,余下的人的工作自然容易螺丝钉化。

能来到腾讯实习我会觉得是一种时代的幸运,那次找工作,除了腾讯以外,还有其他几家大公司的 实习offer,但最后图腾讯名气最大,选了腾讯,其实那时我都没有很确切地知道入职以后要做什么事情,只是觉得先上车再说。听我旁边的同事说,他入职的2020年正是公司扩张最为快速的阶段,茶水间都被改造成工位了,每次谈起股票价格达到 700 港币的那天的气氛,他眼里都充满着光。现在回想起来,那是互联网行业最后的辉煌,腾讯股票的走势有点像把现在 A 股大盘倒过来看。那时大家对未来都很有信心,没人认为这就是顶点。

降本增效,我们团队算是存活了很久的一批了。其实对这个事情,我最大的遗憾应该就是两个事,一是花园天台被关了,二是免费晚餐限额了,以前偶尔能免费吃个 70 元豪华晚餐。这其实不算什么惊天大福利,但能感觉的到,在互联网疯狂扩张期间,公司无所谓在员工身上花多少钱,作为员工,这是一件多么幸福的事。

在腾讯实习的一年,像是重新读了个研。我学到了很多硬知识和软知识,增长了很多见识,思考了自己到底适合怎样的工作,适合怎样的职业发展路径,吃了不少便宜的饭,认识了离开公司后也能交往的朋友,我想,这对我来说就像是研究生一样。

最重要的是,这段经历是我弥足珍贵的人生财富。这段经历让我觉得满足,毕竟这家公司在我心目中是中国最好的互联网公司之一,在其中不管经历了什么,我都会觉得是宝贵的收获。将来,我不论是做什么工作,做什么事情,我都会觉得在腾讯工作的这段经历,是我能够汲取养分的回忆。

最后,只是一家公司而已。有些人很厉害,或是很幸运,能在这样一家公司工作很多年,或是走上了管理岗位,或是成为了技术大佬。也许我缺乏一些必备的能力,也许我没赶上最好的时代,这都没有关系。我觉得我在这段工作经历里收获了很多,做了我该做的事,我觉得这就很好了。摸着良心说,我不一定给公司创造了什么价值,但我也没有留下太多让后人头大的技术债务。我写的代码、文档,我始终按照这样一个标准去要求自己:如果我是那个要接手这份代码和文档的人,我会愿不愿意,而我希望我是愿意的。当然,不论是在大公司还是小公司里,也许绝大多数的代码,甚至都没有一个被接手的机会。有些代码也许就这样不再运行,或是被归档,或是静静地躺在某个没什么访问量的服务里。

总之,这就是我对腾讯这家公司的一些印象,总的来说我很喜欢这家公司,感谢我遇到的每一位同事和 leader。作为一个喜欢瞎琢磨的人,我有时候喜欢琢磨人与工作之间,人与公司之间究竟是一种怎样的关系,理性的思考归理性的思考,至少在感受上,对于腾讯这家公司来说,我的感受还不错。


2023.9.9

打开链接下载源码: https://pan.quark.cn/s/05da658a2377 在信息技术领域中,输入法作为操作系统的一个核心构成部分,赋予了用户利用键盘输入多语种文字的能力。"ime-日语输入法安装必须文件"这一资源是一套为日语输入法部署而设计、包含全部必要元素的集成包,对于那些需要在个人计算机上执行日语文字输入的操作者而言具有不可替代的作用。接下来将深入剖析其中所包含的核心概念。 IME(Input Method Editor,输入法编辑器)是操作系统内的一种软件支持服务,其功能在于为非拉丁字符环境提供文字输入方案,例如中文、日文、韩文等文字系统。在日本地区,IME通常被用来将罗马字(罗马拼音)形式的输入转换为平假名、片假名乃至汉字。此压缩文件内含的日语IME文件夹即为执行这一转换功能的关键要素。 kbdjpn.dll被视为一个关键的系统性文件,其意指“Japanese Keyboard Layout”(日语键盘布局)。该动态链接库文件负责设定日语键盘的排列方式及快捷操作组合,使用户能够借助常规的QWERTY键盘输入日语文字。倘若缺少这一文件,即便已经安装了日语输入法,依然无法正常显示及输入日语字符。 另外,imjp81k.dll同样是一个重要的系统性构成,它属于日语IME的范畴,全称为“Input Method Japanese for Windows 8.1 and later, Katakana mode”(适用于Windows 8.1及更新版本的日语输入法,片假名模式)。该文件支持日语的片假名输入,是处理日语输入的核心组成部分。在安装或升级日语输入法的过程中,保证imjp81k.dll的准确性与完整性显得尤为关键。 压缩包所含的"Window...
内容概要:本文研究了基于DPWMA调制与正负序分离的ANPC三电平并网逆变器前馈控制策略,旨在解决传统三电平逆变器在谐波抑制、电网不平衡适应性及动态响应方面的技术瓶颈。通过构建融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相控制与电网电压前馈的一体化控制体系,全面优化逆变器的输出波形质量、相位同步精度与抗扰能力。文章深入分析了ANPC三电平拓扑的结构优势,如开关损耗均衡、中点电位可控性强和电压利用率高等特点,并设计了包含信号采集、核心控制与调制驱动三层架构的完整控制系统。通过Simulink仿真平台对稳态运行、电网不平衡及动态扰动等多种工况进行验证,结果表明该策略显著降低了总谐波畸变率,提升了锁相精度与系统动态稳定性,有效增强了逆变器在复杂电网环境下的适应能力和运行可靠性。; 适合人群:具备电力电子、自动控制及新能源并网相关基础知识,从事新能源发电、微电网、电力系统仿真等领域的科研人员与工程技术人员,特别适合研究生及以上层次的研究者。; 使用场景及目标:①用于提升大功率并网逆变器在电网电压不平衡、谐波干扰和动态扰动等复杂工况下的运行性能;②为高电能质量要求的应用场景提供先进控制解决方案;③支持科研仿真、论文复现与实际工程项目中的高性能并网控制系统设计与优化。; 阅读建议:建议结合提供的Simulink仿真模型进行实践操作,重点理解DPWMA调制机制、正负序分离锁相算法与电网电压前馈控制之间的协同作用,按照文档结构系统学习,并与传统控制策略进行对比分析,以深入掌握改进策略的技术优势与实现细节。
代码下载链接: https://pan.quark.cn/s/d9794888cbc0 ### G代码经典解释程序知识点详解 #### 一、引言 随着数控技术的持续进步,尤其是开放式数控系统的广泛应用,软件层面的设计在数控领域占据了核心地位。G代码作为数控机床编程的基础语言,在自动化生产流程中发挥着不可或缺的作用。本文的核心内容是关于一个基于Linux平台、采用C语言开发的G代码解释程序的设计思路及其具体实现。 #### 二、G代码解释器概述 **1. 设计背景** - 当前数控技术发展的主要方向是开放式数控系统,这类系统具备出色的可扩展能力、良好的移植性、高度的互换性以及优异的互操作性等优势。 - 计算机硬件技术的快速发展使得在PC平台上构建数控系统成为可能,进而推动了全软件式数控系统的普及。 **2. G代码解释器的重要性** - G代码解释器在全软件式数控系统中是至关重要的组成部分,其主要职责是将G代码转化为数控系统能够识别的数据格式。 - 为了提升数控系统的开放程度,G代码解释器的设计必须兼顾开放性和灵活性。 #### 三、G代码解释器设计与实现 **1. 总体结构设计** - G代码解释器主要由两个核心部分构成:G代码关键字函数表(GKFT)和G代码分组(GG)。 - GKFT用于解析G代码中的关键字,它是解释器的核心骨架;而GG则是语法检查的基础框架。 **2. G代码关键字函数表(GKFT)** - GKFT是一种专门用于存储G代码关键字及其关联处理函数的数据结构。 - 解释器通过查询GKFT,能够根据特定的G代码关键字调用相应的处理函数,从而完成对G代码的有效解析。 - 此种设计方法不仅简化了解释器的构建过程,同时也增强了其可扩展性,因为新增功能...
已经博主授权,源码转载自 https://pan.quark.cn/s/458849d2eac8 Microblaze代表由Xilinx公司研发的一款软核处理器,其核心特性在于使用户能够针对FPGA(Field Programmable Gate Array)平台进行嵌入式系统的个性化构建。此“Xinlin中Microblaze的培训教程”致力于辅助学习人员深入理解和熟练掌握Microblaze在Xilinx开发环境中的实际应用。 一、Microblaze基础 Microblaze作为一款可配置的32位RISC处理器,具备高度适应性,允许在设计中根据具体需求对性能、功耗及面积进行灵活调整。Microblaze支持多种指令集架构(ISA),涵盖Xtensa-like和Classic两种模式,并且与包括UART、SPI、I2C在内的多种外设接口标准保持兼容。 二、Xilinx ISE与Vivado工具 Xilinx ISE(Integrated Software Environment)是一个用于FPGA系统设计、实现和调试的集成开发平台,而Vivado则是一款功能更为先进且全面的工具套件。在本次教程中,学员将学会如何在上述工具中配置和执行Microblaze处理器,以及如何开发相关的硬件描述语言(HDL)代码。 三、Microblaze硬件设计 在Xinlin提供的教程里,学员将学习如何在Xilinx FPGA中部署Microblaze处理器。这涉及到选择合适的处理器配置参数,如时钟频率、缓存容量和外设接口设置。此外,学员还将接触到创建和连接内存模块、中断控制器以及其他必需硬件组件的方法。 四、软件开发 Microblaze的软件开发通常涉及嵌入式编程,采用C或C++语言来...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值