干货篇:如何从 0 到 1 落地你的第一个开源项目?破局分享!

前言

大家好,我是 「周三不Coding」。最近马上就要到秋招提前批啦,相信很多小伙伴都在忙着复习八股文、刷算法题、准备简历中。

最近我也关注到了很多同学都在问一个问题,如何做一个自己的项目。

项目的重要性想必大家都清楚,如果你的项目在开源社区内有一定知名度,在面试中会非常加分(一位腾讯面试官在面试时亲口和我说的)

那么如何在临近秋招,落地一个开源项目呢?今天这篇文章主要从开源项目的 「破局之道」 与 「破局之法」角度出发,详细和大家分析如何从 0 到 1 落地你第一个真正意义的开源项目。

个人经历

在开始具体的讲解前,不妨先听我讲讲我的故事。

从接触编程开始,我就是个躁动不安的人,总喜欢搞点事情。尽管那时候什么都不会,但经常去 Github 和各大编程论坛上逛,Star 一些项目,幻想着以后自己也有能力能够做出来一个开源项目。

但是,有个最大的问题,我相信很多同学也正在面临该问题,自己有想法,但是却担心无法落地,担心做得不够好,总而言之就是一万个担心。我当时也是如此,有过一些自认为很不错的想法,但在还没有迈出第一步时就夭折了。

最近,可能是伴随着我代码能力的提升,以及持续躁动不安的心,我终于迈出了自己的第一步,跟了一波 ChatGPT 的风,做出了 GPT Terminal

其实回过头看一看,做的过程真的很快。从我有想法,到我开始做,到最终项目发布到 Github,耗时只有一周。

项目原理很简单,关键是我如何寻觅想法、获取灵感、克服完美主义、克服害怕失败的恐惧,这才是今天我要说清楚的事情。

大家对项目感兴趣的话可以看看我这个专栏 —— GPT Terminal 专栏

破局之道:执行力 >> 想法

首先,我给大家抛出一个我认为正确的结论

  • 开源项目能够落地的两个必要条件 —— 想法 & 执行力
  • 执行力 💪 >> 想法 💡

破局之道其一:想法

做自己的开源项目与跟着教程、视频做项目的最大不同在于:一个是主动输出,一个是被动输出。两者的差别十分之大。

  • 被动输出
    • 你只需要具备「做题家思维」,走一条「阳关道」,前方的坑都已经被教程的作者所填平,做的过程会十分顺利。你不需要过多的思考与设计,即可顺利地完成该项目。
    • 但是这种项目注定容易烂大街,很难照搬到简历或作为自己的开源项目,导致面试求职时天花板低。
  • 主动输出
    • 你需要具备「出题家思维」与「产品意识」,一路上会遇到多个「十字路口」,你需要分析现有的用户需求,做产品的规划与设计。需求方可以是你自己,也可以是社会大众。在做的过程中,你会去不断地思考解决方案,并从多个方案中挑选出你认为的最优解。
    • 经过这一系列的努力,最终你孵化出的开源项目,融合了你的思考,具备有你的价值导向。而且这种项目一旦具备创新性或趣味性,或解决了某种特定的需求,很容易成为爆火的开源项目。

要想做到主动输出,首先你得有一个想法,不论这个想法是否现实、是否可落地。相信很多同学就难倒在这第一步,由于长期的「做题家思维」,头脑空白,很难真正地挖掘自身需求或周边用户需求,或者想到有意思的产品内容。

接下来,我从三个角度和大家聊聊,我是如何 “破局”、如何生产想法。

开拓者心态

这一点说起来其实有点中二。大家在学习的时候,可能扮演的角色更多的是一个 Follower,跟着大牛的脚步,稳扎稳打学好基础知识。诚然,这一点十分重要,让你能够脚踏实地地学本领,但是,如果在学习的过程中,同时保持一个开拓者心态,经常性地去思考,我可不可以在某个细分领域,成为该领域的带头人,我也当一次大牛,出一些专栏、教程、视频等?潜移默化中,这种意念力会将你代入到这个开拓者角色中,思考一些框架、产品的设计,并幻想自己有朝一日也可做出来类似的产品。其实在思考中,你无意识地在向「出题家思维」转变,这一点至关重要。

