怎么开始一个属于自己的小“项目”呢?

2022-02-12 15:39:11 +08:00
 rsonghao

工作之余总想写点什么,像别人写点什么小玩具、工具类、个人 APP 之类的东西。但是总是不知道要怎么开始。

很大的原因是不知道要开发一个什么东西,只是单纯想写写属于自己的代码。就像拍照一样,虽然不能将自己的照片称之为什么艺术品,但是它记录了我的生活。

另外,顺便想再问问看源码、看开源项目又该怎么开始呢?

11468 次点击
所在节点    程序员
71 条回复
silvernoo
2022-02-13 16:13:40 +08:00
新建一个文件夹
documentzhangx66
2022-02-13 16:35:33 +08:00
如果,你是一个初学者,想成为大佬。那么建议,你从开发板开始,一点一点搭建电路、系统、各种硬件接口、各种高级语言。

这样从底层电路、汇编、接口,再到高层虚拟化、分布式、机器学习,你等于把整个计算机,从本科到研究生阶段的东西,都做了一遍简单的实验,这对你的技能的成长,很有帮助。

等你把这一套都做完,你就成了传说中的王工、张工。
ICKelin
2022-02-13 20:35:56 +08:00
可以分享下我的经历,我有个加速器是从 2018 年开始写的,还在不断的迭代优化,这个项目于我而言相当于一份工作带来的价值,如果你对过程不感兴趣可以直接拖到最后。

第一个版本:只是想把工作中自己没机会参与的项目涉及到的技术学习一下,写点东西,恰好手上有个树莓派作为网关,当时的想法是写个加速器在上面运行,于是有了第一个版本的基于威 pn 技术的加速器,但是性能不太好,于是基于 kcp 做了一次优化。

第二个版本:支持内网穿透
第一版实际上提供了一种能力,能够在公有云上通过内网 IP 访问到客户端,那么自然而然的就实现了内网穿透,当时写了一个支持内网穿透的功能,后面把这个功能单独提取出来成了一个产品并发布到网上给网友们使用,当然这又是另外一个事故了,自此之后内网穿透的功能就在这个项目当中被彻底剔除了。

第三个版本:基于 iptables 的 DNAT
在之前的加速器当中都是用了基于 tun 设备的威 pn 技术,这是一个 ip over ip 的技术,这里会有个 tcp 的 rtt 就会比较长,优化的方法是通过快速握手,于是使用 iptables 把流量劫持到本地的端口,当时参考了 shadowsocks-go 的实现,不过很遗憾这项技术对 udp 不是很友好。

第四个版本:基于 tproxy 技术
背景是当时自己换了份工作,从一个网络开发转成基础服务开发的工程师,当时首次接触到 k8s ,docker 之类的东西,于是就想研究研究这玩意的一些网络实现,最后了解到了一项技术,叫 tproxy ,当时感觉可以拿 tproxy 来解决上个版本当中的 udp 的问题,于是基于 tproxy 优化开发了一个新的版本,并且一直使用至今。

未来:
1. 最近在考虑使用 ebpf 技术去替换 tproxy ,ebpf 也是最近了解到的一项技术。

收获:
1. 收获了不少网友,给了我不少帮助
2. 收获了不少 offer ,当然包括现在的公司
但是最重要的还是教会我坚持做一件事确实还是会有收获的。

总结:
1. 首先是找到自己感兴趣的点,既然是业余时间开发的,肯定是做自己感兴趣的事,以此作为入口,刚开始的版本肯定都是很挫的,大名鼎鼎的 Netflix 也是从租碟开始的。
2. 不断的优化程序,如果能产品化的话更好

当然现在项目也还有很多问题,处于闲暇时候会翻来改改的状态。
Cola98
2022-02-13 20:58:34 +08:00
其实做自己的小项目都是解决自己的需求,比如简单的 TODO ,虽然有很多的 TODO 软件可以选择,但是有些肯定不是自己想的那些或者功能太多,这个时候就可以自己写一个 TODO ,后续如果有新的想法又可以接着改改。
SuperMild
2022-02-13 21:05:26 +08:00
@laravel 后来我又想可能不是大家想看的干货,就中断了没写,晚上换了个思路才又写出来 https://v2ex.com/t/833597
supercaizehua
2022-02-14 00:14:26 +08:00
这个帖子的回答解答了我很多疑问, 感谢楼上诸位
ericgui
2022-02-14 04:29:19 +08:00
我发自肺腑的想建一个 xx 网站, 我不在国内,所以没问题。但国外讲究版权,不能搞盗版,所以这枚久也没建起来。
xzysaber
2022-02-14 10:09:19 +08:00
@ICKelin
ebpf 也是我今年的目标之一,一是来替换 IPtables 的四层转发(NAT),二个是用来观测网络。
不过我几乎没有写过自己的什么小项目,有点羡慕有小项目的朋友,能同时赚点小钱就更好了。
cosmtrek
2022-02-14 10:30:56 +08:00
从解决自己的问题出发,会比较容易上手,也容易持续下去。因为你就是这个项目的最直接用户,用得爽不爽会逼迫你不断迭代下去。如果实在找不到自己的问题,就可以从自己一直使用的服务出发,看看别人的服务是否让你不爽,如果不爽,那你的切入点就找到了。做个新的产品,改进它。
thevita
2022-02-14 12:36:00 +08:00
mkdir my-little-project
Aindy
2022-02-14 15:23:44 +08:00
@MarkZuckerberg 像我一年前就注册了三四个域名,然后现在东西都没出来,于是白给了一年的钱

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833407

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX