个人情况
本人2020年帝都末流211传统工科本硕毕业,一直就职在帝都某央企二级子公司,从事技术经济方面的工作。公司属于垄断行业但行业规模较小,工作节奏缓慢,技术水平一般,收入水平较低,且公司启动转型。考虑转行原因一是自我判断转型可能会失败,白白耽误几年的学习成长期,原因二是对程序员的工作有简单的了解,认为性格上比较合适,原因三或许是“城外的人想进去,城里的人想出来”。
方向确定
在学习之前有关的编程经历有限,通过计算机二级C语言和Python考试,在读研期间使用流体力学模拟软件Fluent时曾用C语言定制过需要的User Defined Function,计算机的基础知识掌握较少。在参考了网络上的信息之后选择学习Web前端作为入门方向,较为重要的原因是比较喜欢做出的东西呈现给很多人的感觉。
写作目的
“老师讲我听、我自己理解、我讲给别人听”是学习的三个阶段,每达到一个阶段,对知识的掌握就更深一层。因此我希望能够把我学到的知识输出出来,加深对知识的理解,更欢迎所有看到我写的文章的前辈从各个角度给我提出意见和建议。
简单梳理
为了全面了解互联网公司的典型工作分工,做了简单的调研,以便更好了解前端工作的任务。
- 运营:对公司的产品或服务进行组织、运行、优化。简单理解为策划活动、留住用户、生产内容等
- 产品经理:收集用户需求、绘制原型图、输出需求文档。简单理解为产出想法、确定需求。
- 设计:输出高保真设计稿。简单理解为设计交互、页面
- 前端:将设计稿实现为可交互的动态页面。包括Web、iOS、Android,虽然客户端不同,但使用的后端逻辑和数据库都是一致的。
- 后端:实现后台服务器系统,支持业务逻辑,包括服务端工程师、AI算法工程师、大数据工程师、中间件工程师、系统架构师。
- 其他:运维、测试、(DBA、BI、安全、搜索)。
Web前端技术栈
参考菜鸟教程Web Front-end Stack v2.5
- 浏览器:Chrome
- 渲染引擎
- 脚本引擎
- 标准:W3C
- 协议:HTTP
- 编译器:VSCode
- 三剑客:html(DOM,Element,Attribute),css(Selector,Priority,Specificity,Box Model),JavaScript(Prototype,Scope,Closure,JSON,AJAX)
- 运行时:Cookie,Local/Session Storage
- 编译任务
- 编译工具
- 调试
- 基础工具:Node.js
- 质量控制:ESlint
- 包管理:npm
- 测试
- 库/框架
- 基础库:jQuery
- 模块化:ES6 Module, CommonJS, AMD, UMD
- 框架:React, Vue, AngularJS
- UI框架:Bootstrap, ElementUI
- Websocket
- 数据可视化:ECharts
- WebGL:Three.js
- CSS3动画:Animate.css
- 流程控制:Promise, await, async
- 函数式编程
- 手机UI框架
- CSS预处理器:LESS,Sass,Stylus
- 未来标准:babel
- 模板引擎
- 统一化
- 最佳实践:SEO,CDN,Responsiveness
- 安全:Sandbox,XSS,CORS
- 中间语言:TypeScript
- 移动应用开发:React Native
- 桌面应用开发:Electron
不知道已发布的文章是否还可以修改,如果以后遇到没见过的技术会添加到这里,留一个初步认识的印象。如有大佬介绍当前常用或流行或入门应该学习的技术,感激不尽。