作者:追梦1819
原文:https://www.cnblogs.com/yanfei1819/p/10918137.html
版权声明:本文为博主原创文章,转载请附上博文链接!
本文记录的是本人最近的工作情况分析。避免引起不必要的麻烦,文中隐去相关的公司信息和项目信息。也麻烦读者切勿对号入座。作者本意只是希望通过对最近工作的分析,引起包括我在内的大家的忧患意识。当然,如果可以给后来者一些启示,更加求之不得。
最近工作状态分析
说是最近,也许应该从入职这家公司开始,即今年第一个工作日。
貌似,从此过上了让别人羡慕的工作生活。月薪过万(三线城市,少部分人眼中的高薪,可我并不觉得有多高),从不加班。有大把的业余时间提升自己,或者消磨自己。
目前参与了两个项目,xx医疗床和xx机器人。对于外人来说,听起来高大上,人工智能,图像识别,自动巡检。其实对于我们软件开发人员来说,做的时情都一样(两个都属于软、硬件交互的项目),无非就是功能需求分析、垒加业务代码,增、删、改、查。无啥技术含量可言。要说与以往的工作不同,那就是项目对于个人来说更加简单,更加得心应手了。只要花极少的一部分时间就能完成相应的工作。曾经极其羡慕这样的工作,工作不忙、身体不累、任务简单、薪资过万,不过就是如此。
可是,这样的日子,这样的工作,对自己来说,越是轻松,越是简单,就越让我害怕。害怕突然一天工作失去了,自己却啥都不会了,然后就被无情的淘汰。不是噩梦,是一个铁一般的事实,正所谓“弱肉强食,适者生存”,亘古不变的道理。也可能是上一份工作留下的阴影和教训,让我的忧患意识格外的强,"生于忧患死于安乐"。
原因有很多。
首先是技术。进入公司后,才发现,我的技术能力竟然是在这个团队最厉害的(目前软件开发人员有四个)。不敢想象,我这样渣渣的技术,而且还是非科班出身,居然来搭建项目架构、指导别人使用(引入的技术)、帮助别人解决技术难点,真的不敢想象。在我的心中,我距离那样的角色还相差十万八千里。
这种表象会让我落入一个陷阱,那就是可能会让我产生一种我的技术已经很厉害了,“老子天下第一”的幻象。无法识别是自己的技术真的成长了,还是别人的技术太渣了,或是项目所需要的技能要求不那么高了。
这就会导致,如果以为自己真的很厉害了,无人可比,然后不思进取,不保持技术敏感度,不学习,幻象中自我欣赏,在安逸中自我颓废。哪一天让我离开这一家公司,甚至是这一个项目组,可能就是走向消亡之时。
其次是业务。在职业发展生涯中,如果条件允许,做一个业务专家也是一个不错的选择。就像我的一个朋友,深入保险行业的再保业务,虽然技术不是团队中最厉害的。但是在团队中照样有着举足轻重的地位,福利待遇甚至比纯技术人员更加优厚。这一个选择的缺点是,跳槽的范围较窄,毕竟做相同业务的公司不算很多。
不过,我不具备这一条件。目前每一个项目都属于很独立的项目,不具备深入性,或者说,再怎么深入,业务也不是固定不变。另外,项目的依赖性太强,依赖算法组、工业设计组、硬件组、软件组等。想一个人了解整个系统的方方面面,无异于异想天开。
再者是管理。公司的管理,真的是让我不敢恭维。单从从两个方面来说吧。
1、公司的运行。员工的办事效率很低,时有相互推诿、踢皮球的现象发生。比如说,项目组缺人,向人事部申请人力资源,一般情况是,就没有然后了。(听说当时我这个职位,招了半年多,直到我入职);再比如说,我从入职以来,一直在申请办公电脑,可是都没有回音,四五个月后,人事部还不知道我是用自己的电脑,还以为我的电脑早就下来了(这个现象不仅仅在我一个人身上)。最后他们自己给出的建议是,要申请什么,一定要天天催、天天催,不然我们会忘记。我淡然一笑,内心想,那你们什么事不会忘记?
其实从一个公司的管理,可以看出一个公司的活力与前景。当然,当一个公司发展到一定规模的时候,一般都会形成这种风气。
2、项目管理。在这家公司,是我待过的公司中最闲的一家。在我看来,因为闲,并不是因为没有事情可做,只是因为项目管理者的携带、或者管理能力不足导致。整个项目方向不明确。
首先,管理者并没有相关的相应的项目管理经验,而且都是所谓的产品经理兼任项目管理。关键的是,产品经理也不是专业的产品经理。xx医疗床的产品经理是做行政管理的,xx机器人的产品经理是做硬件的。
其次,产品需求并不明确。因为产品经理的业余不专业,不能给出专业的需求,不能给出合适的界面,导致没有人知道是具体是要做什么,没有一条明确的主线。
一个业余的产品经理兼任项目经理,再加不明确的项目需求,同时领导又不肯放权,让我们以我们的工作经验来设计(事实证明,我们最为开发者设计的系统,比产品经理的设计更加专业,也更加人性化),结果可想而知,整个项目的方向不明确,项目架构混乱--能够预料到的结果是,领导想到哪做到哪,及时项目最终成型,估计也难以经得起考验。
最后,是技术氛围。由于项目涉及的是软硬件交互,非真正的互联网项目。故而,其所用的技术是远落后于互联网公司的。同时,团队中,并没有可以作为技术标杆的同事,没有那种技术氛围,无法向更厉害的人看齐(项目中遇到的技术问题基本都是我自己来解决)。
其实就眼前来说,这种状态是无比安逸的。是很多人羡慕的工作状态。但是从长远来看,无异于“温水煮青蛙”,难以适应一个快速变化的互联网行业。大的方面说,难以适应快速发展的社会。
要想对梦想持续追求下去。职业的思考和规划绝不可省略或者忽视。
工作学习规划
其实很早就很害怕,在工作与学习中没有方向前进。今年年初时,就给自己定了技术学习目标。
主公方向是分布式、高并发和虚拟机三大板块,其余细枝末节在此忽略。
选择这三大块的原因,是觉得这三大块是向高级软件开发人员的过度,而且这也可能是未来互联网技术的大方向。当今科技发展太快,电脑核心硬件已经不满足摩尔定律。要提高软件系统性能。无非是从分布式、高并发和虚拟机优化三大方向入手。另一个重要原因,以以往的经验来看,面试时,这三大板块也是决定你级别和薪资的重要考量指标。
为了跟上任务的步伐。目前每天的任务,就是花一部分时间(由于任务很简单,工作需要的时间每周也就几个小时或者十几个个小时,不是因为工作量少,只是个人一直思考如何提高简单内容的效率)完成工作任务。其余所有的时间用来学习。
不过,在学习中出现不少的问题。三大板块的技术点繁而杂。很多很多的内容,以前并没有接触过,导致要反复理解、反复推敲,花费大量时间(于我来说是浪费大量时间,因为作者学习效率不算高)。另一个更重要的问题是,这些技术在实际工作中其实用不到,正所谓"面试造航母,工作拧螺丝"。这也是这个行业中存在的一个普遍的问题。这就导致了一个问题,自己所学的东西自以为了解透彻了,但是可能都只是浮于表面。而且,项目中没有实践到,不利于记忆。
工作给我的回报之一,就是,碰到问题不可心浮气躁,要沉下心一步步追根溯源,以求解决问题。因为,其余的任何抱怨、消弭,都不会让问题自动消失。有这个时间去抱怨消沉,还不如寻求解决方案。这颗心还是要有的,(问题)万一解决了呢?
以上所说都属于目前工作与学习中的问题。分析过后,就是寻求解决方案了。
其实这样的问题无非就一个解决方案:静下心,好好钻研,无捷径可寻。如果说有,那就是跟着行业前辈的步伐,一步一个脚印。
以上说的技术,是向上层发展的技术。下面说说我对底层技术的看法。
我是生物技术专业出身。所以对计算机底层的知识都是缺失的,例如计算机组成原理、操作系统、数据结构、算法、网络协议等。这就犹如一座大楼没有根基,上层做的再好,也是空中楼阁。也像一张很大的渔网,无论其余的地方有多结实,渔网中有漏洞,捕捞的鱼依旧会比别人的少。
计算机底层有多重要,刚毕业的时候并没有感觉(其实当时被工作弄得焦头烂额,脑海中压根就没有软件系统这一概念,更别说去深入计算机底层了)。但是随着工作的深入自己专业知识的深入,也跟其他同行有相同的感觉,那就是走得越远,计算机底层越重要。
很多人感叹程序员越老越不值钱,以我猜测,是他们只知其然,而不知其所以然。因为,软件不管向何种方向发展,何种框架发展,其最基础的理论、算法、数据结构等,这些是不会变的。对此,个人要格外注意。
经历过多家公司,也共事过很多同事。有技术很厉害的,有业务很厉害的,也有技术很差的。不过,不过据我对公司与同事的观察,给了自己一个这个行业约定俗成的规则。那就是,在国内目前的大环境下,纯技术真的不值钱,原因有两,首先是目前国内大多数互联网公司或者与互联网沾边的公司,都没有自主研发新技术的能力,基本用的是开源技术和来源框架,就拿之前就职过的某一家物流公司来说,公司所有的技术团队都为公司的业务服务,这就形成了一个让人难以接受的事实,技术部门工作再努力,开发的系统再强大,都无法成为核心部门,甚至成为了边缘部门(而核心团队是销售团队与风险管理团队),当然,这也是可以理解的。另一个原因就是,就个人发展来说,只懂技术不懂业务,随时可能被他人取代,这也是整个大环境下恶性循环导致的一个结果。公司能够盈利的业务往往是他们的业务,而不是技术。技术对他们来说,只不过是一个工具,仅此而已。
不过话虽如此,我们却不能忽视技术,因为我们是做技术的,技术是我们的立身之本。不仅不能忽视,我们还要时刻保持着技术敏感度,保持高强度的忧患意识(这一步没有捷径,只能学习、学思考、总结循环着做),以保证不会被淘汰。
工作,其实考验一个人的综合能力。
很多人说,要将自己的专业知识深入进去,专十而不如精一。我并不反对这句话。
可是,观察到身边的环境与人,并没有符合这句话(也可能是我所在的这个层次只能见到这么多)。其实我觉得,我们应该寻找一个平衡点,这个平衡点就是个人的专业知识与其他能力的交叉点,当这个交叉点达到高峰的时候,就是我们掌握到专业知识与其他能力的恰到好处的程度,因为毕竟一个人的精力和时间是有限的。
这让我想到一个比较贴近生活的例子,那就是做买卖。一件商品,如果定价过高,单件商品的盈利大,但是销售量就减少;而如果定价低,单件商品盈利少,但是销售量就提上来了,正所谓薄利多销。所以要想总盈利最大,并不能走两个极端,需要通过统计学函数寻找一个最佳的定价。(当然,现实中这个例子受到诸多因素的影响,这里只是为了说明这个道理,简化了模型)。
所以,在我看来,工作中,我们不能只专注于自己的专业(技术),而要多多思考与工作相关的内容。
拿我们的职业来说,我们的工作内容就是软件开发。只要按时完成任务,基本工作就没啥大问题。但是,如果我们考虑未来的职业规划,更深入一步考虑我们的工作内容呢?比如:
- 站在用户的角度,系统如何才能更加人性化?如何才能更加只能?
- 站在产品经理的角度,如何才能表述好用户的需求?如何能够清晰地把需求展示给开发人员看?如何画出高质量的选型?
- 站在开发者的角度,如何提高系统的性能?如何保证系统的安全性?如何保证高并发情况下系统不会挂?如果拆分成分布式,要如何去做?
- 站在测试的角度,如何可以提高测试效率?如何可以做到快速、准时全覆盖测试?如何做压力测试和性能测试?
- 站在项目管理的角度,如何分配工作?如何沟通项目进度?如何协调整个团队高效运转?
- 等等。
其实看着这些,我们的时间和精力远远不够用(当然这也可以督促我们不要浪费时间)。
正因为时间和精力有限,我并不要求自己每一样都要去掌握。知识在不断更新,但是有的东西是不会改变的。正如上面技术 中提到的计算机底层的理论,正如用户的心里,正如管理学知识等等。抓住这些本质,我相信其他的也信手拈来。
另外,个人认为,其余一些看似与工作无关的能力,重要性也不低于看似与工作有关的能力。例如文字驾驭能力,沟通能力,营销能力等。我相信,这些能力综合在一起,决定你将来能飞多高多远。
在学习与职业规划中,我将管理能力、沟通能力、营销能力、心理学知识等纳入到自己的必学知识体系中去。其实这些计划,并不代表个人有多大的志向或者梦想,只是在一个竞争如此激烈的社会中,不进则退,退则很容易被社会淘汰。
社会不相信眼泪,相信的只有你的努力和你的成长。
![](https://img2018.cnblogs.com/blog/1183871/201905/1183871-20190524144628817-1065962267.png)