程序员如何开始做一个自己的 Side Project?

此系列文章我们开始聊一些软件开发人员如何开始动手写一些自己项目(Side Project)的思路与方法,以及过程中可能需要准备的知识,并分享一些相关的资源给大家。
1. 什么是 Side Project
Side Project 对应的中文是副业、业余项目或小项目的意思。
其实大家目前接触到的很多成熟的商业项目都是从一些 Side Project 通过不断的迭代与持续地优化而来的。
比如大家常用来发表文章的简书,就是用一个 Side Project 发展而来的。
简书团队在做简书之前,主业是做一款面向小型团队的协作软件,后来林立发现互联网上还没有支持 Markdown 的在线笔记本,就自己设计了一款,然后让公司新来的一个实习生去编程实现,这就是简书的原型。2012 年 9 月简书团队放弃了之前已投入 2 年多的产品,把简书项目扶正,最终凭借简书这个 Side Project 帮公司完成了新生。
而对于我们个人而言,也可以通过充分利用自己的闲暇时间以及目前极其方便的互联网,通过资源协作完成一些自己的 Side Project。
其实我经常在我们的知识星球的微信群里鼓励大家多多动手写自己的项目。

自己动手做一些 Side Project 可以获得非常多的益处。
- 是将你掌握的知识展示出来的最好的方式;
- 是最好的利用你的闲暇时间的方式;
- 坚持孵化一段时间后,就可以是你简历中非常有价值的加分项,特别是对于应届毕业的朋友;
- 如果后期要创业,你肯定会从你的 Side Project 开始做起;
- 你还可以进一步研究 Side Project 的盈利模式,实现项目的盈利。
注意,你所在的公司的地位常常可能会给你错觉,以为那就代表了你的地位。其实只有你自己的项目才是你最好的代表,也是最好的证明。
2. 哪里寻找 Side Project 的灵感
做 Side Project 最好的方式就是你从身边的小需求做起,从大家抱怨的地方寻找机会,别人抱怨不方便、不舒服的地方都是你寻找需求的地方。
比如打车不方便有了滴滴,外卖不方便有了美团,物流时效有问题有了顺丰等等,当然我们也不是从一开始就做这么大需求的项目,可以就从非常小的需求做起,去满足需求,用一种极致的精神去满足需求。
如果你实在没有什么项目灵感,或者想寻找一些东西激发一下你的灵感,下面我给大家推荐两个好的寻找创业项目灵感的站点。
2.1 IT桔子
IT桔子(itjuzi.com)是泛TMT领域的创业投资数据库和商业信息服务提供商,致力于打造IT互联网企业以及投资机构的投融资数据库,为投资人、创业者或者企业提供最新项目、投资收购新闻、行业调研、商务线索、国外项目等服务的信息数据服务商。
你可以在里面寻找到一些最新的创业公司以及他们的孵化项目,帮助你挖掘出一些创业项目需求。

2.2 Product Hunt
网址:https://www.producthunt.com/
Product Hunt 是一个供用户分享和发现新产品的网站。你可以提交自己或者别人的新作品,网站会按照当天各产品获得票数降序显示。
应该是全球最大的创新、创业项目发布站点了,每天都有很多新奇的项目、奇特的需求,非常值得大家去上面每天浏览,上面很多都是软件工程师发布的 Side Project。

