前端入门超级攻略:你的第一步学习指南

news2024/11/19 21:18:08

如果您觉得这篇文章有帮助的话!给个点赞评论支持下吧,感谢~

作者:前端小王hs

阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主/知名前端开发者/网络工程师

前言

由于前端技术的快速迭代性,国内的高校基本上不会去专门开设前端开发这一门课程,与之相对应的是大数据和软件工程,围绕pythonjava等生态和开发路线较为稳定的语言去开设课程,这就导致大部分学生在校对前端的了解局限于前端三剑客

直到现在,还有不少学生到了大三以为学了三剑客就能找到实习,所以笔者总结了一份如何学习前端的指南,希望能帮助到想入门或即将入门前端的同学

如果想系统的学习一门课程,只凭一时兴趣是无法长久的学习的,例如有些同学可能看到有些大佬做的网页很好看很炫酷,就也想要做一份这样的作品出来,但由于英语基础薄弱、学习自觉性不高做不到坚持每天学习、学习时觉得枯燥、在某一时刻觉得学了做出来也没什么用等等现实原因而导致半途而废

在学习一门课程之前应该系统性的了解关于该门课程的一些常见问题,以问题为导向的去分析该门课程自己能否坚持长久的保持学习动力,在失去时间和得到知识之间找到平衡点

fa17c38092067dfce0991f2cbb83229f.jpg

所以,本文会围绕以下6个方向进行分析:

  1. 什么是前端
  2. 为什么是前端
  3. 前端的就业方向
  4. 前端的学习路线
  5. 哪里学前端
  6. 怎么学前端

整体的文章构思走向是:是什么→为什么选择前端→未来做什么→学什么→哪里学→怎么学

当然,如果想完整的了解前端,仅凭以上几个问题和一两千字是不能够的,碍于篇幅和读者观感,笔者只能挑这几个较为重要且关键的问题去阐述

最后,以上的问题都会以目录的形式,读者可在右侧边栏的目录定位至自己感兴趣的问题

什么是前端

如你所见,当前整个页面就是由前端开发工程师实现的

image.png

对于前端开发者身上的标签,有如写页面的做后台的调接口就行工资没后端高等等,不能说不对,也不能说全对

b1a2cc2846a51133f4edf45338e2d584.jpg

最起码从结果来看,前端是负责将页面呈现给客户看的,而客户的喜好程度决定了这个项目的前途,从这点看,前端的重要性不比后端少半分

很多重要的项目,都是先由UI前端协同开发出demo给甲方看的,一方面是展示公司的实力,另一方面可以减少公司的损失

传统意义上的前端,就是将页面内容在浏览器上呈现出来,我们在浏览器看到的所有页面内容,都是由前端(开发工程师,下简称前端)完成

更为具体的流程是,前端从UI手中拿到设计图,首先进行静态渲染,其次调取后端提供的接口完成动态渲染

前端要做的就两件事:调接口渲染


某天 开发组

前端小王:UI大姐,你画成这样我咋实现啊

UI大姐:我能找到的素材肯定就能做出来,别人都能做出来为什么你不能做

前端小王:后端大哥,这个接口是不是错了

后端大哥:接口怎么会错,数据你前端再处理一下不就行了

结果是前端小王花了半天把UI做出来,又花了半天把后端数据进行过滤、重排、实现响应式渲染

而这一切都被正愁侄子找不到工作的项目总监看在眼里

人事(负责裁员):小王,下班后你来一下我这里


随着时代的快速发展,手机、平板、等多媒体媒介的出现,前端要做的就不仅仅局限于PC,还需要适配不同尺寸的手机、平板,甚至智能手表等

但这里需要注意的是,广义上的前端开发是指开发Web端,是指利用HTMLCSSJavaScript等技术,开发通过浏览器访问的网页应用程序

image.png

而对于手机软件的页面,则是由安卓端IOS端进行开发的,所以通常我们说的前端开发,指的是开发网页应用程序,而不是指开发安卓端IOS端系统上的软件页面

  • 安卓操作系统一般使用Java开发应用程序
  • IOS操作系统一般使用Objective-C开发应用程序

但如今如uniappRN跨平台应用程序开发框架的出现,使得前端也能够开发安卓端IOS端的应用程序,缺点是在调用原生API多平台渲染时容易出现兼容性的问题

