跳到主要内容

2020 · 编程之旅的起点

阅读需 13 分钟
wqz

第一台真正属于我的电脑

​ 2018年11月的某个午后,阳光斜斜地照进教室的玻璃窗,我在课桌下偷偷摩挲着手机屏幕——表哥刚发来消息:"电脑选好了,戴尔G3 3579,周末带你去提货。"我的心跳突然漏了一拍,笔尖在课本上洇出个墨点。那天放学后,我特意绕路去校门口的ATM机,看着奶奶汇来的6800元(其实5800元,我多赚了点生活费)在屏幕上闪烁,冰冷的金属按键被我的手指按得发烫。

​ 这台深灰色笔记本到来的那个周末,我把自己关在房间整整两天。指尖抚过键盘时,能感受到金属拉丝面板细微的纹路,开机时蓝色呼吸灯像深海鱼群般渐次亮起。小时候总被父母呵斥"别碰主机箱"的台式机,此刻终于有了专属于我的温度。记得第一次成功运行代码的那个深夜,淡蓝色的cmd窗口在黑暗中亮着,我对着那句"Hello World"傻笑了十分钟。

从小海龟到UI梦的萌芽

初识计算机的神奇世界

​ 我第一次真正意义上接触电脑,不是在家里,而是在小学的计算机课上。

​ 学校当时的设备,在我们那片还算不错——每台机子都是独立座位,液晶屏,鼠标光标转得比我脑子还快。老师一边讲,我一边偷偷把极域卡掉,只为找到那个装有《金山打字通》的路径,好继续通关青蛙过河游戏。那时我跟我哥在家组装过电脑,虽说最后电脑也不是我的,但那种"自己动手造点什么"的快感,从那个时候就埋在心里。

编程的第一次成就感

编程学习 ​ 没多久,又开始接触 Scratch。比起小海龟,它简直像个"神奇积木游戏",点一点、拖一拖就能让小猫跳舞,还能做出小游戏。那时我做过一个简陋的"迷宫挑战",结果老师放到班上给全体演示——我整个人坐得笔直,心跳比发言还紧张。后来班里的小伙伴下课都来找我"借游戏玩",那感觉就像自己做了个很厉害的魔术道具。

Office技能的实践

​ 除了这些,Office三件套——PPT、Word、Excel 我也学得津津有味。别的小朋友还在用默认模板做作业展示,我已经在琢磨"怎么让按钮点击之后切换页面,像游戏菜单那样酷"。那时候我甚至会因为找不到满意的字体效果,在PPT里手动一个字母一个字母地"描边"……老师看了直接叫我去全班讲讲"你这动画效果是怎么做的"。

网络自学者的旅程

C语言的初次邂逅

​ 真正接触 C语言的时候,我才发现当年写的小海龟指令、拖拉积木、做演示动画的逻辑,其实早就悄悄在我脑子里打好了基础。什么是语句顺序?怎么控制流程?为什么要用变量?这些在C语言课堂上让人头疼的概念,对我来说反而像是熟悉的老朋友。

自学的夜晚与笔记本

​ 我总觉得,如果没有小学那几年的"玩",我可能不会这么早爱上代码;当室友们在峡谷里厮杀时,我的B站首页悄然铺满了"三天学会C语言"的课程列表。夜深人静时,充电台灯在宿舍床帘里圈出一片光域,我对着"小甲鱼C语言教程",在泛黄的笔记本上记下第37页笔记——那些用三种颜色区分的注释符号,至今仍静静躺在我的书柜里。

从挫折中学习

​ 谭浩强的"小红书"被我翻出了毛边,第58页关于指针的章节沾着半块饼干屑,那是某个深夜与&符号较劲时留下的战损。渐渐地,我的草稿本上开始出现诡异的涂鸦:用for循环画出的圣诞树,while语句构成的贪吃蛇,还有无数个写着"Segmentation fault"的愤怒表情包。在第47页折角处还留着当时的困惑:"结构体和类的区别到底是什么?"——这个问题的答案,我是在半年后的C#课上突然顿悟的。

从课代表到技术辅导

人生第一次担任"课代表"

