原文链接:
https://python.plainenglish.io/how-i-built-my-first-ai-startup-with-no-experience-2b676f3768da
首先,关于我自己的几句话:我是一名数据科学家,拥有2年以上的商业经验和5年以上使用Python进行编码的经验。我主要在后端和AI领域工作。我从未独自完成过整个项目,通常我会被分配任务。
但过了一段时间,我开始觉得我有足够的知识去尝试自己构建一些东西。然后我就做到了。与我的预期相反,这并不非常困难。更甚的是,与我的联合创始人一起,我们仅用了1个月就建成了它,而且它已经获得了一些利润和1000+次访问,而没有进行任何付费广告。
现在——为什么你会想要建立一个初创公司(如果你还没有的话)?
没有一门课程或项目教会了我这么多。当你完成一门课程时,你学习了一些特定的技能。但当你作为一个整体去工作在产品上时,你开始理解整个开发周期——从设计到构建到部署。我提升了我现有的技能,我学到了新的技能,我开始理解前端和后端实际上是如何交互的(以及你作为一个Python开发者如何编写更好的API,让前端同事更容易使用)。
另一个原因是你的简历上的一大亮点。不仅是你在初创公司工作的时间算作商业工作经验(与个人项目不同),而且它在投资组合中看起来也很棒(特别是如果它是一个可以被一些HR访问的网站)。
最后,也是最重要的原因——金钱。如果你的初创公司是一个SaaS(软件即服务),从技术上讲,你可以认为它是一个被动收入来源。当你建立了多个小型SaaS网站时,你获得了更多的速度、专业性和经验——这意味着,构建一个新产品所需的时间非常少,而这个新产品会赚更多的钱。
在这篇文章中,我将描述我建立我的初创公司的经验,并分享一些可行的技巧和建议。
寻找创意
我们用户提出的不同发布的想法。
你可能对你的产品有一个想法。你可能没有。或者你可能有上百个想法。头脑风暴是一个创造性的过程,所以实际上没有标准化的过程来产生新想法。
然而,对于验证你的想法确实有这样的过程:
检查相关市场。你想建立一个租书的网站吗?检查书籍市场的大小,租赁服务,找到去年售出的书籍数量等。如果你看到这些市场中的一些最近在下降,这可能是一个问题。例如,随着电子书、书籍应用程序等的出现,书籍越来越不受欢迎。
检查你的竞争对手。如果有很多竞争对手,你必须确保你的解决方案至少比他们好5到10倍。如果竞争对手很少,这仍然是一个好兆头——这意味着你可以在这些产品上学习,看看它们是否盈利,看看是否有市场契合度。然而,如果没有竞争对手——情况就复杂了。这可能是因为你的想法太新颖了,没有人想到过。或者,这可能是因为你的想法是一个所谓的“流沙”想法——很多人试图建立它,但没有人成功。在这种情况下,你必须尽可能远离这个想法。
分析你的客户和你正在解决的问题。你的目标受众是谁?他们愿意支付多少?这个问题多久出现一次?它可以避免吗?
现在是一个完美的时刻来介绍我的初创公司——https://validator.yazero.io。我们使用AI、网络抓取、多种不同的API和可量化的反馈来帮助验证过程。
当寻找想法时,另一个建议是尝试利用你的“个人优势”。你在物理学等特定领域有学位吗?尝试利用你在那里的知识。你在律师事务所有朋友吗?尝试问问他他有什么问题,你如何帮助/优化一些流程,等等。
如果你想学习更多关于想法——查看我的上一篇文章。这是一份针对技术人士的初创公司启动指南。
寻找联合创始人
我(右)和我的联合创始人(左)的照片
你是否有一些你不想做的初创公司部分(比如市场营销、前端或销售)?最好的解决方案是找一个联合创始人——他们不仅在这一领域更有经验,而且他们愿意在其中工作。构建你自己的产品应该是对你个人来说有趣和有趣的,所以如果有你不喜欢的部分,尝试委派它。
寻找联合创始人的另一个原因是额外的验证。他们总是会帮助你不要过于沉迷于可能不太好的想法,他们总是会为产品提供反馈,最后——他们和你一样对构建感兴趣。这意味着你可以让你的初创公司运行得更快、更好,有时甚至更多。
例如,如果你在前端没有经验,学习一个新的框架可能非常令人畏惧。不仅它会花费你很多时间,而且它会消耗你最宝贵的资源——动力。但是,如果你把它委派给你的联合创始人,他们在这一领域有更多的经验,他们会很快完成它,提供更高质量的结果,你将能够专注于对你感兴趣的事情。
你可以在像YCombinator联合创始人匹配平台这样的平台上找到你的第一个联合创始人。我就是在那里找到我的联合创始人的,我对这个决定感到非常高兴。
此外,一些协作工具——在我们的工作流程中,我们使用Todoist分配任务和跟踪进度,使用Github进行版本控制和自动化部署,使用Figma进行设计和概念头脑风暴。
我们的Figma早期概念设计
前端
最后,我们开始技术部分。
前端的主要建议(如果你决定自己实现)是使用你知道的框架。即使它已经过时了,或者所有其他开发者都讨厌它,如果你知道它,使用它。重要的是让你的解决方案到达最终用户。如果它对他们有用,那对你也有用。
在新手前端开发者中经常出现的一个问题是——他们总是试图跟随最新的趋势,使用一些流行的YouTuber推荐的“最好”的框架,最后他们在每个新项目上都要重新学习一切。
更好的是继续使用你知道的框架并磨练你的使用技能。这样你就会知道如何修复你的bug,你将开发得更快,你将有一些模板可以在下次开始时使用。
如果你是Python爱好者,我推荐查看我的Python前端库Top-5和Python前端库Top-5第二部分。我对最常用的Python前端库进行了全面的概述,并比较了它们的优缺点。如果你有一些Python经验,使用这些库会更容易,这样你可以更快地完成你的产品。
使用Solara创建的一些网站示例——一个Python前端库
对于部署,有两种方式:
使用一些现有的解决方案,如Vercel、Netlify和AWS Amplify。这是最简单的选项,特别是如果你使用一些流行的框架,如NextJS和React。然而,缺点是,这些解决方案中的大多数不为你提供免费的商业部署——例如,在Vercel上你将不得不支付20美元。AWS Amplify有一个免费的商业计划,但它也有一个冷启动(如果你的网站没有经常被用户访问,它将在下次访问时加载约4秒钟)。
使用你自己的托管解决方案,如Hetzner、AWS、Google Cloud等。一方面,通常没有免费层。另一方面,最便宜的解决方案通常非常便宜。例如,在Hetzner上,你可以得到一个2-VCPU 4GB RAM的专用服务器,只需5欧元(这通常对任何后端/前端托管有少于100并发用户/不计算密集型的网站来说已经足够了)。使用自托管解决方案还为你的应用程序提供了更多的控制和透明度。自托管解决方案的另一个优点是,你学习如何设置DNS、SSL、Docker和其他东西,这对你的简历和技能集是一个巨大的提升。
后端
我将在这部分更详细地介绍,因为我主要在初创公司的后端工作。
有时会出现一个问题——为什么你需要后端呢?为什么你不能在用户端完成所有事情
答案是更好的安全性、可观察性、对你的管道更多的控制、更好的日志记录和使用更大的计算能力。如果你正在托管一个大型ML模型,将其发送到用户端并在他们那边进行计算通常是一个坏主意。更好的解决方案是使用GPU的私有服务器和供前端使用的API。
我用于初创公司后端的主要工具是FastAPI与Pydantic、Gunicorn、Docker、Docker Compose和Nginx。我喜欢Docker,因为它给你一个始终有效的解决方案,无论操作系统、环境等如何。当你的应用程序有多个组件必须同时运行时,它也很好——例如,数据库与你后端并行。
你的后端需要的一个重要事情是监控。我为这个目标找到了两个单独的解决方案——prometheus和FastAPI-analytics。它们都给你提供了一个漂亮的仪表板,你可以使用它来查看你的API是否成功处理请求,响应时间是什么,最常用的端点是什么,等等。
FastAPI Analytics仪表板。不要介意88%的成功率——我在后端没有图标,每次访问它都尝试使用GET /static/favicon.ico获取那个图标,这导致请求失败:D
监控你的后端的优势在于知道是否有问题/bug,或者例如一个指标表明你需要一个更好的服务器,具有更多的RAM/CPU能力。
我通常在Hetzner的VPS上部署我的解决方案,因为它是最便宜的选项。
最后,很多人说“Python太慢/太重,不能用于生产”,或诸如此类的话。99%的情况下这不是真的。
首先,如果你的请求处理时间是5毫秒而不是1毫秒,对用户来说绝对没有区别。但是当你在几天而不是几周内完成开发你的解决方案时,这是一个巨大的优势。
第二,大多数库都足够优化/使用像Fortran/C/Rust这样的语言在幕后,所以最终你得到相同的速度。
最后,如果你正在构建一个AI应用程序,特别是如果你使用LLMs,你的响应生成可能需要几十秒钟(这与编程语言无关,而是取决于计算能力/APIs/其他东西)。所以,如果你的请求需要20秒钟,一些Python计算需要0.1秒钟有关系吗?