十九岁的栈帧:回溯那些改变我人生的函数调用


从2022年写出第一个程序到现在,也有三四个年头了。今天是我的十九岁生日,也正好借此机会,回顾一下我走上编程这条路的过程和经历。


第一次见到代码,好像还是在我初中那会儿,有次在跟QQ上的网友玩一个投骰子的游戏,群里有个大佬说他会拿Python写一个骰子,然后给出了类似于下面的代码:

1
2
3
import ramdom
a = random.randint(1, 6)
print(a)

现在看来这个程序很简单,只是单纯地输出一个1-6之间的随机整数,但当时给了我不小的震撼:“三行字(当时甚至不知道这个叫代码)就可以让电脑给我一个随机的数字!”

震撼之余跟大佬聊了很久,也从此对Python这么个编程语言有了初识。


转眼之间到了高中,高一开学的时候发了本《信息技术》教材,长这个样子:

当我看到这一页时,发现了一个熟悉的身影 – Python(命运的齿轮开始悄然转动…)

理所当然地,我开始对Python产生了较为浓厚的兴趣,并且开始尝试学习和编写程序。
但是那个时候,还处于一个门都没摸到的境界,学什么,怎么学都是问题。
好在互联网和网络上的各路大佬给了我指导。通过搜索,得到了一些学习渠道:

最初我在W3school上,认识了Python中的变量与字符串、列表这些概念,进而开始读《Python编程:从入门到实践》这本书,一直学到了字典;这时我发现靠自学有些吃力,于是开始借助一些视频课程进行深入理解,如上面的黑马以及《Python编程:从入门到实践》的配套视频。

然而,还有一个问题困扰着我:没有手机电脑的情况下,如何进行编程实践?
那时候家里只有一台智慧屛设备(如下图所示),其中有一个网页浏览器可以打开一些小型的网站。

于是我开始寻找一些在线的编程环境,最终选择了这一款:

OnlineGDB

这个平台支持代码云保存、一键分享等功能,也是我亲测好用且推荐使用的一款在线IDE。通过这个平台,我对Python进行了一定的实践练习,也为我理解编程打下了较为坚实的基础。

这是几个当年写的小程序,已经上传到我的GitHub仓库

  • 2022年8月:鸡兔同笼问题
  • 2022年11月:BMI计算器
  • 2023年1月:当时看B站UP主"毕导THU"的视频,模拟了视频中提到的红包金额分配算法

到这里,已经基本学习了Python的列表、字典、函数等简单语法,我开始尝试使用这些语法编写更长更复杂的程序,并将相关文章发布到了CSDN:

家里一众长辈都觉得我适合从事医生、会计、公务员等职业,对我选择计算机专业一致表示担忧和否定(出于某些原因,我没有告诉他们我已经进行了初步的入门学习);即使如此,我还是坚持选择了这个专业和这门行业。我开始探索计算机专业需要具备的知识和授课的内容,在2023年的暑假开始了计算机科学知识的学习:

通过学习较为底层的知识,我理解了内存是如何存储数据的,CPU是怎样执行命令和处理数据的等一系列问题,不仅让我有了更专业正确的编程思维,也让我在进入大学之后学习《计算机导论》这门课程更更加轻松。


高考结束后,我在填报志愿时选择了计算机科学与技术这一专业进行学习,并且很幸运地被分数线较高的一所大学录取,开启了专业学习程序设计的生涯。

高考结束的暑假,在我哥的指导和AI的帮助下,开发了一款Windows系统进程守护工具(点击访问GitHub仓库)
“进程守护工具”界面效果


感谢那个一往无前的自己,刚进入大学时,由于大部分初级知识(C语言、计导等)都提前学习过,我没有在学业上感到很大的压力,顺利结束了大一上学期的学习。

在大一上学期的期末,我开始了第二个软件(《番茄魔方》时间管理工具)的设计,并且在寒假期间完成了测试版的制作和发布,软件更新持续至今,项目代码已经突破5k行。
《番茄魔方》界面效果


回望过去,我与编程的相遇源于Python,也正是写下的第一行print("hello world"),将我带入了一个兼具创意与严谨的崭新世界。如果将人生看作最终指向return 0的程序,我的人生就已经写下了长长短短的19行。从最初的Hello world到现在的Hello coder,在一条初心不换的道路上,做不负星光的赶路人;矢志前行,终见曙光。


十九岁的栈帧:回溯那些改变我人生的函数调用
http://blog.morely.top/2025/04/15/十九岁的栈帧:回溯那些改变我人生的函数调用/
作者
陌离
发布于
2025年4月15日
许可协议