在这里我以过来人的身份写下这篇文章,希望刚刚进入大学或者即将进入大学的学弟学妹们千万不要像我一样,等到快要毕业或者出去找工作的时候才知道知识技能的重要性。

我只有专科学历,专业学的是机械工程专业。大一的时候还老老实实地上上课,参加下学校的各种社团活动,感觉还挺充实。到了大二可能受身边同学的影响,天天沉迷于网吧,白天睡觉晚上通宵,玩得不亦乐乎。大学毕业就随便找了个物流公司实习。

上班后才知道社会多残酷,工资低开销大,很多地方都需要用到钱,工资月光,更别说什么存款,心里其实挺慌的;偶然一次机会,了解到一个高中同学大学学的是计算机专业,现在从事前端开发的工作,薪资待遇挺好的。他和我说他身边也有很多同事也不是计算机专业出身,让我尝试自学一下前端。

于是我从去年9月份开始自学WEB前端,差不多用了8个月的时间吧,现在是在南京的一家软件公司做开发,技术部大约是30多人。薪资是12K,五险一金。我觉得自己挺幸运,大学荒废了那么多时间,毕业后还能找到一份月薪过万的工作。

根据我自学的经验给大家几点建议:

1.准备一份系统的视频教程。

我自学用的视频教程是我朋友给我的,他跟我说普通教程ajax前后端交互会在学完js后直接讲XMLHttp的API方法和使用, 跨域和封装也只限于前端代码部分的讲解和库的使用。而他给我找的这份教程,在这些基础上拓展了HTTP理论、交互通信原理、服务端http服务器搭建、MIME、报文端口、监听抓包、网络业务模型、代理缓存、cookie session 鉴权认证、安全加密、Token、JWT、oauth、session管理、RESTful接口设计、协商合约、资源标识等原理规则性知识,能够让我真正清楚整个交互的来龙去脉,而不只是单纯地抄方法、跟着教程写代码。我能找到12K的工作,很大一部分原因就是这份教程讲得内容够详细,技术学的扎实。

如果大家找不到一份系统的教程,可以用我当时自学的这份,这份教程在我的网盘里面,因为网盘链接放上来会被建议修改,有需要可以加入我们的学习裙,前面三位484,中间三位757,后面三位760。找我要,我免费分享给你。
在这里插入图片描述

2.学习过程中一定要多练习敲代码。

我刚开始自学那会,总感觉自己能看懂代码,但动手却写不出来。通过和我朋友沟通才发现,我的学习方式有问题。正常的学习方式应该是写代码的时间要比看视频的时间长。只有多敲代码,才能够理解运用。很多人学完之后,能够看懂代码但是不会写,或者是学了后面的忘了前面的,根本原因都是练得太少。假设每天学习前端的时间是6个小时,那么起码要拿出3个小时以上的时间练习敲代码。只看视频不敲代码,就是在浪费时间。

3.多和专业人士沟通交流,避免闭门造车

有人一起交流学习,真的是事半功倍,效率会提高非常多。身边没有能跟你探讨学习的朋友,可以加一些学习氛围不错的前端交流学习群,跟有经验的人交流可以学到很多好的学习方法和技巧,提高我们的学习效率。找不到好的学习群,可以加入我朋友创建的这个前端学习交流群。前面三位484,中间三位757,后面三位760,里面有好多已经工作的大佬,每天不忙的时候在群里解答问题。也有很多正在学习的人每天交流学习心得。气氛是非常好的,大家可以在群里一起监督学习。我能自学找到12K的工作,离不开群里这些大佬的帮助。
在这里插入图片描述
在这里插入图片描述

最后给大家分享一份系统的前端学习路线,我就是按照这份学习路线去学的,上面的知识点掌握了百分之七十就找了12K的工作,给我整理这份学习路线的大佬说,能够把这份学习路线上的知识点全部掌握,就可以准备大厂的面试了。

HTML/CSS3 以及工具部分:

vscode开发工具使用

markdown文档工具使用

浏览器平台环境

标签基础

DTD与META

语义化

选择器

权重与优先级

匹配规则

浮动与清除、

BFC、

类名组合规则

SEO前端技巧

定位

叠加技巧

伪类

伪元素

盒子模型

代码规范

性能优化

渲染原理

CSS Sprites

iconfont字体图标、

布局思路

布局定式

css3动画

css3选择器

css3过渡

flex布局

背景渐变

css3实用动效

3D模块

css3变量

em/rem/vw

学完这些可以完成一个企业内部多页面项目实战(非仿站)有完整PSD与切图

然后就是JavaScript 部分,你需要掌握以下知识点:

JavaScript概念

基础认知

发展历史

应用范围

优缺点

ECMAScript

语言概览

语句语法

数据类型

运算符

隐式转换

运算规则

控制流程

作用域

作用域链

作用域解析

js解释引擎

字符串属性方法

for of/for in

数组属性方法

对象

广义对象概念

对象特性

存储机制

