首页 SEO攻略 正文

长时间未写博客,聊聊从面试开始的北京培训之旅及感悟

SEO攻略 2025-05-01 14

好长时间没写博客了,距离上一篇博客是4月3号 ,这段时间一直在忙笔试 ,忙面试 ,还参加了培训 。故事先从面试说起 ,讲讲自己面试的经历和感悟 。有个孩子从小在南方长大 ,从没去过北方 ,带着憧憬 ,也有一丝害怕 ,拖着行李 ,背着书包 ,开启了为期9天的北京之旅 。下面的故事会很长 ,希望大家有耐心读完 。

长时间未写博客,聊聊从面试开始的北京培训之旅及感悟

4月9号

收到了 360 的笔试通知且通过了,接着要完成前端星计划的项目,为此花费了 3 天时间,最终把项目做完并提交了,然而感觉自己做得不太好,对于农历和阴历之间的转化算法不太清楚,所以这部分功能就没做,虽说在网上看到过这部分代码,但还是没把它复制上去,本来没抱什么希望,然后在 15 号晚上,接到了 360 奇舞团波波老师的电话,被告知要去北京培训,培训结束后会进行最后一轮筛选,对此有点犹豫要不要去,因为要是最后没被选上,时间、金钱和精力就都白白浪费了。事实证明这种想法是错的,真的没有白去

本来我是打算去北京的,因为收到的三个面试都在北京,所以准备16号去北京一起面试,之后接到波波老师的通知,就把票改签到19号去北京了。

4月20号

19号晚上出发,20号到达北京,和其他来自全国各地的同学相比,我来得很早,因为21号和HR约了面试,对于这三场面试,或许已有offer保底,所以我不太担心,不过要吸取经验教训,千万别这么想,这点稍后和大家详细聊聊。到达北京后,一位师兄来接我,真的特别感谢师兄,他人很好,代码技术也很厉害,哈哈!师兄把他住的地方让给我,自己去和其他人挤着住,我很感动,之后到了20号就睡着了,是坐车坐得晕头转向的状态 。

4月21号

早上七点钟起床,乘坐了两个小时的公交,抵达望京soho,与HR约定的时间是11点,不得不说soho确实高端大气上档次,这里面有许多大大小小的公司,随后我来到16楼,找到了Darel敢玩公司,开启了面试之旅,HR找来一位面试官,此人看起来精神不振、没精打采,我猜测是累的,这是程序员的宿命 。拿着我的简历,看着简历,不说话,我就主动和他说。

1:你githubl里面放了些什么项目?

谈到css动画效果,我向他展示我所做的项目,该项目涉及无缝滚动效果,面试官认为我这种做法不够优化,询问我是否有其他方法,我不太清楚,随后他进行了讲解......

面试官态度很直接,询问我是否带了电脑,我给予肯定答复后,他要求我打开代码。

问我margin能不能为负数,面试官让我敲代码,于是我就开始敲了,(这是自己给自己挖坑,有些话不该说就别讲)

面试官询问我,是否了解公司,为何想来公司,前端的就业前景如何,好像我回答得不够理想,这个问题还是得找个中规中矩的答案。

在敲代码时,为避免冷场,我努力找面试官交谈,结果证明我错了,面试官似乎很不喜欢别人问他问题,不该问的就别问,要等面试官让你问他问题时再问 。

差不多聊了半个多小时,我才知晓,他们公司仅他一人负责前端工作,还要兼顾安卓和苹果系统的开发,研发部总共六人,他需承担移动端与电脑端的任务。天哪,怪不得没精打采,小公司就是如此,公司总人数三十多个。之后,便没后续了,当天晚上询问了人力资源,没通过。

面试后的反思是,与面试官交流时,不能过于随便,要正式且专注,不然可能会给人留下不踏实、不务实的印象。

面试完Darel敢玩公司后,吃了顿饭,我便坐上公交,坐了两个小时,前往参加下午人人公司的面试。

