曾几何时,这个数字只出现在科幻电影之中,曾几何时,我们还以为2020还很遥远,想不到,不知不觉,我们就已经置身其中。
回顾2019年,如果用一个词来总结,可以用“跌宕起伏”来形容。今年整个大环境都不太好,“互联网寒冬”、“融资困难”、“裁员潮”、“倒闭”、暴雷等等,如果再用一个字来总结就是——「我太难了」。从年初自己就在思考,在这寒冬来临的时候,唯一不变的就是拥抱变化。
不知不觉已经从事前端开发三年了,作为一名连续多次跨行,并最终选择前端开发,找到自己的内心归属的人,这一路下来还是比较艰辛的。
接下来简单聊下自己连续跨行,并从事前端开发的经历,算是对自己过去几年的工作小结,希望能帮助到那些曾经像我一样处于迷茫、徘徊中的人。
早在大学的时候就喜欢折腾,其实也不能称之为折腾,应该叫迷茫吧。记得高考志愿当时填报的是汽车相关的专业,但大一还没过多久,我就感觉到迷茫,觉得以后就要干这行,并不是自己想要的,感觉以后不会有多大出息。就自己做主调到了土建相关的专业,自己觉得当时这个专业出来应该很牛逼,盖大楼嘛,应该来钱很快的,就这样第一次任性改专业。
在大学换专业只是一方面,还有在大学里参加各种社团活动,竞选学生会干部,并担任过学习部部长、勤工俭学过,在食堂里帮打饭、做过生意,和校友一起摆过摊,制作名片、卖过自行车,给别人照相,组织活动拉过赞助等等。为了不想跟自己不喜欢的室友住在一起,就自己搬到别的专业的宿舍去,只为了清净,我算了下整个大学期间换宿舍至少五次。到大学实习的时候,我选择去了一个和本专业相关的工地去实习,还是托亲戚去的,干了有半年吧,感觉和自己当初想象的不一样,每天跑腿送资料,跑工地很无聊,感觉学不到什么东西,就是再熬个几年也不会看到希望,感觉一眼就能望到头了,就又陷入了迷茫。
这时我表哥建议我去学编程,凭借着大学期间对电脑方面也有一些兴趣,就决定转行计算机行业(经历了那么多,此时的心已经静下来,不再那么浮躁)。接下来开始看视频和教程一个一个比着敲,事实上对于一个不是科班出身,对代码一窍不通的我难度可想而知。不理解其中的原理,经常学着忘着,每次忘记都得多敲几次才能记住。当时我表哥知道了给了我一个建议,让我把每天所学的内容通过写文章的形式在订阅号上发布出去(在我另一个订阅号,下面附文章截图),这样不仅对自己一天学习的内容做个总结,别人也可以看到正好监督自己。
我觉得挺有道理的,就开始尝试,第一次开通订阅号,算是有了自己的自媒体。起初我表哥每天都会看我写的,觉得有写的不好的都给我指出来,有一天没发就消息提醒。就这样不敢有一丝懈怠,对发出去的文章质量也要负责,不能偷懒每天一篇,坚持几个月,发现确实起到了一些作用。经常也可以回过头来复习之前已经忘记的知识点。最终再通过做一些实践项目来提升自己,然后又过了一段时间开始准备面试了(在这里就不说找工作的艰辛了,要不然要说的太多了)。
就这样在2016年底终于有人要我了,觉得当时兴奋极了,觉得眼前充满了希望,神马都是浮云,然后在公司开始实习并做项目,记得当时,一遇到不会的问题就先找度娘,也不想这么多,就想着能实现就好了。但这样解决问题的方式也暴露了一些问题,就是遇到了感觉很多棘手的问题,碰到一个问题就卡住半天。就这样慢慢随着完成的项目所带来的那种成就感也越来越强了,自己也算是踏入了前端开发这个行业。其实最难的就是刚开始的时候,当你迈过这个坎发现其实也并没有想象中那么难了。其实回想起来感觉还挺有意思的,经历了这么多,但也通过侧面看出,我当初的内心是孤独的,迷茫的,缺少职业规划,缺少目标,内心浮躁等等,但自己也不后悔有过这样的经历,试问自己不经历这么多怎么能熬出精彩的人生。
接下来说说项目管理吧,转眼间在如今这家公司已经一年多了,19年初,公司面临转型,组织架构调整,紧接着开始大规模裁员,裁了两拨,几乎走了公司原来人数一半,大家都很伤感,很不理解公司的做法,当然也给了一定的补偿,领导也出面解释说公司现有业务面临收入增长压力,投资人更看好的是良好的赚钱模式,和财务模型,像之前那种拉人赚流量模式都不看好,需要转型探索新的业务方向,近期也不需要这么多人,说要尽可能的站在CEO角度想问题。起初大家都很反感,但慢慢的也都理解了。
从今年上半年开始,从什么都不管什么都不想,有需求就接,没需求就自己折腾的一线开发,转变到了会为项目着想对项目负责。开始被迫担上了项目经理的责任,不光负责自己给自己分的需求,还要协调产品,运营、后端、设计、数据、业务方的各种需求和人员,凡事搞不定的都希望能自己出马,感觉自己从产品到开发到运维都能掺和一点,也是这段时间,感觉自己的能力有了一定的飞进。让自己对产品对业务有了更深的了解,能够设身处地的站在每个人的角度去思考问题,提前规避好,少走一些弯路。
因为很多时候会先入为主,以开发的思维去思考交互,但产品和客户并不了解技术,开发看似正常的交互,在他们看来就是bug,有些场景技术这边无法实现,所以有时沟通挺费劲的。多沟通,多理解需求,做积极推进这件事情的开发,而不是参与完成这件事的开发,就显得尤为重要。自己有时候在和别人沟通的时候,常常遇到不合理的会怒别人,会急躁,这点有待改进,要学会适当控制自己的情绪,毕竟有效的沟通,事情就做对了一半。
随着公司进行裁员优化,业务发展方向不明确,几经波折,之前的前端负责人也跳槽出走。整个前端组顿时群龙无首,感觉大家都有一些懈怠,没人组织任务分配,估时也没个标准等等一些问题。凭借着内心的责任感,自己主动承担起需求对接,开发任务分配和估时,并负责核心难点的需求开发等。经过一段时间,cto找我们几个前端核心人员谈话,最终决定让我担任前端leader这个角色,我觉得这也是个锻炼的机会,自己之前也没有想过会往管理层上发展,通过这次尝试也对自己以后的职业发展道路有个规划。
下半年,产品线增多,前端开发人手不够,需要扩招两三个中高级开发,目前团队7个。紧接着开始一面两面,从最开始需要在网上疯狂搜面经,到后来慢慢的学会了引导,基本上,从面试题,理论知识开始到优化、框架、网络协议、数据算法结构,排序等等,能聊一两个小时还聊不完,记得当时面的最长的一次是,从上午十点开始一直到面到下午三点,期间一直没有上厕所,也没吃饭,真不知道自己当时怎么坚持的这么能聊。到最后我就直接问面试者说出一个自己认为比较有挑战或者最难的一个问题,并说说自己是怎么解决的,基本上也不用去网上找什么常见的面试题了。能聊的东西太多了,面试官需要在最短的时间,通过一些简单有力的问题去寻找自己想要的那个人,而不是所有的问题都问一遍,要不然不光浪费了自己的时间,也耽误了面试者的时间。
总结一下自己面试的流程,一般会先问面试题上觉得有意思的几道面试题,问他的思路,遇到不明白的,给他指出来,并给他解释;然后再聊基础理论知识,然后再聊拓展方面的,几大框架和源码、构建工具、node、前端工程化、网络协议、数据算法结构等,最后再聊项目。
感觉面试这种东西,一方面是需要准备充分基础不错,还有对学习的态度,思考的深度和广度,再有对业务的理解,最后还真的是靠运气和缘分了。
下半年的时候需求变的突然很多,而且还都是些紧急需求,自己不光负责一部分需求开发,还负责整个需求对接,和人员分配,估时等,以及团队其它人遇到问题都会找你。说实话确实挺累的,每天脑子里面想的都是怎么带团队,怎么提升大家的幸福感和使命感,让每个人都能找到存在的意义,而不只是每天重复的搬砖。如何提升整个前端的战斗力,高效率开发,怎么搞前端基建,完善前端监控运维体系,封装公用的组件,维护前端规范等等都是我要考虑的。
后半年开始制定了一个规范,就是一个在线编辑文档维护每个版本每个人的任务分配拆解和估时表,里面会让每个人去维护每个版本,所分给他的需求做一个详细的拆解,详细到写每个组件所花费的时间,当然对应的也有任务定级表可以辅助大家进行合理的估时。这样做的好处是一、每个人都可以方便的看到相应的需求分配和开发周期。二、方便了管理者统一规划项目优先级,使项目排期更合理,随时可支配空余的人。三、可以看到每个人的排期情况,给与合理的建议。
话说带团队,除了各种规范的完善,理念的确立,主要费精力的还是在人力分配层面上。七个人,七张嘴等着吃饭,活多了怎么排优先级,活少了去做什么基础设施,有问题解决问题,没问题找风险。几条产品线并行,有时候在月初排期的时候,工位的人就没停过。有时候觉得,能专心几小时不被打扰,都是一种奢求,怎么去做时间管理又成了另外的一门学问。也是这段时间,慢慢的觉得,越往上越不容易,只对着需求写代码其实是一件很幸福的体力活。
努力成为一个有效,有趣,有影响力的前端团队
鼓励创造结果,而不是为了追求上班时间
要有终身学习的态度和意识
鼓励主动和主人公意识,为自己而生,为用户工作而非老板
鼓励创新,努力为追求提高开发效率而不懈奋斗
这个也是接下来要发力的一点,规范前端代码风格,确定以下三点基本规范:
1、基于项目版本控制,统一项目遵守的 Git 分支模型
2、对于 JavaScript,使用统一的 Eslint 规则
3、结合团队成员现有风格,明确统一的代码规范
虽然肯定实行起来会很麻烦,但也要搞起来!
说一个小程序相关的项目吧
项目其实主要看公司发展的一个方向,现阶段公司需要大量的引流,拓展不同的渠道,拉新,付费转化。所以今年依托于整个微信巨大的流量,做的小程序项目挺多的,可以简单分为几大类型,支付型、平台型、活动性小程序,这其中遇到一些非常棘手的问题,但也通过技术手段想方设法绕过。
1、比如小程序在iOS平台不支持虚拟商品购买,为此审核被拒好几次,无奈最终修改产品流程,判断手机机型是iOS绕过去。2、再比如功能性小程序,用户可以观看学习视频,但是也因为微信审核,说没有资格证,被拒好多次,然后又是通过技术手段,通过代码判断是否是沙盒测试环境,就自动不显示视频,进而绕过审核。3、还有一个运营裂变小程序,属于音频类小程序,用户可以很方便的听书看书,也是审核被拒,说是没有相关资格证书。其实所做的这些项目如果最终不能上线,不管对公司还是个人,都是损失,公司投入人力,物力,财力,有可能因为这个原因导致整个业务无法进行。对于个人,其实看到自己付出了这么多努力开发出来的项目最终不能上线交付使用,就如同自己的孩子一样痛心。4、还有一点就是对于多端都需要有的业务场景,尽可能的共用一套代码,减少开发量,这个接下来会考虑用一些成熟的框架。总结一句,就是在开展项目时,和需求方做足前期调研,做好前期技术调研,规划好所用的技术栈,尽可能规避一些问题,提前暴露风险,如果不能满足,就尽早放弃掉。
身体
这一年报了个私教,开始认真健身增重
学习
阅读上
技术上
写作上
财务
旅行
生活
工作
学习计划体系
2020年会朝着上面画的思维导图学习和规划,逐步建立自己的知识体系,持续输出文章,通过项目实践来运用所学的技术
目标和计划
说几点关于如何管理情绪,自己目前正在阅读《关键对话》、《非暴力沟通》等书籍。记录自己平时情绪方面的问题,思考导致自己烦躁的原因,让身边的同事给予监督等。
对于时间管理上,制定合理的作息时间表,记录每周干了什么,每周进行反思。按时睡觉,不熬夜,高效工作,快乐生活。
“世间磨难,皆是砥砺”,世上最苦最难的地方,往往是激励一个人砥砺奋斗的地方。送给依旧处于迷茫、徘徊中的童鞋,希望2020的我们不再迷茫,不负韶华,只争朝夕!
- ------- **end** -------- -
如果你觉得这篇内容对你有所帮助