Dotnet9

联系请关注微信公众号:Dotnet9

文章

当程序员开始兼任产品

长空X 2022-06-23 22:14:48 职场生活 8
产品负责人在内部群发消息说招人

起因

5月31日,我们公司的产品负责人在内部群发消息说招人,经过一翻友好的磋商后达成一致,我开始兼任一部分产品,转岗了又没完全转。记录一篇感想给迷茫的朋友也当个日志。嫌长的可以直接拉到最后看重点~

回顾职业发展

0.盲目摸索

大学的头一年做了许多非技术的事,然后打算选择一门高级编程语言做为主力发展,在JAVA和C#之间调研许久后选择了C#。选择C#的原因仅仅是因为他有比较好的中文支持(微软文档、VS、智能感知也是中文),而且C#相比JAVA,在代码上更能描述要做的事,而java给我的感觉就是代码量不小(比如java8中想把日期数据转成字符串,熟悉的朋友都知道多啰嗦)。

无论怎样,在当时外部环境看选择JAVA都是更好的选择,但我有种强烈的第6感让我有点排斥JAVA,最后选择更舒服的C#。我相信只有做一事让自己舒服时才能持续付出投入下去

随之而来就是资源问题--学校里没有C#相关的课程,上课全是JAVA!老师会c#的也只有寥寥几人。现在回顾,我也不知道怎么一个人坚持下来的,长达半年的学习让我连一个小程序也做不出来..但这段时间的盲目摸索,探索了一些非编程语法的东西(比如对面向对象的认知),后来网上报名了一个喜科堂的在线培训才开始真正入门。

1. 大学项目组

喜科堂的C#培训课前面几乎都是打基础,除了语法还包括一些工程经验(比如要做一个事,如何分析,从哪里下手分析思考),到毕业前2年时,已经能独立做出一个学员管理系统。恰好此时从朋友处打听到学校有个项目组可以不用上课,这对我来说是一个接触真正开发的机会。。但他们开发已经满了,测试缺人,在恶补了一个暑假的测试知识和selenium后,我面试通过进入测试组

测试的工作相对清闲,但对我来说是个难得从另一个角度看待项目的机会,而且还有时间让我继续打磨自己。比较骄傲的事有一个:当时在测试时发现一个BUG,我在浏览器上排查后发现是正则表达式写错,然后我把正确的写好发给开发,让她直接丢到代码中。老油条可能知道这是测试开发的事,既懂测试也懂开发。

在此期间还去了一次VS20周年聚会,当时有个老哥公司招人,我去面试没过,原因是因为我不会web。回来之后开始从C/S向B/S转,2个月内开了一个个人博客,包括前台和管理后台还丢到公有云上,自己申请域名并备案,使用https和CDN和一些其它技术。 这个时候已经从开发到部署这一套开始流程打通了。

这个阶段我的关键字是:不要把自己局限在开发。因为种种经历我在学校时没有真正参与过项目开发,意外的接触到各种非技术的东西了。

2. 在新蛋中国实习

后来无心插柳式的来到新蛋开始实习,此时正好有2个大事件: .NET Core 2.0发布和微服务。 我在那台奔4的CPU的实习机上面,被卡到用记事本+命令行写代码.....也因为是新框架,我们实习小组是我自己搭建的简单三层架构,而且还把基本的.NET Core Web框架搞懂(中间件、http管道)。然后去到MKPL组,当时组里正好在做.NET Core方面的探索,我在里面就做Core的SDK和项目框架、UT研究、部署等杂活。

这个阶段我的关键字是:开源

后来离开新蛋重新面试时面试官问我.NET Framework和.NET Core最大的区别是什么。我的回答就是:Framework时代低层库是黑盒子,而Core时代是思想从封闭转向开放。以前的开发资源(比较SDK库)都是微软提供,非微软的要思考许久是否能够采纳。而Core时代后更相信的是社区, 并且也积极参与进去。

说回在新蛋的经历,另一个就是夯实基础能力,情况是这样的:

  1. 新蛋是个20年以上的公司,我们组的项目都有10年了...这其中不知道有多少坑。
  2. MKPL负责的卖家平台,要对接其它组(比如订单、退换货),对卖家来说其它组的问题也会在我们负责的项目中爆发。
  3. 新蛋整体氛围是:需要成员主动去推动项目进程而不是等领导安排。比如让我负责这个项目的某个接口,那就需要自己去和其它组协商具体字段、交互逻辑、测试逻辑梳理、写开发文档...总之就是我是这个接口的直接负责人,而不是我的PM。

在这期间,不仅提高了自己的基本技术知识,还有更多的是职业基础素质的沉淀。比如我从实习时的BUG排名前几到后面跌落到7、8位样子,而开发工作却是比实习多多了。

