在上一篇文章《双非硕士的辛酸求职之旅–谈谈我是如何同时找到 Java、Python、Go 等开发岗和国企银行的科技岗位Offer》的最后。
如果你还没看,点此处。
我最终是拿到了一家小公司的实习 offer,毕竟准备得晚,只能认了。
作为老学长,我的建议是 3、4 月的时候最好是要有知名公司的实习,这样在正式秋招为自己增加很多筹码。可能其他公司一看你的实习经历,可能就愿意给你机会让你进面试了,甚至直接免笔试,毕竟大厂 buffer 加持,人家就很想了解你在大公司的实习情况。
如果你也像我一样小公司实习,甚至说你没找实习。那也不意味着你没有了机会,我认为暑假这段时间一定要好好把握,做两个不错的项目,然后吃透一个!这里强调一下是吃透 1 个项目,为什么呢?
下文再解答…
先说一个可能的残酷现实:无论我们做什么项目,在面试官眼里都可能是 Low 的。
你可能会反驳我,如果想。我承认你对…
比如秒杀系统,这几年都强调高并发的经验,所以大家都做,那些相关技术栈都快成八股文了,网上相关文章也一堆,你会觉得高大上,但是面试官如果问:
其他项目就更别说了:博客系统、在线聊天工具、XX 爬虫系统、XX 管理系统…
有些读者可能会问了:我作为一个学生,那我要是能做出微信、头条、淘宝这样的项目,我还用得着来这公司上班?下一个扎克伯格怕不就是我了?
问的好,其实很多企业级项目归根结底,本质也是这些项目。那为什么我们做不太行呢?
总而言之,我说的 “Low” 不是说项目真的不好,而是想表达项目难做。什么叫难做?
作为学生,本来大家就不可能做的是企业级项目,所以没办法。大家都会选择一些常见的容易上手的项目来做,这些项目不是不能做,但绝对不会是你跟着开源代码或者看视频跟着敲了一遍,就说你做了这个项目。
好好思考一下。你是真的懂背后的原理吗?比如:
有时候最怕顾此失彼,为了追最新框架、最新技术,往往忘记了对核心的技术原理的理解。
所以项目难做就在于此,你用旧技术他会觉得 low,你用新技术他会觉得你只是单纯的套用,又不是真正的懂。
所以针对这样的情况,我的看法:虽然事实是我的项目其实做的是有点 low,但是小项目也要展现出它的高大上。
那么,如何展现出高大上?
项目的来源无非几个:学校;企业(有实习的同学);网上(开源 or 付费)
珍惜每一次锻炼的机会,用心做好每一次的项目:
在 2017 年本科那会,有门课需要做 Java 课程设计,我们大家都做的管理系统,全班只有一个同学做了坦克大战,然后还可以让老师体验玩一下。
你体会一下,如果是你是那门课的老师,你喜欢哪个项目?
如果你觉得学校的课程设计不够好,免费的项目 GitHub 和 Gitee 上的优秀开源项目很多;付费的牛客和慕课上的针对性项目也挺高大上的。推荐大家学习:
你学了后如何体现你的项目高大上呢?
或者大家都是本地项目,你的项目部署上线了,然后面试官可以直接访问,看到你做的项目;比如你做了小程序的项目,打开微信就能体验,哪个项目高大上?
优秀又好做的项目好多人推荐,那么就有可能大家都做同一个项目(比如秒杀),但是你对项目有自己的思考,就很不一样的。
如何展示给面试官你的与众不同?
cat
命令,你有没有研究过这个命令的实现算法,你来做会怎么做?最后,做“高大上”只是我的一个技巧而已,而且只是提供一个思路,希望大家都要好好准备一个项目,让自己吃透,这一点就足够高大上了。
以我的经历来说,2020 年 6 月之前,简历上只做了 Python 的项目:一个在线教育平台和一个上线的个人博客。
所以只能投 Python 的岗位,根本不敢去找其他如 Java 的工作,而且投了也没有什么回馈。为什么呢?
首先,Python 不是一门企业级应用首选的语言,据说是会有一些坑和性能瓶颈,导致用 Python 做后端开发的公司较少。以前用 Python 的公司也都转 Go 语言了,貌似知乎、字节都是如此。
其次,Python 更多是作为机器学习和数据分析的首先的语言,读研期间会使用到的框架基本都和 Python 联系密切,所以找算法和数据岗可能更好一点,所以我拿着 Python 在后端开发方向( Java 和 Go )的简历中没有一点优势可言。
最后,Python 作为一门简单的解释性语言,入门时大多人都会选 Python。随着学习的深入,个人体会却是 Python 易学难精,但作为第二语言真的不错。
所以在 7 月和 8 月份的时候,每天就是恶补 Java 项目。因为感觉再做秒杀系统,我玩不出新花样了。我选择了校园微商城项目,而且小程序在那会也不算过时,毕竟时至今日,小程序开发还是很有市场的。
人真的是被逼出来的,如果不逼自己一把,就永远不知道自己什么时候可以做好。
正因为有 Java + Python,我可以投互联网公司,可以投银行,可以投国企。
我还记得有面试官问我对这两门语言的看法?
(我在想这不是正中下怀吗?就等你问了)大概是这样答得:
大概就是这样,吹水还是要会的。
最后我在秋招中,也不限定只投某个具体的编程语言。凭着 Java + Python 的双项目拿到了 Java 开发工程师、Python 开发、C++ 游戏开发、Go 后端开发工程师的 offer…
C++ 开发那个我是说自己本科学过,但是不咋会;Golang 提的也是我正在学;离谱的是也进入了 Erlang 开发的面试,面试官说如果拿到 offer 可以培养的。
所以,这也是为什么校招中很多公司要求至少一门编程语言但不限于 C/C++、Java、Python、C#、javascript… 的原因吧。
关于如何做项目的几个点终于说完了,也不知道对大家有没有一点帮助。最后推荐几个我觉得还不错的开源项目吧:
Java 的项目推荐:
Go 的项目推荐:
如果你还是不知道该做什么,请参考
下一篇讲讲如何准备算法吧,算法不是我的强项。其实我感觉我对面试的体会还是更多一些,后续也写文章讲讲《如何准备面试》
我是宇宙之一粟,热爱文学和技术,想文理兼修却还在探索的人。希望看到这里的同学,点个赞或关注一下,谢谢。