是不是程序员总会遇到一个瓶颈期,该怎么解决?

一个人能够发现自己遇到了瓶颈,说明他还有一颗追求上进的心,并没有选择在现有的舒适圈里故步自封,这一点很值得鼓励。

是不是程序员总会遇到一个瓶颈期,该怎么解决?

不为失败找借口,只为成功找方法!关注私信小姐姐找到进步的方法。

任何职业都有瓶颈期,程序员也不例外

几乎所有行业的从业人员都会遇到瓶颈期这个问题。抛开个人主观上的原因先不谈,从公司的层面来讲,雇佣一个员工不是为了培养一个跨专业跨领域的技术专家,而只是为了获得一个在某项业务方面熟练高效的技术工人,这种现象无疑加剧了个人瓶颈期的形成。

IT领域当然也不能例外,IT行业本身就是一门技术特别显性的行业。程序员工作范畴大而宽,知识内容深而散,出现问题很容易,但是如果需要理解和解决问题,则涉及太多的知识,所以相对较难,因此程序员比其他工种更容易出现瓶颈期。

程序员遭遇瓶颈期,有多种可能

宽泛地说,程序员的瓶颈大致分为以下几种:

1.基础知识缺乏

很多人在学习编程的时候,大都是针对需要解决的问题来学习的。只注重更快地上手掌握需要用到的工具,却忽视了基础知识的培养。对于更基础的算法、计算机原理、网络基础等知识,在真正理解之前,一般只能强行记忆,无法形成具体的知识体系不能“推断”,造成了额外的心智负担。

是不是程序员总会遇到一个瓶颈期,该怎么解决?

以Python举例,许多初学者都遇到过:读写中文时总会出现这样那样的编码错误。求助之后得知:你可以打上编码标记,可以设置默认编码,也可以在读写时decode和encode解决问题,但却不明白何要这么做,最终只能每种答案都试一试,运气好就不会报错。

如果这个问题落到一个懂得各种编码的关联,明白字符在计算机中如何存储和表达的人手里,就能很容易理解:

源码的编码标记是为了告诉解释器这个程序用何种编码写的;

设置默认编码是在不特别指出时以指定编码来解码读入的字符,同时在输出时把字符串按照指定编码变为二进制流再交给系统底层进行输出;

以及encode是指把字符串变为二进制流,而decode则是反过来把二进制流变为有意义的字符串。

同样,对于算法、数据结构等知识,很多人仅仅停留在能够应付求职面试的水平,缺乏真正理解,而当在工作中遇到具体的问题时,往往就会觉得自己遭遇了瓶颈。当你在编程遇到这样的瓶颈时,不妨稍稍“钻钻牛角尖”,把精力锁定在基础知识的稳固与深究上,或许突破的钥匙就隐藏在这些被忽略了的基础知识里面。

2. 知识广度不足

虽然程序员在工作中往往只专注于某一方向,但不同方向的编程知识也并非毫无关联。有的程序员在遇到个人知识领域的边界的问题时,往往会不知所措,而这恰恰是知识的广度不足而造成的瓶颈。

是不是程序员总会遇到一个瓶颈期,该怎么解决?

其实在编程的大圈子里,各个领域之间多少都有所互通。近些年前端火热的MVVM模式,最早却是来自于桌面应用开发的圈子,服务端异步编程里的IO Loop,类似的结构遍布各种GUI开发的事件系统中。

因此,在一个领域有一定认识之后,大家也不妨拓宽视野,把目光看向其它有些许相关的领域,甚至找个新的语言,粗略地学习一番。即使这样的学习并不一定能让自己“转行”,但其中的收获和灵感往往能够让你在自己的领域中突破瓶颈,走的更远。

3. 伪瓶颈

当你初次涉足某一个领域,所有的知识对于你来说都是新鲜的,大量且快速地吸收新的知识会让你觉得自己每天都在进步;但是经过一两年的工作磨合之后,你已经可以对自己所负责的工作内容得心应手,并且能经验老到的处理突发状况,于是工作状态便从之前的边学边做变成了现在的信手拈来。这种状态看起来并没有什么新的知识摄入,但这种现象却叫做圈内技术大圆满。

