从士兵到程序员再到SOHO程序员 (二)

 

原文地址:

http://blog.huhao.name/blog/2013/12/13/become-a-freelancer-2/


作者:胡皓

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

GitHub:https://github.com/howiehu

Twitter:@howiehu

新浪微博:@长安胡小闹

CodeSchool:My Report Card


当我开始写这篇文章的时候,我猛然发现,此时此刻距离我辞职(2013年9月13日)至今刚好整整3个月时间,看来写这样一篇文章是冥冥之中必须干的事儿。

那么就让我接着上一篇文章继续写下去吧(上一篇文章请见《从士兵到程序员再到SOHO程序员》)。

三个月的收获

三个月之前,我制定过一个学习计划:《三个月家里蹲转型 Ruby on Rails + SOHO 计划》

但是,俗话说得好,计划赶不上变化,在这三个月里我有将近一半的时间在忙于新房装修,跑灵活就业人员社保手续,以及其他杂事上面。

所以,真正用于学习的时间也就是一个半月左右,回过头来梳理了一下,发现收获的东西倒还是不少的(按照时间先后顺序排列):

1. 学会并爱上Vim,最终欲罢不能

我是一个工具控,尤其是在写代码这件事情上更是如此。由于先前一直是在搞.NET开发,使用的最多的IDE便是微软的 Visual Studio,所以深受这种高度智能的IDE工具的“照顾”和“坑害”。在我的概念中,只有像电影里那样熟练且飞快的使用纯文本编辑器或者命令行工具的家伙们才是真正的在写代码。接触Ruby on Rails以后,我一直使用的是Sublime Text 2,这也是现在比较流行的编辑器。但是,当我在西安Rubyist社区活动时,亲眼目睹 魏伦(Allen Wei) 同学娴熟飞快的使用Vim进行开发,在被那种行云流水般的操作震撼的五体投地之后,我下定了决心: 欲善其工,必先利其器,在开始后面一系列计划之前,先把Vim学会了再说!

于是,我利用一周时间,通过以下两个Vim在线学习网站学会了Vim的使用:

随后,我在学习和写代码的过程中,强制要求自己尽可能的使用Vim。到现在为止,我已经能够熟练的使用Vim,并且在自己寻找的一堆Vim插件的帮助下,高效的进行Ruby on Rails开发了,这里秀一下我现在写代码时的屏幕:

总结一下使用Vim的好处:

  • 在OS X下配合Dash这个工具可以做到双手不离键盘,注意力可以集中,开发效率很高。
  • 随时随地,不管是Windows、OS X还是Linux,不管是本地还是远程服务器,都可以立刻开始工作。

以下是我在学习过程中整理的一些资料:

2. 在西安Rubyist社区活动中做了一次技术分享

在辞职之后,紧接着我就在西安Rubyist社区活动中进行了一次有关REST的技术分享,这也是我有史以来在众人面前做的第二次技术分享(第一次是在先前公司内部做的ASP.NET MVC 4技术分享),这次活动是在ThoughtWorks西安公司会议室进行的,人也不少,所以当时挺紧张,不过感觉真的很棒!

这是分享时制作并使用的PPT,保存在SkyDrive上,可以直接查看和播放:

3. 回顾和复习先前所学的内容

由于先前所说的原因,《三个月家里蹲转型 Ruby on Rails + SOHO 计划》这个里面的内容我只完成了如下两个:

现在回过头来一想,多读书在我目前这个阶段确实不是很重要,以上这两本已经足够用了,看完以后赶快多练手才行,所以也推荐给其他想学Ruby on Rails的朋友这两本书,而且这两本书都有Andor Chen 同学辛勤翻译的中文版哦!

4. 短时间参与了一个项目

这个项目先前在Ruby China论坛发布过招聘贴,帖子写的非常诚恳,当然其中的人也确实非常诚恳,我一直在关注。

