自学党/野生猿,项目经验上哪搞?


几个实际的问题

最近不是求职季嘛,常常听小伙伴们说起的几个重要的话题是什么呢?git

  • 第1种状况:在念书期间没进过实验室,没有参加过比赛,也没有实习经历,那找工做时,简历上、面试时,项目经验这一块怎么弄呢?
  • 第2种状况:读研的小伙伴,期间以看论文,作研究类工做为主,或者说搞的是A研究,作的是A相关的项目,毕业有意愿从事计算机相关的岗位,简历上没项目怎么办?
  • 第3种状况:已经参加工做了的小伙伴,说以前一直作的A工做或者A岗位,如今有转开发相关岗位的意愿,简历上也没项目经验怎么办呢?

老实讲,这几个问题是蛮头痛的,并且还不太好说。github

我本身也有亲身体会,以前记得分享过本身的的社招转行经历,当时应该属于上面说的第3种状况,基本上也是头铁硬转的,自学党嘛,谈不上有什么实际的互联网开发经验。老实讲本身的运气还算能够,可是有些东西好像也不算单纯偶然。面试

尝试聊聊我的当时的几点准备和想法吧,就这个问题上,但愿能有用。算法


应届生?项目经验?

我发现提到相似刚才上面那些问题的小伙伴们,不少其实都是应届毕业生(包括本、硕),表示没有项目经验有点慌。数据库

u1s1,应届生校招面试时,对项目经历的要求倒还好,不用太过焦虑编程

有一个比这个更重要的事情那就是基础的准备!有些小伙伴有疑问了,每天掰扯基础基础,到底啥是基础啊?!后端

这个在以前的两篇学习路线的梳理文中都有说起,并且基础都是通用的:设计模式

主要包括:网络

  • 编程语言
  • 数据结构与算法题
  • 计算机网络
  • 操做系统
  • 数据库/SQL
  • 设计模式
  • 应用框架

本身有不少朋友同窗都是一线面试官,就这个问题还专门和他们交流过。面试官内心很是清楚,要求应届生有比较厚重的项目经验是不现实的,更是彻底没有必要的。应届生可塑性强,只要以上基础扎实,公司都是很是愿意培养的。数据结构

面试过程当中,有项目/比赛/实习等相似经历都是加分项,这没错,但别忘了前提是创建在基础表现得扎实的状况下,若是抛去这个前提,所谓的项目经历怕只会多此一举,并不能起到决定性做用。

再打个很实际的比喻,找过工做的小伙伴们可能也有体会。面试时,项目经验/实习经历吹得再多,一道手写算法题写不出来照样凉;但反之,若是项目经历虽稍欠,但对于面试官提出的基础问题和算法题一答一个准,则十有八九能上岸。

因此我以为不能本末倒置,基础才是应该着力去抓的。

若是距离校招还有很多时间,那在校期间若是有比较合适的实验室项目/比赛/实习,固然能够尝试一下,这也是一段可贵的经历,能够写进简历。但若是真的立刻临近校招了,仍是应该先把基础准备扎实。

对有些硕士生而言,其实大部分在读研阶段导师都仍是会安排任务的,甚至包括各类开周会、写报告,这些过程当中所作的研究其实均可以成为项目经验的一部分,只不过须要本身好好挖掘、提炼、整理、表达出来。

再者,就算读研期间没有项目,那毕业论文总该是有的,也总应该是作了一个研究,或者完成了一件事情。这些其实也能够好好挖掘一下,表达成项目经验写进简历。

其实面试时,对于面试官来讲,大几率不太会关心所作项目的具体内容。不少时候只是经过聊项目的方式,来感知咱们的学习能力、表达能力,以及思惟的清晰程度。

因此就看会不会 表达了!


善于利用开源项目

优秀的开源做者们积攒了数十年的财富

全部的知识、见识、智慧和艺术

像是专门为咱们准备的礼物

咱们为何不 白瞟 利用呢?

9824247-deb23c2e62ec7d7b.png

就我的感觉而言,开源项目对于我成长的帮助是很是之大的。由于像我这种非科班自学党,练手的几乎惟一途径那就是大量研究、吸取别人的开源项目,眼界很大程度上也是靠这个来提高。

以前也已经推荐过不少相关的开源项目了:

9824247-d31ef3dd1314596c.PNG

那又有小伙伴可能会疑问,如何把一个开源项目吸取成本身的,以应付面试呢?