首先,HR 给了我一份笔试题,是 4 页的原生 JS 内容,不过都是基础题目,我觉得不难,写完大概花了一个小时,之后 HR 找了个程序员来面试我 。

一面:程序员

看我的简历,简历上附着作品和项目网址,之后他针对性地问了一些问题,还看了我的博客和一些作品。

拿着他的苹果电脑,让我回答一些前端问题,例如浮动、清除浮动的问题,null和undefined的区别,setTimeout的原理并要求给出代码,问我输出的值是多少,还有URL加密和解密的问题,跨域问题等等。

问的难度不算大,笔试题目我存在答错的情况,不过我依旧冷静地进行分析。大概聊了40分钟,面试官表示,行,我这边没什么问题了,你稍等一下,我去帮你叫O面(前端主管面)过来

二面:前端主管面

我感觉他问的问题并非特别难。只想说,这位前端主管的眼神十分坚定。我和他一直相互对视着。他问我问题时,同样一直看着我。然而,我就这样和他对视着,哈哈哈。

1:json和jsonp以及AJAX的区别?

如何解决跨域问题,我自己给自己挖了个坑,提到了iframe,不过我对其了解并不深入,我讲了五种方法。

聊到TCP、IP、udp、http、https的问题,前端主管一直紧抓着udp和tcp的问题不放手,实际上他并不了解UDP,这是他自己给自己挖坑,机智的我把话题转移了,可是前端主管依旧揪着这个问题不放,我便说,这方面我不太清楚......

针对我的笔试题目,我写了满满四大页,写得头晕目眩,之后面试官问了一些问题。。。。。。

5:是否了解公司?这个问题,好像每个面试官都会问

差不多聊了40多分钟,我表现得似乎还可以,回答得也不错。随后前端主管让我等着,他要找人来面试我 。

我感觉这两位面试官,与我颇为契合,彼此能聊得来,哈哈哈,他们性格都很开放,充满激情、动力与活力。总之,他们和我上午面试时遇到的那位面试官的精神状态截然不同。

三面:HR面

hr面试时氛围很轻松,对方问什么就回答什么,眼睛要看着对方,以此展示自己的自信,不要低着头,我总结出说话看着对方是对对方的尊重和真诚,也是自信的体现。会跟你聊实习工资、到岗日期等,还会涉及个人性格、家庭地址等一堆个人信息,如实回答即可。

面试到这里就结束了,原本22号还有一场穷游网的面试,只是22号要去360大厦参加培训课程,因此,我把那场面试推掉了。

22号到27号是在360大厦总部度过的,先介绍一下北京,从网申开始,经过笔试,参加360前端星云计划,再到北京培训,这一路不断有人被刷掉,自己还算幸运,能够过来上课,虽说一路上奔波劳累,但也算是值得了,有这么多从全国选拔过来的小伙伴,还有一群优秀的老师,也就是360技术高管给我们上课,收获非常大!

每个老师都给我们讲解了涉及前端的各个不同领域的东西。主要包括http,TCP服务器端原理,JavaScript的开发规范,移动端的介绍,thinkjs(创始人李云银老师亲自授课),nodejs,前端架构流,cdn托管,以及如何读懂技术文档(编写javascript高级程序设计的译者李松峰老师讲解),每一个前沿技术,对自己都是一个冲击,收获真不是一般的大啊!真的要万分感谢这些老师,他们是 IT 界的技术大牛,程序员的境界竟然如此美妙!

在每一个领域,老师们都引申出了许多前沿的学习工具与新技术,总而言之,收获颇为丰富!现将这些天涉及的知识点列举出来,以供学习前端的孩子参考,依据时间的先后顺序 。

