创业三部曲之一——学技术

标签: ALL iOS iPhone 创业经验谈 创业访谈 | 发表时间:2011-08-30 09:53 | 作者:何李石 小宇
出处:http://tech2ipo.com

我从创立3家科技公司的经历中学到了什么?36kr 上的这篇文章直截了当的告诉你,作为一个想要成功的创业者,你需要具备哪些素质。然而,这些素质因人而异,并不是所有创业者都需要从同一个模子里造出来才 能成功。但是,在与许多创业者接触的交流中,我们发现大家遇到一些共性问题。这些问题并不是创业者自身素质问题,也并不是无法改变的,而是很多有想法有激 情的创业者不擅长的。比如,创业之初如何进行技术的选择和学习,如何寻找自己的创业伙伴,如何为你的团队募集资金。

基于此,我们采访了多位 互联网和移动互联网方面的创业者,邀请他们谈谈在创业之初是如何进行技术选择和学习的,如何寻找自己的创业伙伴的,以及如何为团队募集资金。同时,我们将 创业者必须面对的这三个问题整理成三篇独立的文章,以《创业三部曲》系列的形式呈现给读者,希望对大家有所帮助。

本文是该系列文章的第一篇,创业三部曲之一——学技术。Tech2IPO有一群很多优秀的读者,我们跟这群优秀的读者接触过程中发现,大部分人都有很棒的 idea。但是,当谈到项目何时上线甚至如何实现是,很多人说自己不懂技术,想自己学技术或者找相关的合作伙伴。比如,为《假如有这么个应用》系列文章投 稿的坚果兄弟麦子, 他们希望通过投稿不光能够引起大家的讨论,也希望找到能够帮他们实现点子的技术合作人员。当然,并不是每个创业者都要懂技术的。但是,作为靠技术起家的互 联网或者移动互联网公司,没有技术也是不现实的。因此,本文中,我们采访了四位创业者,向他们请教创业之初该如何选择和学习技术。

一、宽岛网CEO李路

宽岛简介:宽岛网是一个类似Tumblr的轻博客社区,其前身宽途网是国内第一个轻博客社区。在开发方面,宽岛网选择了Ruby on Rails这个Web开发框架,早期的Twitter也是用Ruby on Rails做成的。

技术方面的创业者可能倾向于使用自己擅长的技术,这种选择所带来的局限性导致创业者将自己限定于特定的平台,而看不到其他平台的优劣。下面,宽岛网CEO李路谈谈其自己在技术方面的经验。(本文只截取部分内容,关于技术方面更多详细的讨论请看李路的轻博客。)

1. 关于自己的工作平台

这包括操作系统, 编辑器, shell环境。这是所有工具箱里最重要的,每天,比起你面对某种语言,某个项目,某个老板,你面对系统和编辑器的时候更多,只要打开电脑,它就在哪里。 因此,选择最好的,我从很久以前,在招人的时候就会先问:你用什么操作系统?什么编辑器?什么shell环境?我自己的环境是Ubuntu(偶尔也会用 Mac os X), Zsh, Emacs Ubuntu Linux, Archlinux, Gentoo等linux发行版,我想是最好的选择,Mac os X也完全可以,对于iOS开发就是必须的了。不要用windows做开发环境(真的,就算开发windows桌面软件,我也不会用windows,哪怕让 我用flash实现)。

Emacs和Vi是编辑器世界里公认的最好选择,我自己用Emacs,她非常的迷人,甚至有让你对她形成宗教信仰的 能力。如果是Mac系统,textMate也是可以接受的,虽然我不认为她比emacs更好。选定了一个编辑器,你就要一直用她,包括写邮件等等和技术无 关的领域,让她成为你身体的一部分。实际上,我学习和熟悉Emacs的时间,超过了学习任何一种编程语言,当然,这还不包括学习Emacs Lisp的部分。而经过五年的使用,我也不敢说我做到了我应该用emacs能做到的事情的,十分之一。

