尬聊会:第六期实录

尬聊会第6期,先介绍了向上管理;然后讲解了 URL 过滤;再接着讲解了自动补全筛选。下一期将在本周日4-22,介绍性能对比测试。

尬聊会开了4期之后,我发现大家很少问具体的技术问题,多半会问关于求职面试之类的事情。于是把之前的经验整理了整理,做了两期讲堂,效果还挺好:

接下来我觉得求职面试讲的差不多了,没剩啥干货了,加上今年想转换思路,利用尬聊会慢慢讲一些大题目,所以从第五期开始,讲设计模式,之后基本就在探索。

再接下来,我在工作中遇到两个算法问题,属于不复杂但是需要耐心和一点小技巧的类型。于是我就把它们拿出来作为作业布置下去——很遗憾,没人完成,不过尝试的人很多——然后第六期就做了比较详细的讲解。

具体视频在此:尬聊会 第六期 向上管理/URL过滤解析/自动补全筛选解析

时间:2018-03-26 21:30
地点:我的斗鱼直播间 douyu.tv/meathill
回看视频:http://blog.meathill.com/tech/galiao-6.html

目录

0. 向上管理

  • 简单介绍了向上管理。
  • 平时应注意积累数据,并在汇报中包含这些数据。
  • 写简历的时候也应带上数据。

1. 问题一:URL 过滤

整理域名 问题描述

2. 问题二:自动补全筛选

生成自动补全的函数列表 问题描述

参考资料

视频中设计到的代码均可在 GitHub 课后作业 这个仓库中找到。

下期预告

上周跟我厂老板争执了两个性能方面的问题,最终以性能对比测试的方式产生了结果。本周尬聊会计划就这个过程和细节做一次分享。结束前会抽一名同学赠书一本,《CSS 世界》或《深入理解 ES6》任选。


欢迎加入肉山小课堂一同学习,QQ 群:肉山小课堂答疑交流群 628056148,SF 圈子:肉山小课堂继续深造中心

尬聊会:第四期实录

尬聊会第二期实录。聊了学习、半路出家、去哪里找工作等问题。

视频地址 Bilibili

时间:2017-09-17 22:00
地点:douyu.tv/meathill
回看视频:http://blog.meathill.com/tech/galiao-4.html

0. 试讲 PPT

https://github.com/orgs/meathill-lecture/

1. 从学校到工作必须习惯的转变

有人问:觉得现在的工作比较难完成,怎么办?是不是要换工作。

职场当中,普通员工和领导之间,基层领导和中层领导,中层领导和高层领导,大多数处于一种荣辱与共的状态,是多和博弈。所以,尽早与领导沟通,重新安排分配工作,对大家都有好处。换工作这里并不合适。

之前写的一篇文章 开发新人要适应的变化

2. 学习方法,我学了东西很快忘

  1. 尽量多的做东西
  2. 尽量的关注这方面的内容
  3. 做一些自己的小产品/工具

3. 编程思维

有时候需要一个需求,明明不难,却无从下手

—— 写得少

把数字转成中文大写,比如 1024 => 壹仟零贰拾肆

方法同上。

走出舒适领域。

4. 老师, 我是半路出家, 非计算机方向。在编程道路上常常会有力不从心。

  1. 可以解决,比如通过阅读、看视频、练习等
  2. 可以忽略,需要我们学会区分知识的边界

5. SEO 分页还是ssr好

如果服务器很好,那无所谓;不然的话,静态分页好。

6. 找工作去哪个网站比较好

建议大家常泡社区:

  1. https://segmentfault.com/questions
  2. https://www.v2ex.com/

7. 找工作技术和人力都过了还是没要我,怎么回事?

  1. 有更合适的人选
  2. 这个岗位不招人了
  3. 这个岗位出现了变化
  4. 你感觉错了……

看看前端技术的发展动态,我们似乎应该重新规划学习方向

现在切页面变得相对容易,大多数览器的表现都会和预期一致。所以哪怕相关经验差一些,现学也很快。但是开发经验,如果没有积累,想在短时间内快速提升到能够独立应对大多数需求的水准,就比较困难。所以前端应该尽早关注 JavaScript,尽量多的尝试各类基于命令行的工具,甚至主动跨出舒适区,自己动手实现一些工具。这些会对将来的工作,对将来应聘,带来很多好处。

这个标题是仿照好奇心日报起的。