这个阶段我的关键字是:职业基础素质。新蛋麻雀虽小但五脏俱全,大的有工作管理流程到互联网架构,小的就是员工基本素质,相比其它公司会全面许多。这让我后面去到比它小的公司时,显得游刃有余。

3. 短命的2份工作

19年离开新蛋,原因是不到20个人的组里摆了2个架构师级别的人,职业发展空间太小了,连续2家公司都只呆了3、4个月。

第1个公司:产品出发点很好,老板也有钱。但老板不懂软件!导致每次都到项目末期了又开始大改... 他不知道这种改动是什么级别的,最后埋怨软件部门1年多没有任何产出..结果就是我离职后2个月内,之前的老人全部走光,和软件相关的人基本都走了。。我提离职的当天才知道我的部门经理、我们的产品经理也要离职。。????

第2个公司:是做政府项目的,基本是把一套代码改改卖给多个地区的部门...只讲究团队建设,只讲究客户要用项目的时候,能正常工作就行。。至于工作几天就宕机..似乎没人会关心。。我呆了一段时间后感觉这里更多是需要老油条而不是我这样的人..

这个阶段我的关键字是:被新蛋好氛围保护的太好了。第1个公司我做的主要是协调工作??团队内部的协调、部门之间的协调。2、3个月代码没写多少,人际的事到是不少.....第2个公司完全是落到X坑里了。但收获也不是没有:让我在技术以外,工作交际上面获得了非常多的经验。

4. 高级打杂

然后就来到了现在这家公司。长话短说就是我负责了:新技术推广、项目框架搭建、公共代码库维护、内部服务器维护、和产品部沟通、偶尔协调下同事之间的工作.....

技术上几乎是:35%的C#代码,55%的js代码,10%的shell脚本或其它配置,而在这家公司之前,我是打死不写JS的人。。 在做部门的CI/CD的时候,我们的镜像名和tag要符合管理要求..我用C#写了一个小工具放在CI/CD管道里了。而业界搞CI/CD几乎只有shell脚本和yml配置。

转折点也就是在这里..我们的测试只懂点点点,而开发只管开发..产品不懂技术,我在这里经常当个中转点。 在2、3阶段中的经理让我能知道测试脑子里想的什么。。产品脑子里想的什么。。然后把这些东西转给开发或转回去。 公司内部人员的关系是非常好的,但不同职业的人常年养成的思维习惯是不一样的,当工作忙起来的时候往往会忘记转成对方能听懂的话。毕竟现在我们都是在做一套产品,产品的收入高了我们才能更好的存活(福利和奖金),也是这个情况让我能顺利去兼产品,而其它人是转岗。

这个阶段我的关键字是:成功不是偶然的。其实我想兼产品是想给自己留个后路,而能谈成困难的兼任(兼任在公司中的管理成本比较高,公司有800多号人了),也是前面的积累。

5. 总结

写文章的时候回顾了自己的发展经历,主要是没有浪费精力。可能做了效率低的事(比如大学时选C#,半年都没什么成果),而经历的积淀在另一个时间点却发挥了作用。阴差阳错的经历让我懂点网络、懂点软件开发和软件工程、懂点软件项目从出发到结束,各方面都有点积累,然后主力--后端开发也没有落下。

未来

据说35岁时间点是把大刀。。我也迷茫,但不焦虑。。不行了还可以转岗去产品。 现在的医药软件行业也是比较吃行业经验的(这也是产品部许久没有招到人需要内部招聘),未来或许还有其它的机会。这样一步步走下去,虽然效率不如其它人,但总不至于开倒车或崩盘。另一方面,也可以借助产品经验来突破目前的中级开发瓶颈,向我心中的高级前行。

给你的建议

每个人的诉求和情况不一样,可以多方面的去投入,不要死磕一点,除了搞IT,我周末还在跑团,这又是另一个领域的东西了。

  1. 如果目前的工作或现状不能让你满意。不要急着跳,沉下来想想自己到底想要什么,然后做好未来3-5年的规划并且不要轻易放弃。那怕这个规划让你失败了,但失败也是经验不是?日子还长着呢。
  2. 如果目前的工作或现状还可以。不要觉得太安稳,没有绝对的安稳。同样可以为自己的规划做一些准备或沉淀,以备不测。
  3. 做对而耗时的事。

针对3: 比如开源投入这个事。。许多人开始会坚持,后面慢慢觉得没有收益就放弃。但如果你喜欢技术并愿意为之分享,在分享的那一刻你会感觉到开心,这已经让你立于不败之地了。如果能有额外收获,那叫充话费送的。 这样即便没有外部投入,你自己也会有动力持续投入。喜欢它,为它付出。否则你就会成为生活的奴隶

留言

回复