从士兵到程序员再到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. 原因好消息: PSP游戏自己主动算法设计(两)

    这是我们讲的传说中的一项措施A×算法.事实上,类上传之前似小件,下面我们分析一下它去 毕竟,在游戏程序,我们从移动一个点到另一个点.和得到的轨迹的最短距离,类别似这样的算法以及几个.运营效率几乎是相同 ...

  2. DevExpress Report 其他常用设计技巧

    原文:DevExpress Report 其他常用设计技巧 1 设置默认的打印纸张及页边距 选择Report-打开属性窗口,设置默认边距(Margins)和默认纸张(PaperKind). 2 修改R ...

  3. XML的序列化和反序列化 详细介绍

    为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...

  4. 细说 ASP.NET Cache 及其高级用法【转】

    阅读目录 开始 Cache的基本用途 Cache的定义 Cache常见用法 Cache类的特点 缓存项的过期时间 缓存项的依赖关系 - 依赖其它缓存项 缓存项的依赖关系 - 文件依赖 缓存项的移除优先 ...

  5. 【Swift初见】Swift词典

    顾名思义.当我们仰望的时候,我们将基于索引查找我们需要找到的资源.在swift这同样适用,每个对象包括字典key和value.我们key为了找到当前这个key相应的value.与数组不同的是,字典项字 ...

  6. Android 自己的自动化测试(5)&lt;robotium&gt;

    大约Android自己的自动化测试UI测试,前出台Android 自己主动化測试(4)<uiautomator>, 在android原生的单元測试框架上,利用uiautomator.jar ...

  7. 从头开始学JavaScript (三)——数据类型

    原文:从头开始学JavaScript (三)--数据类型 一.分类 基本数据类型:undefined.null.string.Boolean.number 复杂数据类型:object object的属 ...

  8. GDI+学问------ 绘制可变角度的色彩渐变效果

    GDI+ 它是GDI(Windows 图形设备接口提供的早期版本)也许是版本号,它是Microsoft Windows XP作系统即兴许版本号的图形显示技术. 它已经集成到了.Net开发环境中.所以无 ...

  9. 如何快速正确的安装 Ruby, Rails 运行环境

    如何快速正确的安装 Ruby, Rails 运行环境 https://ruby-china.org/wiki/install_ruby_guide 对于新入门的开发者,如何安装 Ruby, Ruby ...

  10. C#中设计Fluent API

    C#中设计Fluent API 我们经常使用的一些框架例如:EF,Automaper,NHibernate等都提供了非常优秀的Fluent API, 这样的API充分利用了VS的智能提示,而且写出来的 ...