​ 到了下学期,因为我 C 语言学得不错,班主任直接点名让我当 C# 的课代表。班主任宣布课代表人选的那个下午,阳光正斜照在教室第三排的金属桌沿上。当我的名字被念出时,粉笔灰在光柱中惊慌逃窜,前排同学转身投来的目光让我耳尖发烫。从此,那个总爱缩在教室后排的男孩,开始学着站在讲台前调试投影仪。

性格的蜕变

​ 成为课代表那天,班主任沈老师拍拍我肩膀说:"你啊,你得多开口说话。"当时我正盯着自己球鞋上开胶的缝隙,耳尖烧得通红,只顾练练点头。而且,我的学号是 27 号,刚好坐在老师讲台正前方的第一排,那种感觉就像——我是"天选之人",逃不了、也躲不开。第一次收作业时,有个男生嬉皮笑脸地说"课代表帮我写呗",我攥着作业本的手指关节发白,突然听见自己说:"我可以教你,但代码要自己写。"那个瞬间,仿佛有某种枷锁"咔嗒"解开。

第一个计算器项目

​ 我们的第一个项目是做一个计算器。老师鼓励我们要有创意,介绍了一些往届学长的作品,大多是外观上的优化。我虽然还不熟练,但一边学一边做,疯狂在网上搜索各种实现方式,UI 组件、按钮交互、功能划分……能看的资料都看,能试的代码都试。最终我做出来一个有下拉分类的科学计算器,不止加减乘除,还有单位换算、科学运算等不同模式,而且我还加了一个可以切换深色模式的按钮。

计算器项目

实战中的成长

​ 虽然 Bug 多得像星星一样闪闪发亮,但整体效果我还是做出来了。对那时候的我来说,这就是"破局"的感觉。不是照本宣科,不是跟着视频一行一行敲,而是真正靠自己"边查边写",从一堆报错中磨出来的。编程学习照片

​ (交作业的时候,排队的同学那我手机偷拍我)

从教会别人中学习

​ 期末的数据库项目像一场突如其来的暴雨。当同学们还在纠结MySQL安装包时,我已深陷在conn.prepareStatement()的泥潭里。深夜的QQ群消息此起彼伏:"哲叔,我的ResultSet怎么读不出数据?""起哲,事务回滚到底怎么写啊?""王老师!我的删除功能把整个表清空了!"

​ 那些日子我们像在代码的密林里穿行,每个人手里的火把都照亮彼此的前路。聪哥的戴尔游匣和我G3并排运转,散热口的热气在冷空气中凝成白雾。我们像破解密码的特工,逐行检查着班长(跟我一个宿舍)的JDBC连接字符串,当终于看到数据表成功加载时,此起彼伏的"卧槽"声,成了那年冬天最动听的代码交响乐。

篮球场上的另类修行

篮球场上的意外收获

​ 体育课的自由活动时间,我和我的搭档总是第一个抱着那颗磨破皮的斯伯丁冲向球场。172cm 的我在 186cm 的"白猪"面前,就像个"瘦竹"。但我偏不信邪,就爱挑战这座人形堡垒。他打球像推土机,一路碾压进内线毫不讲理。我被撞得东倒西歪,却越打越兴奋。那种硬碰硬的感觉,就像我在调试代码时一次次死磕的状态——假动作、虚晃、突然变向,就像是在 switch-case 的逻辑树里硬生生找出一条 break 路线。 篮球场

从挑战中成长

​ 有一次,我三步上篮被他火锅盖得干净利落,球直接砸在篮筐边沿弹了老高。我顺势后撤一步,起跳、出手,那一刻篮球划出的完美抛物线,比 try-catch 捕获异常还要丝滑精准。慢慢的,我开始摸清他的节奏。0.5 秒的重心延迟,成了我的假动作的突破口。而他也不甘示弱,用三分线外的高弧线破解我的贴身缠斗。球场成了我们的逻辑沙盘,每一次进攻和防守,仿佛都在做着一场代码审计。有次我一个快速上篮得手,他走过来揉着我满头大汗的脑袋,笑骂:"你小子打球都跟写代码似的,专挑我逻辑漏洞下手!"

前端开发的弯路

"聪明"的捷径主义

