浅谈Side Project与编程语言

TL;DR

Side Project分为两类:

  • 以学习为主要目的的项目
  • 以设计为主要目的的项目

Side Project所使用的编程语言也分为两类:

  • 以性能/细节为核心的编程语言
  • 以开发效率为核心的编程语言

Side Project

Side Project,可以理解为工作之余或闲暇生活中编写的项目。这类项目通常不受公司/学校/团体的制约,通常是个人项目。举例来说,一个程序员在公司,在公司要求之下,编写了一套人员信息管理软件;而这个程序员在摸鱼的时候,编写出来了一个Markdown编辑器,又利用下班时间写出来了一个图片管理软件。那么,这个Markdown编辑器和图片管理软件就称作Side Project。

Side Project在开发初期通常有几个特点:

  • 个人开发。至少最开始,项目的诞生源自某个人的灵感。
  • 代码具有单一来源性。这类项目的代码贡献,通常来自于某个人或某几个人。

这些描述,希望给您带来一个有关Side Project的初步印象,不过,本文并不聚焦于定义,而是聚焦于分类。

Side Project分为两类:

  • 以学习为主要目的的项目
  • 以设计为主要目的的项目

第一类项目通常也被称为“造轮子”,通常是实现一些已有成熟方案的软件,比如文本编辑器、操作系统、编译器等。编写这类项目的目的是:通过编码过程,学习某一类软件的运行方法/底层逻辑,并积累编程经验。比如,很多学生会在闲暇之余,照着教材知识编写自己的操作系统,这就是为了学习操作系统的运行逻辑,巩固课上学到的知识。这类项目通常不是为了给用户使用的,生命周期比较短——在搭建起一个可以运行的demo之后,这类项目的开发也宣告结束了,不会有太多的后续维护。

第二类项目则是为了给用户使用的。这类项目通常诞生于某个具体的需求,是为了解决问题而生的。比较有代表性的例子是Linux系统,它是Linus在业余时间开发的一个系统,旨在解决Minix系统的一些问题。这类项目生命周期比较长——需要不断地迭代、更新以匹配用户的需求。这类项目通常有商业性的潜力。

简而言之,第一类项目是课内大作业,第二类项目则是产品。不过,课内大作业未尝不能成为产品,关键之处在于其能否契合住用户的需求。

编程语言

Side Project所使用的编程语言也可以氛围两类:

  • 以性能/细节为核心的编程语言
  • 以开发效率为核心的编程语言

这两类编程语言的代表语言为C和Python。

以学习为主要目的的项目通常使用以性能/细节为核心的编程语言,旨在剖析最深层次的细节;而另一类Side Project则主要应用以开发效率为核心的编程语言,旨在达成易维护、速编写的目标。

文章作者:
文章链接: https://www.coderlock.site/2025/07/27/浅谈Side-Project与编程语言/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 寒夜雨