把圈内技术大圆满的现象叫做瓶颈显然是不对的。真正的瓶颈期是经过了一番努力也很难突破的障碍,比如你学习射箭,经过练习之后达到了10米能射9环的成绩,为了获得10环的成绩,你又经过了一段时间的刻苦练习,却发现还是不能达到10环,这才叫做瓶颈。

是不是程序员总会遇到一个瓶颈期,该怎么解决?

所说的只是那个新人也可能是在这半年或一年的时间里完成了圈内技术大圆满,让自己进入了一个舒适圈,并且沉迷在这种状态中而不自知,就像,温水煮青蛙。

突破这种伪瓶颈,走出舒适圈,学习一项圈外的新技能便是一种行之有效的快捷方式。IT领域目前正处于飞速发展时期,享受着大量资本红利的同时也吸引了大量的年轻人涌入。技术的飞速迭代和新人的快速抢滩,将导致今天还很舒适的小岛可能明天就被海水淹没。所以只有让自己从小圈子技术大圆满成为小圈子技术深度大圆满,才能不被淘汰下水(当然,能成为大圈子技术深度大圆满的话,那就更无敌了)。

4. 太疲惫

编程是很强的脑力劳动,长时间对着屏幕敲打键盘的同时,脑子里还要构想着自己所需要的设计。若是长时间困扰于某个问题,除了身体上的疲惫,心理上的挫败感也不容忽视。很多时候这种挫败感会让程序员感觉到自己正遭遇瓶颈。

是不是程序员总会遇到一个瓶颈期,该怎么解决?

身体的疲惫可以通过运动和保健来调理,心理上的疲惫则需要一些更巧妙的手段。小慕的建议是适当地给自己放个假,太过紧绷的琴弦没办法奏出美妙的音乐,尽管程序员需要不断地学习和提高,但与其一直逼迫着自己,不如在缺乏灵感的时候给内心一个放松的空间。也许就在这期间,自己又能发现一些感兴趣并且值得深入的新方向。

如何应对瓶颈

总之,程序员想要尽可能少地遭遇瓶颈,就要经常看看自己要往哪里走,同时也回头看看自己走了多远。

关于往哪儿走,可以看看Git Hub上的热门项目,看看技术类的新闻,在工作之余也试着做一些其它自己感兴趣的事情。搭建一个自己的博客服务对于单纯的前端工程师或者后端工程师而言或许算不上很难的工作,但过程中会有所收获;跟随一个开源项目或者提交一个PR也许并不足够引人注目,但也许能够找到特别的灵感。

人工智能是2017年IT领域最热的一个词,虽说人工智能取代程序员看起来难度很大,但是架不住研究人工智能的那批人最熟练的事情就是写代码,那些你本以为不可能的事情,随时可能发生。

是不是程序员总会遇到一个瓶颈期,该怎么解决?

今天热得烫手的Java工程师很可能五年后会被一批需求描述工程师取代,所以了解我们的竞争对手非常重要,这样虽然不能改变长江后浪推前浪的趋势,但至少可以在被击倒的时候体面一点。运气好的话万一碰上一个新出现的风口,或许还能吃到一波信息不对称的红利。

关于回头看看,跟他人分享自己的知识和疑惑就是一个很好的办法。可以选择论坛交流、写技术博客、知乎回答问题等手段来讨论和总结自己的知识。

一方面,你会发现你的知识对于许多人而言也是十分高深的,可以增强继续前行的信心;

另一方面,在分享知识的同时,重新审视这之间的内在联系,深化记忆并加强理解,就像是零散知识点的一次梳理,随着时间的推移将形成完整的知识体系,并让你走得更远。

最后,祝大家新手早日进阶。老鸟突破瓶颈,修得大圈子技术深度大圆满。(为什么感觉这句话有种修仙的感觉)

是不是程序员总会遇到一个瓶颈期,该怎么解决?

更多Java进阶学习资料来自小姐姐私人微信,求关注~


分享到:


相關文章: