百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

我第一份Web前端工作能找到12k的工作,就是掌握了这些技术栈

sinye56 2024-10-26 14:30 6 浏览 0 评论

我个人的情况是有1年web前端工作经验+半年的实习经验,2020年毕业,大一的时候学过C语言,所以一直对于编程感兴趣。我是从大三开学后正式开始自学web前端相关的知识,之所以选择前端方向,一方面是自己对于网页更加感兴趣,二是听我哥说目前web前端的发展趋势更好(我哥在网易做程序员),所以我就确立了前端方向为以后我就业的主要方向。从开始自学到大四的实习,我一共花了1年2个月时间,把前端主要的技术点和框架都过了一遍,自己做了三个Vue的项目实战。然后在2019年的10月份进入了杭州当地的一家公司实习半年,一直到2020年4月在这家公司转正,待遇是月薪12K*14薪+五险一金。目前算上实习的时间,我已经在这家公司工作一年半多的时间,我并不打算跳槽,我哥说的意思就是,尽量别因为工资高低的问题频繁跳槽,如果这家公司还有很多成长的空间,还能学到很多东西,就不要轻易跳槽。因为我在自学一年的过程中,我哥给了我很多的帮助,所以他的建议我是一定要听的,而且我觉得确实是这样的道理。因为我是刚毕业一年的,所以这篇文章主要也是写给在校的学弟们一些建议,希望能给大家带来帮助。

给大家总结我一年时间学了哪些前端技术:

说明:下面的内容就是我一年时间全部掌握的内容,为什么我会列得如此之细,重点就在这里,其实这些技术都是大家平时可以接触到的,我们在实际的开发工作中用的也都是这些技术,只不过不同的是大家掌握的程度不一样。我们学的技术名称可能是一样的,但是我们对于这门技术所理解的深度以及掌握的实际操作水平可能相差很多,这就是我一个二本学历为什么可以在毕业后第一份工作就拿到12K,我觉得是这个原因,就是因为我学得非常细,所以希望大家不要抱怨内容太多,你要是真想在前端这个领域成为技术大牛,这都是必须要做的。

一定要看到最后,有所有前端学习资料的链接!

一定要看到最后,有所有前端学习资料的链接!

一定要看到最后,有所有前端学习资料的链接!

一、HTML/CSS3

  • 标签基础
  • DTD与META
  • 语义化
  • 选择器
  • 权重与优先级
  • 匹配规则
  • 浮动与清除
  • BFC
  • 类名组合规则
  • SEO前端技巧
  • 定位
  • 叠加技巧
  • 伪类
  • 伪元素
  • 盒子模型
  • 代码规范
  • 性能优化
  • 渲染原理
  • CSS Sprites
  • iconfont字体图标
  • 布局思路
  • 布局定式
  • css3动画
  • css3选择器
  • css3过渡
  • flex布局
  • 背景渐变
  • css3实用动效
  • 3D模块
  • css3变量
  • em/rem/vw
  • 企业内部多页面项目实战

二、JavaScript

1、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指向偏移、同步与异步、闭包模块化、数据形变处理、性能处理

2、DOM/BOM

  • DOM对象与方法
  • 节点与遍历树
  • DOM选择器
  • DOM节点增删改查
  • DOM样式操作
  • DOM位置获取与偏移
  • DOM对象与标签区别
  • DOM虚拟化
  • DOM事件
  • Event对象
  • 定时器与监听器
  • 事件委托
  • 事件代理
  • 事件分流
  • 事件冒泡
  • 默认行为
  • 事件捕获
  • 防抖
  • 节流
  • 滚动
  • 键盘行为
  • 事件降频
  • 行为锁机制
  • 拖拽模组
  • 碰撞检测
  • 距离判断
  • 三角函数
  • 方向判断
  • 运动框架
  • 弹性运动
  • 重力加速度
  • DOM树
  • CSSOM树
  • 渲染解析
  • 加载
  • 回流
  • 重绘
  • 浏览器线程与阻塞
  • BOM深入
  • window对象
  • Navigator
  • History
  • Screen
  • Location
  • spa概念
  • 本地传参
  • 日期对象使用
  • 日期格式化封装
  • 随机封装
  • DOM分片容器


3、JS业务应用扩展

  • JSON对象
  • 数据解析
  • JSON方法
  • 模板渲染
  • 缓存懒加载
  • 正则表达式RegExp
  • 元字符
  • 修饰符
  • 正向预查
  • 贪婪模式
  • replace方法
  • 分组与不分组
  • test、match与exec
  • 正则库封装
  • 表单校验
  • 图片预存懒加载
  • 自定义封装滚动组件
  • 多重轮播(循环、视差、旋转木马)、选项卡切换、楼梯导航、吸顶导航、拖拽导航 、
  • JavaScript编码风格指南
  • console应用技巧

4、ECMAScript5 --- ECMAScript9扩展

  • 版本解读
  • 应用环境
  • let、const
  • 解构赋值
  • 箭头函数
  • 对象解构
  • reset参数解构
  • Class
  • Set
  • Get
  • Extends
  • Super
  • Static
  • private实现
  • symbo
  • Promise
  • proxy代理拦截
  • async/await
  • 对象新增API
  • 数组新增API
  • 字符串新增API
  • 原型属性
  • 对象修饰
  • 代理拦截
  • 链式询问
  • 空值合并运算符
  • 泡泡龙面向对象游戏开发

三、HTML5 / 移动端开发 部分

1、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使用
  • 禁用缩放设置理想视口


2、常用类库/工具

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 模板化应用 、预处理应用

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

  • 需求分析
  • 业务规则
  • 技术栈选型
  • 文件输出规则
  • 技术分析
  • MVC模型概念与设计
  • 业务逻辑分类
  • view层适配方案
  • 原型布局搭建
  • 模板化生成
  • 工具函数开发
  • 面向对象式业务设计
  • 能类日期对象开发
  • 交互业务封装
  • 模块对接
  • 优化设计
  • 面向对象高级程序设计

四、Node与工程化开发

1、Node原生基础

  • Node基础概念
  • NPM命令
  • V8引擎概念
  • JavaScript模块化 CMD AMD UMD
  • EventLoop事件循环
  • 同步异步
  • 阻塞非阻塞
  • 任务队列
  • 宏任务
  • 微任务
  • 原生Node模块
  • 核心模块与require
  • Module
  • 触发器events与path模块
  • fs模块
  • Buffer对象
  • URL模块
  • HTTP模块
  • stream流
  • Node原生封装HTTP与文件服务器


2、Node框架

  • express框架使用
  • 中间件
  • 核心对象
  • 路由配置
  • 模板引擎
  • 数据脚本
  • Router核心
  • CORS配置
  • 错误处理
  • 校验封装
  • PM2管理
  • nodemoon管理
  • MORGAN日志处理
  • 查询正则捕获
  • 中间件开发
  • bodyParse等第三方中间件使用
  • 文件流上传下载
  • 文件流切分


3、webpack工程化构建

  • 工程化概念
  • 工程化工具介绍
  • webpack基础知识
  • webpack配置与运行
  • plugin插件
  • loader使用
  • 入口出口配置
  • 模块modules
  • 依赖处理
  • dev Server
  • target
  • 文件切分
  • build打包
  • 热处理
  • package管理
  • 性能优化
  • 测试处理
  • 第三方插件使用
  • babel等

4、前后端数据交互

  • HTTP通信交互原理
  • 请求响应
  • MIME
  • URI地址
  • 报文解析
  • 端口
  • 报文流
  • 测试监听抓包
  • TCP/IP握手机制
  • 网络业务模型
  • 代理
  • 缓存
  • 网关
  • 隧道等概念
  • method与请求头分类
  • 基础XMLHTTPRequest对象方法属性
  • 方法
  • ajax异步交互
  • 同源策略原理
  • 原生js封装ajax交互
  • jquery的ajax封装交互
  • jsonp跨域处理
  • cors跨域处理
  • 携带cookie与跨域处理
  • 代理服务器跨域处理
  • cookie验证与通信
  • axios库的使用代理
  • 封装
  • 拦截
  • 合并
  • 二次封装
  • 通信加密策略
  • 数据对称加密
  • 数据非对称加密
  • RSA加密实践
  • MD5加密实践
  • 登录注册与鉴权机制
  • Authenticity认证
  • Token认证
  • JWT认证
  • session状态管理
  • oauth认证

5、RESTful接口设计

  • RESTful设计原则
  • 状态码设计与规范
  • 服务器响应规则与格式
  • 前后端接口协议制定
  • 传统RESTful改进
  • API设计规范
  • 资源定位
  • JSON模式
  • 合约说明
  • 资源标识符
  • 缓存友好API
  • HTTP头管理
  • 文档定义
  • 松耦合原则
  • 一致性
  • 重用
  • 稳定性原则


6、数据库存储

  • MongoDB基础概念
  • NoSQL与SQ
  • CAP定理
  • RDBMS
  • MongoDB语法
  • 指令
  • 监控与GUI
  • MongoDb驱动
  • Mongoose应用
  • 数据库创建
  • 集合增删改查
  • 文档增删改查
  • 数据库查询
  • 高级查询操作
  • 通道查询
  • 多条件查询
  • 反向筛选
  • 索引处理
  • aggregate聚合管道
  • validation验证
  • population联表
  • middleware中间件处理
  • 查询ERROR类二次封装

五、Vue框架

1、vue基础

  • 工具与插件
  • mvc mvp mvvm设计理念
  • 原生js实现MVVM核心框架
  • vue设计模式
  • 生命周期
  • 命令与属性
  • 组件化
  • 数据驱动与双向绑定
  • 虚拟DOM概念原理
  • 模板语法
  • 条件与列表
  • 数组监测
  • 计算属性
  • 事件处理
  • 修饰与表单
  • 监听器
  • 过滤器
  • methods watch computed filter对比
  • 组件化开发
  • 动态组件
  • 组件通信、高级组件通信
  • 插槽
  • vue动画
  • 实例对象
  • set
  • Get
  • nextTick
  • vue插件

2、vue工程化

  • Babel
  • webpack配置vue
  • vue单文件组件
  • vue-cli
  • 工程平台处理
  • postCss
  • Animate
  • Core
  • Socket
  • lodash工具
  • vue-cli插件
  • Preset
  • 静态资源处理
  • 环境变量与膜还是切换
  • 工程化部署
  • 工程构建

3、vue Router

  • vue路由概念
  • 嵌套路由
  • 路由视图
  • 动态路由
  • 路由匹配
  • 编程式导航
  • History
  • hash模式管理
  • 命名视图
  • 重定向与别名
  • 导航守卫
  • 路由元信息
  • 滚动与懒加载
  • 导航故障处理

4、vuex

  • vuex核心概念
  • EventBus对比
  • 状态管理模式
  • Store
  • state
  • Getter
  • Mutation
  • Action
  • moudule
  • vuex辅助函数与API功能
  • vuex环境选择
  • vuex模块化处理规则与技巧
  • 对象风格提交方式
  • 模块重用等

如果学弟们可以掌握上述内容,我认为找到10K以上的工作没有任何问题。根据我的观察,目前网上很多机构的前端课程都是偷工减料,很多前端里面的知识点都是能删就删,400多课时的内容被压缩到180课时,所以就导致了现在很多人学习前端,但是很难找到工作的一个主要原因。如果不是我哥是做这方面的,我感觉自己应该会跟大多数人一样,学的内容都是欠缺很多,可能连工作都找不到,更不要说可以找到12K的前端开发工作。所以我觉得尽量要找一个身边的亲戚朋友做这方面的带带自己,不然一个人真的太容易走弯路。

看我分享的这些前端教程,绝对要比你在网上找的那些好很多倍:

因为链接不让发,想要获取教程的朋友,可以私信我“前端”

这套教程就是对应着我上面总结的前端技术栈,这是我目前看到最好的前端课程,要比网上大部分教程讲得要好,特点就是更加的细致,很多实际开发的问题都有讲到,很注意前端方面的规范问题,这在很多前端教程中都是没有的,所以我认为更加适合新手学习就业。

推荐的前端书籍:

  • javascript编程精解
  • javascriptDOM编程艺术
  • javascript高级程序设计(3/4)
  • 你不知道的javascript(上中下)
  • javascript权威指南
  • javascript设计模式与实践应用

喜欢阅读文字的学弟们可以看看这些书籍,这都是我挑出来比较经典的JavaScript技术书籍。