【22.上】
1.语义化的理解
2.font awesome
3.深刻理解问题的原理,修炼代码的细节
与用户进行交流互动,使得交互变得简单,在和人打交道时,能将复杂的事物简单化,这是公司日报的内容 。
JavaScript语言在脚本方面很重要,在服务器方面很重要,在客户端方面很重要,在硬件方面也很重要。
算法,可视化,数据交互,与后端的连接,新的技术,行业标准w3c标准
chrome下开发,断点调试工具。研究代码,而不是复制代码
关注新技术,写技术,业务分隔,200人做前端
代码遵循规范,拥有pc jquery mobile MVC think.js技术,适用于ios和安卓app的编译部署。
学习 积累沉淀 分享
掌握自己的方法论,形成体系的东西,关注js的安全问题,这属于程序模型与思考的范畴 。
6.中间人攻击--
客户端  ----->服务器端  
加私钥的问题A->B->C 同时给AC加私钥
【22.下】
从输入url开始,到页面加载完成,在这个过程中,HTTP与性能优方面都发生了什么事情?
2.UDP和TCP
3.三次握手,四次挥手
请求响应报文格式,TCP Clint,think.js
5.TCP Server升级为HTTP server
6.乱码问题
7.什么是http状态
header进行分类,其长度用content-length来表示。
9:压缩content-Encoding:gzip
10:get和post的区别?
11:cookie的理解?
接受编码/内容编码
抓包工具包括wireshark,抓包工具包括fiddle,抓包工具包括firebug,抓包工具包括IE8+自带工具
14:发包工具 telnet/curl | fiddle
15:http的历史
16:http性能优化问题?
17:keep-alive减少后续的握手时间
18:同域并发控制?
19:模块拆分导致更多的请求||合并请求
20:压缩
缓存存在问题,涉及Etag,涉及expires,涉及cache-control
浏览器请求有哪三种方式?分别是F5,cmd+r,忽略Expires和cache-control并发起协商请求。
23:样式内联|
24:用户心理?
大管道,异步加载,按需加载,加载提示,进度条,预判行为。
25:http性能指标 Yslow
26:http瀑布图
《图解http上野宣》,《http权威指南》,《web性能权威指南》
【23.上】
1.HTML的关键点(doctype与渲染模式|语义化)
2.doctype的作用?文档声明|
3.渲染模式 ?w3c标准模式|准标准模式
xhtml class要小写,属性用单引号,要有结束标签。
html的设计思想是什么,要兼容已有的内容,要避免产生不必要的麻烦,要解决现实问题(比如localstorage/geoloaction),要实现优雅降级,要尊重事实标准,用户的优先级高于开发者,开发者的优先级高于浏览器厂商,浏览器厂商的优先级高于标准制定者 。
6.html5标签(nav|embedded)
7.语义化(元素,属性及属性值都拥有语义含义)
8.语义化的好处?可访问性|便于seo|易读|易维护
base:用于指定基准url,以及链接打开方式(traget为空白时),meta:表示页面元数据
10:使用meta扩展html?<blockquote>--一段文字的引用|ol有序|ul无序
11:<figure>当图片无法被识别,当处于客户端时,阻止图片加载,此时可用alt表示说明
12;lang属性--规定元素内容的语言
怎样做到语义化呢?要了解标签的语义,手写html,避免使用生成工具,遵守行业通用标准,将行为、样式、结构分开 。
14:微格式|schema.org|ARIA
15:webplatform.org--学习网站
16:代码风格?rel:指定外部引入的资源与当前页面的关系
17:简单选择器的选择组合
继承时存在重叠样式,某些属性会自动继承其父元素的值,前提是没有显示指定一个值。字体系列有‘font-size,单位为px、em(一般是相对于font-size的计算值)以及百分比 。
颜色的关键字rgba,可解决使用opacity时的问题,使用opacity时,遮罩层会变为半透明,使用opacity时,文字所有的东西也会变为半透明 。
21:HSL:颜色值,饱和度,亮度
对齐方式是什么?是分散对齐,这种对齐方式适用于多行,只有多行时才会起作用。
【23.下】
1.盒模型和视觉可视化模型
2.viewport可视区域 视口
3.块级元素,inline-block元素本身是行级,
4.排版流(文档流)
  在排版流中块级元素独占一行,块级元素会受到浮动元素的影响