Shell环境上,Bash和Zsh都很好,Zsh更新,更强大,也更复杂。

2. 团队的工作平台

这包括一个好的版本控制系统,一个好的代码托管平台,一个好的问题追踪和知识管理系统。对于团队来说,没有什么比这些更重要的了,沟通和控制,是一个团队工作的全部。

我使用Git和Github。比起SVN和更古老的CVS来说,Git无疑是最新最好的替代品,她确实能够提升沟通和工作效率。Github则很方便地集成了代码托管,问题追踪和wiki系统,也许在特定的某件事上,她不如以前我们的SVN+Trac这样的平台功能强大,但对于初创企业,我认为这样的服务是最合适的。

3. 关于语言

语言的选择其实不难。在你所掌握的编程语言中,选择你最有兴趣的,最喜爱的,或者写起来最上瘾的。理由很简单,开发是人的工作,越好地激发出你的热情,才能产生越有创造性的代码和产品。至于冷门语言招不到程序员这种说法,我实在无法同意。实际上优秀但掌握的人不多的这类语言,往往能让你更容易地招到顶尖的程序员,因为使用这些语言的,一定不会是庸碌之辈。我使用过的,通常可以做Web后台开发的语言有C,C++,VB,Java,PHP,Python,Ruby,Lisp,JavaScript。

我的选择是Ruby, 如前所述,这算得上是在我掌握的语言里,最有兴趣和最喜爱的。

我有两年的C++经验,但我觉得我还是没有掌握她,而且,今后也不打算继续学习她了,痛苦比快乐多得多。

VB和Java从接触的一开始我就不喜欢,在被迫用她们做了几个项目后,印象也没有丝毫改善,刻板,累赘和费力。

PHP是很好的web开发语言,但她太混乱,太不一致,非常地缺乏优雅和美感。

Python几乎是现在最好的入门语言,简洁,清晰,学习和开发容易,不过对我来说,有些缺乏创造力,那也就是缺乏乐趣。

Lisp我不能算掌握,但很有兴趣。

Javascript,在做web前端开发的时候是必须掌握的,幸亏,这是一种很有趣的语言,也能够写的很优雅和很有创造力。

不过,上边列的这些语言,真的没有一个比起我刚接触Ruby时那种震撼更大。一种简洁,优雅,一致,创造力超群的语言,还有一个非常活跃和富有智慧的社区。

4. 关于框架,数据库和服务器

框架要选择你用起来最自然和最符合你的开发思路的,简单来说,就是:如果让你写,你也会这样去做。以这个为原则,去一一试用最好的那些框架就可以了。

我用的是Rails3, 她有90%的做法是和我的思路与原则相符合的,而剩下的10%,也可以方便地自定义或修改。很遗憾我因为接触的比较少,没办法推荐php和python的优秀web框架,不过,请先选好语言,再选择框架,不要为了框架而使用你不喜欢的语言。

数据库方面,就不太一样了,这里一定不能用你个人的喜爱与否来决定,因为数据的存储和安全是绝对不能忽视的一块木板。请使用最符合你的项目要求的数据库。如 果涉及到支付,大量的事务,或者是有数据安全的要求很高,请使用完善的传统关系型数据库,Oracle,Postgre, Mysql,用你支付的起的最好的。如果是社交网络这种,对数据的海量存储和读写速度有要求,但不强求事务和任何时间点上的即时一致性的,请使用 Nosql类型的数据库。我使用的是MongoDB和Redis,理由很简单,她们的文档齐全,功能符合要求,并且没有可见的影响开发和部署的bug。在 创业的初期,有足够的文档和社区支持,够用的功能和可接受的性能,要远远比性能强大但文档不全,难以开发来的好。在这一点上,请不要赶时髦,也不要浪费时 间去自己做各种数据库的性能比较,选择文档最齐全,社区最活跃的吧。

服务器方面,也差不多是同样的道理,选择最主流和最稳定的,在此基础 上,选择管理维护最方便的。我使用Debian,web服务器是Nginx, 几乎是不二之选。CentOS和Redhat同样主流和稳定,但是她们的管理维护,尤其是包管理系统,比Debian还有差距Apache和 Lighthttp差不多和上面理由一样,请注意,我在这里也不是因为性能的原因选择Nginx的。

5. 关于工作流程和其他工具

你还需要什么?

测试框架:

在现在这个时代,尤其是web开发,我想测试先行是很有必要的,每一次你的代码变动,都要让这个架构运行测试,习惯了之后,你会发现自己离不开她。我用Rspec。

部署工具:

一条简单的命令,把你的代码部署到生产环境中去,而且同时还能够做很多操作,比如cache生成,搜索索引生成,js/css代码压缩等等,并且具备回滚的能力,喔,最好和版本控制系统联动,让你签下最新的版本。我用Capistrano。

一套好的工作设备:

程序员们,帮自己一个忙吧,用你能支付的起的最好的显示设备和键盘,而不要只用公司配给你的可怜巴巴的破笔记本来工作。我用两个24寸的显示器,宽广的可视区域能够直接提高你的效率,用Cherry出品的茶轴键盘,她让我的键入更快更准确。

一个好的工作环境:

一米五长的桌子,明亮的房间,通风和清新的空气,有可以小睡的沙发。

二、42区创始人张沈鹏

42区简介:42 区是一个新型的社交网站,有一个让用户建立职业信息的页面,类似About.me和Linkedin;也可以让你像发微薄一样唠叨,是不是的有技术人员来 评论你的唠叨。在服务器端方面,42区使用Python开发,这是42区创始人张沈鹏原先所在的公司豆瓣网的第一大主流语言。豆瓣网也是国内少有的使用 Python语言开发的多用户大流量网站。

关于做技术创业,张沈鹏认为,要学的技术很多,其学习周期大概一年,在创业之前能够去豆瓣锻炼下 是最好的。同时,张沈鹏也给大家推荐一本Python学习教程:《Python入门指南 Release 2.7》Guido van Rossum, Fred L.Drake, Jr.著 刘鑫 译 2010年10月版。关于寻找一起创业的技术伙伴,张沈鹏认为,对方应该“写过自己的网站,能很快的掌握一门新的东西,对技术本身有兴趣”。

三、坚果铺子创始人韩竹

坚果铺子简介:坚果铺子是一个类似Dropbox的文件同步和存储工具,目前它有Windows、Mac和Linux等桌面客户端,以及Android和 iOS等移动平台客户端。因为坚果铺子这样的文件同步存储工具主要功夫在后台和客户端,所以技术可能跟前面讲的宽岛网和42区所采用的技术有所不同。不 过,创业不限方向,我们希望为大家提供不同的经验,给大家更多更好的选择。

1. 创业选择的是什么技术?比如语言、框架和平台之类的

我们用了多种不同的技术. 就编程语言, 有java, C++/C,  Object C, C#,  选择的时候主要取决于几个因素:

1) 开发效率。

2) 运行环境所需的程序效率。

3) 平台的native支持。

我们没太考虑掌握的熟悉程度. 其中部分语言是我们第一次使用。

我们没有使用过任何的框架(framework), 都是用的函数库(library).  不知道我的理解是否正确, 我个人对于framework和library的定义有所区别,比如:

1) framework更多是约束程序员的行为, 有点类似画好地盘跳舞。

2) library更多提供辅助行为, 只有需要的时候, 程序员才访问library。
我们不太喜欢framework的原因是,  感觉约束太多;  看起来很简单, 但是背后隐藏了态度细节,  可能存在很多陷阱以及一些不必要的功能。
所以我们刚开始基于这些library构建了一些很简单的框架.  虽然花了些时间,  不过我们充分了解这些代码, 所以开发和调试效率反而有很大提升。

2. 你给初始创业中的技术人员的建议是什么?比如,就你选择的技术而言,要学习该从哪开始?

做为技术人员, 我觉得最基本的是打破砂锅闻到底的心态. 比方说, 看到一个bug, 一定要找到最深层次的问题,  从最基本的角度去解决问题, 而不是通过简单的添加代码,  解决问题的现象甚至屏蔽问题. 例如
c.compute();  // c为null, 出现segment fault
最糟糕的解决办法就直接如下fix:
if  (c != NULL) c.compute();
这并没有解决问题, 因为它没有回答为什么c在这个地方可能为NULL, 这是否是合法的参数?

另外一个比较重要的点是,  用于重构自己的代码.  Google每个两三年都会重写搜索引擎的核心代码.  我们也一直坚信, 删除已有的代码比添加新的代码更难, 也更有意义。

另外,  做技术的同志, 也不要拘泥于任何一种技术.  很多事情都是边干边学,  在战斗中提升.  没必要因为擅长某种技术, 就厚此薄彼甚至卖弄技术,  更多还是需要从产品的角度出发。

最佩服的技术人员是能够融会贯通, 举一反三.  有些技术人员能够从CPU architecture->Hardware interconnect->OS kernel optimization->Language/Runtime implementation->Application->Business Logic整个stack角度去分析和解决问题, 这是非常厉害的。

四、Talk Jokes共同创始人申华章

背景简介:作为Talk Jokes的共同创始人,申华章主要并非负责技术。但从非技术人员眼中看看他们对技术人员的看法和要求,对于技术人员来说也是种不错的参考。毕竟,一个互联网创业公司必须是由技术人员和非技术人员有机组成的。

1. 技术的重要性:你认为团队中技术人员有多重要?

非常重要。对现在的创业团队来说,执行力比任何时候都重要。在我看来,执行力来自三方面,正确的方向,优秀的设计,高效的工程师。简单的说,设计和技术,是项目经理的左右手。我们团队的理想配置是一个设计师加两个工程师(半个后端,一个半前端)。

2. 你给初始创业中的技术人员的建议是什么?

对 iOS 开发来说,看一本基础的书,然后就可以看一些优秀的源代码。当然最好的学习是尽量早开始做实际的项目。一定要精益求精,一个应用或者游戏多写几遍,你就会有体会了。做一个什么都懂一点的工程师,不如做一个在某一方面非常精通的工程师。我招人不追求他现在水平有多高,但我一定希望他有这种精益求精的素质。如果他能每次都比上一次写的代码质量高一些,效率高一些,那就他就是我理想中的工程师。(详见申华章博客,iPhone创业小心得。)

Startup Engine(第三期,免费)8月27日北京举行,限30人,先到先得!
Tech2IPO新服务: HT实验室 | 创业者服务 | 投资人服务

相关 [创业 三部曲 技术] 推荐:

创业三部曲之一——学技术

- 小宇 - Tech2IPO
我从创立3家科技公司的经历中学到了什么. 36kr 上的这篇文章直截了当的告诉你,作为一个想要成功的创业者,你需要具备哪些素质. 然而,这些素质因人而异,并不是所有创业者都需要从同一个模子里造出来才 能成功. 但是,在与许多创业者接触的交流中,我们发现大家遇到一些共性问题. 这些问题并不是创业者自身素质问题,也并不是无法改变的,而是很多有想法有激 情的创业者不擅长的.

创业三部曲之二——找伙伴

- Frank Cai - Tech2IPO
十几年前,两个技术牛人合作开发出了一个搜索引擎叫Google,现以成为全球最强大使用范围最广的信息工具. 如今,两位创始人一位掌管技术一位是CEO. 这充分说明,要想能够成功运作,即使是一个技术氛围再浓的公司,创始人也需要从技术中走出来,做一些非技术的工作. 在《创业三部曲之一——学技术》一文中我们提到,在互联网行业创业,技术是必不可少的.

技术人员创业的短板

- Ryan - DBA Notes
越来越多的做技术的朋友开始加入互联网创业的大军. 这几年来,的确见到过不少技术人员创业的成功典范,但没见到没听到过的创业不成功的案例应该更多,所以,先别受那些成功故事的蛊惑,从那些失败的项目或是创业人身上吸收经验和教训更让人受益. 作为一个技术出身的创业者,其长处当然是技术,对自己如何运用技术做出自己心目中的理想产品有把握和信心.

说说技术型创业团队的技术选型

- rhyttr - DBA Notes
看到微博上《程序员杂志》在征集"一分钟先生"的话题:如何做好公司/团队的技术选型. 其实大公司或者大一点的团队选型几乎不需要太多讨论的 -- 最后会不可避免的绕到技术官僚的话题上去. 这里我想简单说说技术型创业团队技术上的选型问题. 如果只能选择微软的技术路线,比如团队几个人只会用微软的技术做开发,甚至也不想学别的,那么似乎没有别的办法,将就一下吧.

个人私藏的电影三部曲

- alavinid - 盘点控 – Mtime时光网
土耳其导演赛米的倒叙的一个主角约瑟夫一生的电影三部曲,风格平静缓慢,叙事简朴暗含张力,诸多的诗话长镜头,我的至爱. 格斯范桑特的极简主义实验电影,标志性的长镜头、跟镜头和一如既往的沉默,我的至爱. 2.《方泰尼亚往事三部曲》. 葡萄牙导演佩德罗科斯塔的代表作,实验电影,也是标志性的固定长镜头,灰暗的电影基调,一种近乎残酷的冷峻深刻,颇为震撼.

营销策略制定的三部曲

- - 互联网的那点事
营销理论多如牛毛,常常学了这个、忘了那个,甚至在真正执行的时候有如瞎子摸象一般,造成多数的营销策略无法产生预期的效果,因此我在这裡试着将营销分为叁块拼图,带大家一窥现代营销的整体面貌,让大家能在短时间内理解并掌握何谓营销?以及应该如何进行策略的拟定. 首先,第一块版图,环境与情况:消费者在什么状况下会想到(使用)你的产品或服务?.

打造高绩效文化三部曲

- - 创业邦
  高级管理者往往认为企业文化很难衡量或者很难改变. 因此,许多人的选择是,不对企业文化领域进行投资——即使有很多事实表明,如果管理者能够有技巧地进行企业文化管理,企业将因此形成竞争性优势,进而成就非凡、经久不衰.   澳大利亚四大银行之一的澳新银行(ANZ Bank),其实践很好地说明了这一点. 十年前,澳新银行采用了一个措施,希望通过一个“有别于传统增长战略的独特计划,达到重塑澳新银行文化以提高效率和盈利的目标”.

jQuery插件编写之三部曲

- - Web前端 - ITeye博客
1、选择一个jQuery框架,如:. //定义你的属性名myPlugin. //使用return this.each运用在多个控件上并实现链式操作. //使用暴露方式设置插件默认参数,这对于让插件的使用者更容易用较少的代码覆盖和修改插件默认设置.  2、添加引用编写好的插件.  首先给你的插件起个名,推荐命名方法为:jquery.[插件名].js,如上面可以命名为jquery.myPlugin.js.

续——冯大辉谈技术性创业团队的技术选型[原创]

- huyun - 运维进行时
       原文冯大辉谈技术性创业团队的技术选型提到了天涯,好吧. 站在一个天涯从事6年运维工作的角度,我就多说几句,天涯属于破釜沉舟要摆脱这种束缚的这一类. 原因不用多说,文中提到的问题天涯多少都有碰到或存在. 目前已全面拥抱开源技术,这不是一时头脑发热所做出的决定. 根据现状、未来的发展策略理性来选择的.