使用Vim进行开发
从士兵到程序员再到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思想的一个重要途径,由于先前事情太多,所以都是断断续续在做,现在终于有时间做下去了,所以感兴趣的朋友们可以关注下,也算是对我学习成果的一次检验吧。
使用Vim进行开发的更多相关文章
- 配置linux平台下基于vim的开发环境
一.vim的基本配置 1.配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录($HOME)下,都可以自己建立私有的 ...
- vim打造开发IDE
个人的插件和配置 set nocompatible " 去除VI一致性,必须要添加 filetype off " 必须要添加 " advanced keys " ...
- Vim Go开发环境搭建
基本搭建流程参考了网上的博文以及Vimgo的Github主页 博文https://www.cnblogs.com/breg/p/5386365.html Vim-go主页(我能不能加入项目,做点贡献呢 ...
- 如何用Vim提高开发效率
即可 ●输入m获取到文章目录 推荐↓↓↓ C/C++编程 更多推荐<18个技术类公众微信> 涵盖:程序人生.算法与数据结构.黑客技术与网络安全.大数据技术.前端开发.Java.Python ...
- Golang开发环境搭建-Vim篇
一.一个干净的环境 找个干净的基础环境,方便确认每个搭建步骤后的效果: Ubuntu 14.04 x86_64 vim version 7.4.52 go version go1.4beta1 lin ...
- 4. web前端开发分享-css,js工具篇
web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...
- web前端开发分享-css,js工具篇
web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...
- VIM插件攻略
工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...
- Linux (Ubuntu12.04) 下开发工具安装和使用
Linux (Ubuntu12.04) 下开发工具安装和使用 这里讲述的是关于在ubuntu12.04下面安装和使用各种IDE 开发环境和初步使用的知识.说一下背景:很多的开发基本都是在linux操作 ...
随机推荐
- redis权限认证(设置密码)的方法
redis可以通过设置密码来增强安全强度.除了设置密码,我们还可以通过修改redis的默认端口.对端口做防火墙等.那么如何开启redis的密码功能呢?以下就是详细的步骤方法: 打开redis.conf ...
- MySQL汇总数据
汇总数据 有时,数据本身是不上台面的操作数据表.但在摘要表中的数据.例如 数据的一列的平均值.极大值.至少值等一下. 对于这些频繁使用的数据的处理的概要,MySQL它提供了一个函数来处理. SQL聚集 ...
- int有符号和无符号类型内存 -- C
/* int 有符号 0xffffffff == -1 0xfffffffe == -2 最小 0x80000000 == -21 4748 3648 最大 0x7fffffff == 21 4748 ...
- js敏感词过滤
var filterWord={ words:"", tblRoot:{}, //敏感词文件 file:"sensitiveWords.txt", //载入敏感 ...
- C#操作Xml:XPath语法 在C#中使用XPath示例
XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- HDU 2612 -Find a way (注重细节BFS)
主题链接:Find a Way 题目不难,前几天做,当时准备写双向BFS的,后来处理细节上出了点问题,赶上点事搁置了.今天晚上重写的,没用双向,用了两次BFS搜索,和双向BFS 道理差点儿相同.仅仅是 ...
- asp.net mvc3 的数据验证(一)
原文:asp.net mvc3 的数据验证(一) 对于web开发人员来说,对用户输入的信息进行验证是一个重要但是繁琐的工作,而且很多开发者都会忽略.asp.net mvc3框架使用的是叫做“ ...
- cocos2d-x 3.0 rapidJson 解析操作应该注意的细节
Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstanc ...
- 客户端javascript
<script> function moveon(){ var answer=confirm("hello,good morning!");//通过弹出对话框询问用户 ...
- Android KitCat 4.4.2 ADB 官方所支持的所有Services格式翻译
在之前的文章中有转帖网上同行制作的ADB协议表格<<adb概览及协议参考>>,但不够详尽,所以这里自己另外基于Android 4.4.2的技术文档重新做一次翻译. HOST S ...