不同公司对个人技术的影响 2024.05.22
来自: 向 阳 🌞(凡所有相皆是虚妄)
2024.5.22
分享人:https://www.douban.com/people/270523254/
虽然这个是很早的帖子了,不过看到了还蛮有感触的,分享一下我自己的 我在一家做芯片仪器的公司做公司内部人力方面的系统两年,公司是大公司,但做IT的人并不多,相当于制造业的后勤维护,本科偏硬件所以刚进去其实一点项目经验都没有。公司的做法是先开系统权限,所有内部的系统(应该大大小小有几百个)测试服务器上的版本都可以查看,但是要很久才会开始排任务。刚开始排小任务,系统的 owner 会验收检查,一般没有bug就通过,没有检查命名,类,逻辑设计之类的是否合理(这点是我后来从接手的项目历史版本里看出来的)。后来我开始接手做项目owner,这时候的流程基本上是用户提需求,我排任务给同事做或者自己做,因为人手不够,基本没有专门的测试。我负责的十几个系统基本都存在大大小小的bug,平时常有需要数据维护,用户需求没有规范的历史版本记录,常常找不到一个功能或者逻辑的开发背景,但是已经在使用中的系统如果用户没有提出急需处理的bug,就不会被安排到工作流程中,除非owner手头没有任务才可能主动规划。负责开发的同事对需求和历史不熟悉,常常做一个功能的时候改到其他功能(当然这也是我们代码里面本身耦合太多的原因)。 没有技术分享会,不会尝试新技术,所以系统基本按照十几年前的开发模式进行,不使用框架,技术过时,因为这个原因,从这个公司学到的东西不足以让我找到下一份.net的开发工作。除非有新需求不会迭代版本,代码库很多命名规范的问题,重复代码非常多,owner有权限决定系统变更,但没有权限发布代码,每一次发布都需要找上级,新需求/变更要排上日程必须经过两层上级的同意,开发的同事不会主动修补关联的bug。我不忙的时候会回溯历史版本补充更新一些技术文档和需求文档,修补小范围的bug,等待下一次大改动再一起发布。 我之前因为身体原因离职,但没有凭借上一份工作经历而找到新的开发工作,面试很多公司都认为我在上一家公司的经历没有学到什么,没法直接应用到新的工作中,基本框架都不会使用,状态跟新人差不多。暂时入职教培,目前刚刚找到一份小公司的软件实施的工作,入职后观察一段时间再来回复。
2022.5.28更新
https://www.douban.com/people/159388460/
美团某部门某组 仔细回顾了下我司的日常工作流程,其实和国内其他大厂大差不差,所以我尽量就多点细节来盘点(其实我才在现司工作了一个多月,装什么大尾巴狼!)。 首先介绍下组内基本情况:我们是某部门的某后端研发组,老大是本组leader,本组根据业务模块又划分成三个小组,每个小组有一个组长,起着导师和对内领导的作用。 首先是日常工作流程: 1. 每天早上有个早会,其实就是遵循agile methodology,组员们聚在一起轮流快速的各自讲述:昨天做了什么,今天准备做什么,遇到了什么难题。这么一波交流后大家会对彼此正在做的业务有个大致了解,有人知道问题的答案也能在会后有针对性的给予帮助。 2. 开完会开始做自己被分配的需求。需求一般分业务需求,技术需求和公共事项。业务需求一般是由产品分配给小组长,组长再根据能力和排期分配需求给组员。其他类的需求讲述起来有点复杂,但基本都实现了一套标准化工具流程,比如一键通知下达各个组的leader,在公司相关内部平台自动化建立相关事务和相关负责人等等等等等,感觉一切发生的都行云流水,就是所谓流水线吧。 3. 实现较复杂的需求之前要写技术文档,写完发组群里让大家阅览,基本上组长觉得没毛病了就可以按照方案去开发(开始写code啦啦啦)。 PS: 我觉得写技术文档很能锻炼人的逻辑思维和表达能力,能顺势理清设计思路,将抽象的信息和逻辑结构化和系统化。在此基础上发散思维,查漏补缺,消除各种“想当然”。一篇好的文档不仅能让读者快速清晰的理解你的方案,也能成为一个基础指导手册大大提升你在实际开发中的生产效率。所以我不不仅会写大大小小的技术方案,工作时遇到的一些不易解决的bug也会归纳成文档,方便以后自己复盘或者未来可能遇到相似问题的同事查阅。 4. 写完code自己写单元测试,做线下测试,没问题就提交代码,再做小批量的线上测试,看各种监控确保指标没问题,再提交pr,两个同事会进行code review,通过后可以正式在线上灰量发布,又是看监控和进行各种相关测试。 Push,提交pr,merge代码等每一步都会触发系统的流水线,流水线包含了sonar检查,单元测试,构建和部署各个步骤,每个步骤都无误了用户才能进行下一步的操作。 5. 我被拉过几个产品需求讨论会,都是产品做好基本UI,写好产品方案后拉部门里所有涉及的组成员一道讨论。产品先说,再que各个组长,中间大家也会随时插嘴讲自己觉得不合理或者不理解的点,大概就是产品和开发互相帮助对方从不同维度了解业务从而设计更合理的需求和做到更高效的交接吧(大概是,A功能可以复用,找x组开发,就几行代码的事不要搞复杂了;B功能我们擅长,找我们就对了;C功能我们得和xx组多讨论一下或者我们自己先设计一下方案考虑可不可行再做反馈)。氛围还是相当友好,各司其职了属于是。 以下是比较我组特色的方面,所以单独再做个分享: 1. 每周要写个周报,用表格总结这周完成的任务和下周的计划。除此之外,要写总结和感悟,不限字数(我每次都写的真情实感…)。写完发邮件给leader,leader每周都会仔细看大家的周报,有时会邮件回复有时聊天工具找你聊23333。 2. 每周周四下午有个周会,会有个组员分享和业务相关的技术材料,比如其他科技公司的有启发意义的公众号文章(round robin,每周一个组员,轮流分享)。组员会提前在群里把文章分享出来供我们阅读。周会上,组员正式分享时大致讲一下文章重点,和业务的联系,以及业务上可能的提升点和思考点,时限5-10分钟,然后大家再集体讨论。分享完后,大家再集体看公共事项的进度。 3. 每年还有个正式的分享会(演讲会?)。今年大家可以分享各种知识领域,比如旅行买房什么的(我可能会分享web3或者免密登录)。准备 wiki或者ppt,像讲ted一样或者纯念ppt都行,不限形式,时限20-25分钟。leader说希望通过这个活动锻炼我们的presentation skill。线上分享会被录屏,线下则录视频。分享结束后再讨论分享人说的好的点以及可以提升的地方,会后填反馈问卷。 4. 每半年要写一个个人成长规划(业务目标、技术目标、软实力素质),写完后和leader one one聊。 5. 另外,不得不提下我组的新人培训,组织的还蛮完善,分短期计划和长期计划,时间也给的蛮充分。短期计划里有一项就是通过给一个小project开发些新功能去了解公司的各个工具/平台/中间件。另外,我最满意的一点就是——我的mentor!表达清晰,逻辑严谨,工作高效,业务技术能力十分强劲,文档写的就和画一样美(指看文档时的感受,不是指花里胡哨哈哈哈哈哈),最重要的就是他很友好,有问必答,态度顶顶的! 以上就是我对我司我组的工作流程和特色的总结,我组只代表我组,不代表我司。
————————————————
楼主在泛半导体行业(制造业),工作是C++算法平台开发。技术几乎都是师父在教
1.师父转述需求,我写简单的功能
2.自己测试,自己提交代码
3.师父闲得时候看看我的代码:哪里不规范,哪里可以用设计模式
4.大概半个月我发一次版本,给测试做业务测试
5.需求主要是算法人员提,现场工程师提,测试提,主管提……PM退化成排期工具人,排期经常变,于是她成为了排期记录人
基本上 从svn到变量命名到类设计都是师父在教
————————————————
和华为的同学聊天,发现他们
1.git代码之前,会有静态检查(代码是公司大佬写的)。检查命名规范,类的设计等等
2.他的代码都会有人检查指出不足
3每个星期大佬都会开分享会,对比其他公司代码,分析优点和不足
4. 他们会把一些优秀的编程习惯固定成规则,让大家遵守(对新手帮助很大)
5.hr会定期和他聊职业规划。他对如何达成自己的目标有非常清醒的认识。比如他最终想去国企躺平。所以他从开发转成了spdt。他会接触到很多国企高管,可以在这个岗位积累人脉,方便以后跳槽(我司没有这个待遇,我对如何成为架构师不是很清楚,但他能给我讲清楚)
6.华为人员流动大,所以想升职是有空位的。我司十年的老员工一抓一把,几乎看不到升职机会
个人觉得这种写代码的模式提升飞快。我和他的差距会越拉越大。
——————————————————
更新组外人投稿
——————————
@欣欣橙子
主页 https://www.douban.com/people/210782922/
我在互联网行业做前端开发,工作有5年,目前是第四个公司了。 第一家公司:领导转述需求,我做开发,做完提测上线一条龙,有问题自己搜。有强制的分享会,但是是让新人轮流准备,大佬们不会分享,不知道为什么。 第二家公司:直接跟产品对需求,我做开发,测试完提交代码后同事会review,有的同事认真看,有的看都不看直接点确认。没有强制分享会,有些分享欲强的同事会拉会。 第三家公司:跟第二家差不多,所有同事都不会认真review代码,直接点合并。没有分享会。 第四家公司:有同事会认真看代码,给出建议,之后合并。有定期的确定主题的分享会,感兴趣的人准备。 这么久我感觉自己的技术提升不大,实际上无论是薪资还是职级也都和现在的毕业生差不多。最近自己想明白了,通过工作提升自己的技术几乎是不可能的,可以说需要的幸运值太高了。同一家公司的不同部门差距也会很大。想提升还是靠自己学,自己想办法在找途径交流分享,公司内只是途径之一。
——————————————————
狗哥主页
https://www.douban.com/people/140197656/
我在一家国内IT咨询实施公司做IT咨询顾问,工作快5年了。目前是第2个公司(也才刚转)。 我的观点同楼主一致,不仅仅是技术,对个人的发展有很大影响。 第一个公司,是做的延伸业务系统交付,基本上就是直接扔到项目上,没有管理规范,没有人带,只是学习其他人约定俗成的工作方式。期间由于工作原因,自己也获取到了一些业务,技术,项目管理的知识,但是无体系。基本靠观察,模仿,实践获得,除了过程中用到的技能,其他的都未涉及。 第二个公司,是一家低代码公司,前后端的诸如表单/事件都可以配置,我在项目上是产品经理/需求分析的角色。我意识到现在的公司做需求分析同我的过去不同,它涉及到功能架构,建模,类设计等知识。但同我一样作为产品经理的同事都没有相关能力(我也没有,但我意识到需要这些才能做好,所以临时抱佛脚看了一些视频)。但公司完全不做这些培训,也没有成型的培训体系,基本上可以说扔到项目上能干活就行,也不关心能力体系的引导和建设。 由于第二个公司不适合我,我依然在寻求其他机会。同时也更注重关住公司是否有比较成熟的能力建设体系。然后我就发现,大部分公司,都是希望你去干他们公司的活,而对岗位该具备的能力没什么理解。但部分大公司或外企,如你说的华为是有这些在的,而且也关注人才培养这件事情。 另,我看了给你私信的小伙伴截图,非常敬佩ta有意识地在构建自己的能力。就我之前的情况而言,一个是自身没有对职业规划或者自身的能力建设有深刻的认知;二也是同楼主的观点,有时候也根本不知道有这么个东西,自主学习也就无从谈起。
阿里工作一年同学采访
一 日常工作流程
1. 主管或者pm分任务,排期
2. 输出技术方案,由主管确认后写代码
3. 测试人员做单元测试
4. code review,通常找师兄做
5. 上传代码
二 公司培训
日常有公司培训,代码规范
三 如何提升:
1.需要自己思考这个需求合不合理。
2. 做好自己的工作之余,思考并解决系统中遗留的问题。
3. 看别人的代码,弄懂
4. 看视频(B站,即刻时间等)
5. 记笔记,知识需要输入和输出 。大量的输入,消化然后输出。
————————————————————
惠普 三年测试
https://www.douban.com/people/92490278/
从最简单的测试工作或者少量更改代码开始做 会有经验者或者小的leader带着你一起做 有不懂的项目知识可以问 代码相关的也可以问 不过分人 最好还是自己搜索 项目文档和善用Google 之后可能会让你写测试case 这个需要对业务的把握 而且有语言的要求 后面根据个人要求 会给你开发或者测试的工作内容 这个跟经理沟通就好 开发和写case的话会有code/case review 这个也分项目和manager 基本都会review的 写一部分代码/case 就需要review一下 有错误或者不好的编码习惯及时纠正
工作流程 规范来说就是 会有基本设计 详细设计这种文档 根据文档去coding 之后有条件的话code review 根据测试文档去测试(自己测或者交给测试人员) 有bug改bug 没bug谢天谢地 之后交付
工作中遇到困难的时候可以自己搜搜 或者找项目中的同事或项目经理交流 其他同事也可 主要还是自己解决问题的能力要有
根据对 你共事过的同事 和做过的项目的manager 的询问 获取你的日常表现如何 升职比较缓慢和困难 因为职位空缺和名额就那么两个
会有比较多的分享会和课程 技术方面 身体健康方面等 经理也会比较公平公正的对待每个人 会有一对一交流 沟通最近的工作情况和公司状况 有需求可以随时和经理提 经理也会尽量去帮你沟通(当然这是我遇到的经理 其他的也有不管手下成员的情况 看缘分了这个)
很酷的地方我觉得在于平等的环境吧
请问:
- 你们公司对程序员培养是什么样子的?
- 你们在公司如何升职
- 你们在公司日常工作流程如何?
- 有什么技术点你觉得很酷
ps 我要不要为了技术去华为呆半年(我不能长时间加班,会挂的!)
补: 感谢你们的回复,感觉还是靠自学,公司对个人提升不大
但是对眼界提升很大:我之前不知道有静态检查。不知道就根本无法提升
最赞回应
你的回应
回应请先 登录 , 或 注册相关内容推荐
最新讨论 ( 更多 )
- 我又来给DJI招聘了 (找不到我^_^)
- 各位暂时放下手头的工作恭喜这个中国女人 (SPL)
- 25fall怎么选择国家 (momo.)
- 我这是一个奇怪/有效的方法吗?好奇大家都怎么来解除亚洲/女... (Ocean树)
- 欧洲哪些城市适合tech工作的发展且能存下点钱呢(附瑞典收支... (即芥末味)