• Home
  • About
    • shawvey photo

      shawvey

      在写bug比赛中荣获第一名🐛

    • Learn More
    • Email
    • Twitter
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Notes

2020年春秋招知识储备

16 Feb 2020

Reading time ~20 minutes

本文目录🧾

  • 前端学习路线📝
    • To-do lists
    • 前端思维导图——Jack Wang
    • 学习前端基础&简单实践
    • 实现较完善的项目
    • 对项目的思考
    • 前端知识体系
    • 项目实战和框架考点
    • 学习资源
    • 求职经验
  • 团子DangoSky的建议
  • 牛客网网友的经验分享
  • 其他前端内容分享
    • 开发工具
    • 基础知识
    • 中级知识
    • 高级知识
    • 服务器端
    • 技能图谱
    • 在线资源
    • 在线教程
    • 在线书籍
    • 推荐书目
  • 后期补充Lists
  • 学习网站
  • 基础篇(实验楼分享)
  • 基础篇(网友分享)
    • 1. 数据结构与算法
      • 1.1 书籍
      • 1.2 博客
      • 1.3 论坛
      • 1.4 网络链接
      • 1.5 题库
      • 1.6 一些常见问题的专业术语
    • 2. C/C++语言
      • 2.1 书籍
      • 2.2 网络链接
      • 2.3 常见库函数的实现
      • 2.4 有趣的问题
    • 3. Linux
      • 3.1 书籍
      • 3.2 网络链接
    • 4. MySQL
      • 4.1 书籍
      • 4.2 网络链接
    • 5. 系统设计
    • 6. 操作系统
  • 数据分析篇
    • github仓库
    • 推荐书籍
    • 项目
    • 商务分析工具
  • 参考文章

正文部分📝

不知不觉,已经是要面临职场的小肖啦👧。

其实对自己的职业规划还挺迷茫的,目前偏向于去高校和事业单位。但还是更想去大厂锻炼自己几年,不管能不能去成大厂,我还是会努力投我的梦厂的~

最近在看《精益数据分析》这本书,目前看到第二章,学到的还略少。不过渐渐理解了数据分析师不能只是一味机械化地处理数据,而是更多地要依靠数据去做正确的决策。从大三到研究生一直都想从事数据分析方面的工作,但渐渐发现这个岗位好像不适合我。单纯的数据分析根本没法胜任大厂的工作,其实大厂数据分析师还是更偏向于业务,而且需求很少,感觉这个大厂这个岗位偏向于找非常优秀的人才。(可惜我不优秀hhh)所以最后还是决定把我的秋招方向主要落在前端工程师上,这篇文章就用来记录我的前端学习之路吧~

前端学习路线📝

To-do lists

Contents Posts Status
HTML HTML学习笔记(一) HTML学习笔记(二) ✅
CSS CSS学习笔记(一) CSS学习笔记(二) ✅
JavaScript 红宝书阅读进度 红宝书读书笔记 🎯
Vue    
React    
Node.js    
前端项目 天气助手(Vue/Element UI/express/axios/SQLite3) 🎯
操作系统 CS-Notes 🎯
计算机网络 CS-Notes 🎯
算法与数据结构 《剑指offer》《学习JavaScript数据结构与算法》 🎯
数据库    
密码学、编译原理等    

前端思维导图——Jack Wang

By Jack Wang

学习前端基础&简单实践

  • HTML & CSS
    • 浏览一遍W3C school的教程,看看基本用法
    • 做牛客网HTML/CSS专题
    • 模仿大型网站实现布局和样式
  • JavaScript
    • 粗读一遍《JavaScript高级程序设计》即红宝书
      • 重点:闭包、原型链、this、DOM编程、Ajax等
    • 然后在之前模仿的静态页面基础上,实现动态交互,尽量做到与原网站相同
    • 再回看红宝书
    • 之前用到的都是ES5标准,这有点坑。需要学习ES6、ES7标准,为以后做基础。推荐阅读《ES6标准入门》
      • 重点:promise、箭头函数、Async/Await等

实现较完善的项目

  • 库/框架

    • 操作DOM框架:jQuery、zepto (用于入门,适用于简单业务)

    • 操作数据:React、Vue、Angular

      • 思想:操作数据,就是操作视图(DOM),无需直接操作DOM

      • 重点:设计思想、生命周期、Diff算法、相关生态等

      • 建议从React和Vue中选一个了解以上重点,最好还可以了解两者相关生态对比。

  • 工程类工具

    • 项目构建、打包、压缩:Web pack

    • 编译:babel

    • 版本管理:git(推荐)、svn

    • 这些只需要了解功能和用法即可

  • Node.js

    • 用于作为项目后台,使项目走完前后端,很加分。

    • 先学习《Node.js开发指南》,适合入门,可以根据书本完成一个项目。

    • 熟悉掌握后,可以自我选择阅读《深入浅出Node.js》

    • 可以逛逛CNode社区