产品思维

「开拓者心态」其实是一种虚无缥缈的东西,每个人都可以胡思乱想,通俗点来说叫 YY。所以说,它还需要与切实的思维逻辑相绑定,从而发挥出最大的作用。「产品思维」在其中起着重要的作用,这意味着你需要去站在用户的角度思考问题,关注用户需求,从而想清楚你要做一个什么样的项目或产品。如果你找不到需求,那也没关系,你只需要关注你认为有意思的东西。如果它能够起到娱乐作用,那么相当于你发现了用户的潜在需求,甚至你是在引导用户需求。

知识输入积累

当你具备了前两者之后,你应该很快就会发现身边的需求,产生一些初步的想法。但是,你还需要大量的知识输入积累,才能支撑着你把项目做下去、做成功。举个🌰,小学打游戏的时候,我就想做一个游戏脚本,辅助刷怪升级,但是我当时并没有对应的编程能力与技能,所以说这个想法在当时就只可能是想法。前期的「知识输入」重要的,当你有了足够的「输入」,你就会发现「输出」是顺其自然的事情。

Idea 分享

说了这么多,有没有什么实际的想法呢?其实是有很多的,这里给大家说几个比较简单的。目前 AIGC 非常火热,那么咱们可不可以从最简单的 ChatGPT 入手,考虑一下如何基于 GPT 来搭建一个新项目或优化我们的现有项目?

  1. 我之前写过一个编程论坛的项目,其中有问答模块,但是其实有很多问题都是比较重复的、简单的。如果网站用户反复地看到这些问题,会认为网站质量较低,丧失用户粘性。那么我们是不是可以将重复的问题过滤并收集起来,做成一个数据集,并 Feed 给 GPT 模型,将其训练为一个编程助手语言模型,这不就解决了网站中的重复性问题吗?(大家如果不知道如何可视化训练模型,可以看看我这一篇文章)
  2. 做一个自媒体助手,通过 AIGC 辅助创作者创作文章、视频、音频等内容,你需要完善你的平台服务,提高用户创作内容的效率。这也是个不错的想法,而你需要做的事情比较简单,只需要对 ChatGPT 进行微调,使其能够起到辅助创作的作用即可。
  3. GPT Terminal 项目的出发点是兴趣,我觉得将 GPT 与终端结合在一起比较酷。此外,我也是为了提升我日常的工作效率,我在设计之初加入了命令行翻译角色、中英文互译角色、SQL 翻译角色。这三类都是我最经常用到 ChatGPT 的地方。

破局之道其二:执行力

这一点重要性其实不言而喻。在我看来,执行力 >> 想法

想法很有可能是你在吃饭、散步、打游戏、刷视频时,突然冒出来的奇思妙想。思维活跃的人可能一天一个想法。但是如何将想法落地,最关键的是你的执行力。在有了想法之后,你如果确定想法是可落地的,那么你就不需要再继续想下去,毕竟你做的不是真正的产品,不需要你进行大量的需求分析,就算是真正上线的产品,也不需要你一次性做到完美,毕竟现在最流行的是「敏捷开发」嘛,通过多次迭代后创造出成功的产品。

所以说,在有了想法之后,不必继续深想,不必瞻前顾后。你只需要想方设法做出第一版 Demo,将你的想法落地,并不断完善,那么它就是一个有价值的开源项目。

这一过程中,执行力十分重要。你需要持续付出努力,完成你在每一个阶段设下的既定目标。

破局之法:从 0 到 1 落地开源项目

其实,做开源项目就像是搭建一个房子。

  • 你需要负责房子的户型设计

  • 你需要考虑修改房子需要用到哪些原材料

  • 你需要为房子打好地基

  • 你需要一层一层地将房子盖起来

  • 你需要购置家具、装修样板房

  • 你需要将你的房子卖给用户。

