软件工程之美
宝玉
Groupon资深工程师,微软最有价值专家
立即订阅
6741 人已学习
课程目录
已完结 54 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 你为什么应该学好软件工程?
免费
特别放送 | 从软件工程的角度解读任正非的新年公开信
学习攻略 | 怎样学好软件工程?
基础理论 (9讲)
01 | 到底应该怎样理解软件工程?
02 | 工程思维:把每件事都当作一个项目来推进
03 | 瀑布模型:像工厂流水线一样把软件开发分层化
04 | 瀑布模型之外,还有哪些开发模型?
05 | 敏捷开发到底是想解决什么问题?
06 | 大厂都在用哪些敏捷方法?(上)
07 | 大厂都在用哪些敏捷方法?(下)
08 | 怎样平衡软件质量与时间成本范围的关系?
“一问一答”第1期 | 30个软件开发常见问题解决策略
项目规划篇 (8讲)
09 | 为什么软件工程项目普遍不重视可行性分析?
10 | 如果你想技术转管理,先来试试管好一个项目
11 | 项目计划:代码未动,计划先行
12 | 流程和规范:红绿灯不是约束,而是用来提高效率
13 | 白天开会,加班写代码的节奏怎么破?
14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决
15 | 风险管理:不能盲目乐观,凡事都应该有B计划
16 | 怎样才能写好项目文档?
需求分析篇 (5讲)
17 | 需求分析到底要分析什么?怎么分析?
18 | 原型设计:如何用最小的代价完成产品特性?
19 | 作为程序员,你应该有产品意识
20 | 如何应对让人头疼的需求变更问题?
“一问一答”第2期 | 30个软件开发常见问题解决策略
系统设计篇 (4讲)
21 | 架构设计:普通程序员也能实现复杂系统?
22 | 如何为项目做好技术选型?
23 | 架构师:不想当架构师的程序员不是好程序员
24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?
开发编码篇 (7讲)
25 | 有哪些方法可以提高开发效率?
26 | 持续交付:如何做到随时发布新版本到生产环境?
27 | 软件工程师的核心竞争力是什么?(上)
28 | 软件工程师的核心竞争力是什么?(下)
29 | 自动化测试:如何把Bug杀死在摇篮里?
30 | 用好源代码管理工具,让你的协作更高效
“一问一答”第3期 | 18个软件开发常见问题解决策略
软件测试篇 (4讲)
31 | 软件测试要为产品质量负责吗?
32 | 软件测试:什么样的公司需要专职测试?
33 | 测试工具:为什么不应该通过QQ/微信/邮件报Bug?
34 | 账号密码泄漏成灾,应该怎样预防?
运行维护篇 (6讲)
35 | 版本发布:软件上线只是新的开始
36 | DevOps工程师到底要做什么事情?
37 | 遇到线上故障,你和高手的差距在哪里?
38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
39 | 项目总结:做好项目复盘,把经验变成能力
“一问一答”第4期 | 14个软件开发常见问题解决策略
经典案例解析篇 (7讲)
40 | 最佳实践:小团队如何应用软件工程?
41 | 为什么程序员的业余项目大多都死了?
42 | 反面案例:盘点那些失败的软件项目
43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?
44 | 微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?
45 | 从软件工程的角度看微服务、云计算、人工智能这些新技术
“一问一答”第5期(内含彩蛋) | 22个软件开发常见问题解决策略
结束语 (1讲)
结束语 | 万事皆项目,软件工程无处不在
软件工程之美
登录|注册

41 | 为什么程序员的业余项目大多都死了?

宝玉 2019-06-06
你好,我是宝玉。对于不会写程序的人来说,想做一个软件项目,就得找程序员帮忙写程序。而对于程序员来说,想做一个软件项目,写程序不是问题,产品设计自己也能做一点。所以对于很多程序员来说,一旦有了一个想法,可能就会利用工作之外的时间,做点自己的业余项目(也叫 Side Project)。
然而大部分项目,都是怀着美好的期望开始,结果做到一半就无疾而终,就算少数坚持到了上线发布,最终还是因为少人问津而不得不放弃。
所以今天将带你一起分析一下,为什么程序员的业余项目大多都死了?怎么样可以借助学习到的软件工程知识提升业余项目成功的概率?

为什么程序员的业余项目大多都死了?

作为程序员,我也很热衷于做业余项目,周围的程序员朋友们也有不少做业余项目的案例,通过对这些案例的观察和分析,我觉得程序员做的业余项目,主要死于以下这些情况。

1. 想法大,时间少

