上一次写日志还是大学里一个连Hello Word都不会写,去教研室上自习都不够格的小菜鸟,当然现在是个大菜鸟,不知不觉中都已经工作四年多了,从最初的JAVA(一年),到JS(半年),再到现在的IOS(三年),从最初的一年换两次工作到现在两年多没换过工作,一切看似挺平静的(其实我的内心是躁动的),最近烦透了写UI调页面于是有感而发写下了此篇文章,关于一个工作四五年工作经验的你如何突破瓶颈。
对于一个刚刚参加工作的员工来说是一张白纸,各个方面都不熟悉,可以快速的摄取知识以完成任务,渐渐的会总结出属于自己的一套方法论,渐渐的所掌握的知识足以满足日常的开发需求,但是对于比较高层次的技术点涉猎的还比较少,其实日常工作中对于后端来说最常见的任务就是CRUD(增删改查),前端页面显示,动画效果的实现,而且有好多优秀的框架对此作了大量的简化处理,于是瓶颈就出现了,说到底瓶颈的主要问题在于:
1.不能准确的定位到已经掌握知识中的漏洞,简单解释就是自以为的不一定是正确的或者是片面的。
2.解决问题的思路一直停留在只为了完成任务的层面上对于程序的整体性能,架构的扩展关注的很少。
3.知其然不知其所以然由于大量的运用框架屏蔽了很多具体的实现细节当框架满足不了你的需求时或者框架本身存在一定的bug的时候问题就会变的很棘手。
4.最直观的一般都是最容易实现的,但往往都不是最好的。
5.满足当前缺乏对新技术的探索的精神。
对于暴露出的这么多问题我们是该安于现状还是突破瓶颈达到一个更高的高度呢?我想很多人都是积极向上努力进取的,那么该以哪种姿势做技术来突破自己呢?确实需要工作四五年处于过渡期的我们静下来认真的问题,
首先对自己的认知很重要,知道自己哪里不足,自己擅长什么,自己在哪里有突破,有必要制定一个计划从多个方面来补强。
作为一个合格的程序员所具备哪些基本技能。
1-基础知识扎实全面。包括数据结构(字符串,链表,树等),语法知识(语言的特性,API的灵活运用),常用算法(查找,遍历,排序等等)。
2-思路清晰,能解决复杂的问题。
3-从时间和空间的角度对程序进行优化。
4-具备良好的沟通能力,学习能力,发散思维能力。
做到这些其实只是应该具备的最基本的技能只能说算是一个合格的技术人员,谈不上资深。
那么资深的技术人员应该是什么样的呢?资深技术应该多从架构和性能方面来做技术,能在一个很不起眼的点上都能引申出来很多文章,比如在满足当前的场景下扩展到满足未来可能出现的N多种场景,衡量多种解决方案选出最适合的方案等等。
其次做技术要有情怀,要不以完成任务为目的,工作的过程也是一个自我提升的过程,对于经常用到的类库以及网上的一些解决方案在解决问题的同时都是有必要仔细研究的,作者的构思技术点的运用整理后都可以放在自己的知识库里。
技术无非是横向和纵向两个维度,纵向解决的是深度问题,横向解决的是宽度问题,客户端工程师们需要更多在纵向有深入,横向有宽度的去思考每一个点的问题,在巩固以掌握的知识的同时很有必要拓展一下自己的知识面,对于知识爆炸的今天,学习能力一直都是自己保持竞争中处于不败的核心武器,
在业务中,发现技术的机会,这是抽象能力的表达;在技术中,发现业务的机会,这是技术赋能于业务的体现;你需要的,是多想一步,就那么一步可能差异就完全不同。 在项目里,你不应该只是个 PM,你应该是一个技术核心力量,来发现别人忽视了的问题,来确保技术路线的稳定。
最近很多同事都离职了,有的因为干的不爽,更多的因为嫌薪资低,套用公司大神的一句话“什么职级,薪资,都是浮云,个人牛逼才是真牛逼。一个技术人的一生应该有个代表作,给自己的技术一个交代。
如果还年轻,那就别畏缩,敢于去勇闯,哪怕是个错误的结果。”