对项目的思考

  • 这个项目解决了什么需求?(实现了什么功能)

  • 它使用了什么技术、与同类型的项目相比它的闪光点在哪?

  • 在开发过程中遇到了什么问题,你是如何思考、解决这个问题的?

  • 这个在面试中常问,所以对自己做的项目要有所思考。

前端知识体系

  • 基础部分:HTML、CSS、JS
  • 框架:React、Vue、Angular等
  • 工程化:webpack、babel、代码管理、模块化等
  • 可拓展方向:Node.js、前端可视化等
  • 计算机基础:
    • 操作系统、计算机网络、算法与数据结构(可以看看左神算法课,可以快速入门并掌握一些写算法甚至面试的技巧)
    • 数据库、密码学、编译原理等

项目实战和框架考点

屏幕快照 2020-02-16 22.01.27.png

屏幕快照 2020-02-16 22.01.44.png

学习资源

  • 书籍

    • 基础部分:《JavaScript高级程序设计》、《DOM编程艺术》、《精通CSS》、《Node.js开发指南》

    • 进阶部分:《ES6标准入门》、《你不知道的Javascript》、《高性能Javascript》、《深入浅出Node.js》

  • 网络资源

    • 国内出名的前端团队博客

    • 个人博客:阮一峰、小胡子哥、张鑫旭、程序员小卡等等

    • 行业大牛的GitHub

  • 纯公益的前端学院

    • 百度IFE前端学院

    • FreeCodeCamp:解题型的前端学习网站

  • 算法资源

屏幕快照 2020-02-16 21.59.36.png

求职经验

  • 网申
    • 能内推就不要全网申

    • 内推渠道:牛客网讨论区

    • 直接去官网申请,不要错过时间,在牛客网校招日历里有详细界面

    • 把最心仪的公司留到最后再投,可以先投一些小型但技术不错的公司积累面试经验

  • 关于简历

    • 尽量不要用熟练字眼

    • 利用star法则写项目:着重表达用了什么技术,实现了什么功能,有什么闪光点,遇到什么问题,克服了什么难题,得到了什么结果。

      屏幕快照 2020-02-16 22.18.07.png

  • 笔试:大部分公司笔试包括基础题和算法

    • 基础题:刷牛客网

    • 算法题:报名算法课+刷剑指offer

      屏幕快照 2020-02-16 22.19.56.png

  • 面试:

    • 如果你被问到不会的,你可以和面试官说:我这个确实没接触过,但我对某个方面研究比较多,我们可以讨论这个吗?

    • 遇到没有思路的算法题,可以先用笨方法实现,再去想优化。

    • 基础(计算机基础、前端基础)+项目(找项目+做项目)+算法(算法课+刷剑指offer与leetcode)

      屏幕快照 2020-02-16 22.24.39.png

  • HR面

    屏幕快照 2020-02-16 22.28.45.png

  • 关于实习

    • 牛客网实习平台

    • 找学长学姐内推

    • 牛客网讨论区

    • 实习注意事项:不要让自己闲下来,主动找事情做(review导师代码、看内网wiki、跟着去开需求评审会锻炼业务能力、刷题准备面试等),多跟导师多交流,不懂就问。

  • offer选择

    屏幕快照 2020-02-16 22.33.31.png

团子DangoSky的建议