​ 这个学期我们也开始学网页开发,网页课成了我的"魔术表演时间"。HTML、CSS、JavaScript 一起上场。我一开始挺兴奋的,但后来逐渐犯了点小聪明——经常直接用浏览器的 F12 控制台,把老师发的网页的代码一粘贴,然后改改颜色、文字,作业就搞定了,效率高得离谱。 前端开发 ​ 因为操作熟练又交作业积极,老师对我印象一直很好。有次我无意间听到她跟其他老师聊天时还提到我,说"这孩子动手能力强,悟性也不错"。但幻想总是短暂的,现实很快就找上门来了。

技术短板的暴露

​ 有一次,我想给导航栏加个简单的 hover 效果,却发现连 position 定位都搞不清楚,盒模型压根没概念;更别说 float、z-index 这种搞人心态的属性了。接着我又想尝试实现一个视频播放组件——结果 < video> 标签能加上去,但怎么控制暂停播放、怎么全屏、怎么控制音量?完全不知道从哪下手。这才意识到:JavaScript 远比我想象中复杂,而那些被我"聪明跳过"的基础知识,终究还是会绕一圈回来找我补课。

转折点:工作室的机会

意外的邀请

​ 事情的转折发生在一个很偶然的机会。我们学校有个专门比赛的工作室,同学调侃我们是"天才班"选手,因为之前压根没人听说过。后来才知道,原来负责人是我们班主任的丈夫,所以他们从我们班挑人。我也被第一批选中了。

内心的挣扎与抉择

​ 刚听说要去工作室,我其实挺犹豫的,因为听说那边"几乎不上课",天天泡在实验室练习。我怕学业落下,于是找我哥问问情况。我哥是我们学校学生会的二把手,认识不少人。他了解一圈后告诉我:"这个工作室是学校重点培养项目,真的值得去。"我听了才踏实下来,决定试试。

初入工作室的震撼

​ 收到工作室邀请的那个傍晚,走廊尽头的晚霞正烧得炽烈。推开403实验室的门,六台老旧的显示器在暮色中幽幽发光,墙角堆着一沓子资料,都是学长的东西。学长从测试报告中抬起头,指向我们的电脑:"先看看这个管理系统,找出十个隐藏bug。"

挑战与突破

​ 第一次见到测试平台时,密密麻麻的用例像蚂蚁行军。学长演示时故意留了个空指针异常,当我战战兢兢点下"运行"时,控制台喷涌而出的红色日志如同火山爆发。那天我们组找到了27个bug,正好是我的学号,离开实验室时月光把六个人的影子拉得很长,像六根倔强的指针。

2019年的收尾与新的期待

​ 离校这天的实验室格外安静,中央空调的嗡鸣声格外清晰。我蜷在磨破了皮的躺椅上,看阳光在Typora的Markdown界面游走。微信家族群里,我哥刚转发了一条"疫情"的新闻链接,我妈那边则在不停地发语音,问我"几点出发、公交坐几号线、地铁别坐错了"——我回她"放心啦",其实还在改最后几段总结。


收获与展望

​ 站在2020年的尾巴上回望,代码不再只是冰冷的符号。它们是我在篮球场虚晃时的假动作,班主任给的不仅是头衔,是破茧成蝶的契机;同学抛来的每个问号,都在我思维中锻打出新的钩连。

​ 今年对我来说,不仅是编程世界的一次深刻接触,也是迈向软测比赛的一步。作为工作室的一员,我刚开始接触测试用例的编写和Bug的排查,还只是一个初学者,但我已经开始为即将到来的软测比赛做准备了。未来的一年,我希望能够更加熟练地掌握测试领域的技术,尤其是自动化测试和性能测试,为比赛做好充分的准备。

​ 新的一年,期待我能够通过在比赛中的磨砺,不仅提升自己的专业技能,更加深入地理解软件测试的各个维度,逐步从一个初学者转变为一名能在比赛中有所斩获的选手。同时,我也希望能够在工作室积累更多的经验,提升自己的团队协作能力,真正做好从“找Bug”到“解决问题”的转变。

​ 当新年钟声响起时,我知道自己已经准备好迎接更多异常处理——因为每个崩溃的瞬间,都是重构认知的契机。就像那个总被盖帽的篮球少年终将学会后仰跳投,在代码的世界里,我正学着把每个bug都变成进步的垫脚石。

分享这篇文章
Loading Comments...