引言:为什么要写这个总结呢?直接原因是因为今天参加了公司的Q1总结会议,感觉每位领导的发言都对自己或多或少的产生了些启发。同时,自己今年的第一季度相较于去年的第一季度,反差比较大,同时,又保留了一些相似的点,我觉得这些反差和相似的地方,比较有意思,所以想记录下来。当然,最直白的原因就是职业和技术发展的瓶颈期,让我不得不去反思和总结。 新年伊始,老东家以迅雷不及掩耳之势进行了一场变革,对于我的影响就是离开公司。我很惊讶,同时也有心里准备。惊讶可能在于公司这次裁员时间的选择。2018年9月底,公司的变革拉开序幕,期间,陆续有团队和个人离开,但到11月份,就基本没有在传出这类消息。所以,对于年后这次变革,我多少感到意外。同时,如果说年前的变革出于业绩和公司成本的考虑,那年后这次变革其实有些随意。截止到我离开,只波及到2个人,当然包括我。由于年前的变革,所以,我对公司裁员是有准备的。业绩不好,必然会是这个结果。所以,我的这次失业相较于之前的主动辞职,倒显得更淡定和从容。 我从事iOS开发以来,由于各种原因吧,基本1年换一个环境。起初是因为初创公司的稳定性问题,被动离开。后来到自己开始思考,当然也包括厌恶环境,但更多的是考虑成长。因为,就面试而言,对我来讲,就是一次比较大的阶段总结。同时,新环境新项目的接触也对我当时所处的那种职业发展阶段有好处(当然,这个是仁者见仁,智者见智的,不能一概而论)。负面影响就是简历上的工作经历不是很好看。那18初的那次离职是自己主动提出的,相较于之前,我开始有点职业规划的想法,而当时的公司可能不太适合我继续发展(这个也是个人的理解,也许是自己想太多)。那当时离开后,我花了将近一个1月的时间找工作。时间比较长,最直接的原因是没有找到当时自己认为比较理想的公司,同时,也想利用这个时间,好好想想自己的问题。当时,有这么一家公司,面试的地方和工作的地方分开,是做项目外包。由于薪水高于了我的最大预期,我就答应了入职。但入职的当天,当人事把我领到宾馆去办公,我就果断离开了。当时我很果断。后来,遇到这么一家公司,待遇也可以,公司是做旅游业务的。可是在我入职的第三天,告诉我公司人员安排计划有变,我就离开了。怎么样,这两段经历都还挺有意思的吧。我不展开说了,要不然,就彻底偏离主题了。后来4月初,入职了A公司,也就是年初离开的这家公司。在A公司的这将近一年时光里,从职业发展层面来讲,我的收获是,不深入理解产品的开发做出来放入东西没有灵魂。当然,我之前是一个不折不扣的“技术开发人员”。同时,还有一点就是,让我开始对软件开发,对技术有了敬畏之心。用老鸟的话讲,我开始上道了。基于此,我对A公司并没有厌恶之心,即便被扫地出门,我依然感激。 离开了A公司,我开始找工作。把自己早就准备好的简历拿出来,开始各个招聘软件筛选。我现在入职的B公司,其实是我第一家面试的公司。先声明,我讲这个事情,不是想装逼,不是想表明我技术多厉害,或者运气多好。我之前在有道笔记中有总结过。我觉得在A公司的成长是主要原因。我可以清晰的看到自己的进步以及自己的不足,可能不足更多一点,所以,我其实是越深入研究,越看到自己的不足,这也是我对技术产生敬畏之心的原因。由于不断的去学习,这些不足反而促使了我对技术的好奇心空前的大,我开始对各种技术产生兴趣,并愿意去思考进步。当然,这并不是总是产生正面影响,过多的技术的关注,让我无法聚焦,最直观的感受就是对其他技术都有涉猎,但iOS方面却进步不大。被裁掉后,我意识到了这个问题。我把自己github的备注改成了聚焦。我希望我19年能够把重点放在iOS上,当然,对其他方向的技术也要保持一定的关注,但要分清主次。现在,我入职B公司1个月整。接下来,我想谈谈在B公司这一个月的认识和成长。 B公司是我从业以来入职的最大的一家公司,虽然是外包进来的,但我更喜欢把自己看成是内部人士,不是想装逼,是这样做可以更好的利用工作环境成长。我们有时候不必在意这些行政问题。我们应该把眼光放在持续成长的角度(这一波鸡汤是不是有点猝不及防)。项目是不能具体透露的,因为会违反保密协议。我这一个月,主要做了整个项目UI层的重构,还有其中一个模块的功能重构。直接讲心得吧。 1,珍惜你做过的每一个项目和每一处产品细节,这些东西对你职业的发展来说真的是无价之宝。展开讲可能有点老生常谈,我觉得大家深入到自己的项目中去,去思考一个项目,一个功能的出发点和意义。自然就明白,醍醐灌顶和茅塞顿开是种享受,也是一种境界。 2,孤立项目谈技术,或者孤立技术谈项目都是无稽之谈。我们要解决什么问题,我们要达到什么效果。技术只是手段,项目也只是一种描述而已。换个人,这种描述又是另一个样子,实现的技术手段也会不尽相同。但我们要解决的问题,我们的目的却是还是那个样子。所以,尽可能使用合适的技术来表达我们的产品,真正解决用户的迫切需求,才是我们技术的出路和技术的根本目的。空谈某某技术屌炸天,或者把PPT做成世界第一,都没有意义。一个产品,一个App,或者一个企业,总是为了解决核心用户的迫切需求才存在。也只有如此,才能与资本保持良好的关系。也只有如此,你的福利待遇才可以落地。所以,说白了。作出对这个社会有价值的东西,你才能从社会那里得到有价值的回报。这里扯的有点多了。 3,你真的应该好好理解你的代码是怎么运行的,都做了些什么事情。精确到每一行代码的运行。我这一个月养成了一个喜欢,喜欢在做完一个模块后,尽可能多的打断点调试这个模块。我不仅可以深入了解业务逻辑,找出其中可能存在的bug,也让我对在这个模块中采用的技术方案有了更细致的思考。我就说到这里。技术的东西这里不详细说。其实是想积累一些技术干货,然后做分享。 4,设计模式和各种重构手段,以及MVC,MVVM等技术解决方案,它们不是万能的,更不是说使用它们来彰显你比别人懂得多。就像理解产品的意义在哪里一样,这些前辈总结的经验,我们要去深入了解其原理和目的,才能合理的使用它们。我目前的代码设计过度问题,就是没有深入做到理解。同时,也是没有对项目的整体发展与当下的项目进度做一个权衡。用人话说就是,目前这样做会让这个模块变得复杂,当对以后项目的扩展有好处,这种做法其实并不可取。你应该先立足于当下,同时基于项目的发展和进度,对代码进行不断的重构和优化。可以做超前的规划和考虑,但我们的关注点还是要在当下的项目中。基于项目需求变化而不断调整优化的方案才是最好的,而不是,一开始就去考虑太多。使用不当,这些精华反而会使我们的项目变得复杂不宜读且维护困难。推荐本书《重构改变既有代码的设计》。我还没读完,但我强烈推荐。高手的代码,用简单的思路解决复杂的问题。对问题的抽象能力和算法理解是我的最大不足,往往把简单的问题复杂化,这中间有对设计的误解误用,也有对技术的误解误用。这里要感谢入职后带我的大神们,虽然我被骂得很惨,但从13年暑假工开始,我就明白,没有任何事情是绝对的。挨骂这个事,也可以两面看待,况且人家说的确实有道理,你可以有情绪,但你不能让情绪战胜理智。客观来讲,入职以来的这些“不愉快”的小片段,反而是我体会最深,也是成长最多的地方。最近上映的“老师好”电影,其实也在阐述这个观点,只是,那些学生时代的孩子还不能理解。我们都是成年人了,如果还不能看透一些事情,被表面的东西左右自己的情绪和行动,而把理智放一边,那其实应该给自己的情商补补课了。 未完待续!!! Q2,我希望自己真正把聚焦落到实处,用项目中的每一行代码来体现自己每一天的进步。