深拷贝

对象实际应用

工厂模式

构造函数

原型

原型链

原型指向

封装

多种继承

包装对象

this

this指向

js数据处理

垃圾GC

闭包原理与应用

debug方法论

浏览器控制台工具应用

面向对象开发

函数式开发

纯函数

递归函数

回调函数

组合函数

缓存函数

柯里化函数

偏函数

函数防抖与节流

高级函数

IIFE函数

模块化

数学对象

高级数组方法(reduce、filter、map、every、some、forEach、find、findIndex、include)等

高级对象方法(entires、defineProperty、freeze、fromEntries、assign、keys、create、hasOwnProperty)等

this通过bind、call、apply指向偏移、同步与异步、闭包模块化、数据形变处理、性能处理

DOM/BOM

DOM对象与方法

节点与遍历树

DOM选择器

DOM节点增删改查

DOM样式操作

DOM位置获取与偏移

DOM对象与标签区别

DOM虚拟化

DOM事件

Event对象

定时器与监听器

事件委托

事件代理

事件分流

事件冒泡

默认行为

事件捕获

防抖

节流

滚动

键盘行为

事件降频

行为锁机制

拖拽模组

碰撞检测

距离判断

三角函数

方向判断

运动框架

弹性运动

重力加速度

DOM树

CSSOM树

渲染解析

加载

回流

重绘

浏览器线程与阻塞

BOM深入

window对象

navigator

history

screen

location

spa概念

本地传参

日期对象使用

日期格式化封装

随机封装

DOM分片容器

JS业务应用扩展

JSON对象

数据解析

JSON方法

模板渲染

缓存懒加载

正则表达式RegExp

元字符

修饰符

正向预查

贪婪模式

replace方法

分组与不分组

test

match与exec

正则库封装

表单校验

图片预存懒加载

自定义封装滚动组件

多重轮播(循环、视差、旋转木马)

选项卡切换

楼梯导航

吸顶导航

拖拽导航

JavaScript编码风格指南

console应用技巧

ECMAScript5 --- ECMAScript9扩展

版本解读

应用环境

let

const

解构赋值

箭头函数

对象解构

reset参数解构

class

set

get

extends

super

static

private实现

symbol

promise

proxy代理拦截

async/await

对象新增API

数组新增API

字符串新增API

原型属性

对象修饰

代理拦截

链式询问

空值合并运算符

泡泡龙面向对象游戏开发

HTML5 / 移动端开发 部分

HTML5标签与API

HTML5概念

定义

新增特性

DTD对比

新增H5标签

新增语义化H5标签

H5表单

H5拖拽事件

video

audio

fullScreen

FileReader文件流

Blob对象

sessionStorage

localStorage

网络状态

页面生命周期

网页状态监听

地理信息与定位

canvas画布

worker多线程

Notifications桌面通知

播放器开发

canvas交互特效开发

移动端适配/事件

移动端适配概念

尺寸与分辨率原理

PPI与DPI计算

DIP与DPR设备像素概念

视口viewport概念

布局视口

视觉视口

理想视口

视口适配方案(Meta viewport)缩放设置

screen窗口大小API

媒体查询@media

rem适配

vw vh适配

移动端适配方案

flexible rem方案

vh vw方案

复合方案

高清适配方案

移动端字体缩放解决

1px边框问题解决

半像素线

图片高清适配

image-set

srcset

js拼接URL技巧

IPhonex刘海屏适配

安全区域

fit与env

Meta权限管理

兼容优化

IOS头部底部闪屏回退输入框问题

输入法空格问题

默认首字母大写问题

滑动卡顿问题等

终端样式美化与访问判断

Touch事件组封装

click延迟处理

FastClick使用

禁用缩放设置理想视口

常用类库/工具

jquery: 元素选择、增删改差、事件处理、位置获取、动画过渡、高级方法、特效应用

zepto:移动端的jquery、DOM操作、移动端事件、click延迟处理、touch事件组

基础UI库: layerUI 、easyUI、bootStrap、UI模块化、UI库使用技巧、文档解读、案例调试、表单系统

iScroll、touchjs等移动端事件库使用

swiper:移动端网站触摸滑动、轮播图插件、模块化应用、源码解读

art-template: 模板引擎 模板语法、渲染方法、原生模板引擎实现

CSS预处理:sass、less使用 stylus深入学习 、预处理语法、css编程、 Minxin 、预处理函数、继承、嵌套

vscode高级插件与配置 liveserver sass

模板化应用 、预处理应用

date-picker移动端原生组件开发

需求分析

业务规则、

技术栈选型、

文件输出规则、

技术分析

MVC模型概念与设计、

业务逻辑分类

view层适配方案

原型布局搭建

模板化生成

工具函数开发、

面向对象式业务设计

功能类日期对象开发

交互业务封装

模块对接

优化设计

面向对象高级程序设计

Nodejs与工程化开发 部分

Node原生基础

Node基础概念

NPM命令

