技术栈是什么意思,全栈是什么意思( 二 )


当机械设备出现问题,找老专家出马 。但是信息系统出问题,恐怕没人想到老专家了 。因为它早已经不知道被重构多少次了,找正在升级和维护的年轻人才是常见的做法 。很多行业都有核心技术,不传之秘,它们就不容易被推翻重来 。信息技术领域也有,但是相对要少一些(bat、华为等顶级公司开发的除外),特别是小型业务系统 。甚至可以说得更直白一点,那东西就是靠人堆出来的 。
你要不信,随便找一个高档写字楼看看,看有多少程序员,然后又有多少人做的是核心技术,大部分恐怕都是增删改查 。在他们眼中,需求远远比核心技术重要 。做需求的收入最高 。需求,或者说业务流程往往与增删改查高度映射 。如果一个行业的某个人做技术,却不能掌握核心技术,动不动就被别人推翻,那就容易吃青春饭 。第四、程序员学习成本相对较低这是相对的 。
甚至一台电脑就能开始学写代码 。很多年前,程序员还是比较难的,因为自己要造很多轮子,要学习很多基础知识,比如数据结构、编译原理、操作系统 。现在好了,直接用“框架”呀,底层别人帮你实现好了,你只需要专注业务即可 。然后就变成了,我们比的不是谁的数学好,谁的基础扎实,而是比谁更熟悉“框架” 。最后还会变成,就比谁更熟悉需求(业务) 。
甚至一度认为高大上的人工智能深度学习,也慢慢变成了“调参高手”,意思是说,我不需要懂数学,别人(以外国人为主)现成的算法都写好了,我调调参数就能用了 。这是一门体力活,非常花时间,也很挣钱 。学习成本低,还得益于两点:一个是盗版软件,不花钱就能享受顶级体验,二是开源精神 。其他行业可没有这样的好事,要花真金白银买实验设备、材料才能自学东西 。
通过搜索引擎,很多编程问题都能找到答案,很多人也笑称,我们是面向百度(谷歌)编程 。但是其他传统行业就没有那么幸运了,网上的资源乏善可陈 。他们遇到问题,不是找百度,而是找师父,找老专家 。老专家的地位自然被提高了 。医院招一个应届硕士生,先得跟师父(老师)学习至少一年,没有工资,然后才敢慢慢上手,还必须非常谨慎,人命关天嘛 。
内存为什么要分堆栈在编程里,要是全部只用堆或者全部只用栈,可行吗?

技术栈是什么意思,全栈是什么意思


其实我们都知道,计算机内存本来就是一块内存,没有堆栈之分 。在学编程的时候,我们应该都听过一句话 “如果程序结束之后仍然想要访问那一段数据就要用堆”,我想这个其实就是你疑问的关键了,堆和栈都有其自己的独特性,可能你了解这两个东西,但是我还是解释下,以免别的小伙伴在看答案的时候,不知道 。栈:就像我第一句话说的,本没有什么堆栈之分,但是编程语言的出现,就有了一个概念“函数”,这个函数之间是可以相互调用的(就像我们传递东西,比如:胡小然 将东西传递 胡小然2 将东西传递 胡小然3,之后需要从后面向前面反馈传递结果,这个传递的过程我们就可以理解为调用),那就出现了前后之分,这就是调用队列了,那这个队列有个什么特点呢,那就是先被调用进入队列的要最后出去,就是我们常说的先进后出(FILO),那么这时栈就出现了,而且它还有一个特点那就是线程独有(所以可以存放我们的临时变量),生命周期是随线程的 。
当然我所说的是内存栈的意思,其实“栈”就是个数据结构,是一种限定仅在表尾进行插入和删除操作的线性表,这个特性不正好是符合我刚才说的FILO嘛 。所以你可以这么理解c或者java(jvm)中的内存栈的概念,就是编程语言的作者为了管理内存使用了“栈”这种数据结构(说的再细点就是现代CPU体系结构决定了栈是管理函数调用和局部变量的最佳数据结构 。

推荐阅读