# 前端

## 前端找工作指北

写这篇文章的主要目的是分享一下前端学习和面试的经验，为后来人解答一些疑惑

### 如何学习前端

根据个人学习经验以及所见所闻整理, 其中内容多少会带点主观性, 仅供读者参考

#### 前期

* HTML
* CSS
* JS 基本语法
* 使用原生 api 操作浏览器中 DOM 元素
* 基本工具的使用，git、markdown 等

> check point: 能够复刻一些静态界面，比如还原一下知乎首页之类的

到这里你基本就能拿到小厂实习 offer 了

#### 中期

* 学习前端框架的基本使用
* 深入学习 JS
  * 了解更多 api，如数组方法、`Date`、`Promise`、`Regexp`、`JSON` 等
  * 学习 JS 中较复杂的概念，推荐书籍《你不知道的 JS》
* 深入学习 CSS
  * 熟悉更多属性的用法，如 `flex`、`grid`、`transform`、`animation`、`display`、`position` 等，知道什么场景下用什么
  * 推荐书籍《CSS 世界》
* 学习 node 基本使用
* 慢慢的了解到更多概念（至少知道什么场景 会/能 用到这些东西）
  * Tailwind
  * ant design
  * 函数式
  * scss，less
  * webpack
  * vue/react router
  * vuex / redux
  * npm / yarn / pnpm
  * cookie / session / token
* 数据结构和算法
* 简单的计算机网络知识

> check point: 使用框架完成一个个人博客

到这一步你基本就可以拿到大厂实习 offer 了

#### 后期

* 了解跨平台方案（最好实践一下？）
* 尝试使用上述提到的概念，最好能**体会一下他们的思想**，为什么他们能解决问题，为什么大家要用它，他们有什么缺点，能不能改进 etc
* 深入学习使用的框架，**了解其原理**
* 了解 node、浏览器、网络的**底层原理**
* 多逛论坛/github，对整个前端的动向有嗅觉，会**自己找资料深入学习**

> check point: 已经不需要 check point 了

到这一步你基本就是 offer 收割机了

#### 大后期

探索更多可能，走在前端发展的最前沿

### 关于实习/面试

#### 如何找实习

如果对自己不自信，**可以先投你以后不打算去的厂去面试刷经验**，这样既不会在你心仪的厂留下不好的面评又能刷到经验，非常建议用面试的方法检验自己的不足之处！

#### 如何准备面试

1. 看看面经，该背的还是要背的
   1. 附上[我的面经](http://www.xiong35.cn/blog3.0/posts?kw=%E9%9D%A2%E7%BB%8F)
2. 刷刷算法题，leetcode medium 难度足矣
3. 如果自己有项目，可以想想有什么出彩的地方能跟面试官说，面试官会感兴趣的。如果没有，想想怎么魔改一下让他出彩点！个人经历是我写的[BBHUST 论坛网站](https://bb.hust.online)的鉴权问题和 GQL 实践被问了好久。还有[狼人杀](https://github.com/xiong35/werewolf)项目里用到了不少设计模式让面试官很惊喜
4. 关于简历模版，有很多现成的简历模版网站（木及简历，超级简历等），也有我自己做的一套[简历模版](https://github.com/xiong35/resume)，个人感觉只要表意清晰就行，重要的是内容！
5. 关于简历内容，当然**最重要的是自己的硬实力**，多学点东西简历里就能多写点东西！要想学习如何组织内容，非常建议看这个：[花果山-大圣 简历点评和模拟面试](https://space.bilibili.com/26995758/channel/seriesdetail)

#### 面试过程中的注意事项

1. 上来自我介绍随便讲两句就行，个人感觉只是走个流程让面试官有时间看你简历
2. 可以主动说说自己的项目经历（如果比较出彩的话）
3. 遇到不会的题不要硬撑着胡说，老实说不会然后让他问点别的就好
4. 写不出来的题同理
5. 如果对面面试官一直不苟言笑或者一直问你你不会的题也不要慌张，我遇到过几次这种情况都是有惊无险，不要被气氛影响发挥！

### 推荐阅读

* [前端实习生需要到达什么水平？- xiong35 的回答](https://www.zhihu.com/question/268805647/answer/2259898634)
* [前端学习指北 - xiong35 的博客](http://www.xiong35.cn/blog3.0/post/614d9871f166d62decd2c886)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://1037survival.gitbook.io/survive-in-1037-forest/campus-recruiting/internet-industry-technical-job/frontend.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
