*文章源自全栈讲座,感谢嘉宾Yang的倾情分享。

 

“我不是大牛,

没有煊赫的面试战绩和长长的 offer list。

我不是天才,

刷题时常头昏脑涨,看答案屡惊为天人。

我走过很多弯路,

也有幸遇见过好的老师和伙伴。”

 

背景:研究热电材料,EE专业的PHD,当决定求职程序员时仅会Matlab,一年时间,没有实习经验的,成功收获了Full-time Software Engineer offer。

 

如何做到的?

 

 

1. 项目准备时间安排

在简历上,共包含了5个项目,用多长时间来准备?

两个可以展开进行详细介绍并支撑起整份简历的项目,再加上三个较为简单的项目是非常合适的安排。每个小项目可以1-2周内独立完成,比如学校课程的期中、期末Project或者Github上发布的静态网页等。

所有项目的准备时间大概需要3-4个月,甚至更长的时间,而时间长短取决于项目的来源和参与方式。我选择BitTiger的全栈课程,是为了缩短项目的准备时间,用3个月时间完成所有简历项目的准备。看到身边很多同学自己两眼一抹黑,从头摸索,三个月时间连一个深度广度兼顾的项目也做不完。

 

2. 选择项目

选择适合的项目方向非常重要

  1. web full-stack方向特点:相对容易,上手快,开发快,需求量大,适合零基础的同学。
  2. mobile app方向特点:有专门的语言和开发环境,安卓主要用Java,IOS主要用Swift和C,开发相对较慢,前两年非常流行,现在需求依旧大,但趋势有所下降。
  3. big data和machine learning方向特点:当前非常火,但要求比较高,上手慢,独立开发有影响力的项目会比较难。

这也是为什么我选择了Web全栈方向的项目。

 

在哪里找项目做?

  1. 可以旁听一些线下课程,比如专门的web develop课程,参加到team project中是非常宝贵的机会。
  2. 可以参加online course project,发展为individual project ,一般的线上课程项目较小,单个项目可能会持续1-2个月,加上自己做一些feature,整体准备时间可能会较长。如果时间比较紧张,更推荐一站式解决的课程。
  3. 实习时做的项目或参与开源项目,尽管大多数时候无法真正做full-stack,但能够在某个技术点或方向更深入熟练,在求职过程中也是非常有帮助的。

 

做项目的过程中要经常思考为什么,这也是为之后面试中跟面试官详聊项目做准备,只有把项目的方方面面想清楚,让面试官眼前一亮。

 

 

3. 面试中应对项目问题

面试过程中面试官会问很多项目相关细节,所以必须做好准备,极端情况下面试官甚至会当场打开Github,拿出代码,问这段代码做什么?有些时候也会非常严苛的问你,你现在实现的功能跟工业界相比有什么优势?

因此准备过程中一定不能偷懒,项目需要亲自完成,多想这里为什么这样做,有没有更优化的方式?现在制作的feature是否符合逻辑,从客户角度还可能希望实现什么?从系统设计的角度思考,每个部分的运行是否是较好的状态,如果有问题,问题可能出现在哪些方面?找业界大牛多多请教,让你的代码与项目与众不同,充满吸引力。通过这些思考与努力,在面试当中面试官让你讨论延展方向、讨论技术单点就都不是难题了。

现在的就业竞争比15年16年激烈很多,尤其是各大公司普遍缩招,我们需要正视面临挑战的严峻程度。希望大家在求职过程中充分利用时间,绷紧弦,规划好时间,最大程度利用resource,成功找到好工作!