V8引擎概念

JavaScript模块化 CMD AMD UMD

EventLoop事件循环

同步异步、

阻塞非阻塞

任务队列

宏任务

微任务

原生Node模块

核心模块与require

module

触发器events与path模块

fs模块

Buffer对象

URL模块

HTTP模块

stream流

Node原生封装HTTP与文件服务器

Node框架

express框架使用

中间件

核心对象

路由配置

模板引擎

数据脚本

Router核心

CORS配置

错误处理

校验封装

PM2管理

nodemoon管理

MORGAN日志处理

查询正则捕获

中间件开发

bodyParse等第三方中间件使用

文件流上传下载

文件流切分

webpack工程化构建

工程化概念

工程化工具介绍

webpack基础知识

webpack配置与运行

plugin插件

loader使用

入口出口配置

模块modules

依赖处理

dev Server

target

文件切分

build打包

热处理

package管理

性能优化

测试处理

第三方插件使用

babel等

前后端数据交互

HTTP通信交互原理

请求响应

MIME

URI地址

报文解析

端口

报文流

测试监听抓包

TCP/IP握手机制

网络业务模型

代理

缓存

网关

隧道等概念

method与请求头分类

基础XMLHTTPRequest对象方法属性

方法

ajax异步交互

同源策略原理

原生js封装ajax交互

jquery的ajax封装交互

jsonp跨域处理

cors跨域处理

携带cookie与跨域处理

代理服务器跨域处理

cookie验证与通信

axios库的使用 代理

封装

拦截

合并

二次封装

通信加密策略

数据对称加密

数据非对称加密

RSA加密实践

MD5加密实践

登录注册与鉴权机制

Authenticity认证

Token认证

JWT认证

session状态管理

oauth认证

RESTful接口设计

RESTful设计原则

状态码设计与规范

服务器响应规则与格式

前后端接口协议制定

传统RESTful改进

API设计规范

资源定位

JSON模式

合约说明

资源标识符

缓存友好API

HTTP头管理

文档定义

松耦合原则

一致性

重用

稳定性原则

数据库存储

MongoDB基础概念

NoSQL与SQL

CAP定理

RDBMS

MongoDB语法

指令

监控与GUI

MongoDb驱动

Mongoose应用

数据库创建

集合增删改查

文档增删改查

数据库查询

高级查询操作

通道查询

多条件查询

反向筛选

索引处理

aggregate聚合管道

validation验证

population联表

middleware中间件处理

查询ERROR类二次封装

博客后台项目实战

数据库设计

服务端路由搭建

接口设计与API管理

通信交互管道封装

注册登录

路由导航

前端路由管理

权限管理

用户管理

分类管理

标签管理

文章管理

模块化功能封装

校验库封装

promise链式行为封装

异步模块处理

SPA单页面应用初级实现

原生集中行为控制器

模板化+模块化+预处理+工程化实现前端页面

组件化封装

组件化基础概念

组件设计原则

组件封装

组件耦合与解耦

工程化+模板化+模块化实现原生组件化功能

vue框架部分

vue基础

vue开发准备

工具与插件

mvc mvp mvvm设计理念

原生js实现MVVM核心框架

vue设计模式

生命周期

命令与属性

组件化

数据驱动与双向绑定

虚拟DOM概念原理

模板语法

条件与列表

数组监测

计算属性

事件处理

修饰与表单

监听器

过滤器

methods watch computed filter对比

组件化开发

动态组件

组件通信

高级组件通信

插槽

vue动画

实例对象

set

get

nextTick

vue插件

vue工程化

Babel

webpack配置vue

vue单文件组件

vue-cli

工程平台处理

postCss

animate

core

socket

lodash工具

vue-cli插件

preset

静态资源处理

环境变量与膜还是切换

工程化部署

工程构建

vue Router

vue路由概念

嵌套路由

路由视图

动态路由

路由匹配

编程式导航

history

hash模式管理

命名视图

重定向与别名

导航守卫

路由元信息

滚动与懒加载

导航故障处理

vuex

vuex核心概念

EventBus对比

状态管理模式

Store

state

getter

mutation

action

moudule

vuex辅助函数与API功能

vuex环境选择

vuex模块化处理规则与技巧

对象风格提交方式

模块重用等

vue项目实战

vue博客项目实战 PC + 移动端

elementUI

vantUI

websocket聊天室

虚拟人偶

vueScroll

store

qs

nprogress

editor

文章分类

词云效果

spa单页面应用

移动PC无缝切换

完整注册登录

vue加密鉴权

http封装管理

错误处理封装

vuex核心状态管理

本地存储状态更新

令牌处理

文章富文本编辑

点赞

收藏

访问

评论

组件封装

组件复用

组件混合

高级组件开发

复合性组件通信

vue中处理原生DOM行为

vue常见错误处理

重置vue数据响应

个人信息修改

头像上传

通知组件封装

postcss应用


用户bPcIIME
63 声望5 粉丝