路线是对的,只是学习的先后顺序问题和方法而已。像 HTML,看一下 w3cSchool 的教程就可以了,知道每个标签是用来做什么的,以及有哪些常用的属性,没必要去牛客网做题的。CSS 单看 w3cSchool 估计还不够,还需要再去看看一些 blog 或者书,比如 flex 布局 w3cSchool 里应该是没有介绍的。模仿着大型网站这个倒是有必要,因为在模仿的过程中你会发现很多问题的,然后你就会去定位问题解决问题就有了新的收获。JavaScript 这个需要重点学,不仅仅是 JavaScript 高级程序设计,阮一峰的两个教程也需要看(一个 ES5 的,一个 ES6 的,其中 ES6 的必看,而且还需要很细看才行)。去年我 mentor 还推荐我多看关于 JavaScript 的书,《你不知道的 JavaScript 》上中下三卷挺不错的,以后有时间也可以看(不过这个优先级不高,先把阮一峰的教程看了先)。可能刚开始学 JavaScript 就去啃那些远离可能会有些难,你可以先跟着一些教程比如网易云课堂,用 JavaScript + HTML + CSS 做一次东西出来,比如瀑布流啊相册等等,在做的过程中会有收获的。之后的话就可以学学框架(包含全家桶)了,比较推荐学 react,因为用的人多,而且大厂大多用 react。学会之后基本的框架后就可以用框架做项目了,可以模仿着一些 app 如网易云美团等写,中间你会使用到很多东西,比如 less/sass,typescript、axios,antd、打包部署等,这个过程可以让你熟悉一个基本项目的流程以及熟练使用一些工具。再之后的话,就得深入去学习 JavaScript 和框架的原理了,比如你里面写的虚拟DOM、diff算法、数据绑定的原理。这些理解起来需要花很长时间的,而且最好还是你理解了之后模仿实现一个,这样理解才深入,比如经典的数据绑定原理(我就动手模拟实现过,确实亲自动手实现会更加深刻!)再之后有余力的话,可以学学 node。webpack 的话,优先级不是很高,因为刚开始几乎不用用到,刚开始学的时候都会用脚手架去搭开发环境。上面是个大致的学习路线,基本是必经路线!之后可以选择性的学习,走大前端的路线,你可以学 electron 开发客户端,可以学 flutter 或 react native 开发 app,或者继续用 JavaScript/ typescript 写小程序,就看你喜欢哪个,除出之外还有数据可视化这条路可以走。当然上面这条路线中,还夹杂着计算机网络、Git、数据结构、算法等的学习,这几个没有说是在第几个阶段学,没有前置条件。虽然计网和算法等实际开发中几乎没用到,但面试要考所以还是得学好,以及 LeetCode 刷题。

牛客网网友的经验分享

作者:凌蓝 链接:https://www.nowcoder.com/discuss/319898?type=2&order=0&pos=63&page=1 来源:牛客网

  1. 从书本上学习,推荐红宝书、css世界、你不知道的JavaScript等等;
  2. 如果时间不是很充裕,功利一点,可以在掘金上搜《前端 100 问:能搞懂 80% 的请把简历给我》这类的文章,一个知识点一个知识点的过
  3. 深入学习一个前端ui框架,一定要多动手,再结合掘金文章看源码,感觉看源码在面试的时候挺加分的
  4. Node也要学习下,koa2或express可以学习学习,框架很小,代码量很少,建议阅读源码

作者:Jacle 链接:https://www.nowcoder.com/discuss/366133?type=2&order=0&pos=72&page=1 来源:牛客网

html + CSS: W3School + 百度前端技术学院 + 《图解CSS3》。时间:5月底~6月中,历时3周 JavsScript: JS红宝书 + 百度前端技术学院(JS部分没全刷完)+ 《ECMAScript 6 入门》(查阅性阅读) + MDN文档(查阅性阅读)。时间:6月中~7月中,历时1个月 Vue: 慕课网的《Vue2.5开发去哪儿网APP 从零基础入门到项目实战》+ 官方文档 + 《Vue全家桶+SSR+Koa2全栈开发美团网》。时间:这个时间跨度有点大,因为中间又学了一些Node.js和一些Node.js的实战课程 其他的就是补计算机基础,操作系统基础,数据结构和算法,webpack什么的了。这些到10月初左右学完,主要学习方式还是通过看慕课网的实战课程。 然后10月初到12月1号是复习,刷面经,写总结博客,投简历并不断面试的过程。

其他前端内容分享

开发工具

设计软件

前端工程师最首要的任务就是把设计师的设计图切好并翻译成代码,所以我们要学习一些设计软件的基础操作和切图方法。

  • Photoshop 运用最广泛的设计软件,大部分人都在用它,很有必要学习一下
    • 前端工程师必备的PS技能——切图篇)
  • Sketch 轻量且功能强大,切图迅速高效,为UI设计而生的Mac App
    • Sketch切图教程

编辑器

工欲善其事,必先利其器。可以用的编辑器和IDE有很多,在这里我只推荐最棒的两个。

  • Sublime text

    最性感的编辑器,搭配插件各种好用

    • 配置和使用方法
  • Webstorm 功能强大,学生可以免费用的前端开发IDE

