从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力

从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力

原文地址:
http://blog.huhao.name/blog/2014/03/01/become-a-freelancer-3/

作者:胡皓

Blog:From Soldier to Programmer - 胡皓的博客

GitHub:https://github.com/howiehu

Twitter:howiehu

新浪微博:Howie-Hu

前作:
《从士兵到程序员再到SOHO程序员 (一) - 起航》
《从士兵到程序员再到SOHO程序员 (二) - 求职》

自从上一篇文章(《从士兵到程序员再到SOHO程序员 (二) - 求职》)到现在又过去了差不多3个月的时间,也是时候来总结一下这三个月来的经历和经验教训了。

很多朋友告诉我,前两篇文章带给大家了许多“正能量”和“激情”,但是这一次,我要用我的实际经历来给大家泼泼凉水。 所有的努力和奋斗在初始阶段都不会是一帆风顺的 ,这个道理你知我知,我也提前有心理准备,但是后来所遇到的很多问题却超出了自己的预想。

到了现在自己回过头想一想,其实人生的旅途也需要敏捷,所有的变化都是合理的,如果变化过大,说明先前总有哪个地方没做好,埋下了隐患。最后,既然发生了变化,就要勇于去处理解决以及适应变化。

接下来我会先总结一下这3个月来的工作和成长经历,然后说一说除了工作以外更加重要的现实阻力。

游击战:必经阶段

这三个月有了两次工作机会,都是创业公司,创业团队,但是都在相互试用之后没能继续下去。为了保护公司隐私,以下不会说太多的工作细节。

第一家公司的人都充满激情,也非常的诚恳和靠谱。他们的产品已经上线,但是因为公司人事变动,没有全职的开发人员,更没有CTO或者PM这样富有技术经验的人来沟通和规划工作,所以我等于是在半救火的情况下加入的。由于我是刚刚转型到 Ruby on Rails 不久,面对一个缺乏整体设计和必要测试代码的已经上线的现有项目,压力非常大。这些压力或者说是不适合来自于:

  • 都说实际项目的维护和开发能学到更多的东西,但是这在对技术还不够熟练,且没有人能够及时沟通或者完全没人能帮助你的情况下来说是相当困难的。
  • 我是唯一的全职开发人员,另一个曾经的技术核心出国留学,沟通时差 + 其他公司人员对技术都缺乏足够的了解,这种情况下可以说是孤立无援。
  • 项目本身缺乏测试代码,或者可以说是测试根本跑不起来,项目代码耦合度很高,而且已经上线,所以所有的功能性修改对我的技术状况来说都有眼前一黑的感觉。
  • 开发人员过少,日常维护性工作很多,这对注意力和精力都是一种挑战。

所以,在相互尝试了一个多月以后,我建议公司寻找足够的,技术能力更强的人来继续开发工作,这份工作机会就这样结束了。

第二个工作机会是好朋友所在的公司,产品也已上线,正在争取关键性的投资,所以项目进度很紧张。但是由于我这个好朋友的缘故,项目的技术基础非常优秀,TDD做的非常好,换句话说他已经到了“没有测试就不会写代码”的程度。他对技术的要求和工作流程的要求都非常的严格和正规,可以说是相当靠谱的人和项目,能遇到这么规范的项目的机会真的不多。其实我知道自己与实际要求的差距,项目进度压力也很大,所以我一开始是抱着尝试,学习,实践和帮忙的态度去兼职工作的。但是最终则是自己的问题导致了这份工作的结束。

原因很简单,正当一切都逐渐步入正轨, 自己的技术状态也渐入佳境的时候,家里出了一些非常令人烦恼的状况,导致我不能将精力集中在工作上,而这时候我一边扛着家庭烦恼一边工作,最终将自己搞得内伤,也让项目在关键阶段的一个非常重要的功能延误了。

虽然好朋友和老板知道情况后都表示理解,但是这样一个严重的失误让我实在是不好意思再继续干下去,也需要时间调整下自己的状态,所以这份工作也在两周前结束了。

通过这件事,也暴露出来在家办公的一个最大弊端: 工作和生活非常容易混在一起,而且家庭琐事和自己的心情非常容易对工作状态造成极大的影响,因为在家里没办法像在单位那样能够利用环境分散注意力 。

以上的两次工作经历让我对我自己的技术水平和状态产生了许许多多疑惑,这个时候,恰逢貔貅团队到西安一游,得到了与 RubyChina 管理员 / RubyConfChina 的组织者 吕国宁 进行面对面交流的机会。我将我的疑惑告诉了他,他首先肯定了我选择远程工作的努力,并且对我说了一句话:

