热门话题白皮书HR资料
应届生项目那点事:如何面试前准备自己的项目,如何在面试中让自己的项目加分
2024.07.03

温馨提示一下哦~~明天是牛客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模式,我就是模仿,之后再改进。)


老司机(老司机就是有一定基础了,做了好多项目了,我们要去突破好多难点。)

  • 核心难点

  • 从架构到模块(模块怎么分的,从上到下,这些就是老司机的区别)


我们学习和做项目的过程中查找和参考的资料的先后顺序建议为:


  1. 找资料顺序

  2. 官方文档,PFC,权威书籍

  3. Google,StackOverFlow

  4. 博客


最好的就是看官方文档,因为没有任何东西比这个更权威了,我们经常会去google,但是其实出来的是博客,都是别人总结出来的,如果后面有错误的话,还要重新学习,很麻烦的,好多都是自己片面的总结,容易影响大家。所以一定是优先查官方文档。有的同学说看不懂官方文档,这个困难一定要克服,不光学了英语,还能真正的学习知识。



第三步:总结


总结要分为三点:



核心难点和结果


  • 核心算法

  • SDK,框架

  • 开发量,准确率


总结的过程真的是一个非常重要的过程,好多同学都会忽视这点,总结的过程是你再学习的一个过程,不光是总结给自己,在面试的过程中也是起了非常重要的作用,因为面试官经常会问你在过程中遇到了哪些困难,用了哪些框架,用了哪些算法,这些都是非常关键的,而且如果你真的很好的总结之后,到了公司,让你换语言,你可能三天就搞定,当然,要配合官方文档。


扩展和深入


  • 单机--》网络

  • 多线程


做的过程一定要有所拓展,比如我之前做了个单机版的俄罗斯方块,后来又做了一个网络版俄罗斯方块,之后又做了一个人工智能俄罗斯方块,最后做了一个游戏平台,把这个俄罗斯方块欠了进去。


资料总结

  • 博客小日记

  • 总结是第二次创作


你写个博客小日记,还可以让大家来进行交互,可以对自己的项目进行一些修改,也是很好的。


牛客网上面有看到好多同学投递简历的一个项目,其实在我看来好多都是玩具一样的,就是一个什么系统,还有好多就是导师的一个项目,在简历中一下就能看到,所以如果是你自己做的项目,一定要把自己做项目的时候用到的知识,和其他技术的一些比较等等,所以一般的项目在简历中很容易就看出来,所以也告诉大家一个好消息,即使是211,985的好多同学项目经历这一块其实好多水的,中国对平凡的人更多,所以所有同学都不用灰心,只要你这段时间真真正正的思考去做一个项目,你会在秋招的时候非常抢手。一分耕耘一分收获,只要你多一些努力,你就能够成为行业前端的人,当然,成为顶端的人,还要再努力。以好多人努力的程度,还没到拼天赋的资格,所以不用惧怕985,211,这个不是绝对的,当然,如果你们两个水平一样,人家一定是要985,211的而不是你,所以,努力就好。


项目做好了,接下来我们来说一下面试中怎么讲项目经历

面试中怎么讲项目经历

做到两点你就赢了

  • 胸有成足

  • 差异化


项目面试


准备了这么多,非常重要的也是面试环节,只有更好的跟面试官交流,你才能找到自己喜欢的工作。



差异化,就是你一定要和别人不一样,一个面试官一天面试n个人,好多人的项目其实都很水的,他已经听了一万遍了,再听你的,和别人还是一样,没有任何优势。


胸有成足,就是让面试官觉得你很吊,就是在尊重面试官又不傲慢的同时让人觉得你很吊,这也是一门艺术。


 项目-面试官关注点



我作为面试官拿到你的简历,虽然我看一下,可能觉得你的项目像玩具,但是我还是会问你,因为只是表面上看起来是这样,可能你这个是有特别之处的,所以也不用担心这一块,机会会留给每一个人,抓住他才是王道。


能力

你了解哪些部分(看家里是否造假,会看你用了哪些框架,用了哪些技术,所以之前的总结就是很重要了,刚刚为什么要让大家看官方网站,所以一定要了解一下各个框架,里面分别是做什么的)


