掘金 AMA:听阿里淘系技术部前端-- 🐭耗子讲非科班的他是如何走上编程路 & 招聘那些事

1,681 阅读16分钟

第十三期 AMA,掘金团队请来了天猫营销平台前端-- _耗子做了为期三天的 Ask Me Anything (AMA) 活动(已结束)。

我们在此精选了一些来自用户的提问及 _耗子的回答。

关于 _耗子

下面内容来自他的自白

简单地自我介绍一下:曾经的“古惑仔”,街头混混,读书时的学渣,没上过正儿八经的大学。毕业后辗转漂泊过多个城市,当过网管,做过印刷工、喷绘机修理工。后供职过奇虎 360、阿里天猫。自修了计算机应用、工商管理两个学位。业余爱好比较杂,涉猎过量子物理、宗教、艺术史,有一些很肤浅的了解。

说几段跟前端稍微有点关系的工作以便大家了解:

  • 360 移动搜索前端负责人,实现过 3G 时代的秒开方案,推动 360 在工程上全面支持 https
  • 聚划算智能搭建平台核心开发者,天猫精灵前端架构师,2017 双十一主会场前端负责人,2018 爆款清单 PM, 目前负责天猫品牌营销域相关业务

社区小伙伴精选提问--非技术类

网管-印刷工-喷绘机修理工-前端,可以分享下如何走上编程这条路,以及编程上对你影响最大的人是谁吗? ─ @清蒸不是水煮

网管-印刷工-喷绘机修理工-前端,可以分享下如何走上编程这条路,以及编程上对你影响最大的人是谁吗?

网管-印刷工-喷绘机修理工-前端,可以分享下如何走上编程这条路,以及编程上对你影响最大的人是谁吗?

或许你会觉得我要发鸡汤,但可能我发的会是毒鸡汤。希望每个人看到我的回答后都能找到自己的成长之路。

我高中时学习不好,很长一段时间陷入到自暴自弃的状态,也因此没有拿到好的文凭,以至于找工作的时候处处碰壁。 很早的时候就对 web 开发兴趣浓厚。从最早的个人主页制作、QQ 空间特效代码、到之后的管理运营 BBS、博客群。积累了一些前后端开发的知识。

我做得最对的事可能是逃离二三线城市,挤进北上广吧。在技术领域内,只有一线和超一线城市,才会汇集最多的产业资源。包括公司、人才和技术。

我只能说赶上了一个前端高速发展的时代,受惠于行业带来的红利。但是,这样的红利期已经在迅速减弱,目前应界生想去一家好公司的难度已经比从前门槛高太多。

过去十年时间,整个行业向浏览器应用、移动端转型,产生的一些新兴技术领域,企业对前端、Android、iOS 等工种需求强烈,但这些领域大家都缺少技术经验,企业不得不降低招聘要求,有个笑话不是说某企业要招 10 年以上 iOS 工作经验嘛。

目前对于上述提到的领域,同样水涨船高,因为这些领域技术趋近于成熟,发展也在放缓,所以并不是前人走过的路后人可以复刻。

可见的未来,比较稀缺的技术工种一定是在人工智能、大数据、虚拟/增强/混合现实、区块链(不是炒币,那只是很小的一块)等领域。但也可以看出,学习门槛也越来越高。

对我影响最大的人,其实有很多。经历的几家公司的领导都非常有魅力,给过我很多指导。只要用心,每个人身上都会有你值得学习的地方。

综上所述,总结几点:

  1. 选择好的城市比选择学校和专业更重要
  2. 欠缺的知识一定要抽时间补上
  3. 不要等一个技术滥大街了再开始了解,那时候已经缺少稀缺性
  4. 要相信正态分布和回归平均,幸运不是常态,不幸也不是常态。不是只要奋斗就一定有收获,但不努力一定没有收获。
  5. 相信顶端优势、马太效应和 80/20定律,资源总是向头部倾斜,并且强者越强
  6. 三人行心有我师,见贤思齐,见不贤而改之

