前端学习计算机理论知识的好处

简介: 前端学习计算机理论知识的好处

写本文的目的,主要是源于和一个老前端的交流。

我认为学习计算机理论知识很有用,对职业发展帮助非常大。他认为应用开发和底层开发是两回事,前端属于应用开发,学理论知识完全浪费时间。具体细节就不说了,最后是不欢而散。

不过,有一点我们是达成共识的:学习计算机理论知识不能让你的业务页面写得更快、更好,它不是银弹,不能解决所有开发中的问题。如果你还处于入门级别,学这个也没多大用,学好前端基础知识反而更有用(这句话针对非科班出身的前端)。

我认为学习计算机理论知识对于前端来说有两点好处:

  1. 知其然,知其所以然
  2. 开拓眼界,多维发展

1. 知其然,知其所以然

我们都知道,在 JavaScript 中,有两种数据类型,分别为基本类型和引用类型。

基本类型

let a, b
a = 1
b = a
b = 3
console.log(a) // 1
console.log(b) // 3

引用类型

let a, b
a = { msg: 'hello' }
b = a
b.msg = 'world'
console.log(a) // { msg: "world" }
console.log(b) // { msg: "world" }

为什么基本类型 b 的值变了,a 不会变?而在引用类型中 b 的值变了,a也跟着变?如果你学习过内存管理以及编译原理相关知识,就可以理解这个现象了。

从程序的角度来看,内存被抽象为一个一维数组,a 和 b 在内存都占着一个位置,并且在内存中存储的是它们各自的值。

而引用类型则不同,在创建一个引用类型数据时,需要在堆中分配一块内存,然后将这块内存的地址返回。即 a = { msg: 'hello' } 这个操作,a 存储的是一个地址。执行 b = a 后, a 和 b 指向同一个地址。当 b.msg = 'world' 这个操作执行时,改变的是这块内存中的值,所以就不难理解为什么在引用类型中 b 的值变了,a 也跟着变了。

以上只是其中一个例子,还有更多例子就不一一列举了。

学习计算机理论知识能让我们不仅仅看到程序的表面,还能看到程序计算的本质。想一想,从你写下一行代码开始,经历词法分析、语法分析、生成机器码,最后变成一条条指令在 CPU 中执行,并且数据在 CPU 与内存之间如何流转你都了然如胸,这种感觉多奇妙。

2. 开拓眼界,多维发展

一个好的前端不仅仅是一个前端,不要只盯着眼前的一亩三分地,更要了解前端以外的知识。

一个项目启动前,通常会有一个需求讨论会。如果你不懂理论知识,当聊到数据库、服务器、并发等名词时,你就只能两眼一摸黑,插不上嘴,安安静静的坐在一边。但如果你学过这方面的知识时,你就能和他们一起指点江山,不再是外人。

在前端方向,理论知识也有用武之地。例如 babel,就需要用到编译原理;研究 webgl,还得用上图形学的知识;学了软件工程,你就明白测试、团队规范的重要性和必要性。说白了,懂计算机理论知识的前端和普通前端是站在不同维度上看问题的。

计算机已经发展几十年了,中间淘汰的技术数不胜数,前端还是最近几年才火起来的,说不定哪天这个职业就没了。如果发生这种情况,你还能干什么?

技术会过时,理论知识不会过时,只要冯诺依曼体系还在,你学的东西就一直有用。学好计算机理论知识,不干前端,还能干别的。

结论

  1. 计算机理论知识很有用。
  2. 刚入门先学好前端基础知识,感觉水平差不多了,再去学习计算机理论知识。

更多文章,敬请关注

目录
相关文章
|
1月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
179 0
|
1月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
134 0
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
318 0
|
10月前
|
Dart 前端开发 架构师
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
532 26
|
前端开发 开发者 C++
独家揭秘:前端大牛们如何高效学习新技术,保持竞争力!
【10月更文挑战第31天】前端技术飞速发展,如何高效学习新技术成为关键。本文通过对比普通开发者与大牛们的策略,揭示了高效学习的秘诀:明确目标、主动探索、系统资源、实践应用和持续学习。通过这些方法,大牛们能更好地掌握新技术,保持竞争力。示例代码展示了如何通过实践加深理解。
261 4
|
JavaScript 前端开发 Java
VUE学习四:前端模块化,ES6和ES5如何实现模块化
这篇文章介绍了前端模块化的概念,以及如何在ES6和ES5中实现模块化,包括ES6模块化的基本用法、默认导出与混合导出、重命名export和import,以及ES6之前如何通过函数闭包和CommonJS规范实现模块化。
457 0
VUE学习四:前端模块化,ES6和ES5如何实现模块化
|
前端开发 JavaScript 小程序
前端新机遇!为什么我建议学习鸿蒙?
【10月更文挑战第4天】前端新机遇!为什么我建议学习鸿蒙?
557 0
前端新机遇!为什么我建议学习鸿蒙?
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
231 2
【前端学java】如何从前端视角快速学习Maven
|
前端开发 JavaScript API
前端框架Vue------>第二天学习(1)插槽
这篇文章介绍了Vue框架中插槽(slot)的概念和用法,以及如何在组件中使用自定义事件进行父子组件间的通信。
前端框架Vue------>第二天学习(1)插槽
|
JSON 前端开发 JavaScript
前端框架Vue------>第一天学习(3)
这篇文章是关于使用Vue框架进行前端开发的教程,重点介绍了如何使用Axios实现异步通信和表单输入的双向数据绑定。
前端框架Vue------>第一天学习(3)

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    前端工程化演进之路:从手工作坊到AI驱动的智能化开发
  • 3
    Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 6
    实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距