分享

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

 zhuxrgf 2020-10-08

我是不太敢称自己为专家,对于一些软件、框架的掌握,我甚至都不敢说自己“精通”,最多也就是熟练掌握,倒不是因为我谦虚,一方面确实认为想要在一个领域达到专家的水平是非常有难度的,自认为达不到这个程度,另外一方面,就是觉得如果是软件、框架这个层次,不一定非要做到专家水平,设置可以说没必要做到专家的程度。

01. 需要多长时间才能熟练掌握一个软件或框架

具体给一个时间长度没有意义,因为难易程度不同、每个人的基础不同、学习的背景和出发点不同:

  • 我认为最快掌握一个框架,就是“被逼无奈”、“走投无路”的时候,为了解决项目上的某个棘手的问题,学习一个作为解决方案的框架或软件,这个过程是最快的;我曾经开发一个新项目,时间周期特别的紧,项目中需要使用 Kafka,从搭建、集成、使用,再到略加深入的研究,前后大概花了两周的时间;当然,也只能算作“熟练掌握”罢了;

  • 在学习 Kafka 的过程中,因为之前我对 RabbitMQ 有一定的了解,所以学习起来会比较快,很多的时候我是在比较两者的不同,而如果对消息队列没有一点了解的程序员学习 Kafka,可能会花费更长的时间;

  • 如果工作中没有特殊的要求,我学习一门框架的时间可能就长短不一了,可能几天、几周,甚至是几个月,而更多的时候,因为没有碰到过实际的问题,所以你很可能不会把每一个框架都做深入的研究。

02. 为什么说软件、框架这个层次,不一定非要做到专家水平

跟其他的行业相比,软件行业的变化很快,技术更新的频率极高,比如医生可以始终在某一个非常小的领域进行研究,我就研究眼科,或者就一直做牙医,做一辈子,成为眼科的专家,但是程序员不行,你说我一辈子就研究 Spring 吧,将自己的技术积累押宝在当前某一个流行的软件或框架上,这个风险非常大;短期内可能会有成效,但是我们的职业寿命要四十年甚至更长。

有些程序员在某些大公司混的风生水起,非常熟悉公司的技术栈,但是当他换一个公司、换一个平台的时候,可能就会遇到发展的瓶颈;这是因为作为的“某一领域的专家”,只是依赖于当前公司这个平台,但不一定可以匹配市场的需求,错把平台资源当成自己的能力。

那我们究竟应该学习什么?

我十几年前刚成为 Java 程序员的时候,最流行的就要数 SSH 了,也就是 Spring 、Struts 和 Hibernate,现在再看看,Struts 几乎绝迹,Hibernate 半死不活,Spring 虽然很火,也是因为版本迭代的很快;

所以十年前我要是选择了一直研究 Spring 还好,要是选择押宝了 Struts ......

软件、框架的更新时很快的,我们不能把主要的精力放在它们身上。

  • 在学习 Spring Cloud 、Dubbo 的时候,也要学习架构设计和演变;

  • 在学习编程语言的时候,也要学习设计模式;

  • 在学习通信框架的时候,也要把网络模型学习好;

  • 学习 Angular、React、Vue 一堆框架,不如先把精力放在 HTML/CSS 上...

总之,基础打得牢,框架学的快,不要把百分百的精力都放在这些不断变化的框架上。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多