这里指的是基于前端三剑客的技术栈,不包括由Google公司开发的由Dart语言开发的flutter框架,当然这个也算前端

另外,值得一提的是electron框架,一个使用Web技术构建跨平台的桌面应用程序,现如今的新版本QQ和代码编辑器VScode都是由其开发的

image.png

回到本节标题,什么是前端,可以从以下2个方面总结:

  1. 技术栈上:使用基于前端三剑客技术的(程序员
  2. 应用程序上:从最基础的写网页到如今多平台开发的(程序员

为什么是前端

在本节,笔者将探讨为什么是前端的问题,将从为什么选择前端为何不是后端或其他或者说前端的优势在哪的角度去阐述这个问题

理解了这两个问题,可以帮助你坚定学习前端的立场,为长久(可能长达6-12个月)的基础学习打下坚实的思想基础

那么在本节,将不可避免的带有笔者的主观看法,请读者辩证看待

选择前端的理由有很多,我认为最基本的两个点是相对于后端上手难度低基础学习周期短,也就是从难度时间的角度来看是前端是可以快速上手

如果结合找工作来看,那么就和养殖的饲料🐓一样,养个两三个月就可以出笼上市了;同理,前端也可以学个两三月就找工作了。当然,前提是找准学习方向,理论上三个月可以学完从基础到Vue的实战水平

6d7ffc90087e11eb50310b575fbce0a.png

但有好处便有坏处,因为前端相对于后端上手难度低基础学习周期短,导致目前市面上大部分前端求职者都是初级前端的水平,也就是基础不牢固项目经验不足业务水平不够等,造成的结果初级前端的市场已经逐渐饱和,也就是这几年很多人高呼前端已死的主要原因

注:这里的初级前端指的是薪资水平在4-7K水平的岗位,在这个岗位上,普遍对前端技能水平的要求不高,没有过于复杂的业务需求

image.png

相对于后端来讲,前端还有一个优势就是工作岗位学历要求不高,对于后端开发岗最低要求基本上是本科,而前端岗位的最低要求基本上是专科,其实这也侧面反映了当前社会的普遍认同:后端难度>前端难度

image.png

实际上,目前前端学习周期并不低后端短,且要学习的内容也是繁多复杂

如果你是专科毕业,且专业与计算机相关,那么前端开发是个不错的选择

综上,为什么是前端,有以下三点优势:

  • 学习难度小
  • 学习周期短
  • 学历要求不高

前端的就业方向

前端的就业方向主要分前端开发工程师前端优化工程师全栈工程师前端架构师前端项目经理

image.png

前端开发工程师

前端开发工程师至少需掌握前端三剑客、掌握VueReactAngluar中至少两种框架、掌握ES6SassLessTailwindCSStypeScriptGitVite等技术或框架

image.png

职责是负责开发网站如官网、后台等的前端部分

薪资一般在4-7k

前端优化工程师

在前端开发工程师的基础上掌握各种规范化工具如ESlintstyleSlintPrettiercommitlint等,熟练掌握前端构建工具如webpackvite等,会使用Code Climate等自动化代码审查工具提升代码质量

image.png

在开发时有注重代码规范的习惯、能够为项目带来性能优化;减少冗余代码;能够实现自己开发组件、hooks;熟练使用多种不同响应式布局方式兼容多平台,提升用户体验

了解前后端交互机制,能够利用浏览器缓存等技术减少页面性能开下

职责是负责优化性能以及复杂技术实现,提升用户的体验

薪资一般在8-15k

移动应用开发工程师

在前端开发工程师的基础上掌握如uniappReact Nativefultter等移动端开发框架和技术,了解不同平台的特性和差异,能够对兼容性带来的问题进行解决

职责是负责APP、小程序应用程序的前端部分

薪资一般在6-8k

WebGL开发工程师

熟悉掌握基于WebGLThree.js及其衍生框架,掌握场景、相机、渲染器等、能够基于Three.js进行3D场景的搭建、3D模型的加载和渲染,及其性能的优化

职责有多种,开发网页3D游戏、可视化建模、元宇宙等

薪资一般在10-20k

全栈工程师

在前端优化工程师的基础上,了解后端开发技术,包括服务器、数据库等知识

目前不少前端开发者学习如Node.jsExpress.jsNest.js等后端JavaScript框架,并且掌握如LinuxSQL等语法,能够实现CI/CD,也可以说是全栈工程师

职责是前后端都一个人全干

薪资一般在10-15k

注:通常需要本科以上学历

前端项目经理

前端项目经理需要拥有一定的前端基础知识,了解不同流行前端框架的技术和性能特点,同时还需具备良好的沟通能力

职责是负责管理和领导前端开发小组研发项目,并与项目总监、客户、开发团队进行沟通协调,制定项目开发计划、对项目质量和开发进度进行统筹规划和控制,确保项目按时交付并达到预期目标

薪资一般由底薪+业绩组成,范围在10-20k

注:通常需要本科以上学历

前端架构师

前端架构师是前端技术的巅峰,是整个项目组前端的带头人,具有解决前端技术难题、丰富优化性能的经验。通常前端架构师兼备熟练的后端开发经验,对前后端交互、软硬件的交互、代码底层实现都有一定的理解

职责是负责前端开发的顶层设计,负责前端技术架构的设计和实施,带队解决前端技术难题

薪资一般在20-50k

注:通常需要硕士以上学历

前端的学习路线

第一步是扎实前端三剑客的基础,也就是HTML+CSS+JavaScript,其中HTML需要熟练掌握各种块级标签、行内标签等

CSS需要熟练掌握字体属性、弹性布局、盒子模型等

JavaScrip需要熟练掌握面向对象概念、DOM和BOM、原型和原型链、闭包

第二步CSS方面是学习预编译语言,笔者推荐学习Sass;学习tailwindCSSunoCSS,前者是CSS原子化框架,后者是原子级CSS引擎

image.png

JavaScript方面深入学习ES6

交互方面系统性学习ajaxAxios及其封装

在这一步还可了解JQueryBootstrap框架的使用

这里要说明的是,为什么JQuery还要学,这是因为目前还有部分国企、银行、中小企业用的都还是JQuery,而且学也不需要花费太多的心智负担,是值得学的

第三步学习TypeSctipt,掌握面向对象编程和高级类型系统

第四步学习Vue3ReactAngular等前端框架,熟练掌握如何实现组件传值路由管理状态管理等内容

  • 学完Vue可进一步学习uniapp
  • 学完React可进一步学习RN

第五步学习Webpackvite,熟练掌握构造工具提供的优化配置,在这一步还需掌握ESlintPrettier等规范化工具的使用

至此,基础阶段完成,整个基础阶段全职学习包括做项目练习大概在6-8个月左右,想要达到熟练至少需要1年的时间

第六步根据兴趣学习three.jselectron等不同方向的技术,在这一步开始都是靠自己的兴趣去学习了

哪里学前端

笔者推荐B站B站基本上各种基础的视频和附带的练习项目都有了

这里需要回应的是不少读者可能会去买书,例如红宝书、犀牛书

image.png

这里指基础学习,进阶学习例外)其实没有必要买书!现在市面上的各种培训班的免费视频讲的内容已经非常通俗易懂了,并且在内容安排上也都是核心知识点一个接着一个,讲的也都是实战中常用的东西

怎么学前端

前文说过,笔者推荐的方式是看B站视频进行学习,所以笔者就围绕这个学习方式,来简单讲一下怎么学前端

不敲代码看视频

对于是HTMLCSS,笔者的建议是快速过一遍视频,并且不要敲代码,在看完HTMLCSS视频后,挑个例如小米官网的静态网站项目,花半天的时间手写一遍

通常HTMLCSS都是在一套课程出现的

在看完某一节视频后,需要偶尔看一下视频的笔记,通常来说B站的教程都会提供源码和笔记,那自己不忙的时候可以去看一下,但不要敲代码,敲了浪费时间

如果某一节视频觉得不理解,就重看几次

一般来说,认真的把小米官网做一次两次,就可以掌握HTMLCSS的基本内容了

不敲代码看视频适合HTMLCSS的基本内容

做好英语单词笔记

在学习JavaScript时,如果记不住一些DOM操作的API,例如document.getElementByClass,可以将单词拆分出来,其实非常好记,get得到element元素by通过class类名,那么这样一可以增加自己的词汇量,二来也熟记了DOM

当然有读者可能会想,编辑器不是有自动补全吗,还有必要去记这么长的API吗,笔者认为是有必要的,不管是面试还是笔试,都有可能遇到手写实现逻辑的情况

英语水平提高了,报错的问题基本上都可以看得懂

做好英语单词笔记适合整个学习阶段

结合面试题学习

如果不知道哪些是重点,第一是可以去例如BOSS直聘上寻找关于你喜欢的公司,然后看其招聘公告上写的要求,然后结合要求来学习,那么通常来说要求都需要满足学习路线1-5步,因为这是基础

第二是可以结合面试题去进行学习,例如在看完HTML的视频后,找一点关于HTML的面试题,然后看自己能不能答出来

结合文档进行学习

如果学完了前端三剑客基础,那么可以看网上的文档进行学习,因为不少在线免费课程,讲的都是比较快,例如看完了Vue的基础视频,那么可以去看一下Vue的官方文档

这里的好处有两个,一是可以复习,二是可以熟悉文档,毕竟以后实战了遇到问题,不可能倒回去找视频,这样太麻烦了,如果对文档熟悉了,那么可以快速定位自己想看的内容

这里要说明的就是如果没有基础或者基础不牢固,不建议去看文档,因为文档的作者他写出来就不是面向小白玩家的,他是有一定的技术门槛的,所以很多人说看文档看不懂怎么样的,其实就是基础还差点

image.png
比如这个图,什么是副作用?什么是异步操作?什么是状态变化?那么这些都是需要基础才能看得懂的

结合AI工具学习

这是最简单的学习方法,直接把看不懂的扔给AI,让其帮助分析代码

结语

好的,读者朋友们,第一步学习指南看到这里就结束了

谢谢大家的阅读,如果觉得有帮助,还请点个赞,评个论,看能不能冲个热榜(哈哈哈)

如果觉得有错字或者讲得不对的地方,还请评论区给予建议,笔者会第一时间修改

如果觉得文章不错,需要持续更新,那么需要就大家的多多支持!

同时想进阶学习的,可以关注笔者的专栏小王Vue3.js源码解析笔记,正在更新Vue源码解析

再次感谢阅读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1890405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决ps暂存盘已满的问题

点击编辑->首选项->暂存盘 ps默认暂存盘使用的是c盘,我们改成d盘即可 然后重启ps

STM32之五:TIM定时器(2-通用定时器)

目录 通用定时器(TIM2~5)框图 1、 输入时钟源选择 2、 时基单元 3 、输入捕获:(IC—Input Capture) 3.1 输入捕获通道框图(TI1为例) 3.1.1 滤波器: 3.1.2 边沿检测器&#xf…

移动智能终端数据安全管理方案

随着信息技术的飞速发展,移动设备已成为企业日常运营不可或缺的工具。特别是随着智能手机和平板电脑等移动设备的普及,这些设备存储了大量的个人和敏感数据,如银行信息、电子邮件等。员工通过智能手机和平板电脑访问企业资源,提高…

【等保2.0是什么意思?等保2.0的基本要求有哪些? 】

一、等保2.0是什么意思? 等保2.0又称“网络安全等级保护2.0”体系,它是国家的一项基本国策和基本制度。在1.0版本的基础上,等级保护标准以主动防御为重点,由被动防守转向安全可信,动态感知,以及事前、事中…

SSM玉林师范学院宿舍管理系统-计算机毕业设计源码19633

摘要 随着大学生人数的增加,宿舍管理成为高校管理中的重要问题。本论文旨在研究玉林师范学院宿舍管理系统,探讨其优势和不足,并提出改进建议。通过对相关文献的综述和实地调研,我们发现该系统在宿舍分配、卫生评分、失物招领、设施…

什么是 URL ?

统一资源定位符(URL)是一个字符串,它指定了一个资源在互联网上的位置以及如何访问它。URL 是由几部分组成的,每部分都有其特定的作用: 协议/方案:这是 URL 的开头部分,表明了用于访问资源的协议…

基于uniapp(vue3)H5附件上传组件,可限制文件大小

代码&#xff1a; <template><view class"upload-file"><text>最多上传5份附件&#xff0c;需小于50M</text><view class"" click"selectFile">上传</view></view><view class"list" v…

WPF自定义模板--TreeView 实现菜单连接线

有些小伙伴说&#xff0c;在TreeView中&#xff0c;怎么每一个都加上连接线&#xff0c;进行显示连接。 代码和效果如下&#xff1a; 其实就是在原来的模板中增加一列显示线条&#xff0c;然后绘制即可 <Window x:Class"XH.TemplateLesson.TreeViewWindow"xmln…

无法定位程序输入点Z9 qt assertPKcS0i于动态链接库F:\code\projects\06_algorithm\main.exe

解决方法&#xff1a; 这个报错&#xff0c;是因为程序在运行时没要找到所需的dll库&#xff0c;如果把这个程序方法中对应库的目录下执行&#xff0c;则可正常执行。即使将图中mingw_64\bin 环境变量上移到msvc2022_64\bin 之前也不可以。 最终的解决方法是在makefile中设置环…

vue组件深入介绍之插槽

了解插槽之前请先了解vue组件基础及注册 Vue2官网介绍 Vue3官网介绍 1、vue2插槽介绍 在2.6.0中&#xff0c;具名插槽和作用域插槽引入了一个新的统一语法&#xff08;v-slot指令&#xff09;。它将取代slot和slot-scope&#xff1b; Vue 实现了一套内容分发的 API&#xf…

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变&#xff0c;网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0&#xff08;即《信息安全技术 网络安全等级保护基本要求》2.0版本&#xff09;作为网络安全等级保护制度的最新标准&#x…

Revit 专业实用的BIM模型设计软件下载安装,Revit 最新版下载安装

Revit&#xff0c;该软件是专门为建筑信息模型&#xff08;BIM&#xff09;量身打造的&#xff0c;不仅极大提升了建筑设计师的工作效率&#xff0c;更为他们创造了一个更加精确、高效的设计环境。 在Revit的助力下&#xff0c;建筑设计师们能够轻松地进行建筑建模&#xff0c…

AI:开发者的助力还是终结者?

作为一名科技工作研发者&#xff0c;在科技浪潮汹涌澎湃的当下&#xff0c;AI 对于开发者的角色定位成为了一个备受瞩目的焦点话题。 AI 是在助力开发者&#xff0c;还是会取而代之&#xff1f;让我们从技术的角度深入剖析。 不可否认&#xff0c;AI 为开发者带来了前所未有的便…

Django QuerySet对象,all()方法

all()方法 在Django中&#xff0c;all()方法是QuerySet对象的一个方法&#xff0c;用于获取模型的所有实例。 当你调用ModelName.objects.all()时&#xff0c;Django会生成一个SQL查询&#xff0c;从数据库中获取该模型的所有记录&#xff0c;并返回一个QuerySet对象&#xf…

uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)

