忙碌了很久,终于把所有事情都处理好了。今天静下心来,回顾一下,自己从有离职的想法到找到满意的工作,再到提出离职,交接完工作的过程,还是有些许想法想记录下来的,算是对自己第一份工作的一个小结。也希望能给后来人一些借鉴。

毕业求职

忙碌的毕业季和很多同学一样,奔波于企业宣讲会的同时还被导师催着自己的论文。虽说学校和专业都是自己找工作的加分项,但是始终觉得自身过硬的技术才是王道。


于是在前期准备论文时间还比较充足的时候,不断的补充一些基础的知识,练习自己的编程能力。因为自己笃信CS基础和编程能力是程序员的根基。后来证明,相对于学校和实习经历,好的企业更青睐于有较好编程能力的候选人。至少对于目前所在的公司,校招第一关就是几道有难度的在线编程题,没达到要求的直接会被刷掉。据说第一轮就刷掉了大多数人。


有了前期准备,校招季很快就拿到了一些不错大厂的offer。由于导师对于毕业论文要求较严格,因此和当前公司签好两方协议后,就结束了自己的校招求职。现在想想,这并不是一个明智的决定,因为自己没有经历失败的求职经历,而且经历的招聘不多,失去了大好的试错机会。总的来说,毕业找工作还算顺利。


但是写论文的时候却经历了一番波折的,期间压力大到常常半夜惊醒,一度认为自己会无法按时毕业,内心很是煎熬痛苦,关键是还不能向家人和朋友倾述。没有经历过的人是体会不到的。期间不断告诉自己一定要坚持下来,All
in
论文才是解决目前所有问题的唯一方式。压力大到坐卧不安,精神高度紧张的时候就去爬山,跑步,做运动,把自己累个半死,然后就没精力想那些烦心事了。这样经历了两三个月,最后获得导师同意,顺利按时毕业。同时也告别了自己的求学生涯。

初入职场的两年多


 和其他人毕业后都有个毕业旅游不同,我在毕业之后一个星期左右就入职了当前这家公司,暂且称为W公司吧。作为一家IT大厂,新人培训体系还是很完善的。经过一段时间的培训,正式进入到工作室参与项目开发。到目前为止已经参与过三个项目的研发。

第一年,出生牛犊不怕虎,全身心投入工作,一心想在工作中做出一番成绩,证明一下自己。

第二年,能熟练处理手上的事情,对整个工作流程也比较熟悉了,算是进入了一个工作平稳期。


目前在做第三个项目,之前做的项目上线后,看到用户在论坛和贴吧对我们产品的讨论。虽然有肯定,也有批评,但是感觉自己做的东西能够被大众使用,有一种很强烈的自豪感。这种感觉之前从来没有体验过,尤其是当用户评论道自己做的功能模块的时候,恨不得马上告诉他这是我做的
:-)。


 总的来说,感觉自己很幸运,入职的第一份工作能遇到这么好的领导和同事以及良好的工作氛围,虽然期间也有过一点抱怨,感觉付出和回报不匹配,但主要原因可能是自己不擅长表现自己吧。

离职想法

马老师说过,离职的原因无非两点:一,钱没给够,二,心受委屈了。 不反驳这个观点,因为,一有道理,二反驳不起。但是还有一群人,是为了最求更多的成长。


在工作室里,无论领导还是同事都是挺不错的,但是由于自己在工作中成长空间比较有限,平时的工作内容没有太多的挑战。而自己本身又比较喜欢技术,期待做好工作的同时能在技术上有长足的进步。于是决定离开在自己的舒适区。虽然目前是互联网寒冬,但是根据自己的计划和目前的状态恰好在当前这个节点。没办法,环境大势自己左右不了,正所谓狭路相逢勇者胜,想改变,那就只有自己拼一把了。即使头破血流,最后也可以作为饭桌上的谈资,和别人吹吹牛皮。

找工作

这里不打算写自己找工作的流水账,没有太多意义。主要是聊一下感受。 