前端到底应该怎么学才好?

如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。而很多同学不会学习,只是每天看视频,而不去写代码写项目实践,这样的学习状态是错误的。在整个学习过程中会出现很多问题,不懂就问,忘了就查,学习编程是一个漫长的过程,需要有足够的耐心和学习的决心。自我摸索自学的过程中会有很大的困难,最后能通过自我摸索自学成功的也是极少数。所以尽量要找一个比较有经验的人去带你,这样才不会走弯路。

如何找工作的问题?

在校的大学生一定不能错过大四的秋招,秋招是非常重要的,一般在秋招的时候都是一些比较好的公司,这个时候往往公司的数量也特别多,能走秋招就走秋招。如果秋招没有准备好,就等明年的春招,反正能通过校招进企业就通过校招进,一旦错过了校招,社招就会变得异常艰难。

还有IT圈一个非常重要的规则,就是通过熟人介绍,很多公司都有猎头,这些猎头就是发掘那些技术好的人才,通过各种方式进行挖人,所以通过关系进行内推也是找工作的主要方式,内推要更加容易就业。

再就是自己去投简历,这样找工作的方式就是海投,海投就会比较累,但是如果你技术能力强,也可以找到自己心仪的公司。如果是大学生,我建议一定要通过校招走,在学习的过程中,多认识一些关系,以后打算在这个圈子里面混,少不了认识一些公司的HR资源以及技术方面比较不错的大佬,我是打算干满三年,然后通过我哥在网易的关系把我内推到网易,网易的薪资就高了,去了后直接年薪30万起步,现在就是我积累的过程。

相关推荐

RHEL8和CentOS8怎么重启网络

本文主要讲解如何重启RHEL8或者CentOS8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL8或者CentOS8,重启启动网络时,会出现以下报错:...

Linux 内、外网双网卡路由配置

1.路由信息的影响Linux系统中如果有多张网卡的情况下,如果路由信息配置不正确,...

Linux——centos7修改网卡名

修改网卡名这个操作可能平时用不太上,可作为了解。修改网卡默认名从ens33改成eth01.首先修改网卡配置文件名(建议将原配置文件进行备份)...

CentOS7下修改网卡名称为ethX的操作方法

?Linux操作系统的网卡设备的传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的...

Linux 网卡名称enss33修改为eth0

一、CentOS修改/etc/sysconfig/grub文件(修改前先备份)为GRUB_CMDLINE_LINUX变量增加2个参数(net.ifnames=0biosdevname=0),修改完成...

CentOS下双网卡绑定,实现带宽飞速

方式一1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0IPADDR=191.3.60.1NETMASK=255.255.2...

linux 双网卡双网段设置路由转发

背景网络情况linux双网卡:网卡A(ens3)和网卡B(...

Linux-VMware设置网卡保持激活

Linux系统只有在激活网卡的状态下才能去连接网络,进行网络通讯。修改配置文件(永久激活网卡)...

VMware虚拟机三种网络模式

01.VMware虚拟机三种网络模式由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有v...

Rocky Linux 9/CentOS Stream 9修改网卡配置/自动修改主机名(实操)

推荐...

2023年最新版 linux克隆虚拟机 解决网卡uuid重复问题

问题描述1、克隆了虚拟机,两台虚拟机里面的ip以及网卡的uuid都是一样的2、ip好改,但是uuid如何改呢?解决问题1、每台主机应该保证网卡的UUID是唯一的,避免后面网络通信有问题...

Linux网卡的Vlan配置,你可能不了解的玩法

如果服务器上连的交换机端口已经预先设置了TRUNK,并允许特定的VLAN可以通过,那么服务器的网卡在配置时就必须指定所属的VLAN,否则就不通了,这种情形在虚拟化部署时较常见。例如在一个办公环境中,办...

Centos7 网卡绑定

1、切换到指定目录#备份网卡数据cd/etc/sysconfig/network-scriptscpifcfg-enp5s0f0ifcfg-enp5s0f0.bak...

Linux搭建nginx+keepalived 高可用(主备+双主模式)

一:keepalived简介反向代理及负载均衡参考:...

Linux下Route 路由指令使用详解

linuxroute命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该...

取消回复欢迎 发表评论: