程序员为啥不自己单干?想过,但是

偶尔被问,程序员都能开发公司的软件了,为啥不做个软件自己卖。作为写了近10年代码的程序员,来分享一下这个话题。

据了解,每个程序员都想过去做一款自己的产品去赚钱,包括我。有人只是想过,有人去做过了,也有很多人做成功了。

根据目前软件行业,大概可分3个方向,分别是销售软件产品、运营软件产品、定制开发软件。我根据这3个方向去分析一下程序员单干的可行性与困难。

一、销售软件产品

销售软件产品主要指卖软件源码与提供软件服务平台,客户端软件与网站的SAAS服务都算。主要收入是来源于源码或者软件服务的按月按年订阅。

  1. 首先得有个某某软件,能做什么,比如财务软件金蝶,能实现企业记账。那你的软件能干什么能解决什么问题?这一步就难倒了很多人,因想不出来一个好的业务场景。再就是做技术的,技术越牛的程序员,花在技术上的时间越多,相对的接触其它业务场景就少了。也有很多人比较聪明,能想到一些好的需求点去实现,那些卖的好的软件都是起源于某个人想做什么,可以用软件去提高效率。
  2. 前面一步是要有一个想法,再就是开发了,这一步是程序员最擅长的部分。但是也面临一些问题,单个人比较难开发一个太复杂的系统,你可能会说:那可以招人呀?好,那就假设招人已经完美开发好了。
  3. 现在是销售了,这个你有思路吗?可以想想。坐等客户不现实。自己干,又是从头开始,需要学特别多,还不一定能成。那招人干?如果只出一个想法,开发加销售都招人干,这个事儿能成,那可真是神奇了。假设能行,那这个时候你应该也是一个小规模的公司了,不算单干了。

通过上面3个步骤的心路历程,感觉可行性不高。但是还是有人能干成,复杂的做不了,可以做简单的。

二、运营软件产品

运营软件产品主要是指有一个平台,用户可以注册使用,然后基于平台上用户做变现。大家日常使用最多的应该就是这一类了。

  1. 需要有一个业务模式,想想可以干啥?比如做一个聊天软件,做一个购物网站。发现我能想到的各种场景,基本都已经被人不仅做出来了,还做的很好了。
  2. 开发,作为程序员,这个步骤是最简单的了。
  3. 推广,获取用户,付费推广,如果收入能覆盖支出,那这个事儿就好办了。但是一般情况都有一个烧钱的阶段。作为个人,大概率只能自己使用免费渠道做推广了,难度5颗星。
  4. 变现,用户有了,咋变现,这里套路也好多,同样的用户量,不同的运营策略,收入天差地别,一样难度5颗星。

三、定制开发软件

代表性的就是外包企业,卖人头。很多人都说干外包不好,只能说存在即合理吧,毕竟有那么多客户需求在呢,甲方愿意给钱,你给他实现需求,合情合理。作为程序员个人干来说,要面临的问题:

  1. 能持续接到项目?直接决定了是否能存活。有些程序员可能在用业余时间偶尔接个项目干干。
  2. 能满足甲方进度时间要求?
  3. 所有技术都能实现?
  4. 如果以上问题都能解决,肯定得招人,最终你就是单人发展成软件开发公司了。

从目前(2024年)的市场情况看,这个方式发展很难也很累。因甲方节约预算与同行无底线降价抢单,只会越来越难吧。可能你会说有好项目也可以干干,对的,前提是有好项目。

从3个方向分析程序员为啥不单干,其实是有大把的人单干的。那些软件公司与软件产品都是个人干成的。剩下的在打工的程序员,也是各种原因,比如还没想好业务场景与商业模式。

做个软件产品,尝试运营推广变现。只有这个方向我认为值得业余时间去尝试一下,可以获得技能、经验、朋友、金钱。