5.float浮动
6.如何清除浮动?clear|BFC
  浮动元素会对后续的行级元素产生影响
  :before|:after|伪元素,伪类
BFC即块级格式化上下文,它会将自身里面的内容框起来,其中包括浮动内容,这样能使其不影响外面的元素。
BFC的创建,overflow:hidden起作用,overflow:auto起作用,BFC不会和块级元素重叠。
  BFC作用:双栏布局|清除浮动|防止margin重叠
position:fixed是相对于viewport进行固定的
9:堆叠层次 z-index
10:兄弟选择器 h2~p--跟h2并列的共样式
当选择框处于被选择的状态,对nav执行一系列的操作。
11:background size背景图片的大小
转变:全部在两秒内发生变化
13:代码风格
14:代码规范:BEM|smacss
15:css预处理器:less|sass|postcss
16:mobile和pc端
17:viewport
18:Media Query-媒体查询
19:flebox属性
【24.上】
1.变量的赋值?动态绑定|动态类型
2.JQuery
3.zepto下data方法只能处理字符串
【25.上】
1.前端工作流问题
2.合并图片的好处?减少内存开销|减少请求的次数
grunt-编译管理工具grunt-cli,它能够解决版本问题,还能针对不同的版本进行兼并 。
4.js的注意点?代码审查->编译-> 合并->压缩
针对css,进行预编译,预编译工具包括sass、less、stylus,之后进行后处理,后处理工具包括autoprefixer、Mixin,然后进行合并,最后进行压缩。
6.图片处理?压缩->合并(css spirte)
进行完整处理,先处理js,接着处理css,再处理图片,然后进行自动化测试,随后处理版本(cdn处理),最后发布上线
8.开发版本?提供静态服务器|只做基础编译|实时编译|
9.GULP与Grunt的区别?
10.GULPfile.js配置|执行?
11.webpack配置|和webpack执行
12.FIS配置工具
【25.下】
1.读写文件
2.创建http服务
3.c10k问题
Nginx存在异步非阻塞的问题,它是高性能的HTTP服务器,也是高性能的反向代理服务器。
5.io.js
6.node.js的模块--基于CommonJS
  一个单独的文件就是一个模块|
var circle,通过相对路径的方式,引用require('./circel.js') 。
  绝对路径
7.模块加载的策略
8.删除模块缓存
9.原生模块 http|url...
npm对所有模块进行统一管理,它直接把npm打包到node里面。
node.js框架,包括express,koa,sails.js,think.JS
12.ES6/7特性如下:语法改进|开发方便|
省略function关键字,省略return,涉及arrows
classes,extends继承类,super调用方法。
15.template strings
16.destructuring
17.default+rest+spread
18.modules
19.node.js最大的问题?异步的问题
callback hell嵌套情况严重,不能对错误进行统一处理,try/catch无法捕获错误。
promise可转换为另外的两种状态,一种是resolved(成功),另一种是rejected(失败)
22.callback包装为promise
promise存在什么问题,this指向存在什么问题,局部变量需要借助外部变量才能开展
生成器函数定义为 *gen(){}
generators存在问题,语义不容易理解,需要借助执行器,无法与arrows一起使用,例如yield *yield 。
Async函数基于promise,返回promise,使用async/wait更加语义化,存在错误捕获、并行处理方面的问题?
   1.stage-3
   2.没有Runtime支持
Babel是一个JavaScript编译器,它基于v8 。
28.ES6/7+Babel
执行npm install -g npm@3这个命令来安装npm的3版本,用于demo
演示,npm,认为是JavaScript模块,管理模块
从管理员,到控制器,再到用户的JavaScript文件
   view->admin->
【26.上】
1.组织与结构 LC
2.岗位分工以及分工合作流程
  技术发展路线图
  前端后端架构模式
