身为程序员的你,用了多长时间学习研究某一框架、软件,才达到该领域技术专家的水平?

从事软件开发十几年了,对于程序员的工作有一点自我的见解,首先程序员的工作属于一个技术活,技术类的工种需要时间的积累,但要达到某个领域的技术专家,首先是时间层面的积累,但仅仅是积累是不够的,不是达到多少年一定成为技术的专家,成为某个领域的佼佼者,时间只是其中一个因素。

如何成为某个技术领域的专家?

牢固的基本功。要达到某种境界没有牢固的基本功做铺垫几乎是不可能的事情,程序员要说到基本功其实是一种很笼统的说法,基本功不仅仅是编程语言的语法,还包括常见的一些编程技巧,还包括一些基本的算法基础,不同的人对于基础的理解也不相同。对于初学者理解基础就是编程语言的语法,从心理上觉得编程语言的语法搞定了,但在真正意义上的编程的时候,只是掌握基本的语法是实际的编程经验需要在项目中提炼。

如果放在技术专家的要求来定义基本功又会是另外的一个境界,从心理上要认识无论哪个层次的程序员都要重视基本功的积累,在平时工作之余要拿出时间来温习基本功,按照一个标准的程序员的要求看认识基本功,常见的项目有编程语言的语法,项目操作过程中遇到的一个困难的总结汇总,数据结构基础算法,常见的编程场景处理能力,这些都属于编程基本范畴。

编程框架能力。这点就足够拉开了和普通程序员的区别,之所以能够在一个行业内成为头部的玩家,就需要具备一定的高层设计能力,这种能力不仅仅是简单的模块设计能力,还需要具备整个系统的设计开发能力,有些程序员做一辈子都未必真正设计搭建过一个框架,所以不能简单的认为能够设计好一个模块的框架就能把事情做得非常利索了,不能简单的认为。

其实框架能力在行业内讲就是造轮子的能力,当然不是每个人在自己的技术生涯中都有设计框架的机会,如果能够赶上一次也是不错的机会。

坚韧不拔的意志。这点主要是在精神层面的,不是每个人都能在一个领域长期坚持不懈的待下去的,能够数十年如一日坚持做好一件事都是对人毅力最大考验,能够一直坚持做这件事人数已经不多了,如果在加上做的出色的数量将会变得更少了,所以讲工匠精神不是每个人都能坚持做到最后的。

要想成为程序员里面某个领域的专家,不是仅仅靠时间来积累出来的,但时间的积累达到的一个典型的基础,不要觉得入行的时候自己的基础不好,但时间长了坚持的长了,常见的编程模式或者套路也都能掌握清楚了,不是谁天生就是某个项目的专家,什么事情就怕一个坚持的劲头,一股不服输的精神,坚持的时间长了在理论上还能缩减成为专家的次数,希望能帮到你。