[202406]

关于前端的个人心得

耶温

2337字约8分钟

学习指南前端进阶

2024-06-23

关于前端的个人心得

关于学习

在之前的一段时间内,会经常纠结自己后面的学习计划是广度学习好还是深度学习好。由于个人时间或者精力的限制,没有办法做到两者兼顾。

  • 广学习,就是扩大自己的知识面,学习更多种语言或者其他内容。
  • 深学习,就是在自己已有的基础上进行更加深入的学习研究,通过学习让自己变成该方面的老手或者专家。

在我看来广度学习,意味着自己将从一个前端开发走上全能,或者全栈开发。而深度学习,则是自己前端开发生涯中的一个进阶过程。然而,随着自己的学习,我发现其实深度学习和广度学习是密不可分的,为了我们在某一方面了解认知的更加深入,我们需要去学习或者获取其他方面的知识。换句话说,广度的知识面是我们在深度学习的副产品。

所以我个人现在坚持在前端开发方面进行更加深度的学习和了解,也不会拒绝中间广度的学习机会,更加全面学习认知。

前端初级

个人人为,在初级学习阶段,我们目标是能够独立完成项目的前端部分。需要学习前端的元老级三件套html,css,JavaScript 。然后在根据自己的需要选择学习一个流程框架技术即可。

在我看来,我们不应该把过多的时间放到学习各种流行框架上。可以在使用的时候在进行学习或者阅读官网文档等,也可以快速的上手使用。但是前提条件是我们要对前端的基础htmlJavaScript做到十分的熟练。

短时间内最具有性价比的事情,就是深入学习基本功,也就是html,css,JavaScript。 为什么这么说?

  • 对于前端来说,基本功是前端所有的一切的基石。目前就算是后台开发、测试、UI,也都会了解一些前端方面内容。
  • 前端框架选择较多,并且更新较快,并且所有框架都基于前端基本功开发编写。学好基本功,能让我们更快的学习和上手各种框架。
  • 前端框架可能会更新换代或者淘汰,如果我们学习花费太多时间,但是日常工作中却没有使用,会浪费我们的时间精力。
  • 前端基本功,已经出现快30年。基本成型稳定,不会被轻易替换代替。

需要掌握技术和知识

  1. 基础技术:深入理解HTML、CSS和JavaScript的基础语法和常用属性,能够编写结构清晰、符合语义的HTML代码,以及响应式的CSS布局。

  2. 前端框架入门:熟悉至少一种主流前端框架(如React、Vue或Angular)的基本使用,理解组件化开发的概念。

  3. 版本控制:掌握Git的基本操作,能够进行代码提交、分支管理、合并冲突解决等。

  4. 调试工具:熟练使用浏览器的开发者工具进行页面元素调整、CSS样式查看和JavaScript调试。

  5. 基本的构建流程:了解npm、yarn等包管理工具的使用,以及Webpack等构建工具的基本配置。

  6. 代码质量与规范:了解代码规范(如ESLint)和代码风格的重要性,能够遵循团队的编码规范。

其他内容

除开上面说的一些,我们在日常工作中还可能用到其他一些内容,这些内容仅了解即可,大多数为开箱即用插件:

  • UI组件:Element-UI(PC端),Vant-UI(手机端),Bootstrap(响应式)
  • 图表:Echarts
  • 图标:iconfont
  • 地图:Baidu Map,Google Map

前端进阶

如果我们需要在前端技术上有更深入的了解和提升,避不开的就是各种原理和基础。

  • 计算机网络
  • 浏览器渲染原理
  • 网络数据传输
  • 后端如何响应前端请求

需要掌握技术和知识