我有个朋友,前一段突然有了一个想法,想做一个类似于 Excel 的基于网页的在线电子表格程序,这是个很大的想法,毕竟微软和谷歌都是有一个团队在完成这样的项目。
但他觉得如果只是实现最核心功能还是可行的,于是激情满满地找资料,写原型代码。然而现实还是很残酷的,他上班就忙,经常加班,下班还要带娃,留给自己的时间其实不算多,一段时间看不到成果后,慢慢的激情就消逝了,这个项目也就不了了之了,而现在他已经又在尝试其他项目了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件工程之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(11)

  • 熊斌
    今年年初,利用业余时间接了几单,主要是微信小程序开发,接活儿时以为自己无所不能,接下来时前端的各种问题搞得自己燋头烂额(ps.我是Java开发,平时工作接触最多的是保险系统,都是web端的),无奈之下在网上找外援,最后找了一个前端大拿表示愿意低价帮我写小程序页面。

    大拿只是帮我写出客户想要的页面效果,接口以及后台都是我自己来搞(ps.后台我用PHP写的,在此之前没玩过PHP)。

    现在两个小程序已经上线,客户在正常使用,免费运维一年!手里还有一个小程序,还在开发当中,页面基础版本也是大拿写的,我在他的基础上修改,调通接口,后台是客户自己用springboot做的。

    刚开始做的时候,很容易陷入到技术细节中,眼看时间一分一秒过去了,进度还是纹丝未动,真是吃不香睡不着!还好,我媳妇是做项目管理的,提醒我以MVP的思维干活儿…刚推上线时各种Bug,看着心焦!周末宅在家里改BUG,晚上下班回家改BUG……

    感觉自己再也不想接私活儿了,真得累心,不过还好,熬过来了!

    只要客户结账,就是对自己最大的认可,可能投入与收获不成正比,想想还是值得的,自己干私活儿就是练手的,赚大钱就别想了!

    作者回复: 👍很有意思的分享。

    想通过私活赚钱是有点困难,但是有项目经验的收获也是很有价值的。

    我刚毕业也有过一次类似经历,后来决定不再做私活了,觉得得不偿失,还是通过业余项目提升技术更有价值。现在看来还是很正确的,只是做一些提升技术的业余项目不至于影响本职工作,同时业余项目的经验也可以帮助应用在工作上,让我在工作上有更多提升。

    2019-06-17
    4
  • hua168
    我有两三个同事,用业余时间兼职做程序开发。
    还要自己去找美工,有时候赶工去找前端。
    一个项目才赚那么几千块钱。
    我喜欢快钱,直接帮别人解决服务器故障,解决完就给钱。
    优点是来钱快,缺点就是收入不稳定。
    以前一直想找一个可以帮别人公司做运维的,发现他们给的工资都比较低,而且很多要求。
    然后我就没答应。
    以前也做过承包,别人公司网络,但是感觉也没有赚到什么钱。因为网络又有问题,上着班就要请假去帮别人解决。😂

    作者回复: 业余项目不一定要接私活,可以做一些也许短期不赚钱,但是长期对你有价值的事情。比如说通过做一个开源项目提升能力和影响力,虽然不赚钱,但长远看收获很大。

    2019-06-07
    4
  • yellowcloud
    宝玉老师您好,对于一个程序员来说,新技术和新框架的诱惑是非常大的,一般也想在业余项目中采用以下新技术去试试水,然后您也提到了就算做业余项目也最好建议采用成熟、比较熟悉的技术。那如何权衡业余项目具体采用的技术以及框架呢,采用很熟悉的技术有感觉没有得到锻炼,采用新技术风险又比较大。

    作者回复: 啊哈,有一点我没讲清楚,就是你的业余项目的目标是什么?

    如果你的目标就是锻炼技术,而不是为了做一个有用的产品,那么就用你喜欢的技术就好了:)

    2019-06-06
    4
  • 刹那
    我在这里立一个flag。
    今年过年之前要开发出一个安卓的网络收音机,针对家里的老年人用的,因为现有的无线电收音机信号太差了,用不了。
    数据源使用喜马拉雅的接口。
    一期功能,整个界面只有几个常用电台,先写死就那么几个,点那个播哪个。再加一个关闭按钮。
    总之越简单越好。
    没做过安卓开发,也不考虑用flutter了,直接用JAVA写只在安卓平台运行的。

    作者回复: 👍
    你这个思路是没问题的,先从简单的核心的功能做起,先交付可用版本,然后不断迭代,手机反馈后不断完善。

    从计划上来说有deadline,这个deadline之前也可以设置一点小里程碑,这样更好跟踪和调整。

    希望早日听到你软件发布的好消息!

    2019-10-08
    2
  • kirogiyi
    人有一种惰性,想起来容易,做起来难,坚持起来更难。回想这么多年与自己一起共事过的程序员同事,在和他们的交谈中,发现他们很多想法都是切实可行的,新颖而奇特,如果按部就班实施起来的话,也是一些相当不错的项目,但最后没有几个人能真正的坚持做好做完,理由是没资源、没时间、耗不起,半途而废成了家常便饭。

    作者回复: 是的,知易行难!我就算懂那么多道理,自己也一样有很多失败的项目🤦‍♂️

    2019-06-10
    2
  • 智超
    说到开放实验室,是时候亮出校友的身份了

    作者回复: 🤝谢谢校友支持,我打算过一段升级一下开放实验室🤦‍♂️

    2019-06-10
    2
  • 纯洁的憎恶
    抛弃妄念,脚踏实地。切忌追求过于宏大的目标、过于新奇的技术,而最终难以落地。做事要有边界和约束,向死而生才有效率。专业短板可以尝试自行补齐,也可以求助他人取长补短。

    作者回复: 👍感谢分享补充!

    2019-06-09
    1
    2
  • 技术乞丐
    感觉很多时候大家都在造轮子,造轮子对提高技术帮助很大,觉得如果大家把想法分享出来可能会有其他想法,比如同一个软件想法可能此时此刻就从很多程序员脑海中闪过,如果大家回家了都去实现同一个想法,显然最后出来的项目只会有极小的比例得到关注

    作者回复: 赞同,很多项目只是在造轮子,虽然技术有帮助,但是获得关注不高。

    还是看项目目的。

    如果目的就是为了提高技术,造轮子项目倒也不失为好的实践,因为可以参考的多。

    如果项目的目的是要有很多关注,那就不仅仅是技术问题了。

    2019-11-17
    1
  • 不靠谱的琴谱
    14年的想法,19年迈出了第一步。

    作者回复: 我的经验就是只要动手做了,哪怕失败了,也一样能收获很多!

    2019-08-31
    1
  • 果然如此
    我的微信小游戏业务项目:方块游戏世界,包含俄罗斯方块的经典玩法和拖放玩法,欢迎试玩!呵呵

    作者回复: 👍谢谢分享

    2019-06-06
    1
  • 我不是矿长
    有意思
    2019-08-05
收起评论
11
返回
顶部