会有以下几点收获:

  1. 深入自己的日常生活去发现需求,给生活多一点乐趣,生活也不能只是工作与代码。
  2. 基于自己的技术去实现自己的想法,不仅能多学习到更多的知识,也能获得很大的成就感;程序员一般在同一个岗位干久了,也跟搬砖一样,有点枯燥乏味。没点想法就很难继续提升了,相信干的久的会有这个感觉。
  3. 去尝试做推广获取用户。抱着试试的心态尽量去学习去尝试,这期间肯定能发现很多问题,看看自己能不能想办法解决。这个过程能认识很多志趣相投的朋友,算是开启了另外一扇门吧。
  4. 获得收入。没有也没关系,有一点更好,有很多那说明你适合单个了。
  5. 在这个过程中,赚钱是一方面,但是你肯定不迷茫了,有学不完的技能,也能不断收获成就感。纯粹学技术很枯燥的,因为学了不知道做什么用,就不会去深入了解,学了也容易忘。带着问题去学是效率最高的,问题哪里来?答案是自己制造。

以上是我自己在尝试的过程做出的一点总结。我一直有折腾一些小项目,爱折腾的朋友可以一起交流。

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

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

相关文章

配置VM开机自启动

1. 在此电脑-右键选择“管理”-服务和应用程序-服务中找到VMware Workstation Server服务(新版名称也可能是VMware自启动服务,自己找一下,服务属性里有描述信息的),将其启用并选择开机自动启动 新版参考官方文档&…

蓝桥杯【第15届省赛】Python B组

这题目难度对比历届是相当炸裂的简单了…… A:穿越时空之门 【问题描述】 随着 2024 年的钟声回荡,传说中的时空之门再次敞开。这扇门是一条神秘的通道,它连接着二进制和四进制两个不同的数码领域,等待着勇者们的探索。 在二进制…

ReactRouter

React-Router 概念:一个路劲path对应一个组件component 当我们在浏览器中访问一个path的时候,path对应的组件会在页面中进行渲染路由语法: import {createBrowserRouter, RouterProvider} from react-router-dom// 1. 创建router实例对象并…

【算法刷题 | 回溯思想 02】4.12(电话号码的字母组合)

文章目录 4.电话号码的字母组合4.1问题4.2解法:回溯4.2.1回溯思路(1)函数返回值以及参数(2)终止条件(3)遍历过程 4.2.2代码实现 4.电话号码的字母组合 4.1问题 给定一个仅包含数字 2-9 的字符…

threejs 基础知识点汇总

threejs 基础知识点汇总 之前写了几篇博文,但是我觉得写的不好,我今天再补充一篇还不好的,把基础知识点汇总一下,不写运行的代码了,只写关键代码,但是看了之前我写的那几篇,看这篇的话问题其实不…

jdk17 你还想用ScriptEngineManager来执行js代码?

今天要用java来执行配置表的js代码,用 ScriptEngine javaScriptEngine new ScriptEngineManager().getEngineByName(“javascript”); 一直抛异常:Cannot invoke “javax.script.ScriptEngine.eval(String)” because “javaScriptEngine” is null 网上…

简单瞎搞题(位运算优化背包问题)

题目链接 这可不是瞎搞,出题人是有bear来。查资料时遇见的例题,当练习写一下。做法是位运算bitset优化的背包。 思路: 相当于有 n n n 组,每组选一个物品,然后问最后得到的重量之和是多少。不看位运算优化的话&…

Springboot集成Elastic-job

ElasticJob 通过弹性调度、资源管控、以及作业治理的功能&#xff0c;打造一个适用于互联网场景的分布式调度解决方案&#xff0c;并通过开放的架构设计&#xff0c;提供多元化的作业生态。 1 项目集成 1.1 springboot项目配置 导入依赖&#xff1a; <!--mysql连接基本配…

SSL证书添加与ICP备案,对于SpringBoot的要求

