IT人如何突破技术瓶颈

​一般情况下,计算机专业毕业后在某一领域工作3-5年后,会成为部门或公司里面的技术骨干,处于这个阶段的技术人员一般会面临以下几个问题:

IT人如何突破技术瓶颈

 

1、技术学习动力变小:此时技术能力达到一定水平,周边可以学习的对象越来越少,感觉自己的技术提升遇到一个瓶颈。这种感觉是正常的:

(1)高端技术人才是呈现倒金字塔形态的,身边缺乏能引领你的人生导师(对于有明确技术定位而周边没有引导师的人,在这个年龄段离职概率也相对比较高);

(2)IT圈内的技术交流,大多数人都是在做科普以及刷存在感(俗称CNB),对个人提升作用越来越小(参加一天的技术大会还不如去图书馆刷新一天的书);

(3)目前国内的文化导向导致技术人专家逐渐转向管理岗位,技术缺少积累,特别容易出现断层和继承(目前的在线视频教学让一部分技术专家更乐意分享技术经验,从某种程度上缓解了这个问题,但不能基本解决)。

2、技术深度与广度的选择的困惑:技术深度上的提升,可以逐步做到业界大牛,技术能力越来越强,广度延伸更容易变成全栈技术人才,两种选择各有利弊,每个人的时间和精力有限,如何抉择?

3、技术方向的困惑:软件公司的技术框架基本都是在早期通过技术选型早已确立,与当时的业务规划、当时的技术趋势、参与选型人员的经验积累相关,对于成熟的较大规模的业务,一般技术选型会落后新技术2-3年,这种情况对于技术人员来说是矛盾的:实际工作中需要使用老技术,但是业内技术的趋势又是在朝着新技术的方向发展。

 

相信很多技术人员和技术管理人员都存在上面这三种或部分的困惑,包括我自己。首先,我觉得这种困惑的本身是符合学习曲线规律的(即:任何一个技术学习和实践,越是到后面学习的时间越长,本身能力提升越慢),但是,如果你能够真能够坚持和保持专注,能够耐得住寂寞,等到量变到质变的那一刻,就是一种一览众山小的新境界(脱离筑基期)。

IT人如何突破技术瓶颈

针对的三个困惑点,我的思考如下:

 

1、技术学习的困惑,在当前互联网技术如此发达的今天,这个困惑相对来说最好解决。任何新技术或知识点的学习,只要你有兴趣就一定能够找到相关的学习资料进行自我学习(万能的某宝,在一定程度上推动了技术的普及和发展)。但是,兴趣只是驱动力,问题的关键是:学习的新技术如何深入,如何去实践。没有真正的大型项目的实践总结,理论终归是理论,要转化为你的实战经验是相当困难的。

如果没有实战机会,也比较难保持长久的兴趣,能够做到熟悉或知道已经不错了,而要真正做到精通或理解就比较难了。另一方面,现在的新技术都在做生态,你学一门新技术,会发现关联出一连串的新技术(使用过程中会涉及庞大的知识面),而且各个知识点之间相互影响。只有有了实践机会能够不断的解决这类问题,不断优化和持续改进,技术自然深入。

举一个例子来说,近两年比较火的容器技术,有不少书籍都在系统的讲,而且也有很多的技术专家的实践分享(BAT、华为等)。我们在学习这些理论时往往感觉比较简单,也容易理解,但如果没有对应的实践场景,理论终究是理论,很难深入学习。有人说自己搭建环境实践,那是要付出巨大的成本、时间和精力的。我目前就在尝试搭建模拟场景来实践Kubernetes生态,我简单列一下我目前准备的清单:

一台服务器(dell R720)

一间平时不住人的屋子

一条网速不是很差的宽带

一个互联网IP(方便随时远程操作)

一个UPS电源(随时防备停电,下面告诉你们为什么要用UPS)

 

上述直接成本,以及电费、服务器声音对家人的影响等因素,代价真的不小。目前实践的Kubernetes生态(涉及 k8s集群本身、gitLab、Jenkins、helm、harbor、ceph、promethors、pinpoint等),启动了30+个虚拟节点,服务器内存一直处于报警状态,期间发生过一次停电,结果有几台虚拟机因为硬盘文件丢失启动不了(说实话,都有放弃的想法了,最后真的是含着眼泪,重新安装虚拟机、部署组件、配置并和相关组件联调,知道UPS的重要性了吧,现在家里一停电,家人告诉我后我抓紧远程关虚拟机IT人如何突破技术瓶颈),如果让我再采购一台服务器,并配置相关配套,还真舍不得,都是真金白银啊!!!

 

总结:技术学习的困惑不是简单的兴趣问题,也不是如何学习的问题,而是是否有大型项目实践机会和锻炼的问题,但是往往大部分的公司都无法真正提供这种项目的机会,你要完全通过自己学习和模拟试验来深入掌握这些技术可行性真的挺低。所以,如果你有幸处在相应的环境,好好珍惜吧,八辈子修来的福气。

 

其二,技术学习的深度和广度问题,这个问题的回答,要因人而异:

技术管理型人员

重点是更广的知识面和综合能力提升,不是深入到各个技术细节。同时,得注意技术以外的软技能的培养和提升。工作的重点是总体规划和设计,并能够对问题进行分解。分解后的技术问题和细节转交到细分岗位的专业技术人员去实现。当然,要达到这个水平需要有大量的技术积累(关于这个矛盾,圈内有个很有名的话题:架构师要不要写代码。我欣赏的答案是:不写代码的架构师是耍流氓)

专业技术型人员

技术深度更加重要,技术的深度才能真正为你创造更大的价值。技术深度的提升越到后面越艰难,学习周期和成本也越大。也正是由于这个原因,位于技术金字塔顶尖上的人也就越少,自然你个人的核心价值体现越大。

规律:长期专注于一个技术方向,任何广度知识的瓶颈都是为了支撑你在深度上的突破。技术深入到瓶颈期时,很可能需要暂时停顿下来补充广度,最终再回到深度钻研上来。

 

3、技术方向的选择。当你真正在某一个技术领域提升到一定阶段的时候,一般不会像新人那样*的追求新技术、新特性。考虑的是更多的是由业务和面临的问题来驱动技术选型,用最适用的架构来解决当前的业务问题并保留一定的扩展性。

当今,技术发展和迭代的速度都非常快,你当前选择的技术或框架都可能在2-3年后就过时,但是如果当前的技术能够很好的支撑业务就是好技术。如果存在无法支撑的地方才应该考虑引入什么新技术来解决,并做好技术选型和对比。

 

总结:不要纠结目前使用的技术是不是最新的技术,对于新技术我们应该有敏锐的嗅觉去了解,但并不是每个新技术都要真正在项目里面使用。项目不是新技术的试验田,也不存在技术驱动的技术选型。只存在业务和问题域驱动的技术架构优化。业务和问题驱动IT和技术,是从单纯技术思维开始转变的一个重点。业务和问题驱动技术选型,而不是将认为牛逼的技术经过组合来应用到业务中或来解决问题。

 

如果觉得这篇文章对您有帮助,欢迎关注公众号 “学点儿编程”,公众号不断推送干货文章!

IT人如何突破技术瓶颈