对工作的思考
第一份实习
回顾
第一份工作在大三下学期,做的是前端开发
公司在余杭,每天在路上来回都要两个小时,但是过了入职的兴奋期,就进入了疲倦期就比较累
也算是体验了一下给别人干活的早出晚归是什么状态
越干越觉得自己工资太低了点,应该是综合福利比较低,除去交通、饮食这最基本的,综合下来其实一天不剩下多少钱,如果是要考虑公司,还是得看看综合福利如何,关系到切身的热情
关于多人协作开发:团队作战和单兵作战自然不同;因为是多人,所以需要调和;因为是团队,所以需要规范
在修复bug的过程中,用到了非常多的debugger语法,大幅提高debug能力;
同时,之前学习的VIM也派上了很大的用处,配合我的调教过的VIM键盘,相当舒服
期间,mentor写了一个技术分享,关于sharedState,通过发布订阅来实现数据的多层面的通信,非常好用,在写自定义组件时也用到了sharedState
内部代码中,基于条件的样式添加,大量用到了classnames组件,以及基于CSS Module的内部样式
对待复杂的逻辑,在完成功能与符合回报的前提上,需要考量算法复杂度
我前一个半月,都搞不太清楚git分支;无可厚非,这确实是需要实际场景下去学习
理解到了何为解耦:通过API分段调用,达成不同限制下的统一使用
总结
永远保持初学者的心
我做了
- 主业时间
- 实习记录
- 养成了喝初级农产品中药茶的习惯,感觉还好
- 业余时间
- 背部 && 中段锻炼
- 做视频
- 学习摄影知识
- 做学校项目:LLM && RAG;分享知识
- 开始徒步,学习登山知识
- 个人文档库总结
- 通勤时间
- 瓦尔登湖
- 君主论
- 深入浅出NodeJs
- 登山装备宝典
- 薄迦梵歌
- 黑客与画家
- 孙子兵法
工作特点
基本信息
- 岗位:前端开发,实习岗
- 地点:杭州
- 公司规模:中型,非初创,互联网,民企
性质
无需考虑向浏览器兼容问题
主要是纯web端的项目
依赖线上协作
待遇
- 大小周
- 打卡 && 日报
- 薪资一般
- 无补贴
- 综合待遇一般
环境
- 技术氛围:较好
- 交流氛围:较好
- 硬件配置:差,但公司要搬迁地址,应该会提高很多
- 综合工作强度:中
项目组
- 文档相关
- 架构:全结构型(产品+UI+前后端+测试)
思考
思考我的工作
这是一个需要用脑子的工作
经验固然重要,但是逻辑不会自然而然浮出水面
谋定而后动为上,谋不定身先起为其次,无谋为最下
怎么快速上手陌生的代码?
从最外部结构先理解,逐层扫描
总地来看,最快的方法就是慢慢来
1. 看基础的配置性文档、项目的直接文档、核心的文件夹逻辑
2. 从小任务开始写代码,首先是优先级低的bug,然后过渡到开发
最重要的是在写代码的期间去熟悉,但是不能断开自己陌生的技术的学习以及相关文档的查看,学习时间和干活时间应该有意识地划分开
什么叫做性能开销?
对计算机来说,性能开销主要是硬件开销,即算力的消耗与效率,包括CPU、主板、内存、显卡、外设等寿命的消耗,单位时间内CPU的利用率,CPU的实际执行能力
对开发者来说,性能开销包括了对开发时间、认知精力、心态等的消耗
对用户来说,性能开销意味着用户体验
如何理解单页应用? 如何理解SPA | FPA?
单页应用对应的是多页应用,即往往是一个HTML对应一个CSS和一个JS,难以实现代码复用;
在代码逻辑和组织管理上都比较差
怎么理解开会?
本质上是过一遍已经确定了99%的流程
剩下的1%的问题放到会上暴露出来,并将其100%的信息尽可能流通
经营一个产品的必要岗位?
整体上,部门包含了:
1. 后端
2. 前端
3. 测试
4. 产品
这里并没有运营和营销的考量,因为对于分部门来说,运营和营销包在了其它部门中
所以,经营一个产品,本质上是六个方向:
1. 产品
2. 销售
3. 运营
4. 后端
5. 前端
6. 测试
其中,按重要性来排列:
产品前期;
营销 && 销路 >= 产品 >> 运营 >= 后端 >= 前端 > 测试
产品中后期:
营销 && 销路 >= 运营 >> 产品 >= 测试 > 前端 >= 后端
去除掉无关紧要的,其实只需要三个方向:
1. 需求捕获
2. 开发
3. 运营
借用现代的各种效率工具,三个职责方向完全可以由一个人来做
如何理解技术公司的成员组成?
技术公司也是公司,脱离不开团队协作,本质上也是团队作战
只是技术驱动的公司,其组织结构与技术本身的关系很大
而技术本身是快速迭代的,所以不同的公司组织架构可能从最传统到最先进都会存在
分组式:
总开发部 <- 前端组 <- 分组
<- 分组
<- 分组
后端组
测试组
运维组
...
如何对待分配的任务?
早上充电——下午干活的模式确实很好,但是我不能小看项目的难度,我目前对于项目的熟悉度还很低,不能贸然采用我的模式在工作上
应该循序渐进一些
期间,我思考了路由应该的样子
包括通用路由和业务路由
通用路由
- user 用户
- auth 权限
- org 品牌
- utils 主题 & 辅助功能
- system constant 系统常量
- version 版本
业务路由
- 资源型,获取资源数据
- 任务型,对任务进行调度
- 展示型(监控 && 数据大屏 && ),数据进行实时更新
- 辅助型
业务组件和通用组件的区别?
目前的理解是,业务组件属于定制化程度高的组件,复用性低,需要特殊处理
通用组件是通用程度高的组件,复用性高
工程与设计的关系?
工程要实现设计的根本目的
设计要考虑工程的现实问题
如何理解协调、Buffer、排队?
由于各种协调上的原因,包括
- 个人原因请假导致的延期
- 排期顺序不恰当(请假导致的排期不合理,比如前端的排期放到了UI之前,测试的排期放到了开发之前
- 沟通导致的理解误差(比如
- 意料之外的插队(比如突发决定的排期,突发的需求需要近期优先完成且之前没有
其导致的结果就是排期这件事需要重新来一次,那么看一看排期包括了哪些部分,需要消耗什么
1. 各个成员的开会时间,多为45min左右,少见情况有30min
2. 状态重新进入导致的时间
3. 精力分散 && 任务分散带来的工作效率降低
4. 后续的不确定性的沟通带来的工作中断
5. 说笑 / 缓解氛围 && 争吵带来的额外时间
6. 员工的不满情绪
7. 回顾先前项目 && 经验带来的记忆混淆
其结果就是一损俱损
解决这种问题是不现实的,真正意义上只能减少这种事件发生的频率和带来的影响
减少事件发生频率
围绕排期本身进行 - 已确认 - 不准确 - 待确认减少带来的影响
增加团队责任感 && 提高获得感 增加有效沟通
对于其它人向自己反馈问题时,自己如何应对
反馈问题,说明有问题
但由于沟通、语言上的误导作用,我个人容易先入为主
其实是需要仔细思考对方想表明的模糊概念,其指向的范围大致在哪片区域
它是一片水域而不是一个水滴
以开发为例:关于信息提示,应该基于真实情况来提示,而不是理应情况
具体地说,前端的提示应该基于后端提供的状态来考虑,而不能忽略状态,成为孤岛
修复bug的时候,按什么顺序来做?需要注意什么?
基础分类
1. 确定是自己的职责的范围之内的
2. 不确定具体是哪里有问题的
按重要性分类
1. 重要程度高
2. 重要程度低
要多去思考,已有的重构,或者改的bug,除了原本的目的之外,还会带来哪些副作用;比如我现在改bug,但是又基于我改的代码产生了新bug,那么这时候改的代码是否值得就有待商榷了
如何理解排期
关于排期:根据需求排日期的基础上 + 给自己buffer时间
其它
前端分为接口层和视图层;后端分为接口层和服务层
前端的接口层用于Request,后端的接口层用于Response,这是典型的CS架构下的REST请求方式
而到核心任务,即前端的视图层和后端的服务层时,需要完成对应的显式或隐式的需要
比如前端的视图层,隐式上需要对用户隐藏相关逻辑操作,并让用户直觉上感到可行
第二份实习
回顾
第二份工作在大四上学期,名义上是开发自动化程序,实际上还是做了前端
这份工作比较糟心,这段感悟也是我在离开公司后两个月写的
整体的环境比较压抑,光是那个空无一物的长走廊就够我心跳加速的
虽然名义上是照顾员工感受、正常上下班,但可能是因为公司性质的原因,我周围的人大部分比较...僵硬
收获也有,但大部分是我自己争取的,比如看了微软的Power Apps、Automate之类的文档,基本上了解了这种"短应用"怎么捏出来的以及如何捏,至于微软官方给的这些应用的语法我就不敢恭维了,和Excel操作起来一个德行
除此之外,收获最大的是借着干杂活的机会,我系统地学习了一下C#,我还是挺喜欢这个语言的,包括整个实习期间还自己学习到了一些游戏开发相关的知识
我初次实习的经验派上了用场,至少给我带来了健康,比如泡茶;还有协作开发的方式、日常记录的习惯
然后就是我的前端开发内容
注意: 以下有较多主观情绪输出
我中途"犯"了几次错误,第一回是用公司的电脑,安装数据库,安装错位置了,导致电脑的安全模块自动锁文件夹,最后需要返到甲方公司里重做系统,我承认确实是自己的疏忽,不过我也发现我对Windows下的权限了解的不够清楚
第二回是周四下班前给邻座的后端用邮件发工程文件 (已经无力吐嘈这开发环境),后边显示发送了,但是对面没收到,周五请了个假,下周再来发现我的电脑被寄回甲方去了;原因是开不开机...他们甚至不跟我说一声,我不否认也是有我的问题,我是知道这个打不开是为什么的,我用的2.4G插到电脑里,这客户电脑启动的时候应该有什么安全检查,只要插着这个就会反复启动,拔出来就好了;最终是,我重新写了遍前端的功能,用另一台电脑
我真的很不喜欢这位带我的前辈,我尊重妇女,但几乎所有事情她给我的感觉就是"你自己看着办",以及大部分决定都是拍拍脑袋,给我一种日本人那种和善的冷漠
可能是年纪比较大,这种环境待久了各种思维都比较迟钝吧,我只能说尊重了
在前端方面,她确实没有我懂,但是一直想指导我; 我一个人干了产品+UI+前端+后端的活,虽然我能力还可以处理起来没什么大问题,但是她一和我沟通可能就忘记了之前的要求,开始随意地让我修改,我是真不爽啊(一个思考记录要写这么多情绪宣泄的话,想想就要黑化了
最后一回是最后一周,我在按着她的安排做,修改一些样式问题、做一些常规的业务模板处理以及写交接文档;最后一天的下午快下班了才跟我说"你SSR路由做一下",这项目前后端的项目路由都不兼容,前端当时是纯SSG的 一开始很生气,后来默默做到了晚上十一点,然后那就是我在这家公司的最后一天了
不过她日常应该是位好母亲,我听到过她和女儿的聊天,非常温柔,但绝对称不上是什么好工程师,我到如今回想起来才开始怀疑是不是她故意要这么做的,我只能说我不会主动怀疑任何人,我相信大部分人都是心存善意的,可能只是她有些天然呆吧
总接下来,影响我心态的有这么几个方面
- 封闭过度的环境,这是根本原因,下面全是诱因
- 随意的邻座前辈;而且一个办公室都是各自干各自的,几乎没有交流,他们聊起来天的感觉也是彼此不熟
- 实际上的加班
- 对了,这工作刚开始上来就让我打电话咨询甲方公司授权远程填写密码,我还是挺震惊的
- 技术大牛或许不存在;就前端来讲我可能是整个办公室里最懂的一个?
- 没有活力;不过值得一提的是,这大概率是环境的问题,我在一场小型活动里看过,其实如果环境允许他们是很愿意聊聊天说说话的,很温和
- 福利等同于无
- 面子工程
- 繁琐的"走流程"让我感觉在虚度人生
- 名存实亡却只在无关紧要的地方需要遵守的繁琐规定
- 厕所太小了吧?
- 我为什么会在办公室门口的?
- 我写到最后才想起来每天有来回3小时的地狱通勤,我体验到了人生中第一次甚至第二次低血糖 无能狂怒中orz
我第一段实习从来没加过班,那还是私企;而这段实习居然让我因为莫名其妙的原因加了至少5次班,比如你的前辈让你在下班之后清干净她从gitee上下的脚手架里的copyright以及其它所有耦合组件,因为我手搓的脚手架效果"呈现"的太慢,而关键在于用网上的脚手架又是违反公司规定的事情?
这段经历让我彻底对外企祛魅了,规章制度表面福利一大堆,真正进去了发现真是金玉其外败絮其中 为数不多的好处是这苦差事至少是双休的,底薪也可以但被玩文字游戏了,我也认了
最后HR敷衍地说了几句原因,电话里听到了从不说话的主管在窃窃私语
...这段经历除了这位前辈之外,公司还有两位学长,我也是面试之后才知道 我还是很感谢在公司的两位学长,他们比我早一届,我能感觉到他们真的在为我考虑事情,节假日还和其中一位学长爬了山 对了,我特别喜欢那边的一家20块的自助馆子,那是我一天的慰藉
这份工作属于人际交流很舒服,但是工作内容我很讨厌的那种;对比第一段实习,第一段实习是属于人际交流很少,但是工作内容我很喜欢的那种
我也重新思考了一下,我发现我对成长性和自由性的要求还是挺高的,吃一堑长一智
以后老了的时候,回想这经历大概也会戴上痛苦面具吧
总结
公司挑选你的同时,也是你在挑选公司
我做了
主业时间
- 实习记录(纸 + 电子)
- 喝茶
- 偶尔吃早餐
业余时间
- 每天通勤都太累了,锻炼的频率大大减少
- 继续做视频
- Emo(正值冬天
通勤时间
- 希腊神话
- 浮士德
- 沉思录
- 深入浅出密码学
- 无限可能的身体
工作特点
基本信息
- 岗位:前端开发(实际上),实习岗
- 地点:杭州
- 公司规模:子公司,互联网,外企
性质
- 封闭
- 无人带, 无过渡期
- 纯web端 无法使用自己的电脑以及配置
- 无法使用常规开发工具
- 依赖线下协作走流程
待遇
- 双休
- 要求打卡
- 要求刷课、遵守公司规章制度
- 薪资中,补贴和扣税抵消了和预期差了些
- 福利等同于无
环境
- 技术氛围:无
- 交流氛围:一般
- 硬件配置:客户电脑不敢恭维; 自家公司网络进不了自家官网有些抽象
- 综合工作强度:低 但痛苦
项目组
- 架构:双人开发(前后端)
思考
思考我的工作
这是一个颇为煎熬的工作,我不喜欢这份工作
它没有明确的安排和目标的同时职责不清,成长度很差、待遇一般、归属感全无
还是得靠自学
最大的收获是这句:良禽择木,不要轻易把自己卖了
这份工作我来了第二个月就感到此地不宜久留,待久了人会麻木掉
我中途经常会想到这么一句话: "如果你发现这个办公室没有比你技术更好的了,那你就是时候离开了"
确实,这份工作成长性太差了,久待是对自己的不负责
我喜欢自己的电脑,喜欢自己的配置,喜欢自己端着自己的饭碗的踏实
而且,中途我也细致考虑了一下,这家公司我目前在做的份工作可取代性太强了,其实 随便找个了解一些开发的,你只要不反抗按着他们给的节奏来,用不了多久就可以为他们"创造价值"然后泡在这温水里
通勤我一般是没什么抗拒的,不过这次实习来回有3个小时通勤,一天下来确实太疲倦了,不知道在地铁上睡着过多少次,属于身体比脑子还累的那种,我最多接受的通勤时长可能也就每天3小时了,太长的通勤到后边我连书都看不下去了
工作当中有好伙伴会让自己更加幸福,遇到不合的人也会让自己更加痛苦
周围找到一个喜欢的饭馆真的可以让自己的疲劳感-100
保持学习,终身成长——"富在术数,不在劳身"