代码管理

不光要学会写代码,也要学会管理你的代码。在工作中你可能会遇到需要自己部署代码的情况;不停地修改迭代重构,当然也需要你掌握版本控制软件。

  • Linux 你需要学会在命令行打开移动复制文件等最基本的操作
    • Linux最常用的20条命令
    • 鸟哥的linux私房菜——基础篇
  • Git 写代码一定会用到的版本控制软件,入门很快就能学会
    • 猴子都能懂的Git入门

测试工具

预览和调试必不可少,编写前端代码的大部分时间都是在编辑器和浏览器之间切来切去。

  • Chrome Dev Tools 谷歌浏览器开发工具,想要预览调试你的前端页面必须在这里啦

基础知识

  • HTML
    • MDN的HTML入门
    • HTML30分钟快速入门
  • CSS
    • MDN的CSS入门教程
    • 学习CSS布局
  • JavaScript
    • JavaScript菜鸟教程
    • 慕课网JavaScript入门篇
  • Web
    • 当你在浏览器中输入google.com并按下回车后发生了什么
    • 互联网协议入门

中级知识

  • HTML5
    • MDN的HTML5入门教程
    • 网易云课堂HTML5入门
  • CSS3
    • CSS3菜鸟教程
    • Gitbook的CSS3教程
  • Style Guide
    • 腾讯alloteam前端代码规范
    • 百度ecomfe前端代码规范
    • Google HTML/CSS Style Guide
    • Google JavaScript Style Guide
  • Responsive Design
    • 响应式设计指南
    • 自适应网页设计——阮一峰
    • 什么是响应式web设计?怎样进行?
  • Web Animation
    • CSS动画
    • Canvas动画教程
    • Learn to Create Animations in JavaScript
  • Bootstrap
    • Bootstrap菜鸟教程
    • 慕课网玩转Bootstrap
  • jQuery
    • jQuery菜鸟教程
    • 慕课网jQuery基础
  • Ajax
    • jQuery Ajax快速入门
    • jQuery Ajax全解析

高级知识

  • w3c标准
    • Web Platform Docs
  • ECMA6
    • 阮一峰ECMAScript6入门
  • 测试
    • FEX前端自动化测试探索
    • 测试框架Mocha实例教程
    • Karma和Jasmine自动化单元测试
  • 自动化构建
    • 流式自动化构建工具Gulp
    • 前端工程构建工具fis
    • Web项目脚手架生成工具Yeoman
      • 用Yeoman和AngularJS做Web应用
  • 模块/包管理
    • npm
      • npm使用介绍
      • 快速搭建 Node.js 开发环境以及加速 npm
    • Sea.js
      • 5分钟上手Sea.js
    • RequireJS
    • ES6模块
  • 预处理器
    • Haml
      • Tutorial
      • HTML代码简写法:Emmet和Haml
    • Sass
      • Sass入门
    • TypeScript
      • TypeScript Handbook(中文版)
  • 框架
    • React
      • 入门实例教程
    • Vue
      • vue.js教程
    • Angular

服务器端

  • Nodejs
    • Node入门
    • 7天学会NodeJS
  • MongoDB
    • NodeJS与MongoDB交互

技能图谱

  • StuQ技能图谱
  • Frontend Knowledge Structure

在线资源

  • 大前端导航
  • Frontend Stuff
  • Frontend directory
  • Frontend Interview Questions

在线教程

  • 菜鸟教程
  • 极客学院Wiki
  • Mozilla开发者网络
  • front-end-web-development on Treehouse
  • Learn to Code Advanced HTML/CSS

在线书籍

  • Front-end Developer HandBook
  • Front-end Database
  • Frontend Notebook

推荐书目

  • 基础

    • 深入浅出HTML与CSS、XHTML
    • HTML & CSS设计与构建网站
    • Pro Git中文版
    • 鸟哥的linux私房菜
  • 中级

    • Head First HTML5 Programming
    • JavaScript权威指南
    • JavaScript语言精粹
    • JavaScript & jQuery交互式Web前端开发
    • 深入浅出Ajax
  • 高级

    • JavaScript高级程序设计
    • HTML5高级程序设计
    • CSS权威指南
    • 深入浅出Node.js

后期补充Lists

学习内容 所写博文
Git学习 Git学习之基础用法(上) Git学习之基础用法(下)
正则表达式 正则表达式
Linux基础  
Vim编辑器  
TCP网络知识  
软件工程  
数据结构  
操作系统原理  
算法  
简历  

