从零开始做产品
2015-01-03 本文已影响1720人
hfcorriez
回到几年前的此刻,我开始谈一些自己的想法:我要在互联网上要做什么。
我花了几个星期和在 Hunch 和大家一起工作。如别人经历过的,直接去做有它的好处和缺点。如果你知道很多「一起保龄球」的规则,Orbital 创业营可能是一个适合你的地方,它们也已经开启第二批。
关于学习编程
- 编程是最靠谱的可以让你一秒就获得成就感并继续痴迷的方式。
- 没有简单快速的方式让你学习编程,如同你不能一口吃成胖子。
- 学习编程需要韧劲儿,而不是成就感。最好的编程都不是一蹴而就的。
- 如果你告诉别人你要回去上学,别人只是知道了;如果你告诉他们你退学去编程,它们会觉得你太酷了。
- 向你可以问的人(朋友、同事或搭档)征询建议学哪门语言。
- 不要过多的担心语言选择。最重要的是你要选择一个你可以马上开始学习的点,不是你要用 3- 30 年的东西。
- 用一个稳定的、前瞻的、文档不错的语言。在 2014,几乎意味着 Python、Ruby 或 Objective-C。当你领会到编程思路将会很容易填补文档的空缺,这时候可以试试 Node、Scala、Go、Android、Swift 等等。(PHP和 Java 是稳定的、文档不错的,但是如今已经不再前瞻,主要关注在 Web 开发者)。
- 一旦你选择一门语言,开始用它做自己的事儿。
- 写 3000 行的 main.py 文件或等同的其它事儿,就走出了第一步了。
- 刚开始不要担心模型或抽象。当你开始写代码,你会在各种地方栽坑,去改善就可以了。
- 别写测试,感觉就像不必要的工作,因为一旦编程过程让你不爽,你就会做测试。据我所知,每个人都这样。
- 如果需要数据库,使用 ORM。Google 搜索 「Python ORM」然后选一个你喜欢的。
- 选择一个框架、库、包或无论什么去做 SEO 都不是很好的:高评分的页面要基于更好的内容。当开始的时候,你要有更好的内容。
- 可以在 Heroku 上发布你的第一个项目,第一次使用是很可怕的的,但是用别的更可怕。
- 如果要教科书式的练习,用新语言和新平台重构现有项目是很有帮助的。
- 如果要了解 HTTP 请求,给你的项目写一个 API。
- 电脑是有确定性的。不管看起来有没有可能,在同一个机器上运行同样的代码,不可能出现不同的结果。
- 所以绝对值得学习如何在控制台/调试器的环境里工作。这可能觉得像不必要的工作,但其实不是:你将会加速未来的开发和调试。
- 当开始编程,你做的东西在 98% 的时间是不完整的。打个比方,说你写文章的时候,你的想法在大多时候是不完整的或不好的。开始是孤单的,但是记住不完整不一定就坏,就是编程的特点,不只你会碰到。
- 一旦你可以运行起来了,你要打破它去做些不一样的。这是很痛苦的,但是一旦你可以完成一次,你就可以再次完成。(版本控制会有帮助)
- 如果你可以找到了相关的错误或者 StackOverflow 的页面,那对你理解它如何工作是非常有用的。虽然要花费很长时间还要拷贝粘贴 StackOverflow
的代码,但是这是真的。 - 当你没有开始构建,读所有你语言的模式,HackerNews 会是个很好的帖子来源。不要担心你刚开始不理解,慢慢地你会理解更多。
- 反过来,读一些完全不相关的东西(当完全用 Ruby/Sinatra 时了解 gdb 调试器)将会让你沮丧。
- 如果一些人告诉你使用 X 语言相比 Y 语言是更好的选择,问他喜欢 X 语言的地方在 Y 是如何的。这人也许是愚蠢的,但是至少你会学到一些东西。
- 像「Express 没法工作了,我该怎么做?」这种问题很难回答。描述你的问题和换个角度提问:「我用 Google 搜索"Error: Route.get() requires callback functions but got a [object Undefined]"但是没有任何相关结果,我是不是该换个继续搜索」
- 如果你可以,刚开始就人肉加入工程师的环境中。工程师喜欢讨论其它人在做的事情。当你看起来不开心,他们或许会问有什么问题(没有人喜欢挨着一个不开心人坐)
- 尽可能审核代码,最好从一些能说「我看到你做的,我们一起做吧」而不是说「你在想什么?你测试过 X、Y 和 Z ?它们可能会更好!」的人
关于做些什么
- 今天的创业,不可能为了做大项目而去做项目。所以如果你认为你不能创业,你就随便为自己做点什么!很多人也会以为你在创业。(他们会考虑你比较谦虚不会告诉他们)
- 如果你要离职去做点事儿,找出一条路说服你的合伙人。
- 当你没有工作,很多人会意味你什么做不了。(事实上,你可以做的比你想的更多)不要在意这些人,他们只是不清楚,并不是恶毒。
- 像很多决定一样,这不是没有风险。如果你可以说服一些人可以离职来一起做些事儿,无论如何都会好起来。
- 那就是说,这是一个先合作来做的事儿。和家人一起比自己会更好。但是不论什么条件:上千人都是这么做的,只要努力,假日时日,你也可以。
- 如果你已经从大学毕业,很多人(包括创业人的)将会告诉你不要做什么:你在某些事儿不会比其它做同样事情长的人强,你需要专注你所擅长的。他们是否正确要看你的理解。
- 开始要做点自己想要的东西。
- 忘记其他人想要什么。他们就是要一个产品(至少在最初),你需要去学习。
- 你做的第一个事儿可能不会成功,第二个或许也不会,但是第三个或许就成了。
- 你可能会做错事儿。即时当时你不认为,但是最后一定要认识到它的坏处,保持前进。
- 很多事情开始就是坏的,但是这不重要,重要的是如何快速改进。
- 如果第一个东西不好,将会使你放弃它们。你会学习很快花时间来解决难题。
- 项目的生命周期对其它人是不重要的。忽略它们。
- 开始要记录每日变更。你会了解更多并且快到超出你的认知。
- 把任何事做好是很难的,很多人不理解。他们只会说「为什么都这么糟糕!」去问之前做些这事儿的人,他们知道。
- 很值得指出从哪些方面可以把「东西」做好(对我来说,就是「有价值」、「好用」和「好玩」)
- 如果你不知道做点什么,放弃吧。有很多其它事儿可以做和学习.
- 朋友是很棒的,可以去试你放在他们面前的东西。很多也许没有回应,但是不要怪他们。
- 很多朋友不会告诉你你的事儿是坏或者不坏。和这样的人保持紧密。
- 找到 1000 个真正的用户。
- 如果要把事儿做好,拥抱用户是基本的原则。通常情况下,这是没有做起来的,不要认为「获取用户」和「运转起来」是一样的,它们真的不一样。
- 你可以从一个垂死的产品学到很多长远的东西,你有一个产品的时候你也会知道怎样做最好的优化(你会无限进行下去)。