写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

仿一个黑客帝国

想着该怎么配图才没有版权问题,代码瘾上来了,第一代电脑经典的黑底绿字,黑客帝国的代码瀑布浮现出来,琢磨了下,打开vscode写了一段js,一片诡异的字幕果然拖着余辉垂落下来,兴奋之余也顾不上优化效果,马上截屏获得这个原创、应景、又无版权纠纷的图片。

还记得自己怎么走上程序员的道路的吗?

据我观察,很多数程序员都是半道出家,多少都是对代码上瘾的。也许有人觉得写代码的程序员应该是最低层次的程序员,在众人眼里,程序员的目标是架构师、CTO,怎么会有人喜欢敲代码呢?就好比搞建筑的,牛人都在设计机场、酒店,怎么会有人喜欢刷墙搬砖呢?

写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

色彩斑斓的黑~~~代码就是程序员的诗歌

层次低不低,暂且不表,先看看这事儿为什么会让人上瘾吧。

本人专业是电子工程,毕设的时候意外的做了嵌入式开发,当时导师领我去了实验室,桌子上摊着一个拼接得无比巨大的面包板,插满各种集成电路芯片,一股一股的导线从各个芯片的引脚整整齐齐的流向四面八方,看得出搭这个东西费了不少功夫啊。

导师说,这是上一届的一位仁兄做的烂尾工程,就交给我了,资料没有,需自己搞定,把它修复运行起来,修改硬件和程序,调试成功后设计印刷版板和外壳,最终完成一个测试仪样品。

导师交待完以后就神隐了。这玩意初看还真头大,好在花了几天时间还是摸清了硬件电路,可以开始做软件了,这也是本人头一次写实际要用的程序了。

语言是ASM汇编!当年的嵌入式开发跟现在可完全不一样,没有EEROM,面包板外挂仿真器,软件靠16进制的键盘直接输入!平时软件都在内存里按字节改,调试好了再烧EPROM,这是最原始的开发了,过程极其繁琐。

不过当时真的很兴奋,整个编程的过程就是不断上瘾的过程啊:

写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

上瘾源自:啥都没有还敢干,这才能体现出宅男的牛逼

没有源代码,直接从EPROM里读出一大片16进制的数字串。

没有反编译工具,人工对照着指令表把数字串翻译成汇编语句。

没有编译器,人工查指令表把汇编语句翻译成16进制的数字串。

没有编辑器环境,代码无法编辑修改,直接进程序存储空间,寻找空白区域,在要修改的地方改成一个跳转,转到空白空间加入新代码,还要精确计算指令长度覆盖原代码时不能造成错误指令,新代码结束还要跳回原来截断的地址。

按照自己的粗浅理解,尝试着修改第一个内存单元,输入机器代码,验证结果成功后,信心大增,这事儿妥了!注意啊:那个时候干这个事没有电脑!没有电脑!没有电脑!所有操作和显示只有仿真器的16进制键盘和简陋的数码管显示。嗯,看起来跟阿波罗登月时的条件差不多哈~

上瘾源自:自发探索、不断获得新知识的喜悦

在这个过程中,很快就熟悉了CPU指令集,这是intel经典的CISC指令集,复杂啰嗦到无与伦比甚至莫名其妙,处处透着60年代的复古气息,大概是由于工艺、技术的限制、为了最大化的利用资源,以及兼容老芯片的目的,很多指令的设计私以为就是七拼八凑,对寄存器的利用那真是犄角旮旯的都不放过,这也造成了空间不连续,基本无规律,选用很随机,总之是复杂透了!

写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

时序图,科学家眼里的逻辑精确到每一个时钟,能不理性吗

上瘾源自:枯燥的理论亲证有用,欣慰没白学

编程需要熟悉CPU的工作原理,每条指令的指令周期,字节长度,优化用途等等。很多教科书上的枯燥概念,什么中断,寻址,分页,堆栈,译码,I/O,扫描,双积分ADC…..在这个简单的仪器中几乎全都用上了。很多时候也不禁赞叹人类居然能用这么巧妙的方式让一个固体器件充满了生命的气息。

上瘾源自:不断激发你大秀智商的企图,专治各种不服。

自以为聪明?不服来干!这里没有封装好的函数,一切逻辑,一切算法,一切优化方案都要自己去写,而且是用非人类所能理解的语言,很多时候需要脑筋急转弯,简直就是对智商的一大考验,不知道现在还有谁玩过汇编,直接操作一切硬件资源,想干嘛就干嘛,想怎么干就怎么干,不会有任何警告和报错,反正你写什么都OK,前提是你真的要确定知道自己究竟在干嘛!CPU会完全按你写的去干,错了可不管,直接飞到无影无踪!那感觉真是又爽又痛苦!

写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

哈哈,有谁能猜出这段代码是干嘛的吗?快失传了哦~

调试手段原始到直截了当,设置断点,单步执行,连续执行,全部内存数据都是透明可见,串行通讯,数据可以一个字节一个字节的让你看到,这一趟代码下来,感觉人机一体了。

上瘾源自:不断收获小小成就,再难的问题也土崩瓦解。

一个复杂的事情被分解成无数个简单的小问题,只要安下心来,每走一步都会解决一个问题,心理上的满足感是不间断的,在一个虚拟的世界里,自己掌控了一切,创造着一切,这简直就是玩游戏开外挂了的感觉嘛!

自打这个愉快经历之后,就走上了书写代码的人生。在后来的工作中,终于告别了恐龙级别的开发环境,大部分时间里再也没有用到汇编,电脑和芯片的更新换代早已使得开发工作不可同日而语,代码的复杂度也从硬件底层转移到了业务逻辑、互联网络、三高问题,系统架构,高效运维,炫酷的交互等商业化技术支撑的考量,以及更为庞大的体量,团队协作的效率,快速部署和迭代,跨平台,跨终端的覆盖和适配等等。

写程序为什么会让人上瘾?(写程序为什么会让人上瘾呢)

稍加变形,简直就是培训机构的即视感~~~

从嵌入式,到桌面,到互联网站,从pc端,到移动端,到云端,一路风景不断,没有尽头,每隔几年,都恍如隔世。

无论是因为兴趣,是业余爱好,还是职业的需要,每个程序员对代码的瘾都会有自己的理由,五彩斑斓的字符,整齐堆叠的模块,编译器里飞驰而过的提示,说到底,一切上瘾都是由于获得精神心理上的满足,如同打游戏一般,在虚拟的世界里,程序员简直就是上帝,上瘾沉迷在所难免啊!只是,还有一个问题,写代码上瘾的程序员,究竟是不是太LOW呢?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月8日 上午10:42
下一篇 2023年5月8日 上午10:58

相关推荐