校招进入阿里等大厂的前端团队需要达到什么样的水准 @Keen King

想问一下想校招进入阿里等大厂的前端团队需要达到什么样的水准呀

发个我们天猫的 jd 吧,欢迎来投。 有兴趣可以加我微信 7827648

0、2018 年双十一又破历史记录,天猫双十一已经成为阿里巴巴最重要的节日。毫无疑问电商是阿里的灵魂,天猫是电商的重要组成部分,我们团队是天猫的前端核心团队。

1、岗位描述:

1)业务领域 —— 建设天猫从消费者导购到品牌商家系统全链路各类产品,体验每年全球瞩目双 11 狂欢节,加入尽情施展才华的舞台; 2)技术驱动 —— 从极致的 Mobile 体验、前端工程化开发、企业级中台应用、可视化编程、3D / AR 创新交互,到大规模 NodeJS 应用等等,拥有足够的挑战及机遇;

2、岗位要求:

1)精通各种前端技术(包括 HTML/CSS/JavaScript 等),熟悉 ES6 语法,具备跨终端( Mobile + PC )的前端开发能力,熟悉网络协议(HTTP / SSL),熟悉常见安全问题和对策; 2)熟悉前端工程化与模块化开发,并有实践经验(如 gulp.js / webpack / Vue.js / React等); 3)至少熟悉一门非前端的语言(如 Node.js / Java / PHP / C / C++ / Python / Ruby等),并有实践经验; 4)对前端技术有持续的热情,良好的团队协作能力,提升团队研发效率,实现极致性能,通过创新交互优化产品体验; 5)加分项(满足其一即可):具备客户端能力或者 Native & Web技术融合经验;熟悉 Canvas 动效 & WebGL3D 以及各种传感器技术;复杂企业后台应用开发经验;数据可视化产品设计开发经验;大规模 / 高负载场景下 NodeJS 应用开发、运维经验;良好的算法背景,对机器学习有研究和项目实施经验;有独立的开源项目或者参与知名开源项目经验;团队管理能力;英语沟通能力;

时间是如何规划的? ─ @Guo_1_9

时间是如何规划的

很大的问题,无法很细地回答,推荐一本对我影响很大的书《把时间当朋友》,适合理工科背景的人读。无论你如何看待李笑来,这本书都值得一看。

在招聘环节要求的几年到几年的工作经验是否为硬性标准? ─ @洋芋君

您好,想向您了解一下,公司在招聘环节要求的几年到几年的工作经验是否为硬性标准

看什么公司,每家公司的准则都会有一定的弹操作性空间。如果非常厉害,都是可以特批的。

我们要理解公司为什么要设置这样的招聘门槛,比如 3 年以上工作经验,希望得是什么。有很多一年经验混三年的,也有一年加班加出 3 倍经验的。但大部分都是在平均水平。设这样的要求是为了节约不必要的成本。

平时是怎么学习的,前端学到最后,是不是要转后端?─ @好好先森

大佬,想请教你,你平时是怎么学习的,前端学到最后,是不是要转后端,再才能做架构,或者管理,貌似很多管理和架构都是后端出身。

对于我来说,前端只是进入一个公司的敲门砖。如果后端再好点,可能就会换另一块敲门砖。

在目前行业的发展状态来说,分工精细化,企业选拔人才会要求在特定领域有非常的深度,而不是选择一个啥都会点,啥也没真的弄明白的庸才。

如果只是把前端当成一块敲门砖的话,进入新的殿堂,应该去发现更多的东西,而不是还只抱着这块砖。

对于我来说,我不喜欢把自己局限在前端或后端,哪里不会学哪里。所有的一切前、后端说法,不过是别人安立的一个名相。

借金刚经一句话结尾:所谓 xx,即非 xx,是名 xx。

如何做到知识的沉淀?─ @Calpa

