我为何会在这里
在键盘上打出第一行字,也略显手生,或许是很久没有继续写文的缘故。而今天,我重新打开编辑器,写下属于自己的想法。正如文章的标题一样,“我为何会在这里”,灵感来源于我们学校今年ICPC队伍的队名Why Am I Sitting Here。我也时…
在键盘上打出第一行字,也略显手生,或许是很久没有继续写文的缘故。而今天,我重新打开编辑器,写下属于自己的想法。正如文章的标题一样,“我为何会在这里”,灵感来源于我们学校今年ICPC队伍的队名Why Am I Sitting Here。我也时常在思考,我究竟为何会在这里,究竟是谁把我带到了这里,我又将去往何处。
曾经的我想要去学计算机,想要去学算法,做软件开发,又或是坐在电脑面前,微调即将要上线的大模型。对于那时的我而言,软件,似乎就是我的全部。我时常漫游在软件的世界里,学习着各种各样的知识,又或者看着国外大佬们发的博客,了解一些新的发展趋势。我似乎从来没有想过和硬件有关的事情,更不会想到,我最终会选择电子信息工程。
我最开始接触的是C++算法,那时的我也只是觉得好奇,对竞赛似乎并不感兴趣。编程对于我而言似乎也只是一种消遣,一种娱乐,而不是像打比赛全身心投入,废寝忘食的那种地步。C++算法,带给我的是一种严谨的思维,每一行代码语句都要加分号,程序需要先编译再运行,一旦遗漏了一点东西,编译器绝不会惯着你。
这种严谨的思维,也渐渐的发展成了对于代码书写的规范。那时候老师告诉我们,写代码要习惯性的打空格,增加代码的可读性。我一开始觉得这似乎是一件不可能完成的事情,但最终还是这样去做了。慢慢的,这样的习惯成为了肌肉记忆,也让我明白了,代码不仅是给机器读的,更是要给人去读的。
C++算法的学习也只持续了不到一年,疫情之后,便没有再继续了。那时我也会去自己研究一些老师此前没有讲过的,像是超文本标记语言HTML,用它来写网页,还有更为简洁的Python语言,以及用更为直观的Scratch写游戏,同时又接触到了跑在Windows上的VBS脚本。我经常用VBS写点奇奇怪怪的东西,像是关不掉的弹窗,自动关机程序,甚至有一次把学习机房的电脑给整白屏了。
也是在高一的时候,偶然间想到了一种查重算法,回家用C++实现了一遍。这个算法,最终逐渐演变成为了1700行代码的题库系统,在这个过程之中,我学习到了很多此前没有学过的东西,像是<Windows.h>的API封装,gotoxy()函数的使用,以及控制台应用的整体开发思路。从最初的最简单的版本,逐渐迭代到了一个有TUI,设置选项,多级菜单的完整题库系统。
我当初总是觉得没有去打算法竞赛是一种遗憾,在高一的时候,也曾有想要去打NOI的想法(因为我C++教材用的CCF的,但最终这个想法被搁置),在高三的时候,也时常后悔没能坚持下去。但有的时候,我又觉得这并非是一种遗憾。对于技术的喜好本身就不是一件可以用 AC /TL/WA 去衡量的事情,技术本身没有正确答案可言。
又或者说,如果当时我真的去选择卷算法,我同样也会失去很多。我会失去学习和生活的乐趣,失去对于自我的思考和观察,也不会再有写在文字中的感悟和流露。对于技术的探索,本身就是一件不值得被定义的事情,一件自发的事情。它是我的爱好,仅是如此。
再后来,我学会了双拼输入法,写Markdown文档,用Git为自己的文章和代码做版本控制,用gcc手动编译代码。我没有满足于对于Windows的探索,给自己的电脑装上了WSL2,第一次真正意义上接触Linux操作系统。我学会了简单的Linux命令行操作,接触到了包管理器apt,体会到了纯命令行操作的高效性,同时也加深了我对GNU系列的工具链的理解。
技术上的很多东西,不是别人教来的,而是我自己摸索来的。只有真正对技术的喜爱,才能激发自己对于技术的探索,在不断的学习之中深入。但正当我以为我以后能去学计算机专业,高考后的经历,又让我对此动摇。
我开始尝试系统学习前端开发和鸿蒙开发,却发现它带给我的,是一堆毫无意义的API封装,是“明明我的div/Column居中对齐了,但是依旧没有效果”的玄学问题。而当我开始继续学习C++算法的时候,却发现提不起一点的兴趣。从某种意义上说,此时此刻的我,已经不是过去那个执迷于软件的自己了。
我也开始意识到,软件是人为制定的规则,存在着很大的变数和人为制造的壁垒。各个厂商都在用自己的范式进行开发,本质逻辑是一样的,但是却无法互通。今年学习的框架,也许明年就过时了,而学习的新框架,本质上和旧框架做的事情是一样的,但是却又要为此重新学一遍,花费自己的时间和精力。
而反观硬件,物理定律就是硬件最本质的规则,所有硬件的设计,都是基于物理定律来的。这是自然科学,而不是人为可以去制定的规则。AI可以去帮你写代码,但是却无法完全替代你去设计硬件,也无法帮你去焊电路板,去排查电路存在的问题。
这或许是对我为何会来这里最好的解释。我是在AI还没有那么发达的时候开始学习的编程和软件,而如今AI能做的事情,已经可以替代很多原本需要人工去做的事情。但也不是说学习软件和算法就一无是处,软件的规则和范式同样需要人来制定。在开发软件之前,最重要的事情就是指定软件开发的规则和范式,写技术文档和程序设计文档,开发统一的json接口,方便后期的维护。
如果不具备这样的思维方式,那么用AI开发的代码,表面上光鲜亮丽,但却充满了不确定性和不可维护性。我无法去否认或者去干预这样的不确定性,但是我可以做的,就是告诉AI我这个项目具体的范式是什么,需要什么样的json接口去修改我的数据,后期如何去维护这个项目。这都是需要人去做的,AI很难去替代这样的决策和思考。
软件,是我的爱好,但是并不能否认“我为何会在这里”这个根本性的问题。我之所以会在这里,是因为我选择了一条对于我而言全新的赛道,在这条赛道中,继续面对着未知和挑战,继续去探索,去发现,去尝试。这个简单的提问,似乎不再需要去回答。它反映在我的每一天,记录着我曾经学习软件,最终走向硬件世界的经历。
我为何会在这里?因为这是我的选择,是我在经历这一切后最终的权衡。