我们四周前来到YC,当时我们的名字还是EXMO,主要是为活动组织者创建移动app,网站和微博墙。在同我们的用户,指导顾问还有同行谈过之后,我们决定为活动组织者提供一站式服务,其中包括售票和登记。
同时,因为EXMO.com(我们最初的域名是getEXMO.com)这个域名已经负担不起,我们需要给自己改名字。有了新的品牌,添加了主要功能和重点,我们决定要重新发布。鉴于YC的快节奏,我们要尽最快速度发布新产品,既然是这样,那就意味着两个星期。
程序员最艰巨的任务跟编写代码没有多少关系。编码是逻辑思路的一种实践,这跟程序员日常工作中的其它任务比起来相对简单。如果你认为自己还是一个水平一般的程序员,在你真正的能进入到高手行列前,请确保你已经克服了下列晋级的障碍。
1. 解释你在干什么
解释软件开发过程是一个很困难的事情。那些非程序员职业的人也许知道很多关于编程的事情,但很显然,他们不会编程。对于他们来说,我们的生活就是在一间黑暗的屋子里趴在键盘前消耗着咖啡。
你会在你的朋友、家人和同事中遇到这样的人,他会认为编码不是一个正确的职业。
2. 形象的说出软件解决方案
根据一些简短的需求——通常是一知半解的,你需要设计出数据结构,软件架构,代码算法,通信协议,以及其它所有针对商业问题的解决方案各种组成部分。然后你需要用一种外行人听的懂的术语将它们表达出来,并需要在规定的时间里提交给客户。
3. 评估工期
这是程序员痛苦的根源。在开发任务没有完成之前,你是绝对没有可能确定完成这个任务需要的时间。也许程序跟以前写的很相似,但环境变了,问题变了,限制条件变了。
下文是来自Airbnb的一篇JavaScript的格式规范, 写得比较全面,是一篇不错的学习素材,不过对于其中一点,笔者并不同意,文中不推荐使用前置逗号分隔;
但笔者更倾向于使用Twitter 的代码风格,即使用前置逗号,然后最后一个变量不加分号,或结束分号与逗号对齐。这样新加变量只需影响当前行,并且可以尽可能避免逗号被遗忘,这是我和我身边的程序员在写JSON对象时经常出现的一个拼写错误。
// twitter var once , upon , aTime
// or var once , upon , aTime
;