查看原文
其他

道法自然:我受益最多的老师

格蠹老雷 格友 2023-06-10

道法自然

我受益最多的老师

 

最近因为招聘新员工,我接触了很多即将毕业或者毕业不久的大学生(RCG),使用的平台主要是BOSS直聘。可能最近的就业形势真的不好,每一天,都有很多学生主动和我打招呼,应聘格蠹的C++开发岗位。


我一般是先看简历,大多都可以通过。因为我非常重视写代码的能力,所以下一步我会请对方加微信做个编程题目。一听到要编程,有些同学就静悄悄地撤退了;有些同学加了微信拿到题目后,也没声音了;也有同学会直言不讳地说,做不出来。

01

说心里话,对于这样的情况,我是感觉有些痛心的。其实编程的题目并不难,就是打开文件,做一下字符串替换,可是很多同学就是不知何从下手。原因就是写代码太少。


应聘的同学大多都是计算机相关专业的本科生。用宝贵的四年大学时间来学计算机,怎么会学成这样呢?出现这个结果,应该责怪谁呢?大学的课程设计者,系里的领导们值得深思一下。


但即使他们认识到教学的不足,也无法挽回这些已经要毕业同学的学习时光了。哎,真是可惜。




02


如何把软件学好呢?这是个比较大的话题,我愿把我的亲身经历分享给大家。


虽然我在读高中时就编写过基本的BASIC程序,但是那时根本没有对程序和软件建立起什么概念。1992年,我进入大学后,开始比较系统的学习计算机的硬件和软件。还记得学习的第一门计算机课是Fortran语言,学的也是云里雾里。而后陆续学习了C语言、数据结构和微机原理。


微机原理有两门课,一门讲8051单片机,比较偏硬件。另一门讲8086汇编语言编程,比较偏软件了。教“8086汇编语言”的老师30多岁的年龄,个头很高,说话不多,今天,我已经记不起他在课堂上讲过的任何技术内容,但却清晰地记得他使用了一种很独特的教学方法。与其他老师费劲地讲解每个知识点不同,他只是给大家留了一个大作业,让大家自己用汇编语言写个程序,自己决定程序的功能和界面。留了这个作业后,几乎就没有见到过这位老师。一到他的课,就是到机房里上机,闷头写程序,各写各的。


课堂上的那点时间不够用,所以大家都经常在课外时间做这个作业。当时的计算机资源还比较宝贵。系里的机房常常人满为患。于是有时要到计算机中心去上机,上机不是免费的,需要花钱购买机时,当时流行用饭票来支付。


就在那个学期,一个同班同学提议合伙买一台PC,我很感兴趣,一边写信回家请家里寄钱,一边先用开学时带的钱入了股。于是我和另外三位同学四人合伙,一起买了一台PC,硬件配置是386 DX/40,1.2M + 1.44M软驱,4M内存,210M硬盘,TVGA显卡,.28彩色显示器,安装的操作系统是DOS和Windows 3.1。我们是在华山路上的一家经营办公用品的店里购买的组装机,一共花了6505元人民币,又花了100多元的出租车费,把主机和CRT显示器运回到闵行校区。


翻开久未打开过的大学时代日记,我们购买那台PC的时间是1994年11月11日,是星期五。日记中还夹着父亲当年为我汇款时用的汇款专用信封的附言部分,上面写着8个字:学习正用,买也值得。



03

EVER

现在回想起来,我真正的编程经历是从有了那台PC开始的。每次轮到我上机的时候,我都是写代码和调试,从来不打游戏,也不做其它事情。为了更好利用上机时间,我常常先把代码写到本子上,上机时快速录入进电脑,然后编译、运行看结果,再调试。当时我就喜欢用调试器,单步跟踪程序的每一行代码。现在清楚记得的一个细节是,为了在DOS下能显示出更好看的界面,我在DOS程序里用汇编语言中的软中断指令调用Video BIOS的服务,把系统的显示模式从文本模式改为图形模式。当我单步执行切换图形模式的指令时,CRT显示器上会出现五颜六色的光斑和各种诡异的画面……


因为投入的时间很多,我的“8086汇编语言“程序越写越大,功能越来越多,不仅有图形化的下拉菜单,炫耀技术的TSR(内存驻留)功能,而且还可以驱动PC喇叭播放”两只老虎“的音乐。有了比较扎实的汇编语言基础后,我又继续用C语言编写Windows程序。


回顾我学习软件的亲身经历,如果要我分享经验的话,那么我的第一条经验就是多写代码,多调试。我一直觉得我是个不聪明的人,如果说我把软件技术学的还可以的话,那么我靠的就是这条经验:几乎每一天都与计算机混在一起,几乎每一天都写代码,几乎每一天都调试,坚持了二十多年,已经成为了习惯。


对于学外语,很多人都总结出一个经验,最好的学习方法就是到说这个语言的环境里去。比如学英语,就到说英语的国家生活几年,自然就会了。