下一篇文章我们继续聊聊如果大家已经确认好了项目的需求以及方向,那么我们如何快速地开始项目的推进呢?
DevOpen.Club Pro 高质量软件开发分享讨论群,汇聚了近 1000 名各行各业的软件开发人员,供朋友们分享高质量资源、讨论软件开发问题解决方案的社群。
任何技术都不是限制,我们最终目的是将技术转化成收入,实现财务自由。
微信群里已成功孵化出多款创业项目、Side Project 以及已经上线运营的项目。
程序员如何开始做一个自己的 Side Project?的更多相关文章
- 一个老牌程序员说:做Java开发,怎么可以不会这 20 种类库和 API
- Coding girl一个老程序员谈到的一个女程序员的故事
因为有人说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件 ...
- .NET程序员我是如何通过一个产品在2年内买车买房
刚开始写博客不足之处望大家多多指点,少一些质疑多一些帮助,我们就能成为朋友. 我写博客的目的其实很简单就是为了分享知识,如有幸能申请当MVP那是最好不过了,这个过程对于“大牛”来说很快,但对于我来说估 ...
- 程序员过关斩将--redis做消息队列,香吗?
Redis消息队列 在程序员这个圈子打拼了太多年,见过太多的程序员使用redis,其中一部分喜欢把redis做缓存(cache)使用,其中最典型的当属存储用户session,除此之外,把redis作为 ...
- 90 % Java 程序员被误导的一个性能优化策略
我们经常看到一些 Java 性能优化的书或者理念,说不要在循环内定义变量,这样会占用过多的内存影响性能,而要在循环外面定义.接触 Java 这么久以来,相信很多 Java 程序员都被这种代码性能优化策 ...
- 前端程序员经常忽视的一个 JavaScript 面试题
题目 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { ...
- 前端程序员经常忽视的一个JavaScript面试题
在网上找到一个有关JavaScript的面试题,特整理如下: function Foo() { getName = function () { alert (1); }; return this; } ...
- 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)--转
出处:http://blog.csdn.net/xxd851116/archive/2009/06/25/4296866.aspx [前面的话] 在网上经常看到有人对request.getSessio ...
- 从程序员的角度设计一个Java的神经网络
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 来自维基百科: 人工神经网络(ANN)或连接系统是受生物神经网络启发构成生物大脑的计算系统.这样的系统通过考虑例子来学习(逐步提高性能)来完成任 ...
随机推荐
- Linux基础命令第一天
一.命令行bash基本操作 1,shell 用户不能直接操作内核,所以用户操作通过shell传递给内核,Linux下叫shell,就相当于Windows下的cmd shell分为两种: GUI:图形界 ...
- 40K刚面完Java岗,这些技术必须掌握
学习是一份苦差事,这句话真的不是说说而已,真的是你认真学习过,才会懂得,学习是多么的辛苦,这点我深有体会,但是我还是想说,没办法,想要更好的生活,你就要不断地努力学习. 所幸的是,程序员这个行业,学习 ...
- mybatis报错:Caused by: java.lang.IllegalArgumentException: Caches collection already contains value for com.crm.dao.PaperUserMapper
一.问题 eclipse启动时报下面的错误: Caused by: java.lang.IllegalArgumentException: Caches collection already cont ...
- C# System.Runtime.Caching使用
System.Runtime.Caching命名空间是.NET 4.0新增的,目的是将以前的.NET 版本中的System.Web.Caching单独提取出来,独立使用,这样web和其他.NET程序如 ...
- 升级本地部署的CRM到Dynamics 365及部分新特性介绍。
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 学习安卓开发[3] - 使用RecyclerView显示列表
在上一篇学习安卓开发[2] - 在Activity中托管Fragment中了解了使用Fragment的好处和方法,本次记录的是在进行列表展示时RecyclerView的使用. RecyclerView ...
- MongoDB分片 在部署和维护管理 中常见事项的总结
分片(sharding)是MongoDB将大型集合分割到不同服务器(或者说集群)上所采用的方法,主要为应对高吞吐量与大数据量的应用场景提供了方法. 和既有的分库分表.分区方案相比,MongoDB的最大 ...
- C#基础第二天
变量 声明的语法格式 数据类型 变量名; 常用数据类型 int 整数 值类型 double 小数 值类型 char 字符 引用类型 string 字符串 引用类型 decimal 金钱小 ...
- Linux PXE无人值守网络装机
Linux PXE无人值守网络装机 一.实验环境: 2台Linux系统(RHEL6.5版本),1台作为:PXE远程安装服务器(安装dhcp服务.ftp服务.tftp服务),另1台作为:客户端(未装RH ...
- git 命令添加整个文件夹以及文件夹下的内容
对于一个文件夹提交到服务器上,喜欢用 git add .(后面为".") 这种情况对于一个文件夹的还是很有用的,但出现了多个不同文件夹后,要分别提交就不能这么用了, 可以使用如下指 ...