但是后来加入到项目中后(真正干活的话总共是3天时间),发现困难比想象中要高,主要原因是:

  • 项目MVP阶段及后续阶段的准备资金不足。
  • 创业团队没有技术领头人,这在资金不足的情况下使得情况更加紧迫。
  • 我无法认同项目本身的定位和目标。
  • 个人准备还是不够充分,所以工作起来有些吃力。

所以,在我认真思考之后,我认为项目本身的客观实际加上我当时的技术状况使得我的加入有可能加速这个项目的失败,所以我还是退出了。

通过这个短时间的尝试,让我还是有一些收获的:

  • 远程工作没有想象中那样简单。
  • 亲身体验了远程工作,初步总结了一些经验。
  • 对自己的技术水平有了更加深刻的认识,所以后来花了更多的时间去学习和练习。

5. 参加了RubyConf China 2013

RubyConf China 2013是中国Rubyist在2013年的一次最重要的聚会,我很高兴参加了这次会议。

在这次会议上,我见到了许多先前只在网络上知道的国际国内Ruby社区的精英,同时也震撼于很多工作时间不长的朋友都敢于上台演讲。

通过参加这次会议,让我收获到:

  • 对国内Ruby社区的认识更加清晰。
  • 很多比我还年轻的朋友的出色演讲让我更加坚定了利用Ruby on Rails实现我远程工作的决心。
  • 认识到自己在这个圈子内的水平处于什么位置。
  • 英语很重要,作为一个忠实的“听众”,当看到周边朋友们抓住机会就冲上去和大牛们用英语交流的场面我是那个汗颜啊……(不过后来在从北京回西安的高铁上,我和身边的一个澳大利亚哥们儿用英语聊了一路,这才发现原来说英语也没那么困难,而且周围刚工作的小姑娘们对我这英语水平还是报以很崇拜的眼神,好吧这个扯的有点远了……)

在 RubyConf China 2013 的签售活动上比较幸运的排在第一位与 Dave Thomas 合影留念:

6. 深入学习Ruby on Rails

有了先前这些经历,我认识到我的学习上还有很多不足和欠缺,所以我在练手的同时更加深入的去学习了Ruby on Rails的相关知识。

到目前为止,我已经能够比较完整和系统的建立起了对Ruby on Rails的认识,并且结合多年Web开发经验,对利用Ruby on Rails进行Web开发也不再犯怵了,基本上遇到问题都能够有解决的思路和信心。

和先前短期参与那个项目时的状态相比,可以说现在我已经是一只翅膀硬了,敢于并期待飞翔的“菜鸟”了!

7. 初步学会iOS开发

对于iOS的学习完全是出于我的兴趣加上对这个行业的认识所决定的。

现在这个时代是一个移动设备崛起的时代,或者说是一场革命,对于我们Web Developer来说,单单的掌握从前到后的Web开发技术已经不够了,我认为还必须加上移动设备开发才算完整,所以结合我个人对于Apple的喜爱,我选择了iOS开发而不是Android,从我个人来说,如果有一天就算要做Android的东西,我也可能会去选择Xamarin这样自己比较方便过渡的技术。

目前,我已经在这段时间学习了iOS开发的基本知识,并正在征服CodeSchool的iOS开发课程中,根据当前的进度,应该半个月后就能自己做点小东西玩了。

8. 通过开发西安Rubyist社区网站来实践所学知识

项目GitHub:xian-rubyists-site

这是我实践我先前所学Ruby on Rails知识和BDD思想的一个重要途径,由于先前事情太多,所以都是断断续续在做,现在终于有时间做下去了,所以感兴趣的朋友们可以关注下,也算是对我学习成果的一次检验吧。

 
 
分类: 日志
标签: SOHORuby on Rails

