从校招新星到前端技术专家的成长之路
01 引言 我在2018年校招进入京东,主要负责广告投放系统的前端工作。在京东,这一路走来,我经历了多种角色转换,我从学生到职场人,从校招生到校招导师,从初级前端开发到前端技术专家,也见证了京东广告业务的蓬勃发展。回顾过去的成长历程,我心中充满了感慨,衷心感谢那些与我并肩作战、共同奋斗的优秀同事们,非常荣幸能有这个机会与大家进行交流,分享我作为业务研发的成长经验。这一路走来,我收获颇多,希望我的经历能为大家带来一些启示和帮助。02 个人成长经历 我的技术能力成长经历可以划分为三个阶段,起步探索、稳步成长、突破贡献。
起步探索:保持好奇、深入探索、打牢基础
对于刚接触或者即将接触工作的同学们来讲,下面的经验能够帮助你们更好的的适应职场生活。敢于提问对于刚毕业的我们来说,对职场生活、项目研发的过程都充满着好奇,也有着各种各样的疑问,比如刚入职的我需要学习哪些东西,做哪些事情?在京东的需求开发流程是什么?这个项目需要怎么去开发?这个需求评审怎么听不懂?等等各种问题。首先你要明确,这个是很正常的事情,毕竟刚走出校园,需要学习到的东西还有很多,但是也不需要过于担心,在京东对校招生,都会有校招导师,他们可以帮助你更好的适应职场生活。在这里很感谢我的Leader和校招导师,他们帮助我解决了很多困惑和问题,让我能更快的适应工作,比如以下几点:1.前期开发技能的储备:会在前期告知团队中主要使用了哪些技术栈,如Vue、Koa框架,能清晰的让我知道需要学习哪些东西,掌握哪些开发技能。2.项目开发前的准备:会告知我需要提前熟悉下项目的代码,在项目在本地启动后,会讲解下项目的整体架构以及技术栈、项目的业务和功能,帮助我更好的理解该项目。3.熟悉项目的开发流程:为了能让我更快的适应业务的开发节奏,会带我了解项目的开发过程,这个阶段导师基本会带着做一些需求,对于我们而言就尽快习惯这种节奏就好。还记得在初次参加需求评审的时候,很新奇,但在会议过程中,会发现好些东西听不太懂,这种其实都很正常。对于不会的名词就在会议之后在网上查询,积极学习了解。对于业务中的问题,主动找找产品经理、Leader、导师咨询,他们能帮你解答,并给你很多有效的建议,另外在分析需求内容的时候,推荐使用XMind这样的工具去整理自己的思路,会让你的思路更加清晰。
在刚进入职场时,保持好奇心,勇敢地提问,你的同事们都会很乐意为你解答,毕竟都是从这个阶段走过来的。打好基础,多做尝试养成良好的编码习惯是成为优秀开发者的重要一步。首先需要了解公司或者团队的编码习惯,在大学的时候其实我已经比较注重代码格式的养成了,毕竟良好的书写习惯看着也比较舒服,所以在进入公司之后,在这方面并没有花费我太大经历。然后对于研发而言,需要注重代码注释,因为它会能帮助你理清自己的思路,也能在你过了许久翻到这里时,有个大致印象,我在当时也会写很多代码注释,确实对比过写和不写注释这两种情况,写了注释的代码能让你过了很久之后还能“认领”出来,而没有写的可能过了许久之后,你都“怀疑”是不是自己写的。最后就是要做好Code Review,它能很好的提高你代码的质量,为你尽早的发现问题,我们在这个时候,要多让大家帮你review,同时也可以去review别人的代码,这是一个相互学习和交流的过程。掌握了基本的开发技能,就可以独立去承接需求,如果条件允许的话,可以多尝试一些项目,在这个阶段我尝试过的项目很多,大概有八个的样子,其中包含了投放系统、管理后台、官网等项目。每个项目带给我的成长其实都不大一样,不同的项目就意味着我们需要去接触不同的人,当然这是一个很好的学习机会,我们可以看到很多人做事以及思考问题的方式,也能能充分锻炼自己的沟通和协作能力。此外项目之间无论是项目架构还是技术栈都会存着着差别,尝试不同的项目可以扩展你的技术视野,了解各种技术的优缺点及其适用场景,在项目切换的过程也可以学习如何快速上手和适应新的技术栈,这对我们后续的职业发展都是非常有益的。总之在这个阶段,你需要敢于提问,积极的融入团队,另外要养成良好的编码习惯,通过不同的项目去提升你的沟通协作能力,技术能力,这些都对你的长期职业生涯发展极为重要,它们将为你的未来成长打下坚实的基础。
稳步成长-主动承担、攻坚克难、稳抓稳打
在技术成长的初期,我们往往从简单的任务开始,通过不断学习和实践逐步积累经验。随着知识和技能的丰富,我们开始承担更复杂的任务。主动承担,攻坚克难在技术能力得到显著提升之后,这使得我们能够承担更大的责任,这个时候我就开始主动承担一些从零启动的全新项目和重构的项目。相对来说,从零启动的项目难度会低一些,因为这一类项目不存在历史的负担,可以从头开始设计和实现。但是也需要我们全面考虑系统的架构、技术选型,确保项目从一开始就朝着正确的方向发展。我就主要介绍下我重构项目的经历,我接手的项目叫创意中心,当时的背景是需要在这个项目里承接一条新业务,按照当时的项目架构,整体的接入成本及维护成本都很高,另外在我们的业务流程里,用户的操作路径也比较长。为了解决第一个维护成本这个难题,我当时也是主动同产品、后端同学进行了多轮方案沟通,最终决定采用“配置化+组件化”的方案,这次升级改造的前端就是我自己,我把原来根据每一种广告样式定制的代码架构,升级为通过获取广告位系统配置的样式及样式下的元素,动态进行页面渲染。最终达到的效果是,大多数情况下,新增一个广告样式,只需要产品在广告位系统配置一下,整个创意中心都是不需要进行代码开发和上线的。
第二个难题便是用户操作路径过长,那为了解决这个事情,我也是进行了技术调研,这个是我在极短的时间内做的第一次调研,在调研完成之后,也是找到团队Leader、产品主动去沟通了这个事,他们都认可了我这个方案,最终我使用JS-SDK的方案,将广告创建创意的核心代码通过该方式赋能给相关投放产品线。最终达到的效果是,从最初的反复跳转造成操作中断,到后面的当前页面建创意,整体操作连续,用户的体验得以提升,在代码层面一套代码既应用在项目中,也赋能到各个产品线中。
在解决这些难题的过程中,并没有那么顺利,过程中出现了各种困难。但是,最终的结果还是令项目的每一个人满意,这大概就是“痛并快乐着”吧!在这次实践之后,我的项目架构能力、认知能力、问题解决能力都得到了很明显的提升。正如《老人与海》中的那句话:“一个人可以被毁灭,但不能被打败。”每一次挑战和困难,都让我更加坚定和成熟。在这个过程中,我深刻体会到了一句话的真谛:“没有比人更高的山,没有比脚更长的路。”每一个问题的解决,每一次困难的克服,都是一次自我超越和成长的机会。通过这些经历,我不仅提升了技术能力,也丰富了人生阅历,成为了一个更为坚韧和智慧的自己。
突破贡献:技术创新、业务突破、突破自我
在经历了稳步成长阶段之后,我们迎来了一个新的篇章—突破贡献阶段。这一阶段不仅仅是对技术的进一步精进,更是对自我认知的深刻提升。我们不再仅仅满足于完成任务,而是开始主动寻找创新点,推动项目的突破性进展。技术创新,业务突破技术创新对于研发也是至关重要的,对于个人而言,它不仅能提升专业技能和创新能力,也可以提升自身在团队和行业中的价值。同时,对于业务而言,创新可以带来更多可能性。我们都知道,视频相比较图片能传达更多的有效信息,更能吸引注意力,那在广告业务中也是同理的。这里我就主要介绍下在广告视频广告业务的经历,主要有两段经历,第一段经历是在短视频蓬勃发展的时期,为了赶上这种变化,我们积极主动地进行技术探索,致力于寻找一种能够帮助用户快速创建视频创意的方案。经过我们的不断尝试,最终确认通过使用“AE+Lottie”方案实现模版的制作和播放,使用“pupteer+ffmpge”生成最终的视频文件。这个方案在当时的电商广告行业也是一种创新,通过我们方案,能有效的为广告主提供了视频创意制作的途径。我很荣幸能参与到这个项目,同我们前端团队的架构师,以及后端、算法团队共同来完成这件事情。这次项目经历不仅提升了我的专业技能,也进一步开阔了我的视野,也为我后续的发展做了良好的铺垫。第二段经历起源于一个大胆的假设,如果不直接生成视频,利用Lottie是不是可以进行动态广告的播放。为了验证这个想法,主动和团队的客户端开发同学去做了这个尝试,实验的结果验证了猜想,我们用实践的案例和产品沟通这个事情,期望在业务上能尽快去落地。在这个业务落地过程中,作为前端的一号位,我将原本完整的模版输出过程升级为元素粒度的输出,并且提供了动效的编辑器,用来组合多种元素,最终生成具备宏替换规则的动态模版。我们将这种方案应用在京媒SDK开屏广告业务上,也是取得了一定的成果,这种动态化渲染的方案,相较于传统的客户端广告播放样式开发,在新增样式的场景下免去了客户端的开发和发版工作;至今已经上百家媒体接入,CTR也有着一个明显的提升。我自己也在这个过程中,不仅提升了自己的技术和创新能力,也沉淀了两篇技术专利。
我建议大家在日常的工作中,首先我们要关注行业动向,提升对技术的敏锐度,保持对新兴技术的好奇心和探索精神。正如《小王子》中的一句话:“所有的大人都曾经是小孩,虽然,只有少数人记得。”我们在技术领域也应保持那份童心,去探索未知的世界。然后我们也要善于观察,主动去发现业务可以提升的地方,发现之后也要敢于推动,因为我们只有不断挑战和突破,才能取得真正的进步。
无畏挑战,超越自我
虽然我的职位是前端研发工程师,但我并没有局限于此。我主动涉猎了许多其他领域,积极尝试各种新鲜事物。这不仅丰富了我的技能组合,也令我在职业发展中不断拓宽视野和提升自身价值。零售前端开发技术影响力建设21年一次巧合的机会,我的Leader给我说前端通道要建立一个分享体系,询问我是否有想法。我当时的第一反应就是立刻答应下来。因为在团队中,我一直负责团队的技术分享工作,因此我也想借此机会进行更多的尝试。在此,我要特别感谢Leader的信任和引荐。在接到这个任务之后,我先是制定了初版的分享体系,后面又与负责专业力的老师进行多次对接,敲定了课程的组织形式和合作方式。在首次课程直播的时候,也是有着各种突发状况,因为宣传上不到位,最终的数据也很不理想。结束之后,也是认真做了复盘,并且积极整改,数据上也是有了正向的反馈。作为精品课的核心组织者,从0到1建立精品课体系,为零售前端技术交流提供了平台,到目前沉淀了47期精品课,覆盖70%左右的前端研发。技术沙龙主持人在2023年的时候,“技术融合 前端无界” 京东 & 百度前端技术沙龙需要一位主持人,为了突破自我,我决定尝试主持技术沙龙。这一决定不仅是为了提升自己的沟通和组织能力,更是为了挑战自我,走出舒适区,积累更多宝贵的经验。该沙龙主要从跨端、低代码、大语言模型及端侧智能等技术领域,分享前端前沿技术与最佳实践,共同探讨前端各领域技术演进现状与未来展望。因为有了第一次主持技术沙龙的经验,我得到了更多的信任和认可,因此后面零售前端开发通道主办的AIGC技术沙龙也交给我来主持。
在这两次活动经历中,我收获颇丰。作为观众,我汲取了前沿的技术信息,学习了优秀的实践经验,并结识了一群杰出的专家和老师。作为主持人,我锻炼了自己的沟通能力和应变能力,同时也大大提升了自信心。这些宝贵的经验不仅丰富了我的专业知识,还增强了我的综合素质,为未来的发展打下了坚实的基础。作为研发人员,除了做好本职工作,我们还可以尝试很多新事物,不要给自己设限。其实,在我们身边有很多类似的机会,希望大家可以主动争取。比如,加入一些技术交流群,这里有许多优秀的技术实践分享,参与分享可以开拓你的眼界;群里还会有项目共建的机会,让你尝试更多的可能性;此外,还有一些组织活动的机会,可以锻炼你的组织和沟通能力。通过积极参与这些活动,你不仅能提升技术水平,还能积累宝贵的经验,全面发展个人能力。团队“校招小组”负责人在2021年,我有幸成为了一名校招导师。角色的转换让我既感到欣喜,又有些不知所措。然而,我迅速调整了状态,像我刚入职时的导师那样,积极为新成员解答各种问题。不同的是,由于我也是从校招身份转换过来的,所以我能够结合自己的成长经验,给出一些切实可行的建议和引导,帮助新成员避免走一些弯路。这不仅让我在帮助他人的过程中感到满足,也让我自身的能力得到了进一步提升。2023年下半年,我开始担任团队“校招小组”的负责人。这个小组是由历年校招生组成的虚拟团队,目前有着10位成员。随着职责的变化,我从只为一个校招生的成长负责,转变为为整个小组成员的成长负责。为了更好地履行这一职责,我进行了多种尝试,并在不断尝试中积累了宝贵的组织和管理经验。我主要组织成员进行业务开发问题、校招培养,AIGC等主题的探讨学习。并且目前也已经取得一些成果,通过AI Agent的方案沉淀校招成长中的问题及解决方案,能够更好的帮助校招生解决遇到的一些问题。另外和团队成员利用大模型进行团队官网重构的实践,通过即时AI生成设计稿,利用gpt-4o生成代码,真实的实践能让团队成员更好的理解大模型的上下限。
03 总结及未来展望 总的来说,每个人的成长经历都是独一无二的,但从他人的经验中,我们也能找到一定的参考价值。对于当前的你来说,最重要的是专注于把当前阶段的事情做好,认真解决每一个你遇到的或者业务遇到的问题。每当你成功突破一个问题,你会发现自己的认知能力、理解能力以及解决问题的具体能力都会有显著的提升。此外,要不断地接触新事物,勇敢地尝试。虽然在这个过程中你可能会遇到一些失败,但这些经历都是宝贵的财富。每一次尝试,无论成功还是失败,都会为你积累宝贵的经验和教训。整个探索的过程不仅能丰富你的知识和技能,还能为你的未来发展奠定坚实的基础。这些经历将成为你未来发展的重要宝藏,帮助你在职业生涯中不断进步和成长。所以,不要害怕失败,勇敢地迈出每一步,你会发现自己的潜力远超预期。AIGC的快速发展就是一种机遇,无论从代码生成,图视频制作上都给了我们太多惊喜,而我们完全可以将自己的想象力和AIGC结合起来,去创造出更多的可能。对于前端而言,AIGC正在极大的改变我们前端的开发形式,大模型能帮助我们生成设计图,并且通过设计图能直接给出代码,我们需要尽快意识到技术进步带来的紧迫感,并采取积极的措施来适应不断变化的行业环境。作为研发,首先我们应该积极学习和尝试大模型的各种能力,无论是代码辅助还是自动化生成用例,都能极大的提高我们的开发效率;另外也要试着将大模型和自己的业务结合起来,比如通过自然对话的交互形式,更高效的支持用户的需求。最后向大家发出诚挚的邀请,我所在的团队主要负责京东广告核心业务的前端研发工作,现WEB前端工程师岗位正在火热招聘中,base北京,欢迎加入我们,联系方式 jad@jd.com
- END -
相关推荐
第一批使用多模态的程序员,已经碾压同事了!
Git 不要只会 pull 和 push,试试这 5 条提高效率的命令!
两大AI独角兽“卖身”被调查!
硅谷大厂被曝违规“偷”数据:苹果Anthropic用YouTube视频训练AI
AI大神卡帕西官宣创业!办新型AI原生学校,要教80亿人学AI
特朗普盟友起草AI行政命令,启动“曼哈顿计划”
JetBrains再出手,这波秀翻了。。
阿里面试场景题,彻底爆了!
Kaggle自动写作评估 2.0 Top方案汇总。
不管你信不信,面试官让我使用 JS 计算 LocalStorage 的容量!
混沌工程&FMEA——可用性隐患分析治理最佳拍档
李飞飞最终还是选择创业了
字符串的 intern 机制是怎么一回事?
开源日历 Cal.com 项目:自定义你的时间管理(Github项目分享)
如何用 JavaScript 模拟点击事件,简单实现 x, y 坐标点击?
SpringBoot + RabbitMQ:轻松实现邮件大批量异步推送!
CCL2024·第二十三届中国计算语言大会讲习班公布
会议开幕倒计时三天!CCAC 2024 主要报告介绍
大模型集体失智!9.11和9.9哪个大,几乎全翻车了
[开源]一款MES系统基础上进行二次开发的ERP系统,高效智能的运营