为啥要做项目 + 项目怎么学 + 问什么 + 怎么写

一、为什么要做项目

如果你觉得自己很牛逼,比如学校非常牛逼,或者拿过什么牛逼的将,那么其实没有项目,也问题不大,即使你的简历比较空,也能获得很多面试机会。

但如果你觉得自己两者都没有,那么项目就显的很重要的。

比如你没有项目这一块,你的简历将会非常空,可能连半页的内容都没有,简历一般比较占位置的就是

1、项目

2、专业技能

所以一个简单的原因就是,项目可以让我们的简历看起来更加丰富。

如果你没有做过项目,突然让你来做个项目,我相信你会一脸懵逼,不知道从哪里做起,但是如果你做过项目,那就不一样了,有些项目虽小,但五脏俱全:表的设计,Dao层,Control层,缓存啊….总之就是,基本各个知识都用到了,而且这些,在真实的企业中,也是有这种类似规范的。

所以你做过项目,意味着,你至少掌握了这些知识的使用,而不是空泛的描述,并且也懂得项目的一些基本架构。

也就是说,做了项目,至少能够证明你是真的学过这些技术的,尽管你可能不知道一些原理。

所以呢,对于普通人来说,做项目,是非常有必要的,特别是小公司,因为小公司希望你能够尽快去干活,而你做过项目,上手会更快。

二、项目主要考察什么

一般来说,大部分人做的项目,特别是 Java 这块的,基本都是跟着视频敲代码,或者跟着书上的一些案例敲代码,毕竟绝大部分人,都是没有实习经历,很难接触到其他的真实代码。

不过我可以和大家说,对于初学者,去企业实习几个月接触的项目,并不一定会比自己跟着视频做的项目学的多,很多时候就是去打杂。

所以大部分人是没有真实那种线上项目的,而这些,大部分面试官是知道的,毕竟面试官也是过来人,所以面试官在问你项目的时候,更多的还是问你一些「理论」相关的知识,也就是说,大部分项目的考察,本质上是对基础知识的考察。

比如你项目用到了 Redis 缓存,那么面试官就会问你 Redis 有几种数据类型啊,缓存过期了怎么办啊,数据库与缓存一致性怎么解决啊,为啥要使用缓存啊,等等。

如果你回答的不错,那么面试官可能会往更深的问,比如给你出一些难题,问你项目的数据量大了如何处理啊,运行项目的进程突然挂了怎么办啊。

所以呢,项目的考察一般有两种:

1、项目所有到知识的一些基本原理,所以大家如何写了某种技术,那么最好是要对他负责哈,比如用了 Redis,那么就应该好好总结 Redis,用了消息队列,那么就要好好准备下消息队列。

2、基于项目做一些拓展或者故障处理问题:很多项目其实本身不难,难的是数据量大了应该怎么办,所以面试官往往也会问一些,比如知乎某个问题突然访问量非常大,你要怎么设计;还有就是线上故障处理,这个一般就是考察实践了,如果你好好做过自己的项目且在线上运行过,那么就很有可能遇到这种问题,比如 MySQL 某条语句执行的好慢,你怎么排查?MySQL 突然挂了,你应该怎么找到挂的原因?

应该怎么做

我说个实话,如果你觉得自己不会觉得心虚,你项目就算不跟着敲代码,其实也没事,就是只看视频,然后直接把源码导进来,直接研究代码执行逻辑,这样子的话,做起来快很多。

但是呢,容易心虚 + 存在一些风险,比如被问到某个细节,你没印象,那就凉了,所以是,风险与收益共存。

实不相瞒,我之前做项目,是第一个项目开始跟着做,第二个项目觉得很多东西类似,就直接导入代码来运行了。

那我的建议是,大家尽量跟着敲下代码,如果一直出错或者很多重复性自己不想干的,那么复制部分源码。

另外做项目的话,需要注重的就是,某些高频考点知识的运用,比如redis,消息队列,mysql 索引设计理由。因为面试官,对你的项目也不大了解,而一个项目很多东西是共同的,比如 mysql 索引设计,慢查询,这些面试官就算不懂你的项目,那么也可以问。

所以呢,在做项目的时候,你可以多关注下这些很有可能成为考点的知识的使用。

在简历中如何写项目

很多人在写项目的时候,写了和没写一样,比如:

1、项目有订单模块,前端调用对应借口后会把数据返回给前端,然后进行展示

这个其实说和没说一样,这哪个项目不是这样?

我上面说的,很多项目的考察,本质是对项目背后的考察,并且也和大家说了做项目,就是体现你确实掌握的一些技术。

所以我们在描述的时候,就要具体一点,就是要说明你用了啥技术,并且这个技术解决了什么问题,比如你利用 Redis 中有序集合实现了一个排行榜系统。这种就很具体,面试官也方便问,问你有序集合的底层结构,问你跳表。

所以你在写项目的时候,完全可以引导面试官问你哪些问题,预判面试官会问的问题,然后提前去准备好对应的面试题。

比如很多项目都会有登录功能,那么可以说用 cookie 和 session 解决了登陆态问题,用 MD5 + 盐值 解决了用户密码加密问题,你说了这些,面试官肯定就会问你相关情况了,比如问你,分布式 session 又该如何解决呢?浏览器突然关闭了,你又如何让用户自动退出呢?

总之就是,你需要写的是:你用 xxx 技术解决了 yyy 问题,并且这个 xxx 技术是你希望面试官会问的。

最后,大家希望做项目,写项目的时候,能够好好思考一下!

发表回复

后才能评论