【修真院“善良”系列之六】修真院小课堂【WEB篇】

98 阅读7分钟
原文链接: zhuanlan.zhihu.com

一 背景

修真院在默默的做小课堂,每一个任务之下都设置了深度思考。

这些深度思考,都是修真院的师兄们在教师弟的过程中,总结,整理,归纳而来的。

修真院强烈建议,在做任务的时候,主动去思考这些问题,去找这些问题的答案,给出自己的理解,然后再去看看别人是怎么看的。

基于这种思路,北京,郑州,武汉,成都都开始了小课堂活动,由线下的师兄自己整理,做成PPT,给其他的师兄做分享,每天晚上7点都有,而且是有直播的,也欢迎附近的朋友随时来指导~

很多人建议过我,要我自己去找老师来安排讲这些课,我想了很久,还是觉得应该让线下的师兄们自己来做这些事儿。


一个原因是这是对线下的师兄有好处的事儿,技术分享是工程师的天性。另一个原因是也想让其他人感受到一个真实的氛围。


看看这些线下的师兄们,学的好不好,哪些做的不多好,哪些做的特别好。


二 WEB工程师课表-Version0.0.1

【CSS篇】

task1

  • 如何理解盒模型及其content、padding、border、margin?
  • 每个HTML文件里开头的Doctype有什么作用?
  • 如何配置nginx,实现在手机上查看页面?
  • 常见的inline元素、block元素、inline-block元素有哪些?它们之间有什么区别?
  • 如何使用浏览器的F12调试页面?

task2


  • svn和git有什么区别?
  • Git和githup有什么关系?
  • 如何基于svn用webstorm将代码上传至github?

task3


  • web工程师如何利用PS切图以及从UI图中获取所需信息?
  • 开发过程中应该遵守哪些编码规范和class命名规范?
  • px、em、rem、%、vw、wh、vm等单位有什么区别?
  • 如何进行自适应网页设计?
  • viewport有什么作用?
  • css有哪些选择器,优先级如何计算?


task4

  • position定位有哪几种?各有什么特点
  • 哪些css属性可以设置百分比,其计算原则是什么?
  • 常见的表单元素有哪些?各有什么属性?(html5新属性)
  • 如何理解HTML结构的语义化? 


task5

  • css可以绘制哪些常见的特殊形状?(用纯CSS创建一个三角形的原理是什么?)
  • 如何理解vertical-align与line-height?
  • 请解释一下CSS3的Flexbox(弹性盒布局模型)以及适用场景?
  • title与h1、b与strong、i与em、img的alt与title、src与href有什么区别?


task6

  • 什么是CSS sprites?
  • 什么是浮动?有哪些清除浮动的方法?
  • rgba和opacity的透明效果有什么不同?
  • display和visiblity有什么区别?

task7

  • 如何实现轮播图?
  • 主流浏览器内核有哪几种?
  • 超链接访问过后hover样式就不出现的问题是什么?如何解决?


task8

  • 什么是外边距重叠?重叠的结果是什么?
  • 去除inline-block间距有哪几种方法?
  • div+css的布局较table布局有什么优点?
  • 如何做默认样式重置?resetting 和 normalizing 之间有什么区别?


task9


  • 如何改变默认radio和select的样式?

task10

  • bootstrap中 row container 和 col等是什么个关系?
  • 简述下bootstrap的栅格系统。
  • sass、less是什么?如何使用?
  • 媒体查询如何使用?

task11

  • css有哪些方式可以实现垂直居中?
  • 自适应和响应式有什么区别?

task12

  • 请描述一下cookies,sessionStorage和localStorage的区别?
  • 描述z-index和叠加上下文是如何形成的请描述 BFC(Block Formatting Context) 及其如何工作
  • 谈谈以前端角度出发做好SEO需要考虑什么?
  • 请用css写一个简单的幻灯片效果页面经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
  • Quirks模式是什么?它和Standards模式有什么区别
  • HTML5的离线储存怎么使用?知道什么是微格式吗?谈谈理解。
  • 在前端构建中应该考虑微格式吗?知道css有个content属性吗?有什么作用?有什么应用?

【JS篇】

task1
  • 定时器有哪些用法?
  • ID和Class有什么区别?
  • F12Console的用法,以及如何Debug程序

task2

  • 常见Dom操作有哪些?
  • JS的有哪几种传参方式?对一个数组 filter、some、map、foreach的操作分别是什么作用?
  • 闭包是什么?用处如何?
  • return的用法是什么?若用在for循环中,还会执行下一次循环吗?
  • 如何实现数组深拷贝和浅拷贝?
  • 全局变量和局部变量如何区分?其分别的作用域是什么?
  • local storage和sessionStorage的区别以及用法?
  • 简述原型链是什么,有什么用处?若想访问一个对象的原型,应该使用什么方法?
  • 继承有几种方式,分别是什么?想要实现继承可以使用什么方法?
  • 如何验证程序是否完成,测试以及修正Bug


task5

  • json是什么,如何处理转义?
  • 什么是AJAX?network中的请求信息,headers中的每一项分别是什么意义?
  • 为什么有时我们需要配置hosts来本地测试?和什么有关?若不配置hosts会影响什么?
  • this是有什么用,在什么情况下会使用?有什么注意事项。
  • 如何配置nginx,通过域名访问本地网页?
  • 如何配置跨域?跨域几种解决方案(简述jsonp、xhr),重点是jsonp xhr 什么是rest风格,get 与 post的区别 application json 与form表单的区别
  • 如何使用PostMan?

task6

  • 如何使用富文本编辑器?
  • 简述JS中的event delegate是什么?
  • cookie是什么?有什么用处?cookie session的区别?cookie的失效期?

task7

  • 正则表达式中,贪婪模式与非贪婪模式的区别
  • 使用angular框架的网站,默认url中会带有”#” 如何将其去掉?
  • angular之中,$state $watch $scope $rootScope 分别是什么angular 路由angular js中的依赖注入是什么?有什么作用?与不用依赖注入的其他框架相比,有何优点?
  • angular 指令

task8

  • Validator 如何进行表单验证?
  • 如何使用Bootbox ?

task9

angular有哪些优缺点angularjs双向绑定后,发生了什么事情?是什么可以让view层和controller层进行绑定的?

task10

  • RequireJS 前后端分离(SPA等)与不分离(JSP等)的工作流程分别是怎样的
  • gulp前端在做网页时怎么优化SEO
  • 异步编程有哪几种方法来实现?
  • AMD(requireJS)、CMD(commonJS)的区别,分别有哪几种典型的框架 同步、异步操作有什么区别?那些操作是同步,那些是异步的?


三 未来会做什么

这些内容还在不断的更新完善中,还在随时调整。

现在的这些问题,不管是刚入门的小菜鸟,还是已经入行的大神,都可以关注指导一下。


在接下来,会做这些事儿:

1.每一个深度思考对应的技能点是什么。

2.每一个深度思考的PPT,过往视频和直播。

3.深度思考的分级,合并,拆解等内容上的完善。

4.深度思考的相关部分更新到官网,方便查找,收藏,评论,投票。

5.线上的内容会以小额收费的方式进行,收费的规则还是会跟之前修真院的风格一样,第一个人免费,第二个人+1元(暂定),第三个人+2元(暂定),一段时间之内,如果没有人付费就降价。

所以这个内容倒底值不值钱,我不决定,交给你们用钱来决定。而在线上没有开发出来之前,全部是免费开放给所有人。