程序员转业指南-当文员

博客 动态
0 198
优雅殿下
优雅殿下 2022-03-15 23:56:40
悬赏:0 积分 收藏

程序员转业指南 - 当文员

写在前面

嗨,大家好,我是江涛同志,今天跟大家分享的是程序员转业的故事和想法。由于国内内卷的就业环境,“996是福报”的恶魔??理论,加之对大龄程序员的就业不友好,特别是遇到例如疫情、金融危机、公司财务状况不佳的时候,就可能爆发裁员之类的事情(这个笔者亲身经历过一次,2020年6月入职兔狗科技,7月因为公司业务不行被暴力裁员,是的社会就是这么残酷,当它抛弃你的时候,的确不会说再见的,这对笔者职业生涯造成了毁灭性的打击,心中的阴影挥之不去),居安思危,就引出了今天的话题,有一天,我不做程序员了,我还能干啥? 这个问题是个开放性的答案,说啥都对,但是在很多解里面寻找一个适合自己的最优解,这是我们后面要做的事。我今天的观点是,程序员转业做文员,有一定的优势。

背景故事

最近,有朋友在微信求助涛哥,大致的需求是有一个excel里面有若干个sheet,需要根据其中的一个sheet中的Device Sub ID去进行分类合并到新的按照Device Sub ID命名的sheet里面, 并将其扁平化输出。
1.jpg2.jpg
这里通过找规律,我发现按照时间的顺序,10个为一组追加对应的id和时间并且扁平化的输出到对应的sheet是可以试试写写看的。

这里一共有43144行,假如以工具人的视角,在不考虑人机疲劳的情况下,这位选手处理一条完成的记录需要12秒,那么其大概需要12个小时左右完成这项任务,但是当你以编程的视角去审视这个问题,几秒钟就可以跑出一个我们想要的结果,而且答案是比自己一个个去复制粘贴不容易出错的,这就是我今天想举的一个例子。麻烦社会上的好心的叔叔阿姨大伯大婶,如果你们缺文员,可以考虑一下年龄大的老程序员,他们在处理数据方面,有着得天独厚的优势,谢谢!

解决方案

这里笔者提供一种基于Node.JS的解决方案-源码

// 倒入相关的包const xlsx = require('node-xlsx');const fs = require('fs');// 解析对应的xlsx文件const sheets = xlsx.parse('Performance Report .xlsx');// 定义缓存每个sheet里的内容变量const cach = {};// 定义缓存根据Device Sub ID拆分子sheet的变量const deviceSubIdCach = {};// 定义清洗后的数据const freshData = [];// 缓存读取所有的表for (const sheet of sheets) {  // 检测原表格哪些数据有值  // if (sheet.data.length > 0) {  //   console.log(sheet['name']) // 1 2 3 20 Performance Report  // }  cach[sheet['name']] = sheet['data'];}// console.log(cach['Performance Report'][1]); // [ 'Device Sub ID', 'Performance Parameter', 'Parameter Value', 'Time' ]// 读取sheet Performance Report里的内容for (const rowId in cach['Performance Report']) {  // console.log(cach['Performance Report'][rowId]);  if (Number(rowId) > 1) {    const [index, ...rest] = cach['Performance Report'][rowId];    if (index !== '0') {      if (deviceSubIdCach[index]) {        deviceSubIdCach[index].push(rest);      } else {        deviceSubIdCach[index] = [rest];      }    }  }}// console.log(deviceSubIdCach['1']);// 清洗表里面的内容let round12 = [];for (const key in deviceSubIdCach) {  deviceSubIdCach[key].sort((a, b) => {    return new Date(a.slice(-1)) - new Date(b.slice(-1));  });  freshData.push(    JSON.parse(      JSON.stringify({        name: key,        data: [          [            'ID',            'CPU (average',            'CPU (max)',            'Radio Module 7 DL Output Power',            'Radio Module 6 DL Output Power',            'Radio Module 5 DL Output Power',            'Radio Module 4 DL Output Power',            'Radio Module 3 DL Output Power',            'Radio Module 2 DL Output Power',            'Radio Module 1 DL Output Power',            'Radio Module 8 DL Output Power',            'TIME',          ],        ],      })    )  );  for (const data of deviceSubIdCach[key]) {    const [parameter, value, time] = data;    if (round12.length === 10) {      round12.push(value, time);      if (round12[0] === key) {        freshData[key - 1]['data'].push(JSON.parse(JSON.stringify(round12)));      }      round12.length = 0;    } else if (round12.length === 0) {      round12 = [key, value];    } else {      round12.push(value);    }  }}// console.log(deviceSubIdCach['1'])console.log(freshData[16]);// 生成清洗后的文件const buffer = xlsx.build(freshData);fs.writeFile('result.xlsx', buffer, (err) => {  if (err) {    console.log('Write faill: ', err);    return;  }  console.log('Write completed');});

也可以访问项目地址: https://gitee.com/taoge2021/study-nodejs/tree/master/03-media/excel

人生感悟

身体是革命的本钱

健康永远是第一位的,连命都没了,赚钱还有甚么意思呢?所以我们的原则应该是,找一份不太会对身体健康有很大影响的工作,争取在岗打工50年。如果一份工作是每天加班到11点 12点甚至半夜,那我觉得这种是严重危害到身体健康的,不建议也不倡导在这样的资本家环境打工。

我们应该每天抽点时间去锻炼身体,例如程序员这个职业吧,吃完就坐那里敲键盘,缺乏运动就很容易胖,颈椎容易受损,眼睛容易近视度数加深,我也是今年去报的健身房,经过合理的训练和饮食,最终创下一个月8斤的佳绩,希望能保持一种工作和生活的平衡,健康生活哈哈。

尽可能多地去寻找快乐

你快乐了,你做事情的积极性以及你接收事物的能力会好一点,那么怎么去寻找快乐呢? 比如说吃、吃很多你没有吃过且有兴趣的事物,帮助别人你也会收获快乐,运动后洗个澡你也会很快乐,呆在房间唱首歌你也会很快乐,画一幅画你也会感到快乐,打一会儿游戏也会产生快乐。。。。。。

用编程的思维去解决生活问题

传统的思路去解决问题,容易受限于时间、人的精力等制约,但是如果你思考后发现,可以通过编程的思路去解决问题的话,本身是一个获得快乐的过程,同时也收获了成长!

posted @ 2022-03-15 23:45 ataola 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员