你深入了解哪些(我一定要深入了解,比如,好多人都说是用的spring,我要看你是否有深入了解,还是说知识套了一些框架,比如这里面有哪些深入了解的这种问题,怎么实现一个高效的列表等等)


你横向了解哪些(比如有些扩展,就比如刚刚的俄罗斯方块的例子,面试官会觉得,这个小资很厉害,不光光自己去了解一些东西,还会去扩展,这个基本上就在面试官那里得到很大的加分。)


潜力

你怎么解决问题(做项目的时候所有人都会遇到问题,碰到之后,怎么解决的,思路是什么,如果每一套都是差不多的,我会相信你,你这个方法论是可行的)

你如何举一反三(会从你的沟通里面去了解,你以前看到的点,你看到类似的是怎么解决的,遇到一个问题,让我想起了另外一个是怎么做的,怎么解决的,也就是举一反三,融会贯通)


你怎么优化项目(和上面的深入了解是一样的其实,所有人都是金字塔形的,都是金字塔的地步,没有深入了解,不深入了解的话你和所有人都一样,没有差异化,优化的话,你是有思考力在里面,比如网络编程,功能都已经实现了,如果你跟我说我做了一些优化,让所需要的时间更少,结果不变,准确率提高就能提高公司的收入,你不光是考虑技术,还考虑一些公司的一些实际的问题,优化的点和好处,也会让面试官刮目相看)


你如何快速学习(因为现在技术更新太快,你用多少时间快速学习了东西,你这个潜力让面试官看到,也是一个很大的加分项)



注意点

  • 切勿夸夸其谈

  • 真诚有理有据


一定不要吹牛,面试官虽然当面没有戳破你,但是其实他都是能看出来,少一点套路,多一点真诚,很重要


博客网站

  • 权限控制管理

  • 数据库安全


(好多人都做过这样的项目,所以一定要多多思考你和别人不一样的地方)

从以下几点思考

  • app

  • SDK细节

  • 自定义控件优化

  • 方案对比


(一定要真的了解这些细节,这样才能真正做了这些东西,你还可以看别人怎么做的,和别人去比,去学习,看到自己的缺点,一开始会发现,自己就是个渣,这个是必经之路,也是你进步的一个过程)


算法

  • 坑和解决思路

  • 灵感来源,融会贯通


通用案例讲解




这个其实是模拟了smart登录模拟做了一遍,因为是个智能聊天,他可能引入了一个新的图灵机器人进行了对接。


对于这个项目应该怎么讲,首先说闪光点,我了解什么,了解python的网络库,bulabula,第二,因为我做的是一个smartqq,我肯定是了解他的协议嘛,比如chrome,我是通过什么工具了解到这个,又是怎么做的,最后,是用的二维码登录的,那就要说一下二维码这块怎么做的,用的什么算法解决的这个东西,包括http协议,二维码怎么传的,push是怎么用的。


最后,qq聊天收发人消息,肯定要解析嘛,有发图片有发语音的,是怎么解析,还有跟图灵机器人对接的,那又是怎么对接的。最后,优化方面,比如说,我一台电脑同时支持10个qq,让多线程可以一个电脑跟100个人聊天,用的异步的方式,而不是同步的方式,用了什么方式处理出错等等等等,做项目的时候可能没想过这些东西,但是一定要提前想一下这些东西。


这样在面试的时候才能口若悬河,面试官会看你什么都会,协议也会,技术也会,一个项目就搞定了,面试官就安全镇住了,就是围绕差异化和。。的这两个中心思想就可以了~



叶神亲讲的项目课程即将开始,是他第一次开课,也是最后一次开课啦,机会难得,明天全场大促,今天预定可享受折上折优惠哦



牛客网—程序员必备求职神器

刷真题,练算法,看面经,得内推
www.nowcoder.com
长按二维码,把IT笔试面试题库装进


点击下方阅读原文查看牛客特惠日大促,全场五折起,低至9.9元,提前订更可以享受折上折哦~