这每一步环节,其实都可以一一对应到我们做开源项目的过程。

相信聪明的大家已经猜到大概内容啦,接下来我给大家进行具体的拆解。

“规划你的摩天大楼” —— 项目需求、技术选型、设计方案

在有了项目想法之后,你需要对项目的想法进行细化,即你需要进行详细的需求分析,拆分你项目的功能点。这些功能中,有的是核心功能,有的是非核心功能。这也意味着,核心功能必须在你的第一版 Demo 中完成,而非核心功能可以排到后期完成。这其中我们采用了「分治思想」,将大问题拆分为小问题,逐个击破。这样一来,在做的过程中,我们不会有太大的压力,能够快速发布第一个版本。

拆分完需求之后,我们需要进行技术选型。如果只是快速落地想法、将开源项目做成,我认为咱们直接采用最熟悉、最简单的技术栈即可。

  • 这里就不得不提到「学生思维」啦:在做项目时,总是过度选型、过度设计,导致最后罗列出一堆看似高大上,却完全用不到且不熟悉的技术栈。这样可能会使得你初期斗志满满,但是一旦受挫后就容易使项目夭折,中途放弃。因此,我建议首选熟悉的技术栈,除非你认为你的执行力足够强,一定能坚持到最后。

至于设计方案的话,因项目而异,大部分在 Github 上都有类似的解决方案,只不过你需要将其整合到你的项目中。

“打地基,搭架子” —— 最艰难的一步

这一步我愿称之为最艰难的一步,也是最容易劝退的一步。万事开头难,从 0 到 1 去搭建一个项目架构,很考验设计能力。对于完美主义的人来说,在这一步会浪费大量的时间,想方设法地去构建项目框架,想让其做到「可扩展」、「可维护」、「可迭代」。但是咱们冷静下来细想一个问题,如果你的产品已经到了快要无法 “生存" 的地步,你还会去费尽心思提升用户体验吗?所以说,最关键的是先 ”活“ 下来,再去考虑 ”发展“ 的事情。

因此,如何快速 ”渡劫“,关键之法在于,以做 Demo 的心态去搭架子,即使你最后写出来的是 ”屎山“ 代码,那你也可以第二版、第三版中不断维护、不断改进,任何事情都不可能一蹴而就

“筑高台,大力出奇迹” —— 填充完善你的项目内容

恭喜你,迈过了最艰难的一步,顺利走到了这个阶段。这时候,相信你已经初步搭建起了项目的框架,并实现了部分核心功能。之后,你需要考虑的就是按照之前的层次结构,将其他功能点逐一实现并填充进去。如果你的项目比较简单,那么到了这一阶段,你只需要去复现其他的开源解决方案,将其集成到你的项目中即可。

大力出奇迹,当你投入足够多的时间到项目中,你的项目功能点会越来越多,并且越来越完善。

“门面工程,装修艺术” —— 修饰完善 README 文档

终于到了最后的轻松 + 愉快阶段啦。这个时候,你已经完成了项目的主体开发,进入到了发布上线的阶段。而为了便于你之后推广项目,你需要对其进行一定的修饰与包装,即完善你的 README 文档。

我相信绝大多数用户在浏览开源项目时,第一眼看的便是 README 文档。一个好的 README 文档能够给用户留下深刻的印象,使用户想要尝试去使用你的项目。

“装修” README 也是一门艺术,接下来我给大家列一个大概的 “装修” 框架。

具体示例可以参考 GPT Terminal。

  • 项目 Logo:使你的项目高大上一些,吸引用户(可选)

  • 项目简介:简明扼要告诉用户你的项目核心是什么

  • 项目预览:通过图片、视频的形式,让用户直观地感受项目(可选)

  • 功能概览:分点告诉用户项目的核心功能

  • 快速开始:清晰明确地告诉用户,如何从 0 到 1 运行该项目

  • 贡献指南:当你的项目吸引到用户时,你需要给用户一个渠道与方法,一起参与到开源项目的建设中(可选)

  • 特别鸣谢、开源协议(可选)

