前言
前几天在更新《程序员的算法趣题》系列的"Q3-翻牌"的时候,因为该章节中作者对于"讨厌麻烦的人比较适合做程序员吗"的讨论而感到一些共鸣,所以就在那篇文章中稍微多写了几句,但是又感觉想写的太多了,再写下去就偏离主题了,所以就单开一篇来 BB 一下这些年来的一个心路历程。
下面就按照我自己各个阶段与代码编程有联系的部分进行展开吧。
PS:本篇编写过程中中断了几次,中途还做了个眼部手术,使得整体完成时间延后了很多,本来是预计在《程序员的算法趣题》系列的"Q3-翻牌"之后大概两天就发布的,但是谁知这一耽误就那么久,《程序员的算法趣题》的更新也落下了 3 篇,虽然有两篇代码部分已经完成,但是还没来得及写文发布。这段时间得加加油把落下的补上了。
学生时代
其实要说最早接触编程,可能不严格区分的话,应该是小学的时候,有一个课程是教学生通过一个软件来制图开始的。那个软件不记得叫什么了,大概就是写一些代码命令,控制一个小乌龟进行移动,从而绘制图像文字这样(就很类似 h5 里面的 canvas,svg)。然后当时在一众学生中就属于表现出了一定天赋的那种,小时候班主任遇到我妈还专门给我妈说:“以后一定要送你孩子去学计算机啊,太有天赋了”之类的话(不过我妈大概是没放在心上,大概是因为从小就不操心我学习的事,所以也什么都不管我)。
之后就是高中时代有接触到 C++ 的兴趣课(当时好像是为了选拔合适的人去参加竞赛),然后在这个兴趣课上见识到了大神是怎么样牛逼的,感觉自己比不过人家,就中途没去了。(大神是当时我们学校的常年年级 No1,属于毕业后也是天天被同学茶余饭后当作聊天吹嘘的对象)
当然这一趴里面是因为当时高一的时候还比较贪玩,中间逃了几次课,后面就不想去了。(自己高一的时候是真的皮,作业不写,课不听。每天住校的生活就是和班上最皮的那帮人找乐子,所以高一的时候成绩都是年级垫底。高二分班之后没跟原来的那帮伙计在一个班了,然后受到正能量同学的影响,高二之后成绩就还不错)
高中三年现在回头来看真是一晃而过,后来就是入了大学。当时自己填志愿也不清楚自己今后想要做什么,选专业完全就是看着这个学校能选的最高分的专业就选了,完全没多考虑。而选学校就是为了去追求女孩,因为知道当时喜欢的女孩要去西安读书,就选了西安那边自己能选到的分最高的学校,西北工业大学-材料专业(好像当年是西交大分不够 😂,不然按照当年的择校和选专业的思路,应该就是读交大了 )。
大学期间接触到编程就是 C++ 程序设计这门课程,但是自己当年真是属于刚从他律中解放出来,完全不懂什么叫做自律,一旦没人监管,就放飞自我,大学天天玩,谈恋爱打游戏,真是没学东西。相对大学其他课程来说,当时这门 C++ 的课程都还算是我成绩很好的学科了(虽然只是正常的分数过了这门,但是全靠其他科目衬托,其他课都是当年不及格,然后来年补考)
这就基本把我学生时代和编程有关的经历回顾完了,现在看来,在学生时代其实隐约是对编程有一定的兴趣的,但是这种兴趣我现在感觉更多的是来源于能解开其他人解不开的题目的优越感,所以在学生时代也并没发现自己有多喜欢或者适合做编程。
刚毕业(转行前)
因为大学时代没学东西,而自己所在那个专业,又是生化环材四天王之一,不读研本科出来工作真就只能做类似销售,客服,运营之类的相对专业要求不高的工作。
当时毕业出来是去了杭州的一家电商公司,叫做乐其。这家公司的工作经历对我来说真是影响深远,这一段的工作经历就是后面让我去转行做编程开发的最重要的一个契机。所以重点来说说这一趴吧。(当时找工作选择杭州也是因为女朋友,和当时高考时选学校那个时期是同一个人,因为之前和她去杭州旅游的时候她说她好喜欢这里,想要以后能生活在这,所以就找了一家在杭州的公司,拿到 Offer 要入职了我也都不知道我要做的工作是什么,公司是做什么的,真的跟当时大学的时候选学校专业一个德行 😳 )
当时是 2014 年的 7 月,阿里巴巴还没上市,大家网购都还是习惯用电脑,4G 也才刚刚起步,大多数人都还在用着 3G 的网络。而我提着行李来到杭州入职,入职之后才慢慢的了解到公司是干什么的,我的职位运营专员是需要做什么样的工作内容。
公司是品牌电商一站式解决方案提供者,专门为各种知名品牌(雀巢,花王,悦木之源,联合利华……)或者一些世界 500 强行业 500 强的企业提供电商服务,说通俗点就是这些品牌方要做电商渠道,但是不够专业,所以就委托其他人去给他们运营这些电商店铺(天猫旗舰店,京东品牌店等),然后收取一定的服务费用。
而我的工作运营专员,就是包括了整个电商店铺所可能涉及到的基本所有事务,除了自己店铺的本职工作之外还需要在美工忙不过来的时候去做一些美工的活,客服忙不过来的时候做客服的活,仓库忙不过来的时候做仓库的活(真是革命战士是块砖,哪里需要往哪搬),其中管理店铺的本职工作又主要有如下几项:
商品信息管理(店铺后台的商品信息维护,上新下架,促销,活动报名,库存操作……);
店铺装修(美化店铺页面,商品页面,优化展示,调整商品展示权重……);
CRM(在 CRM 系统中进行客户关系管理,包括节日问候短信编辑,促销活动短信提醒,积分等级信息维护,大促时电话回访……);
站内 SEM(淘系的直通车,钻石展位,淘宝客的优化引流降成本的操作,数据收集分析),竞品数据收集分析(在各种淘系的店家工具软件收集统计各家竞品的销售数据,展示数据,制作报表)。
总之就是做的事情业务跨度大,机械重复率高,事多且杂。尤其是遇到促销来临前,根据品牌方给出的活动商品报价表,去重新修改商品的头图还有进行商品后台报名的时候,真的是想死的心都有。因为当时在的项目组是做童装的,如果有做过电商非标品运营的朋友,应该知道其中的痛苦。
因为服装有成百上千个 spu(不同款式的服装),每个 spu 下面又可能有多个 sku(具体该款式下面不同颜色,细节,尺码的衣服)。而一遇到大促,基本店铺里面有库存的商品都会参与活动,而参与活动的商品,就需要改图(把当时的活动 logo 和价格差异化的体现在每个商品的主图上),改完的图还需要到后台去对对应的商品进行修改操作。
往往一次大的促销,可能有 200-1000 个不同 SPU 需要去改图改价,如果 spu 下面 sku 还挺多的,改图和上传的工作真的就是噩梦般的存在,最初刚入职不久的时候经常有这样的活分配给我来做。让我充分体验不停的做机械重复的事情是什么感觉,就好比工厂流水线上作业,而且又还有那么一点点差异化,在一次次复制粘贴的循环中变得越来越麻木,越做到后面,越可能出现错误,比如改图的时候从 excel 表那边粘价格粘错行,图做好之后上传到错误的商品下面去。
经历了几次这样的手工操作,我感觉真的太无趣了,有时候这样一项工作因为量大,可能需要多个工作日才能完成,而一天上班全在做这么一件事,又机械又重复,感觉思维都变得有点迟钝。当时的自己就在想,这种操作虽然每个商品都有一点差异,但是大体的操作流程基本是一致的,能遇到的问题也是基本可预见的。那为什么不交给程序去做呢?
但是奈何当时自己没有一个很好的编程基础,只是从前学生时代对于编程的相关经历,让自己对于用编程来代替人工操作的方案有一个大概的认知(学过的东西不用谁都会忘记的)。但是当时自己对于能让电脑代替人操作能想到的工具只有按键精灵(以前玩游戏的时候为了简化操作有使用过),可自己对于按键精灵的脚本编写完全就是小白,如何才能实现自己脑中的想法,让脚本操作键鼠来代替人工完成这些工作呢?
没有办法,只有硬着头皮学。因为实在是不想之后再遇到这样的工作就自己一天天的耗进去,感觉人会受不了的。然后经历了大概两周熬夜写脚本,测试。终于做出了第一个能代替自己工作的脚本,但是因为是第一个,所以问题也是多多的,正经要做改图操作的时候,跑着脚本人也不敢离开,要盯着程序的运行,看着有没有什么地方有 BUG,然后即时的人工调整做错的地方,然后修改脚本以适应一些之前完全没有考虑过的情况。
最终历经了不知道多少个版本的迭代,还有多少个新作业脚本的诞生,当时我已经能根据不同的业务场景来快速实现代替人工操作的脚本了,于是公司有其他业务组的人知道我可以搞这么一个方便的东西,就会在遇到有大批量人工操作的时候请我去帮忙。虽然这些都不是我要做的,但是出于乐趣,也都愿意帮忙,结果就是在我学会了这项技能之后,最初是能通过软件代替人工让我轻松了不少,但是后面又变成了需要为其他业务组的成员提供脚本编写测试运行维护等等而增加了我的实际工作量。
但是这项工作却是实打实的让我感觉乐在其中,因为它不是机械的重复的,而是创新具有挑战性的,需要去攻克难关解决问题,当时我感觉真的每天搞脚本确实很快乐也觉得日子过得很有意义。
再后来就是因为跟女朋友分手,心情低落,完全没有心思做其他任何事,然后就辞职回到老家贵阳。
回去之后也无心工作,中间在家呆了差不多一年,等回复了心情,想要再出去工作的时候,先尝试了一些类似电话推销的工作,但是感觉做这些工作好像没有什么前景,也都是做了一小段时间就不做了。
然后有那么一段时间就在家里想,自己到底是喜欢做什么,适合做什么这些更多关于自己的问题,因为从前的自己真的就是栓死在一个情字上了,很少有思考过自己要什么。
最后想起当初在杭州的这份工作,我好像明白了,我需要去做一个解决问题,去机械重复,又能各方面提高效率的工作,这才是我喜欢做的事情。
学习 java(转行中)
确定了这个想法之后,就在网上搜索相关的职位,自己当时比较天真,想的是自己喜欢的这种工作应该就是搞软件搞开发,虽然自己不是此专业,也不具备足够的相关技能,但是也要找那种哪怕进去当个学徒,没有工资,先入行干着,可以在这一行先工作,再学习。
于是就很顺理成章的在招聘网站找到了培训机构 😂 ,然后贷款入学。
培训机构是当地的一家线下机构,课程内容就是 JAVA 基础,JS,html,SSH 框架,能够让你先入行去做初级开发。然后学习时间是大概半年,每周 1-5 上课,双休,早上 8.30 到晚上 6.30,中午 12.00 到 13.30 休息,晚上回去写作业也差不多写到睡觉时间。总之还是时间上安排的挺满的,也过得挺充实。
这段培训经历,在我们那个班上,我的成绩一直不错,都是第一,作业或者随堂的题也都是做得比较好而且标准的,从而同班的人会经常来找我问问题,或者请我去帮忙解决报错。这一问一答,还有帮助解决,等于自己学了多遍,理解也更深刻一些,不禁让我想起自己大学之前也是如此,因为平时成绩较好,所以会被人问问题,然后也乐于给别人讲解,这样反过来又自己巩固一遍。而且有的知识,一开始以为自己懂了,也能做了,但是要给别人讲清楚的时候,却发现自己其实理解得并不够,而在给别人讲明白的过程中,自己也会再思考一遍,把内在的逻辑关系理顺,从而达到加深认知的效果。(所以我是觉得写技术博客等于是给自己一个当老师的机会,从而完成上述的加深认知的目的)
而后就是培训结束,转行的第一次面试,基本都比较顺利,也顺理成章的成为了班上最快一批找到工作的人,正经开始了入行之路。
从事开发(转行后)
从 16 年中旬转行到现在,抛开中间生病了修养在家的一年半,也算是有 3 年经验的开发了。这三年经验中,对自己开发经历带来成长和影响最多的两家公司这里可以着重说一下,在这两家公司的两段经历。
这重点要说的第一段经历,就是刚转换的第一份工作。
这份工作所在的公司是一个初创的小公司,主要是做一些外包项目。而且因为人比较少,所以可能很多其他岗位需要做的工作,也会让我们亲自操作。(其实最累的就是我们的小领导,也就是老板本人,既要谈合同,又要弄项目框架,还要完成功能开发,还要跟进客户的需求,不但要给我们发工资,而且还要去跟客户催款,款项延期了还要自己先垫钱。总之看着是真的辛苦又辛酸)
而且很有幸的就是当初就是在这个团队还在初期组建的时候加入的,所以完整的跟了几个项目。从初期的设计原型,设计数据库字段,到开发到后期测试交付修改都参与其中。算是刚一入行,就对一些小型项目的整个生命周期的基本内容都有了接触。也学到了很多产品、测试、运维等岗位的相关知识和技能。
而且因为经常跑去跟客户方一起开会谈需求,所以在跟对软件开发不太了解的人沟通需求上,积累了不少经验,因为隔行如隔山,所以行外人员可能会以为实现一个实际难度很高的功能做起来简单,而实现一个难度很低的功能做起来很难,而且对于一些我们开发人员习以为常的术语,他们可能会完全不明白其中含义,或者直接理解成另外的某种错误的含义。这可能也是为什么总能看到一些产品和开发之间的矛盾段子的原因,因为本质上是沟通存在错位,而幽默有一种产生的技巧就是错位。
所以后来在跟产品人员开会磨合需求共识的时候,也更能够出来主导会议中沟通的顺畅。相比跟之前的运营经验和这段工作经历有很大的关系。
另一段重要经历,则是 18 年开始差不多快 2 年的一段工作经历。公司是有一些自身需求的项目但是不多,更主要的是跟政府或者其他企业合作,去做一些委托项目。公司有做前后端分离,而且有专门的售前人员去跟客户对接需求,出原型。也有专门的测试人员去做功能测试,提修改文档。所以自己在工作上也能更专注于开发本身。而且相对之前的工作,业余时间也要充分一些,当时自己又有些知识恐慌,就各种网课都去上一上,所以技术提升基本都是在这段工作经历中完成的。
而且因为技术在小组内确实比较突出,小组长也比较信任,就多给了我一些类似开发组长的工作去做,组长本人就可以抽身去做一些既往项目的工作,我就负责当前主要开发的项目去分配人员和工作,并统筹安排。虽然比起从前只把自己分配到的工作做好来说任务量更多,担子更大一些,不过也确实算是得到了不错的锻炼,自己也比从前做了更多核心功能,复杂功能的设计开发任务。尤其是一些可能会反复用到的一些地方,自己会去实现一些方便复用的小工具来分享给组员使用,从而达到减少麻烦和繁琐的操作。
只能说做干开发这一行,做得多才能学到的多。哪怕自己平时也还是经常上上网课,学习下技术,但是真正记忆深刻能够完全掌握的,都还是真正动手写过很多东西的部分。其他的内容,可能当下能记住,但是一旦不用久了,接触不到,之后提起也只能是有个大概的印象,跟前者还是有比较大的差别。
感悟
其实从自己转行做开发以来,在工作的时间确实是能明显感觉到比之前做其他工作更加愉快充实,说明自己选的这条路应该还算是比较适合自己的。但是看着业内的一些大佬,能够天天都在写代码,并且乐在其中,又觉得自愧不如。
不过有一点还是非常庆幸的,就是做软件这一行,因为技术更新换代快,市场淘汰也非常迅速,所以必须要经常保持学习才能适应整个大环境。而自己在大学毕业之后,其实慢慢有发现自己其实是比较爱学新东西的,虽然哪怕在大学时期没有好好学习过本科课程,但是自己的特质是如此,哪怕是玩游戏,也是要玩个精通,都是要先在网上找到足够的资料来看,把游戏性都要摸得清清楚楚,到足以给其他人写攻略的程度再好好开始玩。对自己有兴趣的方面,也是经常看一些相关的学习视频和材料进行学习。更重要的是,后面越来越感觉学习真是一辈子的事情,也是有趣的事情,所以能做到这一行,需要时常保持学习才能适应大环境的开发岗,是真的挺幸运的。
而且转行之后这几年,相比从前,个人觉得最大的变化就是更会安排自己的时间,哪怕好几个月不上班,也可以每天都有计划有安排的去做各种想做的事,也不会觉得无聊,哪怕现在生活中还少了杀时间的一大利器--玩游戏,都能有时间过得好快,一天感觉根本不够用的感觉。虽然不知道这一点是不是因为从事了这样的工作才有的变化,但是个人感觉是真的挺不错的,可以对生活做到有安排有计划有执行有反馈,希望自己能越来越精进于时间管理,好好利用现在所拥有的的时间,去学习更多,变得更好。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于