使用Vim进行开发的更多相关文章

  1. 配置linux平台下基于vim的开发环境

    一.vim的基本配置 1.配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录($HOME)下,都可以自己建立私有的 ...

  2. vim打造开发IDE

    个人的插件和配置 set nocompatible " 去除VI一致性,必须要添加 filetype off " 必须要添加 " advanced keys " ...

  3. Vim Go开发环境搭建

    基本搭建流程参考了网上的博文以及Vimgo的Github主页 博文https://www.cnblogs.com/breg/p/5386365.html Vim-go主页(我能不能加入项目,做点贡献呢 ...

  4. 如何用Vim提高开发效率

    即可 ●输入m获取到文章目录 推荐↓↓↓ C/C++编程 更多推荐<18个技术类公众微信> 涵盖:程序人生.算法与数据结构.黑客技术与网络安全.大数据技术.前端开发.Java.Python ...

  5. Golang开发环境搭建-Vim篇

    一.一个干净的环境 找个干净的基础环境,方便确认每个搭建步骤后的效果: Ubuntu 14.04 x86_64 vim version 7.4.52 go version go1.4beta1 lin ...

  6. 4. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  7. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  8. VIM插件攻略

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...

  9. Linux (Ubuntu12.04) 下开发工具安装和使用

    Linux (Ubuntu12.04) 下开发工具安装和使用 这里讲述的是关于在ubuntu12.04下面安装和使用各种IDE 开发环境和初步使用的知识.说一下背景:很多的开发基本都是在linux操作 ...

随机推荐

  1. 快捷键让SublimeText在编文件快速在浏览器打开

    这里插入一下安装"view in browser"官方版的说明:(前提是得先安装package control插件) 1.通过"ctrl+shift+p"打开命 ...

  2. 【足迹C++primer】49、超载,变化,运营商

    超载,变化,运营商 Conversion Operators 转换操作符 operator type() const Conversions to an array or a function typ ...

  3. android之【本地通知Notification】

    public class NotificationTest extends Activity { static final int NOTIFICATION_ID = 0x1123; @Overrid ...

  4. 编译 & 预处理

    编译(compilation , compile) 1.利用编译程序从源语言编写的源程序产生目标程序的过程. 2.用编译程序产生目标程序的动作. 编译就是把高级语言变成计算机可以识别的2进制语言,计算 ...

  5. 传智播客.Net培训就业班入学测试题

    2.对学员的结业考试成绩评测,要求在控制台中提示用户输入学员考试成绩,写一个方法,根据用户输入的成绩,返回一个等级:90分以上A级.80~90分B级.70~80分C级.60~70分B级.60分以下C级 ...

  6. 详细的图文介绍如何利用XAMPP本地建站的环境配置教程

    原文:详细的图文介绍如何利用XAMPP本地建站的环境配置教程 WordPress 是一个简便快捷,用途广,人气旺的一个开源的博客建站程序.很有很多等您去发现. 简便快捷:在性能上易于操作.易于浏览: ...

  7. [CLR via C#]5.4 对象哈希码和dynamic基元类型

    原文:[CLR via C#]5.4 对象哈希码和dynamic基元类型 FCL的设计者认为,如果能将任何对象的任何实例放到一个哈希表集合中,会带来很多好处.为此,System.Object提供了虚方 ...

  8. WCF消息交换模式之双工通讯(Duplex)

    WCF消息交换模式之双工通讯(Duplex) 双工通讯Duplex具有以下特点: 1它可以在处理完请求之后,通过请求客户端中的回调进行响应操作 2.消息交换过程中,服务端和客户端角色会发生调换 3.服 ...

  9. 临时和永久修改oracle sysdate的默认输出格式

    1.当前会话有效 alter session set NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS'; 2.永久生效 sys用户登入后执行如下命令 然后重启数据库使其生 ...

  10. Xamarin移动跨平台解决方案是如何工作

    Xamarin移动跨平台解决方案是如何工作的? 概述 上一篇 C#移动跨平台开发(1)环境准备发布之后不久,无独有偶,微软宣布了开放.NET框架源代码并且会为Windows.Mac和Linux开发一个 ...