“销售之道,用户心智” —— 如何推广你的项目

在《定位》一书中,多次提到获取「用户心智」在营销当中起到至关重要的作用。

其实咱们细想一下各个互联网领域的头部产品,其实它们正是做到了牢牢掌握用户心智,成为了这一品类的代名词。

那么,我们也是需要按照这一准则,去推广我们的项目。在推广的过程中,它一定是具备鲜明的标签,有着区分于其他项目的亮点,这样才能让用户牢牢记住你的项目。

我在推广 GPT Terminal 项目的过程中,主要以两个亮点为主:「终端交互」&「角色定制」,围绕这两点进行宣传,让用户直观地感受到 GPT Terminal 项目与普通 ChatGPT 项目的区别在哪里。

而且你需要坚持地维护项目,因为长期的维护本身就是一种宣传方式,这可以使用户感受到你是在用心做这一项目,一定程度上证明项目是可行的、可用的,出 Bug 的概率较低。

总结

相信大家看到这里,一定对于如何搭建一个开源项目,有了更加深刻的理解与认识。不过还是要牢牢记住「破局之道」 —— 想法与执行力。这两点具备后,「破局之法」是顺其自然、顺理成章的事情。

如果大家目前仍然没有一个具体的想法,可以参考想法部分的 Idea 分享。如果大家还需要我提供更多想法,我可以再写一篇文章,详细和大家聊聊我最近关于开源项目的思考~

祝大家能够尽快拥有一个属于自己的开源项目,为自己的简历添加点儿真东西!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38754.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中让所有单词的首字母变成大写的SEO文章

Python中让所有单词的首字母变成大写的SEO文章 作为一种开源编程语言,Python已经在各个领域崭露头角。伴随着搜索引擎优化(SEO)的发展,Python也成为了一个极其有用的工具,尤其是当涉及到优化网站上的关键词时。 在本…

chatgpt赋能python:横向拼接图片在SEO中的作用

横向拼接图片在SEO中的作用 在现代网络环境中,图像搜索和视觉呈现在SEO中扮演了非常重要的角色。人们喜欢通过高质量的图像来寻找信息和生成视觉印象。对于像素比率和视觉呈现的好坏,图像品质是重中之重的。在这样的SEO环境中,对于那些希望通…

chatgpt赋能python:如何用Python开发安卓APP并进行SEO优化

如何用Python开发安卓APP并进行SEO优化 介绍 Python是一种著名的编程语言,由于其简洁性和功能强大性,Python被广泛应用于计算机科学和软件工程领域。不仅如此,Python还可以用于开发移动应用程序(APP)。 虽然Python是…

chatgpt赋能python:Python在SEO优化中的作用

Python在SEO优化中的作用 概述 Python是一种被广泛应用于各种领域的编程语言,包括数据科学、机器学习、Web开发等。近年来,Python在SEO(搜索引擎优化)中也扮演着重要的角色。Python的强大功能使得它成为一个很好的工具&#xff…

chatgpt赋能python:用Python写SEO工具

用Python写SEO工具 SEO(Search Engine Optimization)是指在网站设计、内容编写、关键词优化等方面,提高网站在搜索引擎中排名的一种策略。而随着Python编程语言的逐渐流行,我们可以利用Python编写一些SEO工具,帮助我们…

chatgpt赋能python:Python网站的SEO优化技巧

Python 网站的 SEO 优化技巧 随着互联网时代的发展,越来越多的网站开始依赖搜索引擎获取流量。SEO(Search Engine Optimization)便随之而生,它是一种通过优化网站结构和内容,从而提高网站在搜索引擎的自然排名及流量的…

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体…

扩散模型浅析

扩散模型浅析 背景-Why 为什么会提出扩散模型 VAE过程 variational auto-encoder(VAE) :先定义隐变量z满足正态分布,后定义条件分布 pθ(x|z),从而定义了 z 和 x 的联合分布。训练模型时,先采样得到隐变量z,后根据…