如何做到知识的沉淀?

1.首先学会自律; 2.学会画脑图; 3.写成 PPT 或文章讲给别人听。这个很重要,整理的过程你会发现很多似懂非懂的细节; 4.多问问题几个为什么,往往稍微深入一些,你就发现已经达到了最前沿;

如何平衡老的项目?如何适应谢快节奏开发迭代的呢?─ @haorooms

您好,现在很多公司都在用敏捷开发,项目不停迭代。但是前端新技术层出不穷!你是如何将新技术更好的学习和融入到原来项目当中的? 如何平衡老的项目?如何适应谢快节奏开发迭代的呢? 还有,您在平时如何学习新技术及您做营销广告这块,有什么经验分享吗?

什么叫新技术呢?太阳底下从来没有什么新鲜事。大部分的创新不过都是革新,要么来源于别的语言、别的领域的泛式,要么新的轮子。最近几年有几个算得上完全颠覆式的前端新产物?如果你觉得一件事物完全是划时代的创新,之前完全没有听过的思路,我觉得大概率是还没有接触过同类的产品。

学习,一定要向上或者向下,沿着一条道路深入。比如你会了某个 A 框架,你不应该马上去学同质的 B 框架。向上,了解基于 A 框架的上层建筑,和在具体业务中的实践,向下,了解 A 框架的底层原理。如果同质化的 BCD 框架都学,其实就没太多成长意义

我们目前坐的飞机,都是差不多 30-40 年前研发的。越是线上生产环境,越是重要的产品,在技术尝新上就会越趋于保守。

前端的文化一向比较激进,喜欢尝试新产物,这特别好。但在新技术大量向团队铺开的时候,一定要先做好充分的试飞工作。先在一些新项目、小流量产品上做测试,积累充足的经验,再有说服力去推广。

公司不会给你独立的时间重构老项目的,对技术的极致追求是很好的精神,但不要陷入自玩自 high。

何为前端架构师?需要具备哪些软硬实力? ─ @PandaTsui

何为前端架构师?需要具备哪些软硬实力?前端架构师的前景如何?

何为前端架构师? 答:就是你又要做前端,又要去做程序设计,你能组织好你的代码,就是在做架构。

需要具备哪些软硬实力? 答:

  • 了解前端域内所有问题,不一定知道具体的细节,但要知道问题方向在哪,能快速索引。
  • 了解客户端、前端、网络、服务端、数据库、部署、安全全链路知识。
  • 有经验,了解业界最高水平现状。
  • 经常要解决一些你不知道该怎么做,能不能做,可不可以做的问题
  • 了解业务现状、未来发展发向,技术上提前布局
  • 会画图(脑图、泳道图、流程图、分层图、依赖图、业务图、罗辑图、balabala...)

前端架构师的前景如何? 答:就是个角色,归根到底还是个前端。前景不在于做什么工种,在于你做出什么成绩。

社区小伙伴精选提问--技术类

怎么解决适配和回归的成本问题呢? ─ @白胜

项目中肯定会依赖许多底层公共模块或外部服务,如果底层做了修改,上层往往需要做些适配,甚至需要整体回归。问题是如果项目特别多,比如有 50 个,那怎么解决适配和回归的成本问题呢~

这对热门开源程序来说,都是要处理的问题。服务于公司内部的公共模块也一样。

无非是要解决两个问题:

1、 发现底层 bug 了,如何快速让所有使用方快速升级修复 2、 底层重构了,怕影响线上所有业务

对于开源软件来说,是没有义务帮你解决问题1的。一般是官方发公告、邮件,通知修复。所以需要及时关注官方新闻。对于商业软件,有义务及时通知客户更新。 对于服务于公司内部产品线的底层技术,同样有义务通知使用方,另外,可以通过一些热更新、版本推送的技术解决部分 bug 修复。

