从士兵到程序员再到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. VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线

    VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线 Visual Studio Visual Studio 2015 下载 VS2015新功能列表 ‘ Visual ...

  2. Qt Quick 组件和动态创建的对象具体的解释

    在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Co ...

  3. ftp设置(2015-04-04)[转]

    anonymous_enable=YES /允许匿名访问 12行local_enable=YES /允许本地用户访问(/etc/passwd中的用户) 15行write_enable=YES /允许写 ...

  4. javascript利用map,every,filter,some,reduce,sort对数组进行最优化处理

    案例: var scoresTable=[ {id:11,name:"小张",score:80}, {id:22,name:"小王",score:95}, {i ...

  5. crawler_httpclient代理访问

    public String getDocumentByProxy(String url) throws ClientProtocolException, IOException { DefaultHt ...

  6. java_Timer_schedule jdk自带定时器

    定时器经常在项目中用到,定制执行某些操作,比如爬虫就需要定时加载种子等操作,之前一直用spring的定制器近期做项目发现,jdk有很简单的提供 代码如下 1 /* * Copyright (c) 20 ...

  7. SharePoint 创建一个简单的Web Part 部分

    SharePoint 创建一个简单的Web Part 部分 标准Web零件有时会很强大,运行多个功能的能力. 本文介绍了如何使用Visual Studio 创建一个简单的Web部分. 1. 打开VS, ...

  8. 有意思的cmd命令

    1. Msconfig命令显示系统配置窗体,能够了解一些服务.启动相关的信息. 2.Gpedit.msc 命令显示本地组策略编辑器,能够设置用户登录时执行的程序. 3. Regedit 这个应该非常多 ...

  9. hdu 5073 Galaxy(2014acm鞍山亚洲分部 D)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5073 Galaxy Time Limit: 2000/1000 MS (Java/Others)   ...

  10. 如何使用linq操作datatable进行分组

    使用微软.net的孩子们应该都知道linq吧,要知道linq可是其他高级语言没有的技术,比如php,java等等,但是起初我对linq的认识只是停留在对 list<> 的泛型集合进行操作, ...