在初级基础上,我们还需要学习和熟悉以下技术或者知识:

  1. 深入JavaScript:精通JavaScript高级特性(如闭包、原型链、异步编程等),理解ES6+新特性,并能够灵活运用。

  2. 前端性能优化:掌握前端性能优化的各种策略,如图片优化、代码分割、懒加载、缓存策略等。

  3. 框架与库的高级应用:深入理解所选前端框架的工作原理,能够进行复杂组件的设计与开发,了解并使用相关状态管理工具和路由库。

  4. 响应式设计与移动优先:精通各种布局技术(Flexbox、Grid等),能高效实现适应不同设备的界面。

  5. 前端工程化:熟练使用构建工具进行模块化开发、自动化测试、持续集成等,能够搭建和维护前端开发环境。

  6. 网络与安全:深入了解HTTP/HTTPS协议,熟悉RESTful API设计,了解前端安全相关知识,如XSS、CSRF防护。

前端资深

需要掌握技术和知识

  1. 架构设计:能够设计和实施大型前端项目的架构,考虑可维护性、可扩展性和性能。

  2. 技术领导力:指导团队采用最新的前端技术,制定技术选型方案,解决复杂的技术难题。

  3. 全栈能力:对后端技术(如Node.js、数据库、服务器部署等)有一定的了解,能够进行全栈开发。

  4. 性能与可访问性:深入理解前端性能优化的高级策略,重视并实践网站的可访问性(a11y)标准。

  5. 持续学习与创新:跟踪前端技术发展趋势,对WebAssembly、PWA、WebGL等前沿技术有所研究。

  6. 团队协作与项目管理:具备良好的沟通协调能力,能够有效管理项目进度,带领团队高效完成任务。

计算机基础知识

基础知识为深入学习计算机科学的各个分支提供了坚实的基础,无论是打算从事软件开发、网络安全、数据分析还是人工智能等领域,都是不可或缺的。

在计算机行业,技术的更新换代速度很快,我们想要跟上各种技术迭代,看上去难度很大。但是我们可以换一种方式,就像上面前端初级中说的一样,我们可以选学习一些基础知识,这些知识更新迭代速度不快,但是在计算机行业却显的越来越重要。

前端优先知识推荐

  • 浏览器原理
  • 操作系统原理
  • 算法结构
  • 数据结构

基础知识推荐清单

  1. 计算机系统组成:理解计算机硬件的基本组成部分,包括中央处理器(CPU)、内存(RAM)、硬盘、输入输出设备(如键盘、鼠标、显示器)以及主板等,以及它们是如何协同工作的。

  2. 数据表示与存储:学习二进制数系统、位与字节的概念,以及整数、浮点数、字符等数据类型在计算机中的表示方法。了解不同的存储介质(如磁盘、闪存)和存储单位(KB、MB、GB等)。

  3. 计算机网络:掌握网络的基本概念,包括OSI模型或TCP/IP模型,了解局域网(LAN)、广域网(WAN)、互联网的工作原理,IP地址、子网掩码、DNS等基础知识。

  4. 操作系统:学习操作系统的功能和类型(如Windows、Linux、macOS),进程与线程、文件系统、设备管理等概念。

  5. 算法与数据结构:这是计算机科学的核心部分,涉及排序、搜索、递归、贪心、动态规划等基本算法,以及数组、链表、栈、队列、树、图等数据结构。

  6. 编程基础:至少掌握一门编程语言(如Python、C++、Java),理解变量、常量、条件语句、循环、函数、类和对象等基本编程概念。

  7. 计算机安全:了解计算机安全的基本原则,包括密码学基础、防火墙、病毒与恶意软件防护、网络安全措施等。

  8. 数据库基础:了解数据库管理系统(DBMS)的基本概念,关系型数据库(如SQL)和非关系型数据库(NoSQL)的区别,以及SQL查询语言的基础。

  9. 软件工程:学习软件开发生命周期(需求分析、设计、编码、测试、维护),软件项目管理,版本控制(如Git)等。

  10. 计算机科学理论:包括计算理论(图灵机、可计算性)、编译原理、计算机体系结构等更深层次的内容。

备注

该文档基于个人知识和认知情况,实时更新。