反省我十年开发犯过的错

原文链接:https://medium.com/@Miqubel/mistakes-i-made-d2e1dc4e820a#.urowr6hkt

翻译者:shixinzhang http://blog.csdn.net/u011240877

1-DY_KOmdxZijlso8gZ7CeUA.jpeg

我 2006 年开始工作,到现在已经 10 年了。 10 年,够得上是一个“里程碑”,驱使我回首过去,反省记录那些年我犯过的错,真希望当初有人对我说这些话。

不论你是刚入行的新手还是多年经验的老兵,本文多少会对你有一些帮助。如果有任何想法,欢迎你联系我。

专注于一个方向、平台 、框架、语言

过去 10 年我犯的最大的错就是 每次换工作都换一种开发平台:

  • 开始做的是 Java EE

  • 后来换成 C 嵌入式开发

  • 又换成 Windows 应用开发(使用 VB, C#, C++)

  • 又换成了 Objective-C 开发

  • 还换成了 Android NDK 开发

  • 最后开始做 Android 应用开发

这些经历看起来好像很棒,然并卵,雇主并不在乎这些!不管你过去做了多少年软件开发,只要你不能开发 Android 应用,你就无法拿到 Android 开发的 offer。

频繁的切换工作方向会对你简历造成很不好的影响。除非你是某个方向的专家,否则雇主很难给你高薪。

大多数公司都不会在乎你过去,面试时并不看重你过去在其他平台的经验。这就是为什么有些(优秀)程序员即使没有很多年开发经验,也能通过面试。

那我们怎么适应变化的环境呢?你可以像我一样不停的学新平台的开发,但是更值得做的是投资你自己:

  • 感觉快乐就忙东忙西(学新技能)

  • 感觉累了就放松自己

  • 同时适当地降低薪水预期

以退为进,稳步向前。

一旦你找到自己有兴趣有激情的方向、平台或者语言,just stick to it!专注!追求卓越!长远来看,专注一个后你的薪水期望和你的就业能力会比经常跳槽的更高。看看那些大公司要求什么技能,去学。这个道理听起来很简单,但我很多年后才意识到这个。

别为了薪水去做管理

过去我一直认为,那些穿着西装领带的经理挣的钱比我们程序员高。虽然这部分属实,但经验丰富的开发者通常比中级管理得到的待遇更高。

柏林薪资报告

我上过 PM 课程,在那里学到很多有趣的东西。因此有段时间我总想去做项目管理。然而当我真的做了产品经理后,才发现我不适合干这个。

作为程序员通常会因为公司不佳的前景而沮丧,更准确的说是不佳的技术前景。当我离开西班牙,换了新工作后,看到新公司前景多么好,对生活、对工作都倍加感激、投入。

如果你不喜欢你目前的程序开发工作,转行不是个好主意,不如换家公司,换个平台。去旅旅游,国外转转,开开眼界,世界上有许多技术中心、俱乐部,值得你去看看。

程序员群体中抑郁、疲乏的人比我们想象地要多的多。领导很少明白,压缩开发周期会给程序员带来多大的精神疲惫,会给结果的质量造成多大影响。所以需要我们自己走出去休息休息,呼吸下新鲜空气。就像下一步所说的。

不需要那么忙

除了今年,10 年来我一直没有停止工作。在 10 年工作后我想要休息下,重构自己的职业路线。现在看来,这是我做过最好的选择之一!

今年我主动辞职休息了 5 个月。周边人都担心我的职业生涯,然而我却一笑而过,结果证明我是多么智慧。

这 10 年来我不停地换工作,几乎没有好好休带薪假期,休息这几个月感觉太™的爽了!职业生涯里最痛苦的莫过于做无法带给你快乐工作。

比如说,我计划学习德语有四年了,但是从来没有时间去做。在这 5 个月里我满满当当的上了德语课,每天 3 个小时,把我的德语水平从 A2 提升到 B2,足够我的日常使用了。

出乎意料的是,回去工作比想象中容易多了。所以当你需要休息时不要害怕会使简历上留下空档期,我们可以用其他方式弥补,可以看我的下一条。

敲敲敲,不要停

在 5 个月休息时间里,我开启了一个个人项目。一款使用 Discogs.com 提供的 API 的 Android app。我一致想有一个方便进行添加、删除我的收藏的软件,顺便提高自己的开发技能。

多亏了这个项目,让我面试的时候有了谈资。在这个项目里我体验了最新的流行库和开发模式,为我现在的工作积累了不少经验。

真希望我早点这么做。我过去的工作重复性越来越高,几乎没有时间去体验新的东西,很少有自我提升的机会。

长远来看,进行个人项目、读写博客、试着去表达,这些活动会让你成为越来越好的开发者。把代码提交到 GitHub ,去社群里分享自己的经验。大胆去做吧!

主动加入社群

当我还是学生的时候,总是觉得没有时间去社团搞什么飞机。工作了也总是不想去个其他开发者面基。

后来发现我又错了。

线下活动、聚会很有趣的,你可以在那里见到志趣相投的程序员。积极参与,主动提供帮助,分析你的心得,多和你身旁的人聊天,每个人都喜欢谈论他们的经验,你会有所收获的,有可能还会遇到未来的领导哦。

有很多新兴的社群,需要有人去作指导。你可以主动去帮助新人,提供空间甚至赞助财物。

如果你想参加却不知道怎么开始,去网上问问,Twitter、知乎、微博都行,Android 开发的话可以去了解 GDG (Google Developer Groups)。最好去一些当地的组织,而不是全球、全国的,人越少沟通越好你懂得。

当然最重要的是,学习他们的代码和行为。热情、不畏惧和不同的人交流,会促进你提升。

别从网上投简历

最后一个忠告:别从网上投简历!

网投太费劲了。过于复杂的 HR 流程,候选人调查系统,大量的简历筛选,缺乏有效的交流,这些繁琐的步骤,使得公司最终依靠猎头公司来,因为他们找不到人才。

优秀的程序员不会网投。他们会利用网络、社群,了解到某个岗位最新的需求消息,也能知道某个心仪的公司合适的待遇,甚至知道面试官是谁。

你还能知道某个公司是否比其他公司更好,因为大多数你心意公司的员工都会真诚回答你的问题,他们会告诉你他们的技术栈是否古老,领导是否够意思,甚至待遇怎么样。

如果你对某个招聘有兴趣,从你的关系网里找找,是否在你的社群/领英朋友圈里有熟人在那工作,或者看看朋友的朋友有没有在那的。直接招聘相关的人沟通,CTO,部门总管,或者其他工作人员。

猎头也能达到你的目的,但是别过于依赖他们。他们的任务不是为你服务,而是抢在别人之前把这个坑位填满,因此有时候不会帮你得到这个工作。如果他们的确能够给你提供岗位,交给他们,否则还是自己去争取吧。

最后的唠叨

当初如果我每条都少犯点错,现在一定会更开心。希望我的文章可以对你有一些帮助。不需要太投入,只要像享受一个业余爱好一样对待开发,你就不会想做别的事情了。

以上内容总结成下面几点:

  • 坚持一个平台,框架或语言,长远看来,你的职业生涯将更好。

  • 如果你真的只想做一个安静的程序员,不要跟风逼自己去做什么管理。

  • 感觉累了就放松放松。

  • 别停止敲代码,做点个人项目,并且把开发作为一种爱好,享受它。

  • 主动参与社团,多去面基,放松参与并且回馈。

  • 别从网上投简历,建立自己的人脉,想换工作时找朋友。

原作者的话

谢谢你看了这么久!上面都是我自己的一些经验总结,可能有人不同意我的观点,欢迎你们反馈给我。如果你们觉得不错,欢迎(去原文链接)点赞,并且分享给你的朋友。

如果你也从事 Android 开发,欢迎在 Twitter 或者 GitHub 上联系我,查看我的其他文章、作品。