妙啊!用扩散模型生成蛋白质结构,结果不输天然蛋白质|来自斯坦福微软

丰色 发自 凹非寺量子位 | 公众号 QbitAI 没想到,图像生成领域的大明星—— 扩散模型,这么快就被用来做蛋白质结构生成了! 而且结果在复杂度和结构上都和天然蛋白质有的一拼。 消息一出,不少人都称赞这个组合简直非常妙。 还有人表…

生成扩散模型漫谈:DDIM = 高观点DDPM

©PaperWeekly 原创 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP、神经网络 相信很多读者都听说过甚至读过克莱因的《高观点下的初等数学》[1] 这套书,顾名思义,这是在学到了更深入、更完备的数学知识后,从更高的视角重新审视过往学过…

什么是扩散模型(Diffusion Models),为什么它们是图像生成的一大进步?

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 也许过去十年在计算机视觉和机器学习方面的突破是GANs(生成式对抗网络)的发明——这种方法引入了超越数据中已经存在的内容的可能性,是一个全新领域的敲门砖…

扩散模型探索:DDIM 笔记与思考

DIFFUSION系列笔记|DDIM 数学、思考与 ppdiffuser 代码探索 论文:DENOISING DIFFUSION IMPLICIT MODELS 该 notebook 主要对 DDIM 论文中的公式进行小白推导,同时笔者将使用 ppdiffusers 中的 DDIM 与 DDPM 探索两者之间的联系。读者能够对论文中的大部…

几何扩散模型用于分子构象生成ICLR2022

从分子graph预测分子构象是药物发现的基本问题,生成模型在该领域取得进展。受扩散模型启发,作者提出GeoDiff用于分子构象预测。GeoDiff将每个原子视为一个粒子,并学习扩散过程(从噪声分布转为稳定构象)。 来自&#x…

TP5+PHPMailer 实现发送邮件功能

目录 准备工作 一、PHPMailer是什么? 二、使用步骤 1.查看本机是否开放25端口 2.打开邮箱启动邮箱的SMTP服务 3.下载PHPPHPMailer资源 4.代码编写 总结 准备工作 使用QQ邮箱或者163网易邮箱或者126邮箱,这里以qq邮箱为例来进行介绍。 分为三步&#xf…

[PHPMailer]PHP电子邮件教程

前言 这周也是刚放假回来,苦逼高中生一个,很多时候因为我是住宿生,难免没有硬件设备来跟互联网进行沟通,有的时候我们想要给别人一个祝福,比如说某某人生日,但是你在学校,怎么给他祝福呢&#…

三分钟告诉你有可以ai写作的软件吗

你是否曾经遇到过写作困难的时候?或者是遇到了一个写作任务,但却不知道如何下笔?不用担心,现在有一种神奇的软件可以帮助你迅速解决这些烦恼。它就是ai写作软件!是的,你没听错!现在,…

改写句子的软件有哪些-免费改写文章的软件

改写句子的软件 改写句子的软件是一种广泛应用于文字处理的工具,其主要作用是通过对原文中的语言结构和表述方式进行调整和优化,以改进文章的质量和可读性。改写句子的软件广泛用于新闻报道、科学文章、学术论文、书籍等各类文本材料中,旨在…

chatgpt赋能python:关于怎么把Python改成黑色的SEO文章

关于怎么把Python改成黑色的SEO文章 在当今数字化时代,SEO已经成为了数字营销策略中非常重要的一部分。而在内容创作方面,黑色SEO占据着很大一部分。黑色SEO指的是通过一些不可取的手段,来获得搜索引擎排名的提升,以获取更多的流…

chatgpt赋能python:用Python更简单地替换句子中的单词

用Python更简单地替换句子中的单词 简介 Python是一种流行的编程语言,因其易于阅读和编写代码而闻名。它拥有许多强大的功能和库,其中一个非常有用的功能是如何替换句子中的单词。在今天的数字时代,SEO变得越来越重要,其中一个关…