从士兵到程序员再到 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理想是否对你来说适合了:
- 你的存款不会支持你太久;
- 不要相信父母、老婆、亲戚能够100%的理解和支持你,当遇到由资金压力所产生的你意想不到的问题时,他们会给你更意想不到的压力, 星星之火真的可以燎原;
如果你有超过一项的上述资金压力时,那么请你千万别像我这样走SOHO这条路,珍爱生命,三思而后行。
2. 家庭 == 后盾
资金压力说完了,现在要重点说说家庭,俗话说家庭是你的港湾,也是你坚强的后盾,但是这一切是需要建立在真正的理解和支持你之上的。
长辈
这是我遇到的非常现实的一个问题,家里的长辈们在你下决定的时候鼓励你支持你,同时也会告诫你。但是当你遇到困难或者不顺的时候,才会发现在他们心中,你所做的一切都是: “没有稳定工作” 。
接下来的一切话你都不会喜欢听,诸如“三十而立,要真正的立起来”,“追逐梦想没错,但是不能给父母和家庭带来压力”等等……
其实这里面包含了太多的代沟,也包含了太多的长辈对咱们这个行业的不理解,同时更不会理解你所追求的工作和生活方式。
我想过让他们去看看《Remote》,但是你们觉得他们会去看吗?所以,笑笑就好,当然也要考虑清楚前面所说的资金压力,你还能撑多久,如果算好即将撑不下去的时候,那么赶紧采取措施吧,有技术不愁找不到好工作。
夫妻
其实长辈的影响并不是最主要的,夫妻关系才是根本,所谓家庭是你避风的港湾,家庭是你坚强的后盾,归根到底绝大多数都是说夫妻关系,这方面不多说了,有老婆的自然明白,没老婆的嘛……好好孝敬和哄好父母吧……
根本原因:自己
其实总结了那么多,说白了最终还是原因在于自己,这里面不光包含了技术方面,更多的是生活经验,技术问题总是能招到解决的办法,但是生活中出现的问题可就不是那么好解决了。我们往往将很多的注意力放在了自己的理想和技术追求上,但是放在生活上到底有多少呢?
换句话说,在决定踏上SOHO这条道路之前,你的技术准备和生活准备, 真的准备好了吗 ?
接下来
那么接下来我怎么走?其实没有什么可以避讳的,很简单:
在资金压力达到红线之前,调整好自己的状态,继续不断提高自己的技术水平,努力去寻找真正适合自己的远程工作机会。
如果成功了,大家会看到续作去总结工作经验。
如果失败了,大家会看到一个血淋淋的失败案例,算是给大家做一个参考了。
May the force be with me!
从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力的更多相关文章
- 从士兵到程序员再到SOHO程序员 (二)
原文地址: http://blog.huhao.name/blog/2013/12/13/become-a-freelancer-2/ 作者:胡皓 Blog:From Soldier to Progr ...
- 从士兵到程序员再到SOHO程序员
2013年9月13日,我从就职了一年半的S公司正式离职,并开始了我梦寐以求的“SOHO程序员”之路. 这对于我来说,是一次人生道路上的重要选择,在这里,我想分享一下我是如何选择了这条道路的,同时也是对 ...
- SOHO 程序员
SOHO 程序员:从事程序开发.维护的家居办公人员. 一.自由程序员 SOHO程序员代表一种自由.弹性而新型的工作方式.SOHO,代表一种新经济.新概念. 是一些热爱软件开发的一族. SOHO程序员 ...
- PHP笔记——java程序员看懂PHP程序
PHP笔记——java程序员看懂PHP程序 php是一种服务器端脚本语言,类型松散的语言. <?php ?> xml风格 <script language=”ph ...
- StackOverflow程序员推荐:每个程序员都应读的30本书
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...
- 一个C#程序员学习微信小程序的笔记
客户端打开小程序的时候,就将代码包下载到本地进行解析,首先找到了根目录的 app.json ,知道了小程序的所有页面. 在这个Index页面就是我们的首页,客户端在启动的时候,将首页的代码装载进来,通 ...
- 【转】StackOverflow程序员推荐:每个程序员都应读的30本书
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...
- 一个程序员对微信小程序的看法
我们公司用两周的时间开发了一款微信小程序,叫<如e支付>,大家可以去体验一下.由于接口都是写好的,所以开发起来很快.我将从4个不同的角度来介绍我对微信小程序的理解. 1.技术的角度 ...
- Linux从头学10:三级跳过程详解-从 bootloader 到 操作系统,再到应用程序
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
随机推荐
- git(代码仓库)
第1章 git介绍 1.1 参数: 第2章 git管理一个项目 2.1 图示 2.2 cd /项目路径 2.3 git config --globle user.email "邮箱地址&q ...
- REST访问(RestTemplate)
https://www.cnblogs.com/softidea/p/6910198.html 经常需要发送一个GET/POST请求到其他系统(REST API),通过JDK自带的HttpURLCon ...
- Java反射 : Declared的作用 ( 例如 : getMethods和getDeclaredMethods )
import com.tangcheng.learning.service.lock.annotation.KeyParam; import lombok.Data; import lombok.Eq ...
- Java-String字符串相关
字符串String: 封装char[] 字符数组,不可变(因为在底层代码中,值用final关键字修饰) 字符串的字面值: 如果第一次用到一个字符串字面值,会在内存中"字符串常量池" ...
- Solr6+IKAnalyzer分词环境搭建
环境要求 Zookeeper版本:zookeeper-3.4.8 JDK版本: jdk1.8. Solr版本:solr-6.4.1 Tomcat版本:tomcat8 ZK地址:127.0.0.1:21 ...
- COGS 36. 求和问题
时间限制:1.2 s 内存限制:128 MB [问题描述] 在一个长度为n的整数数列中取出连续的若干个数,并求它们的和. [输入格式] 输入由若干行组成,第一行有一个整数n ...
- github上不了改下host
207.97.227.239 github.com 65.74.177.129 www.github.com 207.97.227.252 nodeload.github.com 207.97.227 ...
- 使用python模拟cookie登陆wooyun
import urllib2 class SimpleCookieHandler(urllib2.BaseHandler): def http_request(self, req): simple_c ...
- fluent_python1
Magic Method python中有些跟对象本身有关的方法, 以两个下划线开始,两个下划线结束, 一般称为魔法方法(magic method). 比如 obj[key] 的背后就是 __geti ...
- win10搭建Java环境
一.下载地址 jdk和jre官方网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 根据你的系统选择你需要 ...