温馨提示一下哦~~明天是牛客624特惠日!全场五折起,低至9.9元,详情戳624牛客特惠日!牛客所有课程五折起,低至9.9元!现在预定可享受折上折!
送上满满的干货!
应届生往往都是项目经历比较薄弱,面试前,怎样有一份属于自己的项目,怎么去准备,面试中,又怎样去表达和描述才能让面试官对你刮目相看。这些都是应届生求职时非常担心的问题。
针对这些问题,牛客网举办了第一次针对2017届同学的一个讲座,之前完整的陪伴了16届的同学,如今,希望能够给17届的同学们给与帮助。今天来把讲座中的干货带给大家。
叶向宇
曾任GOOGLE/人人/阿里技术专家顶级技术标杆
多年校招技术面试官经验,教学直击核心点
十年技术实战经验,重大项目从0到1开创者
牛客网创始人&CEO多次在线讲座备受好评最懂学生需求
我们想做到面试前和面试中都做到百分百好,那一定是要有个这样的顺序的:
筛选
实践
总结
筛选要遵循两个原则:
以终为始
循序渐进
什么是以终为始呢?
要看到你做某件事情的目的,比如,我们左项目就是要先看下我们的目的,是想练习什么?可以从以下四个方面来思考:
语言/框架
工具
协议/模式
产品/职位
很多人读书的就选择C语言,这是大学读书的时候的大多数人会选择的,然后就觉得学了c语言就只能够做c语言的项目,其实不是这样的,像java,python都是市面上比较流行的语言,而且也是都可以用的,当然我们做项目的目的性一定要明确,也就是说你做项目的这个目的,比如我做项目就是想练习c语言,那我就根据c语言去找项目,,我就是练习python,那就用python做项目,因为语言都是相通的,还有就是框架,很多人用自己会的语言写的话就很难。
所以要找一个语言框架。还有就是不想练习语言,不想练习框架,想练习一些模式,协议这种,因为好多面试官会问协议,设计模式之类。还有很多同学练习就是练习了一些工具,比如IDE和一些其他的工具等等。还有一些同学的目的性更强了,比如有的同学就是以后想做游戏的引擎开发,那就更要根据目的来做项目,不能做那些边边角角的项目了,所以是做java工程师,还是游戏工程师,还是网络工程师等等,所以一定要针对自己的这种目的来选择项目的开启。框架有java的MVC,,工具的话git,mango,hadoop等等等等。
可以参考的点如下:
Spring,Flask,React
Git,SVN
HTTP,FTP,数据库
运维,前端,后端
循序渐进这个很好理解,不管做什么事情都要这样:
我们做项目要有这几个因素所在:
难度
兴趣
造轮子
创新
一定要循序渐进,一步一步的走过,别想着一步登天,或者有的同学最开始是模仿的方式开始的,这也都是可以的。
还有就是兴趣,真的喜欢就会去花很多时间去做,比如我之前一直就做的游戏,因为我喜欢游戏,做的过程中自己就可以玩,所以就会有好多时间投入在这个上面。
轮子理论,也很好,看到别人造轮子,我也喜欢,那我也去造,其实是可以的,从这个开始起步,完全没有问题。当然,这个是刚开始的时候,如果什么都不会的情况下,如果你都已经很有基础了,还这样,就属于懒惰了,而且也不会有进步。
创新也是必要的,任何时候没有创新就没有了动力,在原来的基础上进行创新,那也是你的东西,也会有成就感,并且学习到很多知识。
筛选的有几个类
游戏,编辑器
网站,app
爬虫,库
在实践这部分我分为两种人:
新手上路
老司机
新手上路
先点后面
先模仿后改进
先点后面(比如给实习生一个任务,让你先做个爬虫,好多同学就会想好多,我要做个框架,我要前后分层之类的。想了好多就会不知道从哪里入手,最后的结果就是什么也做不出来。所以新手上路一定要先点后面,先看好项目需要的知识点,比如想做一个聊天的项目,先把聊天的协议自己顶起来,然后网络连接我们这边是用http还是什么先来进行拉起来。或者要做一个游戏工具,先不用想游戏怎么做,先想怎么把一个声音播出来,怎么把某个3d的东西在页面上显示出来,怎么能够在这里面用物理的引擎,先把这些点做好,如果你把各个点都做好了之后,这个时候再去思考这个面,怎么把这个点连起来。)
先模仿后改进(先模仿有个好处就是,我做做不出来,会很郁闷,甚至找不到可以被教的一个点,这个时候我们就可以模仿别人的项目,比如别人用的是c#写的,我可以模仿它来写,这个时候模仿完,我们就可以自己改进,模仿完有了基础,之后改进会有个提升的过程。对于新手来说这些都是至关重要的,就像我之前做的FTP模式,我就是模仿,之后再改进。)
老司机(老司机就是有一定基础了,做了好多项目了,我们要去突破好多难点。)
核心难点
从架构到模块(模块怎么分的,从上到下,这些就是老司机的区别)
我们学习和做项目的过程中查找和参考的资料的先后顺序建议为:
找资料顺序
官方文档,PFC,权威书籍
Google,StackOverFlow
博客
最好的就是看官方文档,因为没有任何东西比这个更权威了,我们经常会去google,但是其实出来的是博客,都是别人总结出来的,如果后面有错误的话,还要重新学习,很麻烦的,好多都是自己片面的总结,容易影响大家。所以一定是优先查官方文档。有的同学说看不懂官方文档,这个困难一定要克服,不光学了英语,还能真正的学习知识。
总结要分为三点:
核心难点和结果
核心算法
SDK,框架
开发量,准确率
总结的过程真的是一个非常重要的过程,好多同学都会忽视这点,总结的过程是你再学习的一个过程,不光是总结给自己,在面试的过程中也是起了非常重要的作用,因为面试官经常会问你在过程中遇到了哪些困难,用了哪些框架,用了哪些算法,这些都是非常关键的,而且如果你真的很好的总结之后,到了公司,让你换语言,你可能三天就搞定,当然,要配合官方文档。
扩展和深入
单机--》网络
多线程
做的过程一定要有所拓展,比如我之前做了个单机版的俄罗斯方块,后来又做了一个网络版俄罗斯方块,之后又做了一个人工智能俄罗斯方块,最后做了一个游戏平台,把这个俄罗斯方块欠了进去。
资料总结
博客小日记
总结是第二次创作
你写个博客小日记,还可以让大家来进行交互,可以对自己的项目进行一些修改,也是很好的。
牛客网上面有看到好多同学投递简历的一个项目,其实在我看来好多都是玩具一样的,就是一个什么系统,还有好多就是导师的一个项目,在简历中一下就能看到,所以如果是你自己做的项目,一定要把自己做项目的时候用到的知识,和其他技术的一些比较等等,所以一般的项目在简历中很容易就看出来,所以也告诉大家一个好消息,即使是211,985的好多同学项目经历这一块其实好多水的,中国对平凡的人更多,所以所有同学都不用灰心,只要你这段时间真真正正的思考去做一个项目,你会在秋招的时候非常抢手。一分耕耘一分收获,只要你多一些努力,你就能够成为行业前端的人,当然,成为顶端的人,还要再努力。以好多人努力的程度,还没到拼天赋的资格,所以不用惧怕985,211,这个不是绝对的,当然,如果你们两个水平一样,人家一定是要985,211的而不是你,所以,努力就好。
项目做好了,接下来我们来说一下面试中怎么讲项目经历
做到两点你就赢了
胸有成足
差异化
项目面试
准备了这么多,非常重要的也是面试环节,只有更好的跟面试官交流,你才能找到自己喜欢的工作。
差异化,就是你一定要和别人不一样,一个面试官一天面试n个人,好多人的项目其实都很水的,他已经听了一万遍了,再听你的,和别人还是一样,没有任何优势。
胸有成足,就是让面试官觉得你很吊,就是在尊重面试官又不傲慢的同时让人觉得你很吊,这也是一门艺术。
我作为面试官拿到你的简历,虽然我看一下,可能觉得你的项目像玩具,但是我还是会问你,因为只是表面上看起来是这样,可能你这个是有特别之处的,所以也不用担心这一块,机会会留给每一个人,抓住他才是王道。
能力
你了解哪些部分(看家里是否造假,会看你用了哪些框架,用了哪些技术,所以之前的总结就是很重要了,刚刚为什么要让大家看官方网站,所以一定要了解一下各个框架,里面分别是做什么的)
你深入了解哪些(我一定要深入了解,比如,好多人都说是用的spring,我要看你是否有深入了解,还是说知识套了一些框架,比如这里面有哪些深入了解的这种问题,怎么实现一个高效的列表等等)
你横向了解哪些(比如有些扩展,就比如刚刚的俄罗斯方块的例子,面试官会觉得,这个小资很厉害,不光光自己去了解一些东西,还会去扩展,这个基本上就在面试官那里得到很大的加分。)
潜力
你怎么解决问题(做项目的时候所有人都会遇到问题,碰到之后,怎么解决的,思路是什么,如果每一套都是差不多的,我会相信你,你这个方法论是可行的)
你如何举一反三(会从你的沟通里面去了解,你以前看到的点,你看到类似的是怎么解决的,遇到一个问题,让我想起了另外一个是怎么做的,怎么解决的,也就是举一反三,融会贯通)
你怎么优化项目(和上面的深入了解是一样的其实,所有人都是金字塔形的,都是金字塔的地步,没有深入了解,不深入了解的话你和所有人都一样,没有差异化,优化的话,你是有思考力在里面,比如网络编程,功能都已经实现了,如果你跟我说我做了一些优化,让所需要的时间更少,结果不变,准确率提高就能提高公司的收入,你不光是考虑技术,还考虑一些公司的一些实际的问题,优化的点和好处,也会让面试官刮目相看)
你如何快速学习(因为现在技术更新太快,你用多少时间快速学习了东西,你这个潜力让面试官看到,也是一个很大的加分项)
注意点
切勿夸夸其谈
真诚有理有据
一定不要吹牛,面试官虽然当面没有戳破你,但是其实他都是能看出来,少一点套路,多一点真诚,很重要
博客网站
权限控制管理
数据库安全
(好多人都做过这样的项目,所以一定要多多思考你和别人不一样的地方)
从以下几点思考
app
SDK细节
自定义控件优化
方案对比
(一定要真的了解这些细节,这样才能真正做了这些东西,你还可以看别人怎么做的,和别人去比,去学习,看到自己的缺点,一开始会发现,自己就是个渣,这个是必经之路,也是你进步的一个过程)
算法
坑和解决思路
灵感来源,融会贯通
这个其实是模拟了smart登录模拟做了一遍,因为是个智能聊天,他可能引入了一个新的图灵机器人进行了对接。
对于这个项目应该怎么讲,首先说闪光点,我了解什么,了解python的网络库,bulabula,第二,因为我做的是一个smartqq,我肯定是了解他的协议嘛,比如chrome,我是通过什么工具了解到这个,又是怎么做的,最后,是用的二维码登录的,那就要说一下二维码这块怎么做的,用的什么算法解决的这个东西,包括http协议,二维码怎么传的,push是怎么用的。
最后,qq聊天收发人消息,肯定要解析嘛,有发图片有发语音的,是怎么解析,还有跟图灵机器人对接的,那又是怎么对接的。最后,优化方面,比如说,我一台电脑同时支持10个qq,让多线程可以一个电脑跟100个人聊天,用的异步的方式,而不是同步的方式,用了什么方式处理出错等等等等,做项目的时候可能没想过这些东西,但是一定要提前想一下这些东西。
这样在面试的时候才能口若悬河,面试官会看你什么都会,协议也会,技术也会,一个项目就搞定了,面试官就安全镇住了,就是围绕差异化和。。的这两个中心思想就可以了~
叶神亲讲的项目课程即将开始,是他第一次开课,也是最后一次开课啦,机会难得,明天全场大促,今天预定可享受折上折优惠哦
牛客网—程序员必备求职神器
点击下方阅读原文查看牛客特惠日大促,全场五折起,低至9.9元,提前订更可以享受折上折哦~