vite 中使用 /deep/ 进行样式穿透报错 原因&#xff1a;vite 中不支持&#xff0c;换成 ::v-deep 或:deep即可

创建kset

1、kset介绍 2、相关结构体和api介绍 2.1 struct kset 2.2 kset_create_and_add kset_create_and_addkset_createkset_registerkobject_add_internalkobject_add_internal2.3 kset_unregister kset_unregisterkobject_delkobject_put3、实验操作 #include<linux/module.…

【MySQL8.0】 CentOS8.0下安装mysql报错权限问题的记录

这里写自定义目录标题 基本信息问题记录 基本信息 OS: Linux server-02 4.18.0-240.el8.x86_64 #1 SMP Fri Sep 25 19:48:47 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux MySQL: 8.0 问题记录 缺少类库 mysql: error while loading shared libraries: libncurses.so.5: cannot…

泛型 + 反射 + 注解 + 动态代理 + 设计模式 + Factory(BeanFactory,FactoryBean)

1.泛型 编译器可以对泛型参数进行检测&#xff0c;并且通过泛型参数可以指定传入的对象类型。比如 ArrayList<Person> persons new ArrayList<Person>() 这行代码就指明了该 ArrayList 对象只能传入 Person 对象&#xff0c;如果传入其他类型的对象就会报错。 原…

周周星分享7.3—基于气象大数据的自动站实况联合预测

赛题 2024中国高校计算机大赛 — 大数据挑战赛 经验分享 大家好&#xff0c;我是扫地僧团队的队长&#xff0c;以前参加这样打榜的比赛比较少&#xff0c;了解的打榜技巧不是太多&#xff0c;所以想从科研的角度给大家一点分享。 这次比赛主要从以下五个步骤进行&#xff1a…

全网最详细金融APP测试功能点-测试用例,详细整理(全)

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;-CSDN博客跳槽涨薪的朋友们有福了&#xff0c;今天给大家推荐一个软件测试面试的刷题小程序。https://blog.c…