当前位置:网站首页>独立开发,不失为程序员的一条出路
独立开发,不失为程序员的一条出路
2022-07-05 16:50:00 【小灰】
程序员不是只能服务于企业。
世界上有这么一批程序员,他们既是开发,又是产品经理,既是前端,又是后端。他们仅仅依靠个人的力量,发布了一款款别出心裁的游戏和应用。这些人有个名字,叫做独立开发者。
小灰有一位朋友就是一名成功的独立开发者,名叫徐开源,光听他的名字就很有开源分享精神。接下来让我们听一听他的故事,后文中的“我”不是小灰,而是指这位朋友。
总有那么一些人,对写代码这件事情本身,不那么感兴趣;又或者疲于在天天在公司里面写各种各样的业务逻辑,上午和产品经理扯皮,下午和测试同学扯皮。总感觉一点自己的时间也没有,无论是学习充电还是约会娱乐。
笔者本人,就是这样一个典型。
我曾经也算是大公司的程序员,做了一段时间的 iOS 开发。后来从公司辞职,完全自由职业,不接外包,到现在做了大概有一年的独立开发者。现在我可以掌握自己的时间,收入也比以前的工资高了几倍。希望我的经历可以给不想上班的你一点启发。
我的经历
我大学的专业是计算机科学与技术,但是在学校的时候学的 Java、C++ 一类的,我自己是一点也不感兴趣,说实话也没怎么学会。倒是还去蹭过宏观经济学的课。
后来家里支持,给买了一台 MacBook,然后我开始学着做 iOS 开发,看见能有一款应用按照我自己的想法运行起来的时候,我着实是激动了一段时间,不睡觉的时候基本都在敲代码。
本来以为这只是一个开始,我以为我后面会变成全栈工程师。没想到直到毕业,我一直在干这件事 —— 独立开发。
简单说一下这个过程就是:
- 截止到本科毕业前,我完全靠自己(设计、推广等工作不借助任何人帮助),在 App Store 发布了超过 10 款应用,下载量超过了十万,然而没赚到什么钱。
- 我的开发技术仍然一般般,但是因为有东西可以写到简历上,有幸去阿里实习了一圈
- 这段实习给我的最大感受就是,996 太恐怖了,要是独立开发能养活自己多好
然而现实并不理想,毕业之后还是老老实实去上班了。感受过下班回家又累又困,感受过周末还没开始就像是要结束了,感受过想要升职却不知道自己能怎么办。然后我就裸辞了。
裸辞后的第一个月,我靠自己的 App 赚了 3k,这就是当时那个月的全部收入。
到 2018 年末,我开始有一次单日收入超过 30k 了。 辞职后,我的应用被 App Store 推荐过两次,还有一款应用做到了 App Store 中国区付费榜第一名。
没有什么很大的成就,但我终于时间自由了。如果你对这个过程感兴趣,觉得和你的愿景有一些重合,你可以继续往下看看。
独立开发到底靠谱不靠谱
这个问题有点大,我觉得可以分两部分来说:
- “我” 适合不适合干这件事
- 如果我也想做独立开发,怎么入手
先说第一个问题。
很多人认为,独立开发强调自律,在公司是被逼着干活(当然可能不是被人逼迫,是被自己要拿到奖金、要升职这些事逼迫),自己干就要逼着自己找推广资源、一次次更新产品什么的,好像不自律确实不行。
但我觉得这只是一个结果,不是原因。
我觉得要做独立开发这件事,首先你要确保自己不仅仅是对开发感兴趣,虽然在具体执行上,独立开发很多时候确实是在写代码,但是工程师是实现思维,遇事先想怎么把这东西做出来,但是做产品其实是用户思维和商业思维,“这东西有什么价值,会不会有人用,能不能赚到钱。”
- 对做产品、创造事物有兴趣
- 真心想赚钱
- 不想当螺丝钉,想自己主导自己
以上三点,至少要符合一点,我觉得才能把独立开发这事干起来,如果你只是对写代码感兴趣,那可能还是上班升职更适合你。
我见过已经结婚生子,还敢裸辞自己独立开发的,还做成了的。也见过刚毕业就是不想上班,就自己做产品的,但是却没做起来。
所以这事重点不在于你是不是自律、是不是反感上班,而是你就事论事,把独立开发这个事本身做好,你的兴趣、动力,能不能匹配上用户的需要,市场的需要。
再说第二个问题,怎么入门独立开发,有这么几点我觉得挺重要:
- 具备最基础的开发能力,保证产品可用性。至于性能、包体积什么的,用户真心不 care。以及现有的 BaaS 方案足够成熟,客户端开发不一定非要自己写个后台才行。
- 产品思维。显而易见,你想做个产品,希望有用户来用,那你当然要有产品思维,一共也就那么多技巧,只不过这事没那么复杂,速成极快。想要成为顶级产品经理当然很难,但你不一定要做到那个地步。
- ASO,也就是如果更容易地让用户可以搜索到你的应用,这个其实非常容易学习,,可惜很多人一直不重视、不了解这个事,导致盈利困难。
- 主观上重视推广这件事。如果你觉得把东西做好,就会自动有人付费来用,这个概率不会太高。当然口碑也很重要。
最后
从大二的时候做出第一款自己的应用,完全不懂怎么推广、怎么赚钱。
到现在了解关于独立开发的各个方面的细节,我踩了不知道多少坑,当然是我自愿的,唯一的目标是:解放自己的时间,拥有一份 ”睡后收入“。
现在的我,越来越像一个产品经理+产品运营,但我自己认为,我只是一个 ”自由的程序员“,偷学了产品经理们的技艺 :)
边栏推荐
- Three traversal methods of binary tree
- [Jianzhi offer] 62 The last remaining number in the circle
- mysql5.6解析JSON字符串方式(支持复杂的嵌套格式)
- 关于mysql中的json解析函数JSON_EXTRACT
- High number | summary of calculation methods of volume of rotating body, double integral calculation of volume of rotating body
- Thoughtworks 全球CTO:按需求构建架构,过度工程只会“劳民伤财”
- About JSON parsing function JSON in MySQL_ EXTRACT
- Judge whether a number is a prime number (prime number)
- Practical example of propeller easydl: automatic scratch recognition of industrial parts
- 33: Chapter 3: develop pass service: 16: use redis to cache user information; (to reduce the pressure on the database)
猜你喜欢
一个满分的项目文档是如何书写的|得物技术
33: Chapter 3: develop pass service: 16: use redis to cache user information; (to reduce the pressure on the database)
干货!半监督预训练对话模型 SPACE
URP下Alpha从Gamma空间到Linner空间转换(二)——多Alpha贴图叠加
Etcd 构建高可用Etcd集群
国内首家 EMQ 加入亚马逊云科技「初创加速-全球合作伙伴网络计划」
【剑指 Offer】63. 股票的最大利润
Embedded -arm (bare board development) -1
Tips for extracting JSON fields from MySQL
Copy mode DMA
随机推荐
Using C language to realize palindrome number
Embedded-c language-6
Mysql5.6 parsing JSON strings (supporting complex nested formats)
Redis+caffeine two-level cache enables smooth access speed
基于51单片机的电子时钟设计
The second day of learning C language for Asian people
NPM installation
张平安:加快云上数字创新,共建产业智慧生态
URP下Alpha从Gamma空间到Linner空间转换(二)——多Alpha贴图叠加
一文了解Go语言中的函数与方法的用法
2022 年 Q2 加密市场投融资报告:GameFi 成为投资关键词
深入理解Redis内存淘汰策略
dried food! Semi supervised pre training dialogue model space
C (WinForm) the current thread is not in a single threaded unit, so ActiveX controls cannot be instantiated
菜刀,蚁剑,冰蝎,哥斯拉的流量特征
Judge whether a string is a full letter sentence
CMake教程Step6(添加自定义命令和生成文件)
WR | Jufeng group of West Lake University revealed the impact of microplastics pollution on the flora and denitrification function of constructed wetlands
Little knowledge about C language (array and string)
VBA驱动SAP GUI实现办公自动化(二):判断元素是否存在