3.web平台部--9个部门
4.网站架构
网站架构模式包括MVC分层,包括分割,包括分布式,包括集群,包括缓存,包括异步,包括冗余,包括自动化,包括安全。
6.高性能?前端性能优化|服务器性能优化|存储性能优化
7.前端性能优化?
减少HTTP请求,使用浏览器缓存,启用压缩,将css放在页面最上面,把js放在下面,减少cookie传输,进行cdn加速。
延迟一切可以延迟的,bigRender,switchable,遵循就近原则。
分布式缓存用于缓存热点数据,采用hash算法取模,使用memcache 。
9.高可用?getlab/git
10.代码协作管理
11.导航业务分析
导航特征页面简单,数据进行静态化处理,使用NGINX,采用异步方式,将文件抓取到本地文件
前端架构,浏览器优化技术,cdn,动静分离,静态资源独立进行部署,DNS,应用开发架构,开发框架
动态页面实现静态化,进行业务拆分,采用虚拟化服务器,运用分布式消息,使用分布式缓存,开展数据采集与监控,包括浏览器数据采集和服务器性能数据采集,设置系统监控报警,存在架构误区。
【26.下】
prototype是js构造器的一个特殊属性,它上面存在所有属性和方法,这些属性和方法被它的所有实例共享。
2.asynchronous
  异步:是单线程的javascript处理触发任务。
3.document ready
4.捕获阶段在最外层,先于内层
如果中间存在阻止冒泡的情况,那么会把后面的事件推到最前面去进行,这就是捕获阶段。
5.transform-origin:0 45px
计算Math.PI乘以2再乘以p的余弦值,将其结果乘以145,再加上单引号px组成的字符串
        sin
6.兼容性?框架底层封装和polyfill(实现标准库)
返回由参数组成的数组,通过调用数组的slice方法,再使用reduce方法将其元素累加起来,以此支持多个参数传递。
【27.上】
1.使用cdn以及开发工具
2.影响网络传输速度的因素
cdn是什么,接管dns,用户访问cdn节点,cdn节点内容来自源站。
4.dig|nslookup--可看到dns解析
5.cdn的优势?以前端角度看cdn
6.用于cdn加速的内容有哪些?
7.静态资源?依据url定位资源|内容允许被cdn节点缓存
8.cookie.frame.domain
9.动态资源是什么?可以被cdn加速吗?
采用jsonp方式调用,采用动态添加的方式,改变script中的src 。
11.合理回源
12.静态页面资源
13.前端公共库
14.ISP--运营商
15.流媒体加速
16.chrome|IE
17.高级js程序设计--李松峰老师
18.如何阅读和翻译?
19.如何把翻译一本书?
20.注意积累 

总结

总而言之,收获颇为丰富,方向变得更为清晰,清楚自己需要学习哪些内容,尽管学习内容众多,但可以循序渐进,非常感谢360的各位优秀人才,分享他们的一些实用知识,相信经过培训的46名同学未来都能够进入很不错的互联网公司。(忘了提及,一同上课的有两位来自清华大学的学生,还有一半是研究生),唉,感觉自己差得太远了,不过,学到了大量知识。

虽然在360的面试中失利了,不过我目前仍是大三学生,依旧存在机会,能够继续参加秋招,哈哈,要努力认真地提升自己,通过这次在北京的培训,在眼界以及技术等各个方面,都有了全新的认识。前方的前景十分美好,要持续努力,不断提升。针对360面试出现的问题,因其较为注重细节,所以自己需要在各个方面加强练习,多编写代码,多进行思考,多加以总结!

好了,一位女程序员码了3个小时的字,她的故事到此结束。希望正在学习前端的你们,看到这篇文章都能有所收获。这一字一句,都是她的真实感受。未来很美好,我们都要做一个努力上进的人。比你优秀的人很多,比你有天赋的人很多,比你学校好的人也很多。你只有更努力,更上进,更勤奋!加油!

小编推荐

为什么要学习网络营销,为什么要做网络销售
« 上一篇 2025-05-01
揭秘SEO精髓:资讯群体必看的SEO教程下载指南
下一篇 » 2025-05-01

文章评论