这个阶段很多现在远程工作的朋友都经历过,就是要去不断的游击,寻找最适合自己的项目,当你坚持过几个月之后,就会发现自己的技术水平也提升了,这时你再去面试,能够展现出相当于1到2年 Ruby on Rails 工作经验的技术水平的话, 还愁找不到合适的远程工作吗?

这句话对我来说受益匪浅,说明我所经历的这些阶段都是正常的,方向是正确的。

进步:必然产物

虽然短短3个月的工作经历,都没能长期做下去,但是这3个月中,还是有不少的进步。

1. 技术进步显著

  • 先前所学的所有理论知识都得到了实践,清楚认识到了所存在的不足,也对所学知识有了巩固;
  • 对所学技术有了更系统和深入的了解,当回过头再去看书的时候,能够有更多眼前一亮或者茅塞顿开的感觉;
  • 接触到了实际的好的代码与不好的代码,这对于转型到 Ruby on Rails 是非常重要的经验;
  • 尤其是在好朋友那里工作的经历,让我对规范化的项目有了深刻的认识。

2. 理论知识进一步丰富

这段时间通过边工作变查找相关资料,学习和收集了很多工作中会用到的有用资源,同时还在调整自己状态的过程中看完了以下几本书:

  • 《Remote》
  • 《The Rails 4 Way》
  • 《高效程序员的45个习惯:敏捷开发修炼之道》
  • 《程序员的思维修炼:开发认知潜能的9堂课》

这每一本书读完后都会有一种 Level Up 的感觉,也强烈推荐给大家!

阻力:资金与家庭

以上说了工作的经历和收获,接下来就要说一说在这三个月中深刻感受到的最大的阻力。

1. 资金压力

资金压力是最关键的问题之一,这取决于你能撑多久,更严重点还会影响到家庭和睦夫妻关系。

如果你没有任何诸如房租、房贷、车贷、养娃这样的大额固定开支压力的话,那么恭喜你,你的存款将会长久的支持你不断的无忧无虑学习和实践下去,直到你羽翼丰满。

但是只要你有上述内容的任何一项,那么你就要认真思索一下像我这样去走向SOHO理想是否对你来说适合了:

  1. 你的存款不会支持你太久;
  2. 不要相信父母、老婆、亲戚能够100%的理解和支持你,当遇到由资金压力所产生的你意想不到的问题时,他们会给你更意想不到的压力, 星星之火真的可以燎原;

如果你有超过一项的上述资金压力时,那么请你千万别像我这样走SOHO这条路,珍爱生命,三思而后行。

2. 家庭 == 后盾

资金压力说完了,现在要重点说说家庭,俗话说家庭是你的港湾,也是你坚强的后盾,但是这一切是需要建立在真正的理解和支持你之上的。

长辈

这是我遇到的非常现实的一个问题,家里的长辈们在你下决定的时候鼓励你支持你,同时也会告诫你。但是当你遇到困难或者不顺的时候,才会发现在他们心中,你所做的一切都是: “没有稳定工作” 。

接下来的一切话你都不会喜欢听,诸如“三十而立,要真正的立起来”,“追逐梦想没错,但是不能给父母和家庭带来压力”等等……

其实这里面包含了太多的代沟,也包含了太多的长辈对咱们这个行业的不理解,同时更不会理解你所追求的工作和生活方式。

我想过让他们去看看《Remote》,但是你们觉得他们会去看吗?所以,笑笑就好,当然也要考虑清楚前面所说的资金压力,你还能撑多久,如果算好即将撑不下去的时候,那么赶紧采取措施吧,有技术不愁找不到好工作。

夫妻

其实长辈的影响并不是最主要的,夫妻关系才是根本,所谓家庭是你避风的港湾,家庭是你坚强的后盾,归根到底绝大多数都是说夫妻关系,这方面不多说了,有老婆的自然明白,没老婆的嘛……好好孝敬和哄好父母吧……

根本原因:自己

其实总结了那么多,说白了最终还是原因在于自己,这里面不光包含了技术方面,更多的是生活经验,技术问题总是能招到解决的办法,但是生活中出现的问题可就不是那么好解决了。我们往往将很多的注意力放在了自己的理想和技术追求上,但是放在生活上到底有多少呢?

换句话说,在决定踏上SOHO这条道路之前,你的技术准备和生活准备, 真的准备好了吗 ?

接下来

那么接下来我怎么走?其实没有什么可以避讳的,很简单:

在资金压力达到红线之前,调整好自己的状态,继续不断提高自己的技术水平,努力去寻找真正适合自己的远程工作机会。

如果成功了,大家会看到续作去总结工作经验。

如果失败了,大家会看到一个血淋淋的失败案例,算是给大家做一个参考了。

May the force be with me!

上一篇:【腾讯Bugly经验分享】程序员的成长离不开哪些软技能?


下一篇:PHP笔记——java程序员看懂PHP程序