有了换工作的想法之后,接下来就是如何准备了。由于还在职,只能工作之余抽空准备了。基础的东西加过往项目经历回顾是必须的。同时通过各大论坛和职场软件了解一下当前行情。结果自己真的被惊出了一身冷汗,感觉现在好像完全变成了JAVA的天下,Go也有后起之秀的势头,熟知的C++几乎看不到太多机会。这和两年前的景象完全不同。当时第一想法是不是当初自己选错了。虽然语言只是工具,但是很多个职位都有对语言限要求,而且有使用年限要求。即使自己学的很快,但是和那些使用了多年老鸟相比,初学的菜鸟几乎没有竞争力。

这时摆在自己面前的有三条路:

* 继续当前的工作;
* 业余学习目前机会比较多的技术栈;
* 结合目前的技术栈找喜欢方向的工作;

现在来看,这个选择还是比较重要的,直接决定了接下来的路怎么走。如果当初选择的是前两条路,那么可能就不会有这篇文章了。第三个选择虽然有一点优势,但问题是可选的太少了,而且要求还比较高。于是只能精益求精,努力提高自己。接下来就是制定一个计划,按部就班的认认真真准备了。等待合适的机会,然后一举拿下。

最后自己拿到了T公司的offer,而且职位还是比较喜欢的。期间遇到很多人,很多事,如果不坚定,很可能就走不到现在了。过程是坎坷的,但结果是美好的。

这里有几点需要注意:

* 多了解一下大环境,不要一味地闷头造车;
* 多接触一些人,说不定在你想不到的时候,会给你一些关键的帮助;
* 选择很重要;
离职&交接工作


虽然拿到了想要的offer,但是却怎么也高兴不起来,可能觉得拿到offer只是第一步。别人发你offer,是对你的信任,相信你入职后有能力完成工作。因此入职后要更加努力的工作了,至少要对得起别人的信任和知遇之恩,让招你的人觉得招对了人。


同时在第一份工作接近尾声的时候,并没有松懈日常工作,反而在更加认真的把手头工作做完。可能觉得有点愧对老东家,虽然自己这两年多的时间也做了不少工作,但总是有一点说不出的伤感。我不断告诉自己努力把该做的是做好,交接工作时尽量不给别人留坑。或许只有这样才能有一点点安慰吧。

经验之谈

前面聊了一些自己的经历和想法,最后在分享一下这两年多自己整理的非技术方面的一些收货吧。

项目层面

* 沟通;在进行多人协作的开发过程中,成员之间的良好沟通能够提高开发的效率,尤其是在需求确认和模块的对接工作的过程中;
*
文档规范;项目整体介绍和各个模块或者工具和流程相关的规范和文档等,对开发流程和一些工作中的规范,包括工具的使用,模块的介绍文档等,项目各个点的开发或者规划要有文档可依,这样能减少重复沟通的成本,提高开发效率;
* 信任;组员与领导,以及组员与组员之间的信任是很重要,不仅包括技术能力,还有责任心和职业道德等。
个人技术层面

* 扎实的基础和学习能力;
*
需求分析和代码设计;在进行开发编码之前,要尽量花时间反复就需求问题进行确认和沟通,同时要注重代码的灵活性和可扩展性,模块之间的低耦合性,以应对可能的需求变动或者迭代;代码中要避免硬编码,尽可能使用一些成熟的模式和框架完成代码的编写工作;
*
避免重复造轮子;工作之前所有功能都想自己重头开始实现,比如通信,序列化,存储等;工作之后才发现有太多现成优秀的工具和底层库可以使用,不仅稳定可靠高效,还能极大的提高开发效率,减少出错的机会;
* 问题分析和定位能力;偶现bug只是没找到触发条件;业务层面问题定位能力;技术层面原理底层上对一些疑难问题进行分析定位;debug等工具和方法的熟练使用;
* 解决问题的能力(全局性的,架构层面的);提出针对某类问题的解决方案以及牵涉到的技术;
工作和技术的思考层面

* 工作或者学习的目的是用技术创造好的产品和体验,这是技术人员学习的一个标杆;
* 刻意的追求技术上的专研,而忽略其本质是应用和能解决实际问题是不可取的。
定期反思总结

* 技术上的得失
* 工作中的得失
* 长远的计划
无论职场中的你,处于哪个阶段,有一点很重要,一定要工作的开心,努力保持身体健康,毕竟只是一份工作。

目前休年假中,休完年假,就要办理离职手续了。转眼间两年多的时间过去了,第一份工作即将落下尾声。留下此文为纪。

最后祝大家都能开开心心工作,健健康康生活。