对于 2,底层的重大升级,一定做好回归。尽可能小地影响所有业务。你题目中的 50 个项目假设,但实际中,真正活越的很可能只有 5 个。通知好所有使用方的负责人,帮需要升级的协助做好升级。剩下的维护期的僵尸项目,要确保使用的旧版本一直可用。

这时候就考验一个技术设计者的功底了,最糟糕的版本就是 2.0 版,说明要对之前的推翻做破坏性升级。然后留下一个长尾的烂摊子尾大不掉。

总结:小变更主动更新,大变更被动升级,遵循版本号管理原则(如常用的 x.y.z semver 版本格式 semver.org/lang/zh-CN/…

请问如何解决token刷新瞬间,已发送的请求token失效的问题 ─ @张鲲鹏

请问如何解决token刷新瞬间,已发送的请求token失效的问题

这是个安全问题,如果不是非常必要的场景,就应该存在一个失效时间。 当然,有些场景的确要处理这个问题。比如我们团队做的页面搭建系统,用户需要长时间本地操作,页面没有刷新。当点击发布的时候,发现登录超时,要重填,一定会很崩溃。

这时候一般有几种解法: 0. 当前页弹出登录框,登录后不刷新页面。不推荐这种方式,有安全隐患

  1. 弹出新 tab 完成登录,这时候会刷新 token
  2. 定期发心跳包,保活

从产品上看,最后一个方案用户体验最好

前端开发中有哪些需要注意的安全问题呢? -@秃-。。-黑汁黄焖Jimmy饭

请问前端开发中有哪些需要注意的安全问题呢? 和后端交互方面,有没有什么比较好的接口统一规范和返回码等的规则?大厂里和后端联调的流程大概是什么样子的?没有接触过很想了解一下,我们小地方经常是后端说连一下他的内网地址,或者后端先推代码然后跑Jenkins,前端连服务器地址调试,感觉这样不太规范也不方便。

请问前端开发中有哪些需要注意的安全问题呢?

答:主要注意 xss 脚本注入、csrf 跨域攻击、安全算法泄露(如把加密方法放在前端)、点击欺骗、广告劫持、用户数据泄露(如在前端把完整用户手机号截取尾号显示)、http 状态下传明文用户密码、非可靠的第三方 js 脚本、jsonp 请求,另外 sql 注入、越权也要了解一下,虽然主要是后端的问题。 安全领域问题,一定要通盘考虑,容易存在的问题是前端不懂后端的一些入侵方式,客户端不懂前端域的入侵方式。结果在双方的边界处容易造成安全的无人区。一个完美的攻击构成,很多是综合利用前端、客户端、后端漏洞造成攻击的, 安全的第一原则:不信任。正因为如此,信任的建立才非常可贵。凡是允许用户输入、url 访问的地方,都不要掉以轻心。

和后端交互方面,有没有什么比较好的接口统一规范和返回码等的规则? 答:接口统一规范业内近年比较流行的是 restful,但前提最好你的网站已经全站 https 化。http 环境下,由于运营商和中间人和网关设备,受限于他们的技术眼界,部分非 GET、POST 以外的请求种类会被错误处理。 返回码没有标准,我一般推荐的格式是 interface Result {errCode: number, data: any, msg: string}。接口返回要注意返回头,参见这篇文章 imququ.com/post/web-se… ,另外,返回头不要配置成 access-control-allow-origin: *

大厂里和后端联调的流程大概是什么样子的?没有接触过很想了解一下,我们小地方经常是后端说连一下他的内网地址,或者后端先推代码然后跑Jenkins,前端连服务器地址调试,感觉这样不太规范也不方便。 答:我们也没有很规范(哭笑 😂)


本期 AMA 社区小伙伴提了许多实用问题,例如单页面框架部署webserve和pm2那个性能,由于文章篇幅的原因不做摘录,感谢🐭耗子认真地为掘金小伙伴解答了不少疑问。浏览更多的问答,可以到🐭耗子的 AMA 进行阅读和讨论。