我的以为不能靠死记硬背,也不可泛泛而看,而应该是有主有次,重在吸取技术关键点和总体架构思路。因此若是要作个总结,我愿意以这样一个大体流程去吸取别人的开源项目:

  • 首先正式开始啃开源项目以前,基础不可少,好比语言底子、网络协议、基本工具、基本应用框架、甚至包括一些设计模式等等,不然人家开源项目很难下牙。
  • 正式看一个开源项目时,首先能够全局梳理一下该项目用到的全部技术点、组件以及对应的做用和解决的问题,没听过的先去了解,不会的先单独补,各个击破先。
  • 接下来很重要的一步是:把项目运行跑起来!只要能跑起来看到效果,也就成功了一半,顿时信心大增。
  • 针对某几个关键技术点,或者关键模块各个击破,规划好一个顺序,仔细研究其源代码,跟进去细看。过程当中能够借助于思惟导图的辅助来作总结、串联和回顾,而且作好笔记输出,不然即便当时很有心得,过后又像走迷宫同样再踩一遍坑。固然该过程确定是有个反复的,想一遍搞定不太可能。几轮一折腾,应该说对这个开源项目就比较熟悉了。
  • 最后一步才是考虑把这个开源项目转化成本身的。好比能够考虑作代码上的优化,功能上的优化,甚至加入一些创新一点的想法,固然咱也能够把它推翻重来。

善于作好技术输出

我的以为,不管应届校招仍是社招转行,在没有项目经验的状况下,要想博得面试官的青睐,别的不说,作技术的态度确定要有,这样最起码能证实本身是有方面的意愿和行动,不然如何说服别人呢。

那如何体现一我的的技术态度呢?

一个最直接,最有说服力的方式那就是亮出你的技术博客或者GitHub连接,或者其余做品连接,这个再面试时是一个很大的加分项。其实面试官可能真的没有在乎里面具体写的什么内容,可是咱们热爱技术、热爱分享的样子已经被面试官着着实实地看在眼里了。

因此学完一个东西,必定必定记得要留下点什么,这些都是后续发展的资本。

再比方说,因为转行真的没有实际的企业项目经验,可是咱经过自学,有本身的技术心得或者做品,那面试官跟咱也有得聊了,并且大几率是咱们本身熟悉的领域,这样岂不是也为本身赢得了机会。

这个在以前作过的那么多期搭建博客、写博客的视频里,就是这个意思,由于我本身以为受用很大,因此以为能够尝试。


善于利用知名框架和项目

再比方说,仍是因为应届或者转行确实没有实际项目经验,但若是咱们研究过企业级开发所涉及的经常使用框架、项目或者技术的核心原理,深刻到源码级别,那面试时也是能够和面试官侃上几个回合的。

常见的好比SpringRedisNginx... 等等这种不少互联网公司都会使用的知名技术、框架或者项目,只要有一个很懂原理,可以在源码级别和面试官侃侃而谈,那上岸的机会仍是有的。毕竟这些知名框架中的任何一个,都能折射出不少的底层知识和内功。

不过我想,若是能到这个地步,通常来讲本身应该也会有很漂亮的技术输出,甚至我的做品了,这种状况下仍是很是受欢迎的。


挖掘已有项目的亮点

固然这一条指的是已经参加工做的小伙伴,好比我当时,从通讯领域的某一个搬砖岗想转互联网,虽说项目的业务和技术栈都有差异,可是前公司项目并非彻底不能用,照样能够写进简历,只不过须要作一下挖掘,开发领域共性的东西提炼一下。

并且也能够有意识地把以前参与过的项目里,一些有技术含量的东西深耕挖掘一下,有些东西可能不是咱们作的,可是仍是能够问、能够打听、能够提早准备,而后结合代码花点时间理解和吃透,从而变成本身的,这样也就能够写了。

并且有些状况下,也能够结合一些开源项目里看到的比较先进的技术点,能够想着如何融合到现有作过的项目里去,只要本身能理解,也就能转换成本身的项目经验。


后 记

聊了这么多,必需要说的是,这些可以得以实施的前提是,最起码还有时间来准备和周旋。若是实在没时间准备这些了,那还不如巩固基础,先保证能拿到基本分为宜。

成年人的世界里好像真的没有容易的事情,既然咱们想在没有项目经历的状况下跨过这道门槛,那过程当中确定就没有轻松的事情,掉点毛也正常。然而等熬过了这段,本身真的会成长。

一块儿共勉吧。

注:本文在开源项目: JavaCollection 中已收录,包含自学编程路线、心路历程、面试题和面经、及系列技术文章等,资源持续更新中...

天天进步一点点

慢一点才能更快

相关文章
相关标签/搜索