近期在帮朋友招聘,目标是找到一个可以独立工作,能够应对大多数问题的前端。初筛简历的时候我比较偏爱之前经历大多是 JS 开发的候选人,比如专门写插件的,或者写过游戏的,对接的同学就问我:前端是不是做过游戏有加分?其实也不完全如此,只是由于环境的变化,JavaScript 开发在前端的整体工作中占据着越来越为大的比重。以前那种先考察切页面能力的做法已经完全不适用了。也导致,我们在前端学习上,需要重新调整侧重点。

创造 HTML 的目的,是为了阅读文献,从 HTML 标签当中我们就能看到很多来自于印刷时代的痕迹,比如:

  1. 各种语义化的标签 <p> <h1> <h2> <blockquote>
  2. 以竖排版为主的格式
  3. 丰富的字体选项

浏览器也是朝着这个目标去实现的。于是,早期浏览器在界面布局上做的并不好。伴随着互联网发展,越来越多的用户涌入,他们要求互联网以网页为载体,提供更多满足他们需要的产品。此时最早一代 HTML 和 CSS 就不那么适用了。在我开始做前端的那个年代,经常会碰到各种各样奇奇怪怪的问题,写出来的代码,很难达到自己的预期。于是,做前端,最重要的积累,就是各种浏 Hack,什么清浮动啊、IE6 啊,差不多就是这些。

这些东西往往并无逻辑可言,所以,老前端比新前端的优势,就在于记住了多少这方面的经验,解决过多少这方面的问题。我们招聘的时候,也倾向于选择有丰富页面制作经验的,毕竟,编程问题很多时候归属于后端。

然而时过境迁,我们现在再去看前端技术,它的现状和趋势已经都变了。首先,越来越多的浏览器,都在遵守 W3C 规范,我们现在已经不需要再拿那么多时间去做 Hack。浏览器之间的差异,已经从实现的差异(比如 addEventListenerattachEvent),变成了功能化的差异(比如是否支持 Grid 布局)。所以在这个时候,知道多少浏览器 Hack ,也不再是优势。

另一方面,越来越多的工具涌现出来,我们大部分时间都在使用脚手架、预处理工具、模板引擎,已经很少直接手写最终的 HTML、CSS 代码了。再加上 MVVM 框架对整体工作流的影响,如今,使用命令行,已经是前端必修课。所以,扎实的编程基础,丰富的,在各种环境下进行调试的经验,都是高级前端工程师真正的竞争力所在。

总结一下,现在切页面变得相对容易,大多数览器的表现都会和预期一致。所以哪怕相关经验差一些,现学也很快。但是开发经验,如果没有积累,想在短时间内快速提升到能够独立应对大多数需求的水准,就比较困难。所以前端应该尽早关注 JavaScript,尽量多的尝试各类基于命令行的工具,甚至主动跨出舒适区,自己动手实现一些工具。这些会对将来的工作,对将来应聘,带来很多好处。


参考资料:

  1. wiki HTML

谈学习:读源码

我关于“读源码”学习的态度。

小弟交日报,说看backbone和underscore的源码看不懂,我回了邮件给他,摘录于此,表达我对“读源码”这种行为的看法。


我不赞成新人以“读源码”的方式进行学习,因为相比于看文档、看范例、实操开发,“读源码”的效率实在太低了。

这是有原因的:

  1. 对于大部分新人来说,多半“单看每个字都认识,全放到一起就不知道啥意思了”……速度上不去,只能看懂“how”,无从知晓“why”。最后虽然知道原作者用的A方法、B方法、C方法,但到实战的时候,还是不知道怎么做。
  2. 流行的库和框架,大都经历过数年的升级演变,甚至几千次提交,和早年刚出现时相比面目全非,逻辑也不再是浅显易见的。“读源码”不包含演进的过程,上来就是别人提炼过、推导过的精髓,更加难以理解。
  3. 读源码”难以获取成就感,因为成果难以衡量,里程碑难以界定,学到多少东西更是只有本人知道。把这个当某天的内容报告给领导,等于明确表示自己工作量不饱和,很可能招致领导的不满。

源码完全不该读么?自然不是。那么什么时候读呢?当技术精进到一定程度,或者业务诡异到一定程度,我们自然会遇到前人没有遇到过的问题;或者发现文档中语焉不详的地方。这个时候只能通过阅读源码找答案,而且这个时候读源码也是很合理高效的。因为:

  1. 很可能读源码是唯一途径。
  2. 带着问题去读,目标集中,效率会很高。已经知道了“Why”了,只关心“How”。
  3. 解决目标问题的过程中,可能学到很多之前不知道的东西。