配置了SSL证书之后&#xff0c;在SpringBoot的resources文件夹里的application.properties会添加以下代码&#xff1a; server.port443 不需要添加server.address。不然会报错。 https类型的请求默认在Postman里面不可请求。 经过SSL证书处理的网页&#xff0c;链接中使默认…

【kears】keras使用介绍

文章目录 一.特点二.keras如何支持TensorFlow、CNTK 和 Theano2.1 使用 TensorFlow 后端引擎训练和评估模型2.2 使用 TensorFlow 后端引擎训练和评估模型2.3 使用 Theano后端引擎训练和评估模型2.4 不同深度学习框架如何选择 三.使用步骤3.1 导入库3.2 构建模型3.3 编译模型3.4…

【经验】java时区问题

首先得有一个预备知识 时间戳&#xff1a;指1970-01-01 00:00:00(GMT/UTC)起到当前的毫秒数。与时区无关&#xff0c;不同时区同一个时刻的时间戳是相同的。所以&#xff0c;时间戳不受时区影响。但是&#xff0c;不同时区的国家同一个时间戳显示的日期不同&#xff0c;所以同一…

解锁区块链技术的潜力:实现智能合约与DApps

在数字时代&#xff0c;区块链技术正迅速成为重塑多个行业的革命性力量。从金融服务到供应链管理&#xff0c;再到数字身份验证&#xff0c;区块链提供了一种去中心化、安全和透明的数据处理方式。在本文中&#xff0c;我们将深入探讨区块链技术&#xff0c;特别是智能合约和去…

LDRA Testbed软件静态分析_常见问题及处理

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建 LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果 LDRA Testb…

水经微图IOS版5.2.0发布

随时随地&#xff0c;微图一下&#xff01; 水经微图&#xff08;简称“微图”&#xff09;IOS新版已上线。 在该版本中主要新增图层树节点排序功能、常规&#xff08;矩形、圆、椭圆、扇形&#xff09;绘制功能、地形夸张等主要功能。 当前版本 当前版本号为&#xff1a;5…

c++容器:string的模拟实现

文章目录 定义命名空间和类构造函数拷贝构造析构函数返回string的大小和容量operator[]operator迭代器beginendreservepush_backappendoperatorinserterase 定义命名空间和类 namespace shh {class string{private:char* _str nullptr;size_t _size 0;size_t _capacity 0;}…

鹏哥C语言复习——数据存储

目录 版本差异&#xff1a; 数据类型&#xff1a; 进制表示&#xff1a; 大小端储存&#xff1a; 数据运算&#xff1a; 浮点型在内存中的存储&#xff1a; 版本差异&#xff1a; debug和release的区别&#xff1a; 在栈区开辟地址一般是先从高地址开辟 debug创建数组和单…

代码随想录算法训练营33期 第三十六天 |435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 class Solution { public:static bool cmp(const vector<int>& a, const vector<int>& b){return a[0]<b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end()…

蓝桥集训之修理牛棚

蓝桥集训之修理牛棚 核心思想&#xff1a;贪心 先把所有牛棚合成一块木板然后将所有间隙大小求出 排序找到最大的n-1个总长度 - n-1个间隙 得到剩下n个木板总长度 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const i…

C#入门理解设计模式的6大原则

**设计模式的原则是指导设计模式创建和应用的基本原则&#xff0c;这些原则有助于创建灵活、可维护且可扩展的软件系统。**1. 单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09; 单一职责原则指出一个类应该只有一个引起它变化的原因。换句话说&…

Project Euler_Problem 172_Few Repeated Digits_动态规划

原题目&#xff1a; 题目大意&#xff1a;18位数里头&#xff0c;有多少个数&#xff0c;对于每个数字0-9&#xff0c;在这18位里面出现均不超过3次 111222333444555666 布星~~ 112233445566778899 可以~~ 解题思路&#xff1a; 动态规划 代码: ll F[19][3000000];void …