年初开课的第二期,开课前我抽空在这里发了这篇帖子: https://www.v2ex.com/t/343347#reply152,现在第二期上周的时候刚结课。
学生现在都在找工作,今天就不细聊了,我来说说教学成果吧。
大家觉得学生这样的水平能找什么样的工作呢?
或者有没有最近正招聘的,说说自己遇到的应聘者都是什么水平~反正最近我前同事跟我说,某二线大厂出来的三年工作经验的,把 GET 跟 POST 请求的区别说成 TCP 跟 UDP。。。
- 首先是数据结构与算法基础,树、图、堆、并查集都有讲,算法的话,DP、搜索、回溯、深搜广搜,然后直接在 LeetCode 刷题,上面说到的每种数据结构跟算法 LeetCode 上面几乎都有对应的题目
- 有三分之一以上的同学在 LeetCode 刷了 100+,有个别刷了 150+,三分之二以上刷了 50+
- 跟着我节奏的学生(绝大部分)几乎都通读了《 CSS 权威指南》、《 The Book Of CSS3 》和《 Eloquent JavaScript 》,英文还不错的同学我都是推荐他们讲英文版的
- 差不多一半以上的学生基本上把 Lodash 实现了一遍,剩下的也基本实现了半数左右的函数,所以什么高阶函数应该都不在话下的。对了,基本上大多数也自己实现了一个 JSON 解析器
- 基本都能够熟练使用 ES6 甚至是 7,因为我上课时并不区分 JS 还是 ES5678 (对于那些把 JS 跟 ES6 区分开的我表示完全不能理解),最合适用什么就用什么,几个月下来对语法肯定是很熟悉了,对于一些特殊的语法,我也会直接到 Babel 上面给大家看编译结果
- jQuery,Promise 什么的就不用说了,jQuery 的话主要还看学生记得多少 API 了,不少非常见方法都讲过实现原理,比如事件代理,动画,队列等等
- 后端方面,基础的 SQL 是没啥问题,包括表的连接,不过没让学生去刷 LeetCode 上的 SQL 题目,毕竟感觉有点作弊,所以上面说的数据是不包含 SQL 题目的。有人可能会问怎么不教 MongoDB 呢?我主要考虑的是学 SQL 终于能让学生接触一下另一种语言了,而教 Mongo 的话,从使用上来讲还是在用 JS,另一个的话大部分公司基本还是把 Mongo 当 SQL 数据库在用吧,而更多的公司依然用的是 SQL 数据库。
- Node 的话,我重点介绍了 Stream,当然其它 API 也有都说到,主要是流实在太重要了
- 然后 HTTP,一开始我都是直接带大家用 Node 的 TCP 模块来写的,虽然写的很垃圾,但足够让大家理解 HTTP 协议的通信模型了,后来才用 http 模块,再后来才用 express/koa。然后各种重要的头,也都有介绍,比如 CSP,CORS,缓存什么的。网络安全也有说,都是在练项目的时候直接留漏洞让大家玩,这样才更容易理解
- 上面说到 express,也讲到了 express 的基本实现原理,以及演示了很多中间件的写法
- 接下来是 Web 框架,以 Vue 做为入门,然后还讲了 React,毕竟以 Vue 的简单入门,接触完 Vue 的组件化之后,再学习 React 就会容易很多。对于 Vue 的了解程度嘛,应该是大部分原理都知道,比如双向绑定原理,v-model 的原理,依赖收集的原理等等,然后各种类型的组件也都写过,比如递归组件
- Vue 其实把全家桶都说了,React 只说了 React 本身,Redux 只是介绍,因为 Vuex 跟它实在太像了。我不认为在几个月的培训中就需要并且能把三大框架都弄的很熟,基本上不可能的,所以某些机构的做法
- Webpack 则是重点讲原理,因为讲 Node 的时候就介绍了模块机制,讲 Webpack 时就是手动把依赖全拼一个包里,在浏览器端则是实现了一个极简的 Seajs。我在想下一期要不要现场撸一个 Module Bundler 出来
基本就这些了,有人可能会觉得这么短的时间教的是不是有点多了,其实我也觉得,所以不少学生结课后都选择先不找工作,要自己先来一轮复习。其实每天都有给相当长的时间让大家练习的,我是让他们每天在教室自习到晚上 11 点的,总体的培训时间也比较久,在讲每个知识点的时候,我都是确认了大家在听懂了以后才往下讲,所以至少在听的时候,大家都是懂的,然后嘛,我几乎每天晚上都去教室,有什么疑问都是直接说,不喜欢通过文字进行沟通。
大家觉得学生如果把上面说到的内容(其实还有很多没在这里说)的 80%掌握,能找到什么样的工作呢?
以及,各位最近面试遇到的人都是什么样的呢?如果你们最近正在招人,又一直没有合适的话,可以私信我哦。
不说了,我妹在医院马上要生了,我要去医院了~~