程序员编程100个经典(程序人生程序员积累的编程知识)

作为一个大龄后端开发,看到这个问题,真是挺感慨的。

在不少人的眼中,可能十年,甚至五年以后,自己的辛苦积累的编程知识就没用了。

其实并不是这样,我们要把后端的需要掌握的技术分为三个层次来看。

程序员编程100个经典(程序人生程序员积累的编程知识)(1)

计算机基础

主要是操作系统、数据库、数据结构和算法、计算机组成原理、计算机网络 、编译原理,这些知识几十年都没有变化,再过十年也不会变。

基础稳如泰山,对它们进行投资永不亏本。

程序员编程100个经典(程序人生程序员积累的编程知识)(2)

中间层和应用层

这两层随着时代的变迁在剧烈地重构。

但是一个人积累的知识10年后还剩下多少, 要看一个人入行的时间处于技术发展的哪个阶段。

技术的发展也不是颠覆性的,而是渐进性的,它不会一下子消失,只会边缘化。

小李在90年代中后期入行,他之前花大精力学习了VB、PB、Delphi这些开发C/S应用的软件,准备大显身手,可是那个时候正是桌面时代向互联网迁移的关键点,十年之后他就会发现桌面C/S应用被边缘化了。

小张在互联网早期的时候入行,他陆陆续续接触到了ASP,JSP,EJB,Websphere, Weblogic,Struts、jQuery、SOA、Ruby on Rails,这些技术十年,甚至二十年之后还在用,只不过只能在遗留系统来维护了。

小刘在移动互联网火爆的时候入行,他一上来接触的可能就是nginx、 Redis、ElasticSearch 、Kafka、Docker、k8s之类的技术,十年之后,只要没有大到足以干掉移动互联网的技术变革,这些技术应该还会在。

程序员编程100个经典(程序人生程序员积累的编程知识)(3)

技术消失的原因

技术的消失和边缘化主要有两个原因:

1.不好用

EJB笨重繁琐,被轻量级的Spring替代。

ASP,JSP写网页,很容易把逻辑和显示混到一起,把代码搞得一团糟,最后被前后端分离的技术替代。

Struts配置繁琐,被SpringMVC,SpringBoot彻底淘汰

2. 不够用

互联网和移动互联网的爆发式发展,对于高并发,大流量,大数据产生了强烈的需求:

例如为了解决C10k,C100k问题,出现了epoll(2002)和nginx(2004)这样的大杀器。

为了解决数据库读写缓慢,出现了Redis(2009)、ElasticSearch(2010)。

为了解决数据库单机性能不足的问题,出现了主从分离,数据复制......

为了单体应用维护成本高、无法灵活扩展,部署周期长的问题,出现了微服务(2012),服务发现,熔断,负载均衡,注册中心等相关技术。

为了解决分布式环境下高吞吐的消息订阅,出现了Kafka(2011)。

为了解决环境不一致,应用部署的问题,出现了docker(2013), k8s(2014)。

......

程序员编程100个经典(程序人生程序员积累的编程知识)(4)

程序员所在的残酷环境

理论上来说,很多技术的本质并没有变化,变化的只是形式。

无论是ASP、JSP、Struts、EAD4J、SpringMVC,RoR......都是Web编程,要解决的本质问题都是URL和代码的映射,数据的验证、转换和绑定,Web安全....

无论是Hibernate、MyBatis、ActiveRecord,都属于ORM的范畴。

Spring Cloud那些服务注册和发现,很明显有着SOA时代的痕迹。

只要把原理搞定了,就像黑客帝国中的Neo看透Matrix一样,可以在技术领域任意驰骋。

现在最大问题在于,互联网发展太快,编程技术层出不穷,学不过来。

由于技术太多,每一项技术都需要花费大量的精力去学习,想要精通所有知识几乎不可能。

程序员编程100个经典(程序人生程序员积累的编程知识)(5)

有基础的老程序员会学得更快,他们能迅速掌握、理解其中的技术原理,但是在技术的细节,最佳实践层面,老程序员和新程序员不容易拉开差距。

对于兼顾管理的技术人来说,更不可能深入这些技术的细枝末节,能在理解原理后在关键点上和团队成员进行讨论就不错了。

如果公司主要浮在应用层搞业务的定制开发,就不需要去研究底层的操作系统、数据库、编译、计算机网络、分布式系统,也就不需要深厚的技术沉淀, 大家都是CRUD Boy,调包侠,面向Google/Stackoverlfow/百度编程......

那老程序员积累下来的经验就没什么用,相对新程序员的性价比就不高。

可惜,这样的公司在国内是大多数,互联网行业烈火烹油之时大家都好,一旦形势变化,裁员就会落到薪水更高的老程序员身上。

在中国软件业,不是技术在淘汰人,是人在淘汰人。​

所以,卷确实是目前不可避免的趋势!

-----------------------------------

为了帮助大家,轻松,高效学习C语言/C ,给大家分享我收集的资源,从最零基础开始的,帮助大家在学习C语言的道路上披荆斩棘!

编程学习书籍分享:

程序员编程100个经典(程序人生程序员积累的编程知识)(6)

编程学习视频分享:

程序员编程100个经典(程序人生程序员积累的编程知识)(7)

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!大家也要把握住有限的时光,抓住成长的每一次机会哦~

对于C/C 感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C 的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页