学习网站

  • Leetcode (中文网站):用来刷算法题der!

  • LintCode:有面试常见高频的题目!

  • 实验楼 :这里有学习路径和很多项目!感觉不错!

  • 牛客网 :有专项练习!学完后可以多来练习!还有好多大佬的面经!

  • 掘金网 :康康大佬分享!

  • freecodecamp:web开发!好像有资格认证!

  • 百度前端技术学院:前端开发!

  • v2ex:大佬技术分享网站!

  • medium: 有很多高质量技术文章!

基础篇(实验楼分享)

这部分是打算从现在12月底-2月份中旬学习,夯实基础。

基础篇大致分为以下十一个部分:

  • 数据结构:《数据结构》

  • 操作系统原理:《操作系统原理与实践》

  • 软件工程:《软件工程》

  • Linux:《Linux基础入门》

  • 了解Git和GitHub:《Git实战教程》

  • 熟练掌握开发工具:《Vim编辑器》(有大佬建议不用提,后期有兴趣可以学一下)

  • 正则表达式:《正则表达式基础》

  • TCP网络知识:《TCP/IP网络协议基础》

  • 算法:《经典算法解题实战》

  • 若干项目开发经验:实验楼项目

  • 一份亮眼的简历:超级简历+star法写项目

基础篇(网友分享)

1. 数据结构与算法

1.1 书籍

(1)《算法导论》

(2)《编程之美》

(3)《编程珠玑》

(4)《数据结构(C语言版)》

(5)《cracking the coding interview》

(6)《程序员面试笔试宝典》

(7)《剑指offer》

1.2 博客

(1)July的博客

(2)编程之美

(3)何海涛的博客

(4)题酷发芽网

1.3 论坛

(1)CSDN算法板块

(2)水木清华算法板块

(3)北邮人算法板块

(4)一亩三分地

1.4 网络链接

(1)数据结构与算法汇总

(2)快速排序及其优化

1.5 题库

(1)非常有用的101道算法题

(2)140 个Google面试问题

(3)sureinterview

(4)geeksforgeeks

(5)puzzles

(6)IT interview

1.6 一些常见问题的专业术语

(1)0,1,2三值数组排序问题

(2)找零钱问题

(3)矩阵旋转

(4)丑数

(5)圆内生成随机点

(6)字符串最长回文串

(7)加减乘除实现

(8)Hash实现

2. C/C++语言

2.1 书籍

(1)《C++ Primer Plus》

(2)《C语言程序设计》

(3)《程序员自我修养–链接、装载与库》

2.2 网络链接

(1)虚函数原理

(2)this指针原理

(3)类的sizeof

(4)定义变长,连续结构体

(5)根据成员变量的指针获取结构体变量的指针

(6)C语言扩展

(7)C语言常用宏定义

(8)C中的MIN,MAX宏实现

(9)C语言变长参数

2.3 常见库函数的实现

(1)谈isdigit(c)函数的实现效率

2.4 有趣的问题

(1)Quine程序

3. Linux

3.1 书籍

(1)《深入理解计算机系统》

(2)《Unix高级环境编程》

3.2 网络链接

(1)Linux内存管理基本概念

4. MySQL

4.1 书籍

(1)《MYSQL性能调优与架构设计》

4.2 网络链接

(1)数据库范式

5. 系统设计

(1)cache系统设计

(2)计算器设计

(3)电梯调度算法

(4)迷宫生成

6. 操作系统

(1)《深入理解计算机系统》:神书,不过这本书是讲计算机的而不是操作系统

(2)《现代操作系统》:必读,讲了很多操作系统原理性知识

(3)《鸟哥的Linux私房菜》:进阶,熟练使用linux是很大的加分项

数据分析篇

github仓库

(1)Interview_Python

(2)数据分析师的进阶之路

推荐书籍

(1)《精益数据分析》

(2)《数据化管理》(百度云盘)

(3)《增长黑客》(百度云盘)

项目

最后在把相关知识学习完后,打一场kaggle比赛并把比赛经历写到简历里。想从比赛中学习如何数据清洗、数据标注、特征工程等一系列完整的流程。

商务分析工具

很多公司数据分析岗位要求会tableau软件,后期一定要掌握这个软件进行数据分析的使用!

参考文章

[1] 计算机基础知识整理

[2] 找程序员的工作,你真的准备好了吗?!

[3] ACMer渣铜的秋招总结与经验分享

[4] 前端学习路径



workstudy Share Tweet +1