其实学计算机和软件也是这个道理,如果你要学好计算机,那么最好的方法就是你每天都在用它,都在琢磨它,都在写代码和它互动,都在用调试器一步步的感受它。这样日积月累,怎么会有学不会的道理呢?


今天的计算机很便宜,大家很容易就买一个。新的问题便是,买了后大家是否用它来写代码。有些家长曾问我:“孩子上大学了,要买个电脑,应该选什么?”

对于这个问题,很多年轻人是本着“外观是否漂亮”和“是否适合打游戏”考虑的。谬哉!你是学生,在花父母的钱,不管你的父母是否富裕,也不该浪费。最重要的是,你的青春时光,更加珍贵,怎么可以把美好的庆春年华虚度了呢?



04


《论语·子张》篇有段非常经典的对话。


卫公孙朝问于子贡曰:“仲尼焉学?”子贡曰:“文武之道,未坠于地,在人。贤者识其大者,不贤者识其小者,莫不有文武之道焉。夫子焉不学?而亦何常师之有?”


翻译为白话是,卫国的公孙朝问孔子的弟子子贡:“你的老师仲尼是从哪里学来的学问呢?”子贡说:“文王武王的大道,没有坠落于地上,还在人身上。贤人学到了道中的大者,不贤者学到了道中的小者,无不有文武之道在里面。夫子何处不学习呢?况且哪里有固定的老师呢?”


子贡话里最后的一句最为精彩:“夫子焉不学?而亦何常师之有?”


意思是,孔子怎么会不学习呢?可是他的学习方法非常独特,他没有固定的老师。


没有固定的老师是和谁学呢?一种情况便是“三人行,必有我师”,也就是向身边的人学习。


其实除了向身边的人学习,还有一个老师,这个老师就是环境,就是环境里的万物。用朱熹的话来说,每一物都有一物的道理,这便是学问。


我非常喜欢的一种方法论,便是格物,也就是仔细研究“物”,研究客观存在的真实的“物”,存在的便是合理的,它的特征,它身上体现出了的规律便是值得我们学习的,这样学到的东西往往比书本还精确。




05


进一步讲,今天学软件和计算机和我30年前学习时已经有很大的变化,当时我学的是X86 + Windows。


而今天,正在蓬勃兴起的是ARM + LINUX。因为此,基本的方法没有变,但是学习的具体环境需要调整一下了。

对于要学习计算机和软件的年轻人来说,你最好的学习环境便是一台LINUX系统,里面的硬件最好是ARM,这样你不仅学会了编程,而且建立起非常好的硬件基础,对当下流行的计算机系统有了深刻的认识。


其实有一台ARM + LINUX的工作机也是我所期待的。为了实现这个愿望,格蠹特别与硬件厂商密切合作,精心打造了一款基于RK3588的笔记本电脑,取名幽兰。


多年以来,ARM平台的软件开发大都需要使用交叉编译方式,比如在X86系统上进行开发,然后再部署到ARM平台,这样做不仅影响工作效率,而且导致开发工程师远离实际的运行环境,缺少对真实运行环境的理解和掌控,难以开发出最高效的软件。幽兰代码本(Orchid Code Bench,OCB)是格蠹科技专门为程序员打造的移动计算平台,基于ARM架构的硬件设计,旨在彻底改变长期以来的交叉编译模式,为程序员提供本地化的开发和调试环境,让他们可以在本机编写代码、在本机进行构建,并且在本机进行调试。


第一代幽兰代码本使用瑞芯微公司新推出的RK3588 SoC芯片为核心硬件。RK3588是瑞芯微新一代旗舰级高端处理器,采用先进的8nm制程工艺,集成了8个ARMv8架构的CPU,4个为Cortex-A76,另外4个为Cortex-A55,共8个CPU核心,使用Big-Little技术协同工作。




幽兰将在本周日发布

希望感兴趣的朋友不要错过



06


其实在更久以前,道家的创始人老子就认识到了上面我们说的道理,他把这个道理归纳成:“人法地,地法天,天法道,道法自然。”


朱熹的格物,子贡说的学无常师,老子说的道法自然,都在告诉我们一个道理:一个好的画家要画出好的作品,必须到大自然中去写生。要学好游泳,必须跳进水里。大家如果要学好软件,不钻入到计算机的世界里,怎么能学好呢?





END


盛格塾

盛格塾是格蠹科技旗下的知识分享平台,是以“格物致知”为教育理念的现代私塾。


本着为先圣继绝学的思想,盛格塾努力将传统文化中的精华与现代科技密切结合,以传统文化和人文情怀阐释现代科技,用现代科技传播传统文化。


访问方式

手机端:微信小程序搜索“盛格塾”

电脑端:下载Nano Code社区版客户端

https://nanocode.cn/#/download

格友公众号

盛格塾小程序




往期 · 精彩回顾

好教育和坏教育

内核夜话:32位应用,奈若何?

新年新镜像——GDK8聊城版本说明

是谁让历史课变得乏味?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存